Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

PMSM control strategy 3

Status
Not open for further replies.

jawerbuch

Automotive
Feb 21, 2014
8
0
0
BE
Hi guys,

I have a question regarding the control of a PMSM via an inverter.
The idea is to control the motor's power according to the gaspedal-angle. So let's say it's a 85kW motor, pushing the gaspedal 50% would mean a power demand of 42.5 kW.
I've been looking at control strategies and I've bought the book "Permanent Magnet Synchronous and Brushless DC Motor Drives" by R. Krishnan. It discusses quite a variety of control strategies, like Vector Control (same as Field Oriented Control?) and Space Vector Modulation but I'm kind of lost on which one is the one I need.

I have also noticed that most practical examples are about controlling the speed of the motor, where I need to control the power of the motor. Can I instead control the speed of the motor, and calculate the necessary speed by using the motor's torque/rpm characteristic to determine what torque corresponds to a certain speed, multiplying those to give me the power? And what is the best control strategy to use in this case?

 
Replies continue below

Recommended for you

You may find the control easier if you switch to an induction motor. The difference between the actual speed and the commanded speed of an induction motor is the slip. This may be in the range of 40 to 60 RPM at full load. Slip is related to torque. If the commanded speed is the actual speed plus 50% of the slip, the motor will develop 50% torque. The motor may speed up or slow down depending on the load.
With a synchronous type motor you will be looking at a few degrees angular displacement, rather than 40 RPM.
Another approach may be to reduce the torque by reducing the effective voltage.
Possibly the easiest way would be to choose a controller with a torque limit function.

Bill
--------------------
"Why not the best?"
Jimmy Carter
 
@waross, the motor type will be a PMSM, that's a given.
My question is about two things:
- How do I control the power of the motor, and not the speed as in pretty much every document I've found, even the Matlab documentation found here:
- Can both Vector Control (FOC) ánd Space Vector Modulation be used to control the inverter?​
 
I don't understand your "control the power of the motor" idea. If there's no load on the motor, it will not deliver 42.5 kW or whatever. It makes no sense.
There's a reason that the control strategy usually is for constant rpm.

Benta.
 
when you say 'gaspedal' it makes me assume this is an EV application. If so, there is good reason folks do NOT use 'power' as a command input, nor speed, but torque or amps.

Think of how your car works; gas pedal tells engine how much torque to put out, irregardless of speed or power.

Recall also what power is in a motor: power output is 0 at 0rpm and even with max torque output increases linearly as speed increases; hence, it is not normally associated with a gas pedal type input function.

What type of application is this that you want to command power from 0 to 100% linearly with a gas pedal?

You also as asking about which buzz word to use for the motor control; use any one of the 3 you mentioned. At the end of the day they will all do the same thing.

 
It is indeed an EV-type application.
So you're saying it makes more sense to say that the angle of the gaspedal will determine the amount of torque that's needed?

So I can map 0%-100% of the gaspedal to 0-maximum torque of the motor? Is that how it's done?
And the required torque is an input of the vector controller, which generates the right pulses for the inverter? And what happens if we would use an inverter that takes the required torque as an input, would the vector controller be already implemented in the inverter itself?

BTW: I'm more familiar with electronics than with electric motors, thanks for your help so far :)
 
This doesn't make sense either. "Torque" is just another way of saying power (power is torque x speed).
The needed torque or power is determined by the load, not by the motor or its electronics.
Again, if the EV is running downhill, it makes absolutely no sense to tell the motor to deliver more torque than needed. This will be a completely unstable situation where the car will accelerate in an uncontrolled manner, theoretically towards infinity.

Benta.
 
Oh yes I see.
So it is the rpm of the motor that needs to be controlled between 0 and a certain maximum, but how is that maximum determined? Is it a specification of the motor?
 
Yes, it's a specification of the motor. You'll need to see what voltage you have available and select a motor accordingly to your speed and power needs.

Benta.
 
You need to google and study more on EV motor drives; you WILL find they are torque control amplifiers, not speed, not power.

if the EV is running downhill, it makes absolutely no sense to tell the motor to deliver more torque than needed. This will be a completely unstable situation where the car will accelerate in an uncontrolled manner, theoretically towards infinity.

Right! But WHERE IS THE VELOCITY LOOP?? Hint: between your ears.
When was the last time you drove your car, began to go down a hill, and DIDNT BACK OFF ON THE GAS PEDAL? SEE? It works.

A PMSM motor, like most servos, needs THREE control loops to run, and an EV is no different. The torque loop is your gas pedal input compared to actual motor output torque (amps in motor) and done by the EV motor drive. The velocity loop is your brain; it decides what speed it wants to go (the command), and watches your speedometer for the feedback. Then your brain ALSO does the POSITION loop - the command is your idea of WheRE you want to go, the feedback is your eyes seeing how close you are to your destination.

It really is that simple.

You CAN try to complicate it by making the EV drive a velocity loop drive BUT THAT SELDOM WILL WORK IN AN EV FOR GOOD REASON: control loop stability. There is a little rule of thumb that helps explain some limits of a velocity loop: it will be stable over about a 5:1 MAX inertia change. How heavy is your EV? Even if you cheat and put in a little planetary gearing, the relfected car inertia is WAY WAY (1,000's) higher than that little 85kw PMSM motor; hence you can TUNE the vel loop to be stable and control the speed - WHEN THE CAR IS SOLIDLY ATTACHED TO THE MOTOR. Unfortunately, in THIS world, that never happens. A load ALWAYs has some amount of compliance or backlash. So what inertia does your motor see when in the middle of the compliance or backlash? Hint: 0 inertia. Your loop tuned to 3,000 times higher inertia is instantly unstable. Your motor will go backwards and forwards in an uncontrolled oscillation - not very nice for a car! I could go on and on why a velocity loop, and very much so power loop, is NOT going to be used at the end of your day.

(It may not be obvious, but this is right up my alley as a servo engineer who happens to also drive a 100% electric car of which I have intimate knowledge of the controls)

 
Mike, I think we are splitting hairs here.
Of course there is a torque loop as well, this is where the design gets a bit more detailed.
That does not alter the fact that you cannot force a motor to output torque (for instance if there is no load). The load is the determining factor for _needed_ torque, which the motor then delivers.

Cheers,

Benta.
 
I'm a bit lost right now...

This is how I interpret things right now, based on this schematic:
My input is the gaspedal, which has to be translated into a desired speed of the motor (0-100%), which, by comparison to the actual speed of the motor, will result in a specific amount of torque that is required to achieve that speed. That number is then used as an input for the vector controller (among with other inputs), that will generate the appropriate pulses to achieve exactly that amount of torque.

Is this about right?
 
Wow thanks, it makes a lot more sense now.
Is there a way of knowing the actual motor torque, or isn't that necessary? I mean so you can subtract the actual torque from the desired torque and build a control loop around it.
 
Yes you can build a velocity loop around the torque loop (Generelly called the current loop). It's called Cruise Control.

Also, if you request negative torque you get braking and the braking energy is returned to the battery.
 
haha! I was leaving the cruise controller out until later in the discussion! But helps him see how it all comes together. Remember, the primary "cruise controller" is the driver.

Why do you want to subtract the actual torque from the commanded torque? That is what the drive you purchase does. Or are you saying you want to reinvent the wheel and build your own drive from component parts? There are a LOT of good drives out there that are dirt cheap - you cannot build one for the price you can buy one I think. Also, in an EV you have to contend with IP69 sealing for the drive - that has already been done too for you in the purchased drive. For instance the PM100 is ready to run your motor:


 
Status
Not open for further replies.
Back
Top