Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

3 Phase Generator question

Status
Not open for further replies.
... it is for an electric vehicle, the generator function of the motor is a SECONDARY function. The main function is to drive the vehicle forward. If I can absorb SOME of that energy back as regenerative braking, that will be a bonus.The purpose of this thread is just to discuss that option, because from my research, it doesn't seem like anyone has exploited this option with this type of motor yet. maybe for good reason, but I'd like to examine the option anyways.
I'm coming to this thread late. I tried to scan through all the posts quickly, but I'm sure I missed a lot of points. I can just mention a few things which may or may not help.

First, I believe that a few car manufacturers have looked at this, but I don't know the full extent or what the final conclusion was about practicality. My company was involved with Ford doing this regenerative energy recovery with an induction motor. A few papers were published, but I don't think the idea took off. This happened before I worked here.

I was involve in some work to apply some of these ideas (using the same in-house experimental system) and extend them for water current power generation using an induction generator. First, you can of course run an induction motor in reverse as a generator. You either need to start the fields with currents, magnets or residual magnetism, as mentioned by others, but once the process is started, the induction in self sustaining. The other thing is that control can be done with vector control through a 3-phase inverter. The inverter can be used to drive the induction motor, or it works in reverse as a rectifier when power is being generated. The PWM control of the inverter switches allows the vector control (which is an advanced frequency control) to precisely control the generation. We used the well-known dq-frame control techniques with an encoder for position measurement, but there are other ways to get the control going.
 
Last edited:
Thanks for the reply Steve. Glad to have you in on the discussion. I plan to use an encoder and make it a closed loop control method. I will play around with different control code to figure out what works best, but right now I'm planning to have the throttle control a combination of voltage increase and slip percentage increase. The further you press the throttle, the more torque is generated because of greater slip and voltage, and therefore the motor accelerates quicker. The rate of increase in slip and voltage will have to be worked out... increase in slip % will need to be limitted, as once you reach a certain slip, you just start increasing current without an increase in torque.
 
Also late to this thread, but it's very interesting so I thought I'd add my novice opinions to the pot.
I assume that the topology you have in mind will consist of a boost converter stepping up your battery voltage to a DC rail of a few hundred V, to be chopped up at a few kHz by a 3-phase PWM inverter. As in #61 above, the inverter will act as a rectifer when the motor is driven (ie, is generating) and dump charge back into your DC rail. The challenge then is to decide how this charge is to be handled - either:
1) by dumping to a load resistor
2) by making your boost converter a reversable buck-boost affair
3) by adding a dedicated buck converter to feed the batteries

I think that (3) would be your best bet, at least in the first instance, as it allows you to develop sections of the system in a modular way. Since you will only ever be charging OR discharging your batteries, only the buck OR boost converters need be active at a time. The first control problem, then, is just to regulate the DC bus to its working voltage by activating the appropriate converter at an appropriate current.

