Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations MintJulep on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Torque limitation in Field Oriented Control of PMSM

Status
Not open for further replies.

aerossi

Electrical
Sep 24, 2014
7
Hi,

I'm controlling my PMSM at zero speed. While I'm trying to move its shaft I don't want my motor to generate its maximum torque to resist my movement but the limited one.

Everything went fine with classic control, but as soon as I tried to limit it's torque -- by limiting outputs of speed and Q-current PI controllers on some smaller values -- the motor started spinning (?!).

I really have no idea how to limit the torque generated by motor, exept by limiting outputs of PI controlers in FOC code.

Any suggestions?

(I'm working with Microchip's dsPIC 5015 in MPLAB X IDE.)

Thanks in advance!
 
Replies continue below

Recommended for you

Use a steady DC current across the fields. The holding torque will be related to the value of the current. You may have to switch between the controller and a DC source, similar to applying a mechanical brake on an induction motor.

Bill
--------------------
"Why not the best?"
Jimmy Carter
 
I'm not sure I've understood you well. How do you mean 'use a steady DC current across the fields'? Can it be done by changing my code or are there harware changes?

And could you please tell why can't it be done simply by limiting outputs of speed and/or Q-current PI controllers?
 
If your controller does not have a braking function you may need to add hardware and code to implement the hardware.
What size is this motor?

Bill
--------------------
"Why not the best?"
Jimmy Carter
 
Motor is 1.23 kW, 400 V. I didn't connect braking resistor on my board yet, but I figured it isn't neccesary because of small value of motor power. There is small amount of energy generated by motor while I'm spinning it with my hand to check torque.

I didn't implement any braking functions in my code since I do not have braking resistor.
 
Just came across my mind, can I give a reference for D-current, instead of directly trying to limit Q-current? It will decrease overral flux in motor and, consequently, decrease electromagnetic torque generated by motor.

Would it be safe for motor, because D component of stator current is usually set to zero in speed range from 0 to nominal speed?
 
There is no fundamental reason why you cannot limit the torque (Iq) output of your controller to any magnitude you want. We give our customers an "IqMax" parameter that they can set to whatever they want, and change it as they want under different conditions. We have never had any trouble with this.

However, one thing you must do is to make sure your integrator is not "winding up" when your torque output is saturated on the limit. This "anti-windup" protection is simple (just don't add to the integrator if saturated), but very important to maintain stability.

I think what others are suggesting is basically to operate the motor like a stepper motor instead of a servo motor when stopped. Under closed-loop servo control, your Iq command output to try to hold position is proportional (P) to your angle error and the time integral (I) of that error, and your Id command is usually 0.

Under "stepper" control, you just have a fixed Id command allotted to the phases based on commanded (not actual) angle. The restoring torque is proportional to the (sine of the) physical angle deviation from this commanded angle. (All this happens inside the motor, not in the code.) While this is commonly used in applications without an angle sensor, I do not recommend it if you have a sensor on the shaft. Figure out what is wrong with your code instead.

Curt Wilson
Delta Tau Data Systems
 
I already have anti-windup PI controller in my code. Gain (Kc) of anti-windup part of controller is equal to integral gain.

Do I have to limit exits of both speed and q-current controllers or just one of them?
 
Why are you trying to limit the torque? What do you want to happen when the load torque exceeds your command torque limit. How do you want to recover from this state?
 
The OP is trying to limit torque at zero speed.

Bill
--------------------
"Why not the best?"
Jimmy Carter
 
I want to simulate exercising machine with motor simulating weights by limiting it's torque. Changing torque limit would be equal to changing mass of weights on exercising machine.
 
Like waross said, limitng torque must be achieved at zero speed.

I've got 4096 PPR encoder on my surface mounted PMSM.
 
I think system is not completely decoupled at small - zero speed because various errors; most probably in current sampling/conversion (not correct effective values), and / or high error in angle position at zero speed. Maybe at/near zero speed is better an angle estimator (switch to sensorless).
 
Hi,

I am not sure about your final goal. Do you expect to make a smooth movement of shaft (example - 0 deg to 90 deg - Robot arm to show the movement-->exercise)?

If that is the intention, please consider using a servo motor (or use the motor with position feedback). Movement of shaft by a small degree without feedback will be difficult because of the non linear characteristics due static friction etc. Hence a closed loop control with a smooth ramp to the desired position control scheme will do a good job. Hope this helps.

Kind Regards
Srikanthan Krishnan
 
I'm still struggling to figure out exactly what you are trying to do, and what you expect to happen. If you limit the generated torque to a value less than the load torque, of course the motor will start moving
 
Curt it seems his algorithms are just plain wrong.

If his set up is a direct drive unit, like a bar attached to the motor output shaft and someone pushes against it, then with proper torque limit via Iq current limit it will not 'spin' as he says but just let the outside force move the bar. Here there will be no 'spinning' if torque limit exceeded unless his control algorithms are flat wrong.

If his set up is some gadget like weight machine where output moves a wire around a pulley as someone pushes against something, with proper torque limit via Iq current limit it will 'spin' until the motion is finished. This is as it should be of course.

I would suggest you consider simply buying a quality servo motor drive to run your motor instead of trying to invent what has been invented and proven well for years. It will be much cheaper than the time you put into trying to invent what has been invented and refined before. A good 2kw 400v drive will only cost about $ 800 and be available from stock from many sources.

 
Status
Not open for further replies.

Part and Inventory Search

Sponsor