mirror of
https://github.com/rene-dev/stmbl.git
synced 2026-02-06 02:02:34 +08:00
ac enc
This commit is contained in:
46
src/main.c
46
src/main.c
@@ -41,7 +41,7 @@ void link_ac_sync_res(){
|
||||
link_hal_pins("pderiv0.out", "pid0.vel_fb");
|
||||
set_hal_pin("pderiv0.lp", 0.8);
|
||||
link_hal_pins("enc0.pos", "pderiv1.in");
|
||||
link_hal_pins("pderiv1.out", "pid0.vel_ext_cmd");
|
||||
link_hal_pins("pderiv1.out", "pid0.vel_ext_c");
|
||||
set_hal_pin("pderiv1.lp", 0.8);
|
||||
link_hal_pins("res0.pos", "plus1.in0");
|
||||
set_hal_pin("plus1.in1", -0.64);
|
||||
@@ -64,8 +64,48 @@ void link_ac_sync_res(){
|
||||
set_hal_pin("p2uvw0.volt", 130.0);
|
||||
set_hal_pin("p2uvw0.pwm_max", 0.9);
|
||||
set_hal_pin("pid0.volt", 130.0);
|
||||
set_hal_pin("p2uvw0.poles", 1.0);
|
||||
}
|
||||
|
||||
void link_ac_sync_enc(){
|
||||
link_hal_pins("enc0.pos", "pos_minus0.in1");
|
||||
link_hal_pins("res0.pos", "pos_minus0.in0");
|
||||
link_hal_pins("pos_minus0.out", "pid0.pos_error");
|
||||
link_hal_pins("pid0.pwm_cmd", "p2uvw0.pwm");
|
||||
link_hal_pins("enc0.pos", "pderiv0.in");
|
||||
link_hal_pins("pderiv0.out", "pid0.vel_fb");
|
||||
set_hal_pin("pderiv0.lp", 0.8);
|
||||
link_hal_pins("res0.pos", "pderiv1.in");
|
||||
link_hal_pins("pderiv1.out", "pid0.vel_ext_c");
|
||||
set_hal_pin("pderiv1.lp", 0.8);
|
||||
link_hal_pins("enc0.pos", "plus1.in0");
|
||||
set_hal_pin("plus1.in1", -0.64);
|
||||
link_hal_pins("plus1.out", "mul0.in0");
|
||||
set_hal_pin("mul0.in1", 3.0);
|
||||
link_hal_pins("mul0.out", "mod0.in");
|
||||
link_hal_pins("mod0.out", "plus0.in0");
|
||||
set_hal_pin("plus0.in1", M_PI / 2.0);
|
||||
link_hal_pins("plus0.out", "p2uvw0.magpos");
|
||||
link_hal_pins("p2uvw0.u", "pwmout0.u");
|
||||
link_hal_pins("p2uvw0.v", "pwmout0.v");
|
||||
link_hal_pins("p2uvw0.w", "pwmout0.w");
|
||||
link_hal_pins("res0.pos", "term0.wave0");
|
||||
link_hal_pins("enc0.pos", "term0.wave1");
|
||||
set_hal_pin("res0.enable", 1.0);
|
||||
set_hal_pin("pid0.enable", 1.0);
|
||||
set_hal_pin("pwmout0.enable", 0.9);
|
||||
set_hal_pin("pwmout0.volt", 130.0);
|
||||
set_hal_pin("pwmout0.pwm_max", 0.9);
|
||||
set_hal_pin("p2uvw0.volt", 130.0);
|
||||
set_hal_pin("p2uvw0.pwm_max", 0.9);
|
||||
set_hal_pin("pid0.volt", 130.0);
|
||||
set_hal_pin("pid0.pos_p", 80.0);
|
||||
set_hal_pin("pid0.pos_lp", 1.0);
|
||||
set_hal_pin("pid0.vel_lp", 0.6);
|
||||
set_hal_pin("pid0.vel_max", 200.0);
|
||||
set_hal_pin("pid0.acc_max", 3000.0);
|
||||
set_hal_pin("p2uvw0.poles", 1.0);
|
||||
|
||||
set_hal_pin("enc0.res", 4096.0);
|
||||
}
|
||||
|
||||
void DMA2_Stream2_IRQHandler(void){
|
||||
@@ -96,7 +136,7 @@ void ADC_IRQHandler(void) // 20khz
|
||||
void TIM5_IRQHandler(void){ //1KHz
|
||||
TIM_ClearITPendingBit(TIM5, TIM_IT_Update);
|
||||
float s = 0,c = 0;
|
||||
int freq = 1000;
|
||||
int freq = 5000;
|
||||
float period = 1.0 / freq;
|
||||
|
||||
for(int i = 0;i<10;i++){
|
||||
|
||||
@@ -28,14 +28,14 @@ HAL_PIN(enable) = 0.0;
|
||||
|
||||
HAL_PIN(pos_en) = 1.0;
|
||||
HAL_PIN(pos_p) = 100.0;
|
||||
HAL_PIN(pos_lp) = 1.0;
|
||||
HAL_PIN(pos_lp) = 0.8;
|
||||
|
||||
HAL_PIN(vel_en) = 1.0;
|
||||
HAL_PIN(vel_p) = 1.0;
|
||||
HAL_PIN(vel_i) = 40.0;
|
||||
HAL_PIN(vel_i) = 80.0;
|
||||
//HAL_PIN(vel_d) = 0.0;
|
||||
HAL_PIN(vel_ff) = 1.0;
|
||||
HAL_PIN(vel_lp) = 0.9;
|
||||
HAL_PIN(vel_lp) = 0.3;
|
||||
|
||||
HAL_PIN(acc_p) = 0.1;
|
||||
HAL_PIN(acc_ff) = 0.0;
|
||||
@@ -53,7 +53,7 @@ HAL_PIN(volt) = 130;
|
||||
|
||||
|
||||
HAL_PIN(vel_max) = 62.9;
|
||||
HAL_PIN(vel_e_max) = 2.5;
|
||||
HAL_PIN(vel_e_max) = 1.25;
|
||||
HAL_PIN(acc_max) = 1200.0;
|
||||
HAL_PIN(force_max) = 100.0;
|
||||
HAL_PIN(cur_max) = 6.0;
|
||||
|
||||
@@ -80,7 +80,7 @@ void setup_pid_timer(){
|
||||
/* pid int set up, TIM5*/
|
||||
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
|
||||
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
|
||||
TIM_TimeBaseStructure.TIM_Period = 8400;//1kHz
|
||||
TIM_TimeBaseStructure.TIM_Period = 1680;//5kHz
|
||||
TIM_TimeBaseStructure.TIM_Prescaler = 9;
|
||||
//TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;
|
||||
TIM_TimeBaseInit(TIM5, &TIM_TimeBaseStructure);
|
||||
|
||||
Reference in New Issue
Block a user