BLDC motor drive with PWM
Info
This question is closed. Reopen it to edit or answer.
Show older comments
Hi all,
I built a drive scheme for the given trapezoidal BLDC-motor-model in Simulink with PWM to control speed about the input duty cycle. I set all given parameters from the data sheet of my motor in the Simulink model. Important information is that the motor runs with 24V to the maximum speed of 32400rpm. In case the duty cycle is 1, PWM should give me "24V" to control the speed of the motor to 32400rpm. This case is no problem and works fine.
Now my problem is, that when I set the input duty cycle to any other value, for example to 0.5, I should get a motor speed of 0.5*32400rpm = 16200rpm. Unfortunately this does not work and I am not sure why. When I am using a controlled voltage source instead of PWM my model also works fine.
I attached my model so that it might be easier to understand, where my problem is. I am using R2021b version.
Hope that someone can help me!
Thanks in advance!
3 Comments
Mathieu NOE
on 24 Oct 2022
hello
I could not open your model because I have R2020b
but maybe there is just this point to clarify : the speed is not proportionnal to PWM !
- a PWM = 1 means the average voltage is equal to the DC supply = +24V , so motor spins in one direction at the max possible speed
- a PWM = 0 means the average voltage is equal to the reversed DC supply = -24V , so motor spins in the other direction at the max possible speed
- a PWM = 0.5 means the average voltage is 0 , so motor is at stop
Anna-Lena Dreixler
on 25 Oct 2022
Mathieu NOE
on 26 Oct 2022
well
thewording "without PWM" is a bit misleading and can let on'es think that the BLDC motor is driven directly from the DC bus (24 or 12V dc as you mention)
but there is no BLDC motor that runs without 6 MOSFETS drive so there is always a PWM signal to be fed to them , either fixed (if your duty cycle is fixed ) or variable (if it's part of a control loop)
so the fact that you have half the max RPM at 12V with a duty cycle = 1 vs 24V (with also a duty cycle = 1) is no surprise as you have halved the average voltage and current in the motor
your equation between RPM and dutycycle is RPM is proportionnal to Vdc and (dutycycle-0.5)
- max RPM forward direction if dutycycle = 1
- motor stopped if dutycycle = 0.5
- max RPM backward direction if dutycycle = 0
the coefficient depends of motor constants (RPM / volt) and load
Answers (0)
This question is closed.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
