MATLAB Answers

Power Electronics PMSM speed is not varying

1 view (last 30 days)
gapsna
gapsna on 7 Apr 2017
Answered: Joel Van Sickel on 17 Sep 2020
Dear all, I am working with Simscape Electronics and Power electronics to simulate a speed control for a BLDC motor with sinusoidal Back EMF. For this, I have a speed control which gets feedback from an encoder and which generates a reference current signal. This is fed to a current PI control where an sinusoidal reference signal is generated (amplitude is the value from the speed controller and the angle is the electrical angle calculated from the rotor mechanical angle theta_e = poles*mechangle/2). The measured current through the motor is substracted from this sine reference and the error is fed to the PI control. The output of this control then is converted into a duty cycle for a PWM. The PWM is then fed to the two mosfets at the half bridge (half bridge between V+ and GND). The output of the bridge passes then through a low-pass filter and the output of that goes to the motor model (at this point is where the current is measured via shunt resistor and amplification circuit). The three currents have a phase shift of 120° between them. The output of the motor is connected to an ideal torque sensor and an ideal rotational speed and angle sensor and to an Inertia block.
The problem is. No matter which current flows through the motor, the speed remains the same (initial speed given by the inertia block). It oscillates a RPMe-3 or less. And the Torque oscillates around zero. For example, if I have an initial speed of 33 RPM and the reference speed is 35 or 40, the speed control increments the peak current reference, the current control has an error of less than 15mA (peak current is 1.2A) and the speed oscillates between 32.999 and 33.005 RPM and the torque oscillates between -1 and 1 Nm (or similar value).
Does anyone has encountered a similar issue or could have any idea where mine is?
Thank you very much.
Cheers, Camilo

  0 Comments

Sign in to comment.

Answers (1)

Joel Van Sickel
Joel Van Sickel on 17 Sep 2020
Hello Gapsna,
oscillations are easy to encounter when either the model is not set up properly, but also if the closed loop control isn't working properly. In this case, with small torque oscillations like that, it sounds like the closed loop controller is not working as expected in the simulaiton. It is essentially having little effect on the motor, which is why it is just spinning at it's original speed. It is also possible the switches aren't actually being turned on by the gate pulses. If a boolean value is used to turn on the switches, and simscape is being used, the signal needs to be scaled up to the appropriate voltage to turn the switch on.
Regards,
Joel

  0 Comments

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by