diff --git a/src/main.c b/src/main.c index 8cca6a7f..264dfa7a 100644 --- a/src/main.c +++ b/src/main.c @@ -106,33 +106,38 @@ void link_pid(){ set_hal_pin("pid0.volt", 60.0); set_hal_pin("p2uvw0.poles", 1.0); set_hal_pin("pid0.enable", 1.0); -} - -void link_ac_sync_res(){ - link_pid(); - // cmd - link_hal_pins("enc0.pos0", "net0.cmd"); - // fb - link_hal_pins("res0.pos", "net0.fb"); -} - -void link_ac_sync_enc(){ - link_pid(); - // cmd - link_hal_pins("enc0.pos0", "net0.cmd"); + + link_hal_pins("pid0.pwm_cmd", "cauto0.pwm_in"); link_hal_pins("cauto0.pwm_out", "p2uvw0.pwm"); // magpos link_hal_pins("cauto0.mag_pos_out", "p2uvw0.magpos"); - link_hal_pins("enc0.pos1", "cauto0.fb_in"); link_hal_pins("cauto0.fb_out", "net0.fb"); } +void link_ac_sync_res(){ + link_pid(); + link_hal_pins("enc0.pos0", "net0.cmd"); + link_hal_pins("res0.pos", "cauto0.fb_in"); +} + +void link_ac_sync_enc(){ + link_pid(); + link_hal_pins("enc0.pos0", "net0.cmd"); + link_hal_pins("enc0.pos1", "cauto0.fb_in"); +} + void set_bosch(){ link_ac_sync_res(); // pole count - set_hal_pin("auto0.pole_count", 4.0); + set_hal_pin("cauto0.pole_count", 4.0); + + // auto time + set_hal_pin("cauto0.time", 0.5); + + // auto scale + set_hal_pin("cauto0.scale", 0.6); set_hal_pin("pderiv0.in_lp", 1); set_hal_pin("pderiv0.out_lp", 1); @@ -156,6 +161,50 @@ void set_bosch(){ set_hal_pin("pid0.vel_max", 1000.0 / 60.0 * 2.0 * M_PI); set_hal_pin("pid0.acc_max", 1000.0 / 60.0 * 2.0 * M_PI / 0.005); } + +void set_festo(){ + link_ac_sync_res(); + + set_hal_pin("enc0.res0", 2000.0); + set_hal_pin("res0.enable", 1.0); + set_hal_pin("pderiv0.in_lp", 1); + set_hal_pin("pderiv0.out_lp", 1); + set_hal_pin("pderiv0.vel_max", 13000.0 / 60.0 * 2.0 * M_PI); + set_hal_pin("pderiv0.acc_max", 13000.0 / 60.0 * 2.0 * M_PI / 0.005); + + // fb + set_hal_pin("res0.enable", 1.0); + set_hal_pin("pderiv1.in_lp", 1); + set_hal_pin("pderiv1.out_lp", 1); + set_hal_pin("pderiv1.vel_max", 13000.0 / 60.0 * 2.0 * M_PI); + set_hal_pin("pderiv1.acc_max", 13000.0 / 60.0 * 2.0 * M_PI / 0.005); + + set_hal_pin("pderiv0.out_lp", 0.5); + // pole count + set_hal_pin("cauto0.pole_count", 4.0); + + // auto time + set_hal_pin("cauto0.time", 0.5); + + // auto scale + set_hal_pin("cauto0.scale", 0.6); + + // pid + set_hal_pin("pid0.pos_p", 35.0); + set_hal_pin("pid0.vel_p", 1.0); + set_hal_pin("pid0.vel_i", 50.0); + set_hal_pin("pid0.pos_lp", 1.0); + set_hal_pin("pid0.force_p", 1.0); + set_hal_pin("pid0.cur_ind", 2.34); + set_hal_pin("pid0.pos_lp", 1.0); + set_hal_pin("pid0.vel_lp", 1.0); + set_hal_pin("pid0.cur_ff", 28.0);//dc wicklungswiederstand + set_hal_pin("pid0.vel_d", 0.0); + + set_hal_pin("pid0.vel_max", 13000.0 / 60.0 * 2.0 * M_PI); + set_hal_pin("pid0.acc_max", 13000.0 / 60.0 * 2.0 * M_PI / 0.005); +} + void set_manutec(){ link_ac_sync_enc(); @@ -329,7 +378,8 @@ int main(void) TIM_Cmd(TIM4, ENABLE);//PWM - set_bergerlahr(); + //set_bergerlahr(); + set_festo(); link_hal_pins("cauto0.ready", "led0.g"); link_hal_pins("cauto0.start", "led0.r"); //link_hal_pins("led0.g", "test0.test2");