+2 votes
162 views
in Helper by Gordon Asante (19 points)

While working on controlling a three-phase squirrel cage induction machine in Typhoon HIL, I encountered an unusual issue.

Initially, I copied the induction machine block from one of the example models and started testing my MPC-based control algorithm. I forgot to update the motor parameters in the machine block to match those used in the MPC model. Despite this mismatch, the system worked to give outputs- speed was tracked and all that 

However, when I later updated the induction machine block with the correct motor parameters to match those used in the MPC control model (Rs, Ls, Lm, etc.), the control performance drastically degraded — torque dropped, and overall behavior became unstable.

This led me to realize that the control algorithm only works when there's a large mismatch between the motor parameters in the MPC and those in the machine block. I’m unsure whether this is due to a modeling assumption, numerical issue, or internal handling of the motor block.

I’d appreciate any insight into why this might be happening or if there’s something I’ve missed 

Below are the major equations used in the mpc algorithm which conforms with theory

sigma=(1.0-(Lm*Lm)/(Ls*Lr));
kr=(Lm/Lr);
ks=(Lm/Ls);
r_sigma=Rs+Rr*(kr*kr);
t_sigma=(sigma*Ls)/(r_sigma);

temp1 = t_sigma / (Ts + t_sigma);
temp2 = Ts / (Ts + t_sigma) * (1.0 / r_sigma);

Fr_real = (Lr / Lm) * (Fs_real + ik_real) * (Lm - (Lr * Ls / Lm));
Fr_imag = (Lr / Lm) * (Fs_imag + ik_imag) * (Lm - (Lr * Ls / Lm));

Fs_real = Fs_real + Ts * (v_real[x_opt] - Rs * ik_real);
Fs_imag = Fs_imag + Ts * (v_imag[x_opt] - Rs * ik_imag);

 Tp = (3.0 / 2.0) * P * (Fsp_real * Isp_imag - Fsp_imag * Isp_real);

 Fsp_mag = sqrt(Fsp_real * Fsp_real + Fsp_imag * Fsp_imag);
    
 Fsp_real = Fs_real + (Ts * v_o1_real) - Rs * Ts * Isp_real;
    Fsp_imag = Fs_imag + (Ts * v_o1_imag) - Rs * Ts * Isp_imag;


 

1 Answer

+2 votes
by Predrag Nuždić (129 points)
selected ago by Debora Santo
 
Best answer

Hi Gordon,

It would be helpful if you could send your code for the MPC as it would allow as to better solve this issue. (The whole model would be helpful too).

In the meantime you could try using a different discretization method for your models equations because, depending on what method you use, they could introduce some stability issues (E.g. Euler forward could make a stable system unstable). I would suggest using trapezoidal integration (If it's fast enough for you) as most of the characteristics transfer over. 

Sampling time (Ts) would also affect stability of your system in your case, so you could try adjusting it and see if it fixes your issue. 

Also, You could get more familiar with the three-phase squirrel cage induction machine you're using here (If you haven't done so already) : Three phase squirrel cage Induction Machine.

Best regards,

Predrag.

...