AC Drive China Forum
Forum » General Discussion » Sensorless Control of PMSM using dual shunt
Topics: Sensorless Control of PMSM using dual shunt on General Discussion
#1
Start by
Omair Aziz Suria
09-22-2013 11:32 AM

Sensorless Control of PMSM using dual shunt

I am working on vector control of PMSM using 2-shunts to measure the currents and determine the position of rotor. Does anyone has experience on how to tune the PI parameters for Flux, Torque and Speed?

I used hit n trial method to make the motor run. It runs in open loop and transitions to closed loop without any problems. I can also control the speed in closed loop. But I am not sure if the algorithm is perfectly tuned for my motor.

How do I determine if I need to change any of the PI values?

What variables would show what behaviour for a perfectly tuned system?
09-22-2013 01:35 PM
Top #2
David Etemad
09-22-2013 01:35 PM
You need recording software to measure actual speed, setpoint speed, flux current and torque current. From this mapping you can see how adjustments influence the system.
09-22-2013 04:06 PM
Top #3
Omair Aziz Suria
09-22-2013 04:06 PM
I am using microchip platform and they provide Real-Time Data Monitoring (RTDM) plug-in, through which I am able to plot the graphs for different quantities. The tool allows up to 4 graph plots and 10 control tabs through which I can change the PI-parameters, speed reference etc in real-time.

What I want to know is how should the graph plots for different quantities look like for a perfectly tuned system?

And one more issue I wanted clarification on. From my understanding, in open loop, the PI controller for speed is not active but PI controllers for flux and torque are. But what I noticed in the sample code by Microchip was that, they set the reference for flux controller to be zero and reference for torque controller was set according to user defined initial torque. Why would the flux controller reference be set to zero?
09-22-2013 06:41 PM
Top #4
David Etemad
09-22-2013 06:41 PM
For PMSM there are magnets in the rotor so the flux is always constant so can be set to zero. An induction motor induces the flux based on rotor speed so it must be accounted for.
09-22-2013 09:36 PM
Top #5
Alan Bueller
09-22-2013 09:36 PM
Omair, KB Electronics has developed a Sensorless VFD for PMSM. Our controller can be seen at their website. Please let me know if this is of interest to you.
09-22-2013 11:58 PM
Top #6
Omair Aziz Suria
09-22-2013 11:58 PM
Thanks David. That make things much clearer.

Thanks Alan. I looked at the KBE's sensorless VFD solutions. Target of this project is not just limited to the motor control. It also includes other features like smart control and communication with other boards. This requires in-house hardware and software design and modifications.

But I might be interested in Custom Motor Drives, with the option for us to make changes to the hardware design and also the firmware.

Which MCU platform are you using for your VFDs?
09-23-2013 02:28 AM
Top #7
Dennis GE
09-23-2013 02:28 AM
From my experience, the current PI gain is the most inmportant one. So you need to carefully verify thant the gain. You need to measure it not to overshoot or too long time to reach the reference value. Maybe the DAC is necessary for this measurement.
09-23-2013 04:41 AM
Top #8
William Perdikakis
09-23-2013 04:41 AM
Hello,

You are basically asking how to tune a PI loop. Unfortunately, there is no plug-and-chug formula for this; you have to consider many application-level variables such as both physical (rotor inertia) and electrical (motor parameters) properties of the motor and current loop frequency.

A well-tuned system will converge rapidly and handle sharp changes in load.

Now, unless you are doing something I am not familiar with, you really should only have a PID on the current loop and the speed loop. Flux, and torque are functions of these values along with the motor parameters. Which, also brings up another question: are you using flux-weakening? If so, you may need to have special PI values for this mode.

Finally, have you simulated the system? Simulink has built-in functions for PID tuning that could at least give you a starting point.

Cheers.
09-23-2013 07:33 AM
Top #9
Omair Aziz Suria
09-23-2013 07:33 AM
I am using Microchip development platform. I am able to plot up to 4 graphs for different variables and also can tune PI parameters in real time. I have simulated the firmware on the reference hardware connected to the compressor motor.

I don't have much experience on Simulink, and I am not sure how to link the firmware/hardware with it.

I am using algorithm for vector control, which transforms the 3-phase current to 2-phase currents, Id and Iq. Then use separate PI controllers for each one. And there is a separate controller for the speed.

Presently I am not using flux-weakening.
09-23-2013 10:00 AM
Top #10
Dennis GE
09-23-2013 10:00 AM
Flux weakening is necessary when the motor runs higher than rated speed range. And the negtive Id will be used.
09-23-2013 12:33 PM
Top #11
Neil Tice
09-23-2013 12:33 PM
Hi Omair,

Here's a rough-and-ready way to tune your loops if you don't have a simulation to play with. Start by running open-loop only. So that the speed loop won't be confusing things while you're tuning the current regulators.

Start with a very small integrator gain (zero, if possible) and a small P. To keep things simple, use the same gains for both the q- and d- axis. Increase P in both until the regulators keep the current close to the commanded current. Note this "good" value. Continue increasing until you get current oscillations (that is, until the current goes unstable). Cut the P gain by 1/2, but not to less than the initial "good" value you noted.

Now increase the integrator gains (keeping the q- and d- axis always equal) until the current starts to oscillate (the oscillation may be very slow at first, so watch carefully). When you get oscillation cut the integrator gain by 1/2.

And you're done.

Now run the drive in closed-loop and use the same procedure to tune the speed loop.

This method doesn't always work to find the optimal values, but it usually will get you started with a stable system.
Reply to Thread