mirror of
https://github.com/rene-dev/stmbl.git
synced 2026-02-05 18:01:21 +08:00
festo
This commit is contained in:
84
src/main.c
84
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");
|
||||
|
||||
Reference in New Issue
Block a user