Your boost (driving) converter then also needs to be constrained by the maximum current it can draw from the batteries, min. battery voltage, etc. More relevently (to this thread) the buck (regen braking) converter also needs to be contrained by the charging characteristics of the battery and throttle back to prevent overcharging. In the situation where the charge controller says the battery can't take any more, but your DC bus is still too high, then you'll need to dump to a resistor and/or apply mechanical braking (which you'll need anyway). When you're charging off line, the recified line voltage can feed the DC bus directly and the same circuits and algorithms can be used as for regen-braking charge.
Doing the control with a micro seems like the right idea, as it'll be quite easy to tailor complex battery carateristics to suit the chemistry you choose.

The VFD/inverter itself should then be a (third) sepperate circuit and control problem that only needs to wory about a constant-voltage DC side and a 3-ph AC side. I don't know enough about motor drives to comment on the last 2 posts about the use of encoders etc; I presume its about selecting an appropriate combination of V and freq. for best efficiency? I'd be interested if you could elaborate.

We've also established early on that you won't be able to recover much power a low revs, so possibly worth considdering a gearbox (for coarse RMP control) from the outset. I don't suppose it's possible to come up with some elaborate electrical or mechanical linkage that would allow you to effectively switch the number of poles (and therefore the sync. speed) would it?

See end of chapter 8 of Mohan, Undeland, Robbins "Power Electronics" for some relevent throry.

As an asside, I've been dissapointed by some of the bad vibes knocking about in this thread - please let's keep the discussion techanical, constructive and friendly.

</epic post>
 
tomizett.. Thanks for your positive input to the thread. Much appreciated. I'm glad someone else is upset by the bad vibes that are being tossed about. I got the feeling that instead of being supportive of my project, some of the people here just wanted to tell me why it wouldn't work and that I'm wasting my time.

That's why I abandoned further discussions about it on this forum and moved to one that has people on the same page as me. Check out this awesome thread where people are already doing exactly what I've been talking about doing!

https://www.diyelectriccar.com/forums/showthread.php/another-homebrew-ac-controller-45909.html

As for going into more detail about how I plan on controlling the voltage and frequency in relation to the throttle... I'd love to explain my thoughts.. Because I've been going over it in my head quite a bit.. trying to imagine the most efficient way possible.. Here goes!

Okay.. So basically, the encoder is a simple device attached to the motor that measures the actual rotor speed in rpm and tells it to the microcontroller. When the throttle is pressed, I plan to have it control the torque. So, if the throttle is pressed 10% of the way, then the motor will get 10% of the possible torque for the speed that it is going. If the throttle is pushed down completely to 100%, then the motor will get full torque.. 100% of the possible torque for the speed that the rotor is moving.

The challenge is to deliver that level of torque in the most efficient way. For example.. If the throttle is pressed to 50% when the rotor is spinning 600 rpm, then the microcontroller must decide how much to increase the voltage, and how much to increase the slip % in order to create 50% of the possible torque at that speed, and to do it in the most efficient way.

I've decided that the best way to do this is to build a data table for the motor that the program can reference. I will build a simple prony brake setup that will allow me to measure the torque of the motor at any given speed, as well as the power being consumed. I will program a testing controller so that I can manually set the stator field hz, the rotor rpm, and the voltage of the drive while the motor is hooked up to the prony brake. I will then record the torque and the power usage at certain intervals... Every 50 RPM of the rotor for example. While keeping the rotor speed and voltage constant, I will increase the slip% of the stator field by set intervals, and record the torque and power usage.

1% slip at 50rpm and 50 volts = ____ torque and uses _____ power
2% slip at 50rpm and 50 volts = ____ torque and uses _____ power
3% slip at 50rpm and 50 volts = ____ torque and uses _____ power
etc.

Once I have that data, I will repeat the process, except this time I will increase the voltage, and keep the slip% constant.

1% slip at 50rpm and 10 volts = ____ torque and uses _____ power
1% slip at 50rpm and 20 volts = ____ torque and uses _____ power
1% slip at 50rpm and 30 volts = ____ torque and uses _____ power

I'll do this for the entire range of the motor (0 rpm - 1800 rpm for example). By graphing the data, it will become obvious what the most efficient voltage / hz to use at a given speed is in order to produce a desired amount of torque. In order for the program to use this data, it will have to extrapolate from the information in the data table. For example, if the rotor speed is measured at 75 RPM and the data table only has data at 50 rpm and 100 rpm, the program will calculate the average between the two and apply accordingly.

I know this explanation is probably very confusing.... and I hope I did a good enough job of explaining it that you kind of see what I'm getting at. If you can't make sense of it, ask me some questions and I'll try to answer them for you.
 
I'm sure there's a theoretical approach you could take to get the same answers, but taking real-life measurements seems eminently practical and should give you real confidence in your results. It also means you're sure you've got the optimum solution for your particular motor.

I'll take a look at that other forum.
 
You see, I wish a theoretical approach was possible. I wish the torque speed curve of this type of motor was linear, or something similar that could be mathematically modeled and predicted based on the properties of the motor.. unfortunately it's not. If it is possible to do that, it's beyond my skill set, and I'm man enough to be able to admit it. ;)

Here's an example of the theoretical speed torque curve:
speedtorque-png.86072

This graph only demonstrates the motors operation at the rated frequency of the motor, which is usually 60hz. It doesn't show what happens as the frequency changes. Basically, as the frequency drops, everything on the graph moves to the left. I'm not sure if the shape of the curve stays exactly the same as it does this move, but I'll find that out when I do my measurements. If it does end up staying the exact same shape at all frequencies, then making a mathematical model of the curve becomes a lot easier. I'll cross that bridge when I get to it. Happy researching guys.
 

Attachments

  • speedtorque.png
    speedtorque.png
    18.7 KB · Views: 1,893
You see, I wish a theoretical approach was possible. I wish the torque speed curve of this type of motor was linear, or something similar that could be mathematically modeled and predicted based on the properties of the motor.. unfortunately it's not. If it is possible to do that, it's beyond my skill set, and I'm man enough to be able to admit it. ;)

It is possible to model just about any type of motor/generator, if you use numerical modeling. Most likely it's not beyond your ability too. However, it can be a significant amount of time and work involved to learn the basics, and then to get the implementation right and to a reasonable amount of accuracy. There are also various levels of complexity you might need to deal with depending on the details of the motor/generator and on the accuracy you wish to achieve.

The main reason I know this is that for the past 7 years, it has been a major portion of my job to do motor/generator models in Simulink/Matlab. We typically use equivalent circuit approaches with state space analysis to develop nonlinear models that get to a very high level of accuracy. Sometimes magnetic saturation effects need to be taken into account, and sometimes not. It usually isn't necessary to resort to a finite element or electromagnetics approach, although that is sometimes needed to design the actual motor/generator itself. The saving grace is that a good motor/generator design has been optimized to the point that the circuit models become reasonably accurate. I recently even worked on a linear induction motor that was designed so well to minimize end effects, that the basic rotary motor models worked for that very well.

It's also possible to make linearized equivalent models for controls/stability analysis.

But, if I weren't getting paid to do it, it's not likely I would go down that path for fun/hobby work at my own expense. It really is a full time job. However, to do advanced controls work, you pretty much have to go down this path. The more complicated, dynamic and precise you want your control system to be, the more critical the modeling/theory/analysis becomes.
 
SteveB....

I recently installed matlib / simulink and have yet to delve into it and explore it's possible uses.. Maybe you can help me in this regard. Is it possible that the information I am trying to get by taking measurements and experimentation already available as a mathematical model in simulink/matlib? Can I use this program to get the information I need in order to program my controller in the way that I described? It would be awesome if you could shed some light on the way I can use this software to help me out in what I'm doing.. any help you can provide would be extremely useful, as it seems you have first hand knowledge of the most useful kind. Invaluable I'd say! Thanks in advance.
 
I can try to help, but keep in mind that I did point out that there is a significant time investment involved. You would need to go step by step, and also, you need to give me a brief overview of you familiarity with Simulink modeling. If you are very proficient with Simulink, it will be much easier. If not, you will need to work to come up to speed on modeling continuous systems and discrete times systems. Both are important because the motor/generator is a continuous system, while the control system is typically digitally implemented on a controller. Also, you should give an overview on your experience with math, calculus, system theory, control theory and state space system analysis. This information just helps me (and others that join in) to guide you efficiently and provide information in the best form.

I should also point out that there is another way to go, and that is to add the Simscape/SimPowerSystems capability to your Simulink system (although that is an expensive option to buy). If you do that, many of the motor models are provided. Personally, I don't like this approach because it runs slowly and sometimes has convergence problems and it's not always easy to understand how to set up their models. However, I did recently model a Switched Reluctance Motor with SimPowerSystems. It worked well and saved me lots of time because that type of motor is time consuming to develop a model for. However, I once tried to model a SEPIC converter in Simscape and the results were not spectacular. Convergence was a problem much of the time and the model ran slowly. I ended up making my own model in Simulink that was much faster and had no convergence issues.

Another option that I have not personally tried myself is to see if you can track down existing Simulink motor/generator models that might be available for free.
 
Thanks for the reply. I literally installed simlink / matlab about an hour ago and haven't even opened it once.. So that's my experience with it. My math / calculus / algebra skills are pretty good. I can do matrix problems easily, bedmas and trig is rock solid, and calculus is pretty good, and any gaps I have with that knowledge I can pick up quickly with a google search. My electrical motor / generator and circuitry education comes from a 2 year electrical engineering technician program I finished in college. Sometimes I hop on forums like this for a little help when needed, as some of the more advanced engineering of systems and circuit analysis is beyond what I learned in college. I did learn about equivalent motor / generator circuits, and how to calculate the flux, losses, hysteresis, eddy currents etc. but it has been a number of years since college, and I need some help recalling the information sometimes. The college program did cover a lot of motor / generator engineering theory, so reviewing what I learned and adding to that base of knowledge is much better than someone trying to figure it out that hasn't ever learned it in school before.

If there is anything else you'd like to ask, please do.. I'd give more in depth detail but I'm off to bed for the night and would like to discuss it further tomorrow if you'd be nice enough to do so.

To explain my goal in the most simple way, here it is:
I need to be able to calculate the efficiency and torque of the motor at all speeds with any voltage / slip% combination. If I was able to do this, then I could accurately calculate the most efficient voltage and slip to use in order to produce the desired torque. Right now, my options to reach this goal is to either create a data table that the program will reference, or to try and figure out a mathematical model to calculate these values instead. What you've said is making me want to take a bit more time and attempt to develop the mathematical model. It would be soooo much more useful, because I wouldn't have to record a new set of data for every motor I want to use. People like you are an invaluable help for me and I really do appreciate your time.
 
To explain my goal in the most simple way, here it is:
I need to be able to calculate the efficiency and torque of the motor at all speeds with any voltage / slip% combination.

Everything you said sounds good and we can talk more about it, as you say. One word of caution I'd like to make, in case it matters to you, is that efficiency can be a particularly difficult thing to model accurately for an induction machine. Typically I don't go to this extreme, but I know the basic ways to do it, which are in text books. I usually end up using experimental data to measure the overall efficiency fudge factor (i.e. the difference between what the model says and what the real motor does). Copper losses and friction are easy to model, but the magnetic losses can be challenging.
 
This book is a good reference to have. There are other books that are also good, but this is the one we keep going back to time and again. We have 3 copies at my work because 1 copy was not enough.

https://www.amazon.com/Analysis-Electric-Machinery-Drive-Systems/dp/111802429X/ref=dp_ob_title_bk

You can preview the book at Amazon to see if it is OK for you. I just noticed that this is the third edition, while we use the 2nd edition at work. I just purchased the kindle version of this 3rd edition right now. So, I just put my money where my mouth is. :) But, please read the reviews and scan the preview to make sure you are ok with the advanced level of the book.



