How to simulate a Brushless dc motor drive in MATLAB/SIMULINK? thanks.

Click For Summary

Discussion Overview

The discussion revolves around simulating a Brushless DC (BLDC) motor drive in MATLAB/SIMULINK. Participants are seeking assistance with specific aspects of the simulation, including the voltage source inverter and hysteresis current control, as well as troubleshooting simulation errors. The scope includes theoretical modeling, practical implementation, and control strategies.

Discussion Character

  • Exploratory
  • Technical explanation
  • Debate/contested
  • Homework-related
  • Mathematical reasoning

Main Points Raised

  • One participant expresses difficulty in simulating the voltage source inverter and hysteresis current block for a BLDC motor system, indicating a lack of MATLAB skills.
  • Another participant suggests that for many controller applications, a BLDC motor can be modeled as a brushed DC motor, questioning the need for a more detailed simulation.
  • A participant notes that current hysteresis is a control scheme rather than a direct model of the BLDC motor, asking whether the original poster is implementing this controller or using PWM.
  • Concerns are raised about simulation errors related to consecutive zero crossings, with suggestions to simplify the model or use adaptive zero-crossing detection.
  • One participant discusses their project involving fuzzy logic versus PID control in an air conditioning system, seeking alternatives to BLDC motors for compressors.
  • Another participant mentions the challenge of modeling a linear BLDC motor and questions how to relate its characteristics to a three-phase DC motor controlled by a PWM inverter.
  • Clarifications are sought regarding the accuracy of modeling a BLDC motor as a brushed DC motor, emphasizing that the two types of motors behave differently under various conditions.

Areas of Agreement / Disagreement

Participants do not reach a consensus on the best approach to simulate the BLDC motor. There are multiple competing views on the adequacy of modeling it as a brushed DC motor versus a more detailed approach. The discussion remains unresolved regarding specific simulation techniques and error troubleshooting.

Contextual Notes

Participants express varying levels of familiarity with MATLAB and the complexities of motor simulation, indicating potential limitations in their understanding of the underlying principles and modeling techniques.

Who May Find This Useful

Individuals interested in motor control systems, MATLAB/SIMULINK simulation, and those working on projects involving BLDC motors or similar applications may find this discussion relevant.

tonylim456
Messages
9
Reaction score
0
I have uploaded the journals which related to the brushless dc motor. I encountered the problems as i don't know how to simulate the voltage source inverter of the Brushless dc motor system (the generation of inverter line to line voltages) and the hysteresis current block. i really need help.. thank you so much. I tried it for a month, still have get it.. i appreciate anyone who can help me. thanks
 

Attachments

Physics news on Phys.org
tonylim456 said:
I have uploaded the journals which related to the brushless dc motor. I encountered the problems as i don't know how to simulate the voltage source inverter of the Brushless dc motor system (the generation of inverter line to line voltages) and the hysteresis current block. i really need help.. thank you so much. I tried it for a month, still have get it.. i appreciate anyone who can help me. thanks

Hello.

I have run across a few masters thesis papers that show how to simulate BLDC motors. They were written within the last decade. One was from sweden . . wish I had the links.

I think the challenge depends on how accurately you want to model the motor. For most controller purposes, it can be modeled as a brushed DC motor. Is this sufficient, or are you attempting a lower level simulation?

If you wish to go in more depth, then I would offer the idea of using an M-code block in simulink to code the bridge voltages to the motor. There are switch blocks that you can send signals to tell them to switch the connections under certain conditions.

I don't know anything about hysteresis current blocks in BLDCs.
 
I just saw the 2nd attachment you provided. That is definitely an in depth model.

It looks like current hysteresis is a control scheme, not a model of the actual BLDC motor. Are you implementing this controller or the PWM method?
 
DragonPetter said:
I just saw the 2nd attachment you provided. That is definitely an in depth model.

It looks like current hysteresis is a control scheme, not a model of the actual BLDC motor. Are you implementing this controller or the PWM method?

Hello dragon,
Actually i just require a lower simulation which i can take the value of rpm and the torque from this motor simulation. and i come across one report which is doing the same brushless dc motor and i have uploaded "THE LINK of the file: http://www.mathworks.com/matlabcentral/fileexchange/5042-simulink-simulator-for-a-brushless-dc-motor ". the report is likely showing pretty much of everything as in theory and together with the MATLAB/SIMULINK simulation. however, when i try to run the simulation the following error come out. I have to admit my Matlab's skill is not up to the standard yet. Any good suggestion to find up what is the error? and how to fix it as i am using Matlab 7.9.0 (R2009b) thanks.
"At time 0.000515931912672372, simulation hits (1000) consecutive zero crossings. Consecutive zero crossings will slow down the simulation or cause the simulation to hang. To continue the simulation, you may 1) Try using Adaptive zero-crossing detection algorithm or 2) Disable the zero crossing of the blocks shown in the following table."

thanks for you kindly reply. appreciate it so much, thanks God
 
Last edited:
tonylim456 said:
Hello dragon,
Actually i just require a lower simulation which i can take the value of rpm and the torque from this motor simulation. and i come across one report which is doing the same brushless dc motor and i have uploaded in this reply. the report is likely showing pretty much of everything. however, when i try to run the simulation the following error come out. I have to admit my Matlab's skill is not up to the standard yet. Any good suggestion to find up what is the error? and how to fix it. thanks.
"At time 0.000515931912672372, simulation hits (1000) consecutive zero crossings. Consecutive zero crossings will slow down the simulation or cause the simulation to hang. To continue the simulation, you may 1) Try using Adaptive zero-crossing detection algorithm or 2) Disable the zero crossing of the blocks shown in the following table."

thanks for you kindly reply. appreciate it so much, thanks God

Sorry, I don't know anything about that error. Seems like you should start in smaller and simpler steps til you have a better understanding of the motor simulation. Why are you using their model other than that its for the same motor? Their model includes the control scheme as well.
 
DragonPetter said:
Sorry, I don't know anything about that error. Seems like you should start in smaller and simpler steps til you have a better understanding of the motor simulation. Why are you using their model other than that its for the same motor? Their model includes the control scheme as well.

actually i am doing a project which is fuzzy logic vs PID conventional controller of an room air conditioning system which respect to energy perspective. I am using brushless dc motor to represent compressor of the air conditioning system as 80% of the energy consumption is based on the motor(compressor). thus, i just have to get a simple brushless dc motor where i can get the torque and speed(rpm) and then i will be able to calculate the energy use of the motor. any suggestion of the motor i can use for compressor of air conditioning system other than brushless dc motor? as i search through the journal and articles, most of the compressors of air conditioning system are brushless dc motor. thanks..
 
DragonPetter said:
Hello.

I have run across a few masters thesis papers that show how to simulate BLDC motors. They were written within the last decade. One was from sweden . . wish I had the links.

I think the challenge depends on how accurately you want to model the motor. For most controller purposes, it can be modeled as a brushed DC motor. Is this sufficient, or are you attempting a lower level simulation?

If you wish to go in more depth, then I would offer the idea of using an M-code block in simulink to code the bridge voltages to the motor. There are switch blocks that you can send signals to tell them to switch the connections under certain conditions.

I don't know anything about hysteresis current blocks in BLDCs.

First: I think the swedish report you're talking about is this:
http://webfiles.portal.chalmers.se/et/MSc/BaldurssonStefanMSc.pdf

Secondly:
Can you explain what you mean by
"I think the challenge depends on how accurately you want to model the motor. For most controller purposes, it can be modeled as a brushed DC motor. Is this sufficient, or are you attempting a lower level simulation?"

I'm trying to implement a linear BLDC motor of this type: http://www.faulhaber.com/uploadpk/EN_LM1247-02_MIN.pdf

However all relevant papers on the subject is on rotational and not linear (however, this conversion is not a problem I think.)

My problem is that I don't get the model to work. How would an implementation by doing it via the simpler DC-motor? As I know it, it is modeled as: U=Ri(t)+L\frac{di(t)}{dt}+U_{emf}

How can I relate this modell to a 3phase DC motor controlled by a PWM inverter? And how do I convert the "phase-phase" values in the datasheet for the motor? Divide it by \sqrt{3}?



The purpose of my modelling is to derive a control algorithm suitable for implementation i a microcontroller.
 
Last edited by a moderator:
brupet said:
Can you explain what you mean by
"I think the challenge depends on how accurately you want to model the motor. For most controller purposes, it can be modeled as a brushed DC motor. Is this sufficient, or are you attempting a lower level simulation?"

Simply that the BLDC is not really a brushed DC motor, and so modeling it as a brushed motor is not 100% accurate or true to the actual way a BLDC works, especially ones that are not designed or manufactured ideally. A brushed motor model won't behave like a BLDC in all conditions, and you won't be able to look at all of the details, like the current in each winding or the trapezoidal EMF with a generic brushed model.

The thing is that a BLDC can be modeled very much the same as a brushed motor, and it works for a lot of conditions. If I never had made a BLDC simulation model, I would start with a brushed and then work up from there because a lot of the models they talk about in the literature are pretty complicated and confusing. I had started my own attempt to have a more complex and accurate model, but I didn't have time and put it aside.
 
here's a related application note from TI

http://www.ti.com/litv/pdf/slua076


maybe you'll find more in their extensive library..
http://www.unitrode.com/products/apps_prt.htm
is just one shelf.
 

Similar threads

Replies
21
Views
3K
  • · Replies 2 ·
Replies
2
Views
1K
  • · Replies 2 ·
Replies
2
Views
3K
Replies
12
Views
3K
  • · Replies 15 ·
Replies
15
Views
2K
Replies
34
Views
5K
Replies
6
Views
9K
  • · Replies 3 ·
Replies
3
Views
3K
Replies
3
Views
2K
  • · Replies 1 ·
Replies
1
Views
4K