Problem with control of IPMSM

Hey Community,
i am despiratly trying to build up a Control for my IPMSM. I want to use Spacevector Modulation, and so i need to calculate the reference voltages Vd and Vq. Therefor i need the reference currents Id and Iq, and there is my problem.
I found two examples of Mathworks, but neither if them worked for the whole speed range, especially for the field weakening area. I tried those 2:
openExample('mcb/FieldWeakeningControlWithMTPAExample')
ee_pmsm_field_weakening_control
The Problems are the calculated currents - outside the base speed i.e. the reference d current is calculated to -350A, but a Measurement of the real Motors d-current at the operation point is i.e. about -40A. I am not allowed to use the measured data for my control, so i have to completly built it on my own. I attached my Simulink model, i am confident that my SVM and Inverter are working. My goal is to implement a field weakening control with MTPA.
I would prefer to have a Torque control, so the load of the machine is a angular velocity. But a Velocity control is acceptable, too.
Can anyone help me to design the control or point out, where my faults are?
Regards

Answers (1)

Yoshi Minagawa
Yoshi Minagawa on 20 May 2021
Hello Meikel,
Thank you for the question.
I checked your model. I didn't understand whole of this model, but I found a part that I guess is not working well.
I changed part of this model to comfirm the performance of SVM logic. I cut feedback loop, connected Vq/Vd reference directly to SVM logic and monitored inverter output voltages.(see the figure below) Then I found that the inverter output voldtages and the voltage refference values(Vq,Vd) were not the same values.
The part displayed in red in the figure below is the part I added. (In addition, the semiconductor was simulated by switching to the ideal SW.)
From the above, I guessed this SVM logic is not working well in your model.
For example, to create a model that works correctly, I recommend checking each function individually as shown in the step below.
1. Checking voltage control logic with open loop (mean checking only SVM logic)
2. Checking cuurent contorl logic (using SVM logic, but without field weakening logic)
3. Checking only field weakening logic
4. Checking by integrating the field weakening logic into the model
I hope this will be useful to you.

6 Comments

Hello Yoshi,
thank you for the answer. The Point, that the output voltages dont match to the references is a big problem. I used the provided "SVPWM Generator" block of Simulink, Then i used an ideal inverter with the PMSM out of the Specialized Power Systems library, but the problem stays.
And at this point, i honesly dont know what to do.
Meikel Vollmers
Meikel Vollmers on 20 May 2021
Edited: Meikel Vollmers on 20 May 2021
You have to set the a-axis alignment to D not Q, and i think the measured data is the mean value, the reference is the peak to peak value, with the factor sqrt(2) the values are nearly equal.
I may found the main reason: If the dead time Inverter.td is set to 0, the measured voltages times sqrt(2) are not exact the references, but the values are much closer.
How can i implement the dead time without changing the output voltages?
Yoshi Minagawa
Yoshi Minagawa on 20 May 2021
Edited: Yoshi Minagawa on 20 May 2021
I understand that I misunderstood the recognition of the definitions of D-axis and Q-axis.
For the effect of the drop in output voltage due to dead time, dead time compensation is usually used to add additional on-time or off-time depending on the direction of the phase current. (There seems to be no good example in the MathWorks sample, please refer to technical books etc.)
In addition, I made a simple model for voltage generation using "SVPWM Generator" block. Please use it if you check the validity of the model.
In addition, I provide a model using the SVM algorithm that I made for my study a few years ago. It's not sophisticated, but I think there is some hints to realize SVM without using a pre-built model.
I forgot the title of the paper that I referred to at that time, but I think it is understandable to you because it is similar to the model you made.
Thanks, could you save your file to Version R2020b?
ok, I converted these models to R2020b.
I hope this helps.

Sign in to comment.

Products

Release

R2020b

Asked:

on 14 May 2021

Commented:

on 20 May 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!