mirror of
https://github.com/rene-dev/stmbl.git
synced 2026-09-24 16:56:40 +08:00
pmsm fix, curpid pwm res, mitsu params
This commit is contained in:
@@ -29,6 +29,9 @@ HAL_PIN(kind) = 0.0;
|
||||
HAL_PIN(id_error) = 0.0;
|
||||
HAL_PIN(iq_error) = 0.0;
|
||||
|
||||
HAL_PIN(res) = 1200.0;
|
||||
HAL_PIN(volt_res) = 0.0;
|
||||
|
||||
MEM(float id_error_sum) = 0.0;
|
||||
MEM(float iq_error_sum) = 0.0;
|
||||
|
||||
@@ -37,6 +40,7 @@ RT(
|
||||
float rq = MAX(PIN(rq), 0.1);
|
||||
float ld = MAX(PIN(ld), 0.001);
|
||||
float lq = MAX(PIN(lq), 0.001);
|
||||
float volt_res = PIN(volt) / MAX(PIN(res), 1.0);
|
||||
float volt = MAX(PIN(volt) * PIN(max_pwm) * 1.15, 0.1);
|
||||
|
||||
float ff = PIN(ff);
|
||||
@@ -70,8 +74,12 @@ RT(
|
||||
float ud = CLAMP(ff * rd * idc + kpd * id_error + kpd * kid * id_error_sum + kind * indd, -volt / 2.0, volt / 2.0);
|
||||
float uq = CLAMP(ff * rq * iqc + kpq * iq_error + kpq * kiq * iq_error_sum + kind * indq, -volt / 2.0, volt / 2.0);
|
||||
|
||||
ud = ((int)(ud / volt_res)) * volt_res;
|
||||
uq = ((int)(uq / volt_res)) * volt_res;
|
||||
|
||||
PIN(ud) = ud;
|
||||
PIN(uq) = uq;
|
||||
PIN(volt_res) = volt_res;
|
||||
|
||||
PIN(id_error) = id_error;
|
||||
PIN(iq_error) = iq_error;
|
||||
|
||||
+4
-4
@@ -41,16 +41,16 @@ RT(
|
||||
float indd = vel_e * psi_q;
|
||||
float indq = vel_e * psi_d;
|
||||
|
||||
id += (ud - r * id - indd) / ld * period / 4.0;
|
||||
id += (ud - r * id + indd) / ld * period / 4.0;
|
||||
iq += (uq - r * iq - indq) / lq * period / 4.0;
|
||||
|
||||
id += (ud - r * id - indd) / ld * period / 4.0;
|
||||
id += (ud - r * id + indd) / ld * period / 4.0;
|
||||
iq += (uq - r * iq - indq) / lq * period / 4.0;
|
||||
|
||||
id += (ud - r * id - indd) / ld * period / 4.0;
|
||||
id += (ud - r * id + indd) / ld * period / 4.0;
|
||||
iq += (uq - r * iq - indq) / lq * period / 4.0;
|
||||
|
||||
id += (ud - r * id - indd) / ld * period / 4.0;
|
||||
id += (ud - r * id + indd) / ld * period / 4.0;
|
||||
iq += (uq - r * iq - indq) / lq * period / 4.0;
|
||||
|
||||
float t = 3.0 / 2.0 * p * (psi_m * iq + (ld - lq) * id * iq);
|
||||
|
||||
+2
-2
@@ -713,10 +713,10 @@ void set_mitsubishi(){ // TODO
|
||||
set_hal_pin("conf0.fb_rev", 0.0);
|
||||
set_hal_pin("conf0.out_rev", 0.0);
|
||||
set_hal_pin("conf0.fb_res", 16384.0);
|
||||
set_hal_pin("conf0.r", 1.5);
|
||||
set_hal_pin("conf0.r", 1.2); // 0.75, 1.2
|
||||
set_hal_pin("conf0.l", 0.0025);
|
||||
set_hal_pin("conf0.j", KGCM2(0.5));
|
||||
set_hal_pin("conf0.psi", 0.34);
|
||||
set_hal_pin("conf0.psi", 0.3); //0.3
|
||||
|
||||
set_hal_pin("conf0.pos_p", 50.0);
|
||||
set_hal_pin("conf0.acc_p", 0.1);
|
||||
|
||||
Reference in New Issue
Block a user