Why have I this Result to my model with PMSM FOC with to a load in ramp ?

4 views (last 30 days)
I try to adapt the PMSM Field-Oriented Control to my application. I modelize the PMSM motor corresponding to my application and I use the block of PMSM FOC that we can have into the library (parameters adjust to my needs)
  • Simscape / Electrical / Control / PMSM Control
First question, I'm not sure but if I just want to make a current control to the motor, so I choose the "Torque" control and logically the Velocity controller is removed,that means the out loop control is opened?
Second question, is the PMSM FOC example adapted to a dynamic behavior?
I want to test the model (motor+PMSM controller) by connecting the output motor to a Torque loaded , a ramp (0 to 2Nm during 50 second) , not a constant. and I have this result (see the curves below, Torque motor and Speed motor).
I note that sometimes the speed motor is disconituous, suddenly stay constant a few moment and decrease or ring sometimes.
Someone can help me to find where I can make mistake, that can explain the result? any idea...Thanks you.

Answers (2)

Joel Van Sickel
Joel Van Sickel on 10 Jan 2023
To your first question, making it torque control does remove one control loop. so that you are closer to current loop control, but you still have the torque control loop determining the current setpoints before the current controller, so you would have to manually remove the torque control loop as well. This can be done by right clicking the block and disabling the link to the library block under the library menu option. Then you can customize the algorithm as much as you want.
I did a search on your title "PMSM Field-Oriented Control" and was not sure exactly which example you were referring to. It looks like the velocity loop is stable as you are increasing torque. The noise you see in the response could be due to a few factors. The most likely is either the switching frequency is a bit large or the simulation parameters aren't dialled in for a really clean simulation. I wouldn't guess it is a problem with the actual controller. None of those changes in speed are actually discontinuos so while the results might not be a clean as is possible in simulation, they aren't necessarily problematic enough to need fixing. If you share the model you used to generate that plot I can take a deeper look.
Joel Van Sickel
Joel Van Sickel on 12 Jan 2023
In general, it is best to attatch the model to a message in this forum, that way anyone looking at your question can look at the model. The PI values are likely fine, because when a PI controller isn't working, it's usually more obvious than the small jitter that you are seeing. I won't be able to provide more information until you share you model on this site.
For simulatin performance, ideall you should start with a variable step solver. Ode23t if you are using Simscape Electrical (Simscape core or SC) blue components, or odet23tb if you are using Specialized Technology (ST) components (the black ones). For the simscape componets you can also use DAESSC as the solver.
If you need a fixed step solver, you need to set it to at least 50 times smaller than your switching frequency, but more realistically 100 or 200 time smaller. This will effect your PWM resolution, so as Sabin mentioned below, you might be able to clean things up just by making your time step 2 to 10 times smaller than it currently is.

Sign in to comment.

Sabin on 10 Jan 2023
You are correct with the assumption that when selecting ‘Torque Control’ the outer loop is open loop. We don’t measure torque and it is unusual to measure torque in real applications.
To answer the second question, we allow dynamic behaviour, an example using a ramp of torque request is the IPMSM Torque-Based Load Control example.
As the speed is quite high, the speed spikes might be related to sample time for the PWM generator block. Might be worth trying to use an averaged converter to speed up the simulation. Alternatively, if switching devices are relevant for your project, you can decrease the PWM sample time.


Find more on Electrical Systems in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!