Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
HAL_COMP(pmsm_limits);
// motor values
HAL_PIN(psi) = 0.01;
HAL_PIN(r) = 1.0;
HAL_PIN(ld) = 0.001;
HAL_PIN(lq) = 0.001;
HAL_PIN(polecount) = 1.0;
// sys limit
HAL_PIN(ac_volt) = 0.0;
// next min max out -> pid, curpid
HAL_PIN(next_max_cur) = 0.0;
HAL_PIN(next_max_torque) = 0.0;
HAL_PIN(next_min_cur) = 0.0;
HAL_PIN(next_min_torque) = 0.0;
// min max out @ current vel
HAL_PIN(max_cur) = 0.0;
HAL_PIN(max_torque) = 0.0;
HAL_PIN(min_cur) = 0.0;
HAL_PIN(min_torque) = 0.0;
// abs max out
HAL_PIN(abs_max_cur) = 0.0;
HAL_PIN(abs_max_torque) = 0.0;
HAL_PIN(abs_max_vel) = 0.0;
// pmsm feedback
HAL_PIN(iq) = 0.0;
HAL_PIN(indq) = 0.0;
RT(
float p = (int)MAX(PIN(polecount), 1.0);
//float ld = MAX(PIN(ld), 0.0001);
float lq = MAX(PIN(lq), 0.0001);
float psi_m = MAX(PIN(psi), 0.01);
float r = MAX(PIN(r), 0.001);
float iq = PIN(iq);
float indq = PIN(indq);
float psid = PIN(psi);
float volt = PIN(ac_volt);
float abs_max_cur = volt / r;
float abs_max_vel = volt / psid / p;
float abs_max_torque = 3.0 / 2.0 * p * psi_m * abs_max_cur;
float next_max_cur = iq + (volt - r * iq - indq) / lq * period;
float next_min_cur = iq + (-volt - r * iq - indq) / lq * period;
float next_max_torque = 3.0 / 2.0 * p * (psi_m * next_max_cur);
float next_min_torque = 3.0 / 2.0 * p * (psi_m * next_min_cur);
float max_cur = (volt - indq) / r;
float min_cur = (-volt - indq) / r;
float max_torque = 3.0 / 2.0 * p * (psi_m * max_cur);
float min_torque = 3.0 / 2.0 * p * (psi_m * min_cur);
PIN(abs_max_cur) = abs_max_cur;
PIN(abs_max_vel) = abs_max_vel;
PIN(abs_max_torque) = abs_max_torque;
PIN(next_max_cur) = next_max_cur;
PIN(next_min_cur) = next_min_cur;
PIN(next_max_torque) = next_max_torque;
PIN(next_min_torque) = next_min_torque;
PIN(max_cur) = max_cur;
PIN(min_cur) = min_cur;
PIN(max_torque) = max_torque;
PIN(min_torque) = min_torque;
);
ENDCOMP;
6e29299f3This file is pinned to the selected release. Download the original to open it in your design tool.