Another good one is the following.

https://www.amazon.com/Dynamic-Simulations-Electric-Machinery-SIMULINK/dp/0137237855/ref=sr_1_1?s=books&ie=UTF8&qid=1399905824&sr=1-1&keywords=ong electric drives

I found this one good when I was first learning about modeling electric machines.
 
Last edited:
This is my goto book on the subject of motors generators and the control systems that drive them..

https://www.amazon.com/Electrical-M...8&qid=1400120025&sr=1-1&keywords=wildi+drives

I have a ton of electrical text books, and this book is the one that I continually find myself pulling out and referencing from time to time.

When I read about your 'fudge factor' comment.. it kinda put me back into the mode of thinking that recording my data table technique may actually be the easiest and pretty accurate way of doing what I wanna accomplish with this... I think I'm going to build a working model of the system using this approach, and then as I move forward from that, I will refine the code and move towards a more theoretically modelled system design approach.

Does that sound like a reasonable approach for me to use at this point in the game?? Basically, I know what I need to know, I have almost all the hardware to do it, so I might as well build the system, run the tests and get the data, then program it up using the experimental data that I've gathered. As long as my data points are close enought together, the extrapolated data will end up being pretty accurate estimates of the real values... right?
 
Does that sound like a reasonable approach for me to use at this point in the game??
Sure, sounds reasonable, especially if you are familiar with what you are trying to do and feel you have it covered.

As long as my data points are close enough together, the extrapolated data will end up being pretty accurate estimates of the real values... right?

Personally, I can't say for sure one way of the other without knowing a lot of details of the system and what you are trying to do exactly. Having points close enough together is one issue. Knowing parameters and variations of those parameters versus temperature is another. And, having all the degrees of freedom (or variables) of the system identified and covered is another. I expect that if you are using known typical techniques you will be able to get things working adequately. Perhaps completely optimized control will require better theoretical models/tools, but if you aren't trying to push the limits of what can be done, doing out all the theory, modeling and analysis may be overkill anyway.
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top