10-12-2017 08:04 AM
Hi folks,
I am working on speed control of 3 Phase AC motor using PID and having troubles in the output response.
Details of my setup, CRIO-9035, NI 9263 module (0 to 10V output for the drive) and proximity sensor for speed estimation.
Controller gains are P (Kc) = 0.282 ,I (min) = 0.018, D (min) = 0.004; Iteration rate - 50ms.
I got the gains with PID Autotune vi using Z-N Method. Also observed that when derivative gain increased to a higher value, the desired output (MV) switches very rapidly like on/off pulse from 0 to 10 and I don't want this behavior to happen (with current D my output is stable as shown below).
I am not sure what is wrong. Please answer for all the above-mentioned queries
Thanks in advance
Solved! Go to Solution.
10-12-2017 10:53 AM - edited 10-12-2017 10:57 AM
1. Decrease the iteration time, 50ms is too slow. Strive for 10 ms, and ideally up to 1 ms.
2. It is desirable to perform speed measurement also with a smaller interval. By the way, it can be filtered, but with a time constant about 10 times shorter than the transient time
3. Increase Kp to overshoot, then decrease slightly.
4. The parameter KD does not make sense at all.
5. You only need the KI parameter when working under load.
10-12-2017 11:54 AM
As borjormy said, reduce interval time. From my experience the faster you can run a PID loop the better control you will have.
"How to reduce this oscillation?"
That looks more like your A2D resolution than oscillation. If that really is the case, that's about the best steady state control you can expect. PID loops need some error to actually work.
"Why overshoot when reducing speed?"
Difficult to answer without knowing what you are actually controlling. My guess is going up there is some resistance that will dampen any inertial movement in the system that is not there or less when going down.
10-12-2017 05:16 PM
Just my comments on this:
Hope this helps,
Andy
10-12-2017 05:20 PM
Looking at your graph I think Anti-windup is engaged, so not much you can do about the overshoot on the speed reduction other than de-tune. Of course that overshoot is arising since you are doing a big step reduction in speed. Do a smaller speed step down, and it should look more like the rising speed response.
Another (better) idea to get faster response would be to use feedforward in conjunction with your PID - and that will help getting rid of the overshoot in the big step down in speed.
10-12-2017 11:22 PM
Dear Andy and Steven,
Thank you so much for your suggestions. Let me apply the learnings and will revert the feedback.
Regarding A2D resolution NI-9263 has 16-bit output resolution, wondering will it not sufficient?
10-13-2017 01:00 AM - edited 10-13-2017 01:01 AM
Hi Silver,
Regarding A2D resolution NI-9263 has 16-bit output resolution, wondering will it not sufficient?
- The NI9263 is an AO module, so it does D2A.
- You surely use a VFD - most often they have lower resolution than your NI9263 (like just 10bit ADC for the 0-10V input signal)…
proximity sensor for speed estimation
- How do you read in your speed signal? How fast can you detect changes in speed here? Which resolution?
- How good is your "estimation"?
10-13-2017 05:56 AM
@Silver_Shaper wrote:
Regarding A2D resolution NI-9263 has 16-bit output resolution, wondering will it not sufficient?
That would give you 0.0015% resolution on the full range (1/2^16). I'd say that should be enough if you are using the full range.
10-13-2017 06:03 AM
I'd also check if the fluctuation isn't simply electrical noise. Might have nothing to do with the PID controller. I'd verify that before worrying about the PID.
I've seen these signals a lot, especially when frequency converters are used. Higher signals get more noise... Hope you're using twisted pairs and have separated high power motor control from those accurate data signals... (I'm no electrical engineer, but I've seen my share of problems).
10-13-2017 06:37 AM
Hi GerdW,
GerdW wrote:
proximity sensor for speed estimation
- How do you read in your speed signal? How fast can you detect changes in speed here? Which resolution?
- How good is your "estimation"?
I feel speed estimation is good. Pulses are captured in FPGA with 1 ms loop iteration rate using NI 9421 module (which has max update rate of 100us).
How fast can you detect changes in speed here?
I have tested up to 20ms (which is max speed of my motor).