7

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 enter image description here

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 U/f block enter image description here

The PMSM Model block enter image description here

The Inverse Park Transform block enter image description here

The Inverse Clarke Transform block enter image description here

Ther results are following

Stator currents enter image description here

Motor torque enter image description here

Reference and actual mechanical speed enter image description here

Stator voltage in q axis enter image description here

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.

Steve
  • 1,061
  • 7
  • 22
  • Have you tried with the power invariant Clarke transform? – a concerned citizen Feb 12 '19 at 07:59
  • @a concerned citizen Thank you for your reaction. Do you mean changing the gains in the Inverse Clarke Transform block? – Steve Feb 12 '19 at 21:02
  • Yes, but now I realize the matrix is only for displaying the currents. Maybe there are similar scaling coefficients that need to be added when using the dq equations? – a concerned citizen Feb 13 '19 at 07:39
  • As far as I know the Park transformation only realizes rotation of coordinate system via multiplying by \$e^{j\phi}\$ and does not change module of the space vector. – Steve Feb 13 '19 at 10:42
  • Yes, but you don't only apply the Park transform to get to the dq-reference frame. That is, it's not a simple matter of multiplying with a sin/cos and adding/subtracting in a 3phase to a 2phase, the Clarke matrix, or, at least, the coefficients are also there. That \$e^{j\phi}\$ has meaning in an orthogonal system, not a 3phase, so you first apply 3->2 and then sin/cos, unless you complicate with doing it directly, but even then you have scaling coefficients. That's what I referred to when I mentioned the scaling coefficients. But I am also not sure, that's why I'm stuck with comments. – a concerned citizen Feb 13 '19 at 13:24
  • a concerned citizen, I am sorry but I don't understand your last comment. Please can you tell me in simpler way where do you think the problem could be? Thanks. – Steve Feb 14 '19 at 10:44
  • I meant the equations where you started from, since they're in the dq frame, I thought you arrived at them by first transforming from 3->2 phase, and that conversion has a missing scaling coefficient (\$\frac23\$ or \$\sqrt\frac23\$)? If not, then this is not the problem. – a concerned citizen Feb 14 '19 at 12:03
  • @Steve am I correct to assume your actual speed is (1/sqrt(2)) of the reference speed? If so, did you check your U/f block? Does the expression 40/sqrt(3)*sqrt(2) actually evaluate to what you expect? – xuva Mar 20 '19 at 19:32
  • @xuva thank you for your reaction. Yes you are correct. The actual speed is approximately \$\frac{1}{\sqrt{2}}\$ of reference speed. My intention was to have \$\frac{40}{\sqrt{3}} V\$ for stator frequency \$40 Hz\$. Because of usage of the amplitude invariant form of the Clarke transform I multiplied the U/f block output by \$\sqrt{2}\$. – Steve Mar 25 '19 at 18:56
  • @Steve Does your reference specifically say Ud = 0? This seem very unlikely to me in a V/f control of a machine because the V/f is agnostic of the rotating system. Do you get the same results if you apply the Park transform to the command to get Ud & Uq? Probe all the variables, the sudden collapse of the current indicate that either a part of your model is unstable or that the machine cannot reach the command due to the construction of the machine. – MathieuL Jan 20 '20 at 20:29

1 Answers1

0

The Inverse Clarke Transform block: x_c is -(x_a + x_b)

Manlio
  • 1