Author Topic: Problem with PMSM motor model in Simulink  (Read 1662 times)

0 Members and 1 Guest are viewing this topic.

Offline Shenk123Topic starter

  • Newbie
  • Posts: 6
  • Country: de
Problem with PMSM motor model in Simulink
« on: April 25, 2020, 04:29:38 pm »
Good afternoon,

I have developed a Vector Control for a PMSM motor in Simulink using Simscape Electrical but my motor is not spinning. I have tried applying various speed values but nothing happens. I am applying a step signal from 0 to 300 but the motor speed still doesn't move. My error signal, however, tracks my input as it should. I do not know what has happened. Could someone look at my simulation and tell me what is going on ? My simulink can be downloaded from my OneDrive and the screenshots of my signals are attached.

Simulink File: https://1drv.ms/u/s!AlkE9jIQZ7btg33sjTBLiQkBkyKd?e=KlvTet

« Last Edit: April 26, 2020, 01:14:31 am by Shenk123 »
 

Offline Benta

  • Super Contributor
  • ***
  • Posts: 6420
  • Country: de
Re: Problem with PMSM motor model in Simulink
« Reply #1 on: April 25, 2020, 06:38:25 pm »
Do you mean PMSM or sensorless PMDC? The system schematic looks more like sensorless PMDC to me, due to the phase feedback from the motor (the text labels are practically unreadable).
Anyway, for both schemes you need a startup strategy to even get the motor to start turning. Is this implemented?
 
The following users thanked this post: Shenk123

Offline Shenk123Topic starter

  • Newbie
  • Posts: 6
  • Country: de
Re: Problem with PMSM motor model in Simulink
« Reply #2 on: April 25, 2020, 07:22:38 pm »
@Benta I am using PMSM. But I don't understand when you say startup strategy. I have based my model using the block diagrams available online and this fantastastic video (which is for trapezoidal control but I have modified it for FOC) from Mathworks called Motor Control, Part 3: BLDC Speed Control Using PWM:
« Last Edit: April 25, 2020, 07:50:19 pm by Shenk123 »
 

Offline Dave

  • Super Contributor
  • ***
  • Posts: 1356
  • Country: si
  • I like to measure things.
Re: Problem with PMSM motor model in Simulink
« Reply #3 on: April 25, 2020, 09:26:06 pm »
You're measuring the 3-phase voltages and after you pass them through Clarke and Park transforms, you treat them as current.  ???
<fellbuendel> it's arduino, you're not supposed to know anything about what you're doing
<fellbuendel> if you knew, you wouldn't be using it
 
The following users thanked this post: Shenk123

Offline Benta

  • Super Contributor
  • ***
  • Posts: 6420
  • Country: de
Re: Problem with PMSM motor model in Simulink
« Reply #4 on: April 25, 2020, 11:26:25 pm »
Nice girl with an interesting accent.

But frankly, I think you're a bit in over your head here.
Changing a BLDC motor drive from trapeziodal to sinewave does not make it a PMSM drive. The two drive strategies are two completely different things, although the motor itself looks/is the same.
The PMSM drive is an open-loop system, where the idea is to run the motor as any other synchronous motor. Synchronous motors need starting help to get them into synchronous operation.
Sensorless BLDC motors also need help when starting, eg, bringing the rotor to a known state before operation. When the BLDC motor has reached a certain speed, the back EMF will start controlling commutation. In other words, the rotor position will control your switching pattern (just like a mechanical commutator). This only works at higher rpms.

FOC is a completely different animal, where the "transformer-like" mutual inductance between stator and rotor in induction motors is used for modulation in the control loop.
 
The following users thanked this post: Shenk123

Offline Shenk123Topic starter

  • Newbie
  • Posts: 6
  • Country: de
Re: Problem with PMSM motor model in Simulink
« Reply #5 on: April 26, 2020, 01:11:28 am »
Thanks fo your replies @Dave and @Benta. You were right, I was feeding the voltages into my clarke transform rather than my currents. However, I still get the same graphs and it must due to no startup technique as Benta was saying above. Therefore, @Benta what would be the best method to implent open loop on the motor until it gets up to speed ? Do you know of any example for me to know how to implement both open loop and close loop controls in my Simulink model ?

P.S. I have attached above zoomed-in screenshots of my Simulink model so that labels and signal names can be properly read.
 

Offline Shenk123Topic starter

  • Newbie
  • Posts: 6
  • Country: de
Re: Problem with PMSM motor model in Simulink
« Reply #6 on: April 26, 2020, 01:32:23 am »
I know you are right when you say I need a starting method for the motor but why though ? At my sum point my step input is at 300 whereas the motor speed is at   0 rad/s so an error signal of 300 should be generated from the sum point into my inverse Park transform, SVPWM, inverter and, finally go into my motor, speeding it up, shouldn't it ? Also why in the video doesn't the girl apply a starting technique for the BLDC ? In her program, which I downloaded from her GitHub, she has it the same as in the  doesn't employ a starting technique.
« Last Edit: April 26, 2020, 01:42:36 am by Shenk123 »
 

Offline Benta

  • Super Contributor
  • ***
  • Posts: 6420
  • Country: de
Re: Problem with PMSM motor model in Simulink
« Reply #7 on: April 26, 2020, 10:25:42 am »
The usual way to start a sensorless BLDC motor is to bring the rotor to a known angle, this can be done by energizing one of the phases only.
From there on the rotor is accelerated slowly until the back-EMF can be measured and the self-commutation starts. At that point you can try to decide when you want to switch to synchronous mode (=open loop).

Note that this approach does not allow you to start the motor with a load, so it's most suitable for things like driving propellers or pumps.

 
The following users thanked this post: Shenk123

Offline Shenk123Topic starter

  • Newbie
  • Posts: 6
  • Country: de
Re: Problem with PMSM motor model in Simulink
« Reply #8 on: April 26, 2020, 12:16:39 pm »
Thanks again for your reply but how can I do that in MATLAB ? The voltage sources don't allow to be set up for a specific time and then be shut off after that. I would need a voltage surce that can bring my motor to the desired speed and then disconnect itself after a time. Also why would I need to measure back-emf if I am dealing with sensored FOC ? The ideal motion sensor is providing me with the angle and the speed of the rotor so it isn't sensorless FOC.
 

Offline Shenk123Topic starter

  • Newbie
  • Posts: 6
  • Country: de
Re: Problem with PMSM motor model in Simulink
« Reply #9 on: April 26, 2020, 12:19:06 pm »
Could perhaps ramping up the angle to a known value work as start-up technique in Simulink. (No need to power the phase ?)
 

Offline Benta

  • Super Contributor
  • ***
  • Posts: 6420
  • Country: de
Re: Problem with PMSM motor model in Simulink
« Reply #10 on: April 26, 2020, 05:46:48 pm »
I can't help you with Matlab or Simulink, not my area.

But another question: does your motion sensor output absolute rotor angle?

 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf