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

In summary: 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.
  • #1
tonylim456
9
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

  • v15n2p218.pdf
    453.6 KB · Views: 2,973
  • advanced simulation model for brusless dc motor drives.pdf
    1.7 MB · Views: 3,783
Physics news on Phys.org
  • #2
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.
 
  • #3
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?
 
  • #4
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:
  • #5
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.
 
  • #6
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..
 
  • #7
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: [itex]U=Ri(t)+L\frac{di(t)}{dt}+U_{emf}[/itex]

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 [itex]\sqrt{3}[/itex]?



The purpose of my modelling is to derive a control algorithm suitable for implementation i a microcontroller.
 
Last edited by a moderator:
  • #8
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.
 
  • #9
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.
 

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

What is a Brushless DC motor?

A Brushless DC motor is a type of electric motor that uses electronic commutation instead of mechanical brushes to control the flow of electricity through the motor. This results in a more efficient and reliable motor with no physical contact points that can wear out over time.

Why would someone want to simulate a Brushless DC motor drive?

Simulating a Brushless DC motor drive allows for testing and optimization of the motor's performance without the need for physical prototypes. It also allows for easier analysis and understanding of the motor's behavior under different conditions.

What is MATLAB/SIMULINK and how is it used for simulating Brushless DC motor drives?

MATLAB is a programming language often used for scientific and mathematical calculations, while SIMULINK is a tool within MATLAB used for simulating dynamic systems. Together, they allow for building and simulating models of complex systems, such as a Brushless DC motor drive.

What are some important parameters to consider when simulating a Brushless DC motor drive in MATLAB/SIMULINK?

Some important parameters to consider include the motor's electrical characteristics (such as resistance and inductance), the motor's mechanical characteristics (such as inertia and friction), and the control strategy used for the motor drive (such as pulse width modulation).

Are there any resources available for learning how to simulate a Brushless DC motor drive in MATLAB/SIMULINK?

Yes, there are many online tutorials and resources available for learning how to simulate a Brushless DC motor drive in MATLAB/SIMULINK. Some recommended resources include the official MathWorks documentation, online forums and communities, and video tutorials on platforms like YouTube.

Similar threads

Back
Top