I have met with a scalar control algorithm for a permanent magnet synchronous motor. I haven´t heard about it before so I decided to develop a dynamic model to further analyze this control algorithm. Unfortunatelly I haven´t got the Matlab with the SimPowerSystems library so I decided to create this model in Scilab.

I have been using below given equations for PMSM simulation:

\$\frac{\mathrm{d}i_d}{\mathrm{d}t} = \frac{1}{L_d}\cdot(u_d-R\cdot i_q+L_q\cdot\omega_e\cdot i_q), \\

\frac{\mathrm{d}i_q}{\mathrm{d}t} = \frac{1}{L_q}\cdot(u_q-R\cdot i_q-L_d\cdot\omega_e\cdot i_d – \omega_e\cdot\psi_m), \\

\frac{\mathrm{d}\omega_m}{\mathrm{d}t} = \frac{1}{J}\cdot(1.5\cdot p\cdot\psi_m\cdot i_q – T_l),\\

\omega_e = p\cdot\omega_m\$

where \$p\$ is number of pole pairs

The parameters of the model:

\$L_d = 1.365\cdot10^{-3}\,H \\

L_q = 1.365\cdot10^{-3}\,H \\

R = 0.416\,\Omega \\

\psi_m = 0.166\,Wb \\

p = 2 \\

J = 3.4\cdot10^{-4}\,kg\cdot m^2 \\

kF= \frac{3.2}{(2\cdot\pi\cdot\frac{1200}{60})^2}\,\frac{N\cdot m}{(rad\cdot s^{-1})^2}\$

Here is my overall simulation model

The motor is loaded by below given torque

\$T_l = kF\cdot\omega^2\$

which is removed in step wise manner at \$t=0.4\,s\$

The **Inverse Park Transform block**

The **Inverse Clarke Transform block**

Ther results are following

Reference and actual mechanical speed

I have doubts about correctness of my model due to the fact that the actual motor speed differs from the reference speed. I expected that they will equal because of the modeled machine is a synchronous motor. Does anybody know where I did a mistake? Thanks in advance for any suggestions.

## Best Answer