Automatic PID tuning in a two-mass spring damper system. How can I set the rotor movement to zero?

2 views (last 30 days)
I'm trying to set the rotor movement in the two-mass system to zero by using PID control (see attached PDF file). Therefore I use Simulink Control Design. But all attempts to find an adequate control design have failed.
The automatic tuning finds a solution with a high integrator input and no derivative and proportional gain (set to zero). These settings do not change the behaviour of the two-mass system at all, it behaves as if there was no PID control. Manual input of the gains often causes an extreme rising of the rotor movement, entering a value in the derivative gain causes an error.
I also used the SISO tool in order to find a more complex control design. But no adequate design could be found. The weight of the rotor is 1 ton, the stator weighs 7 tons.
When I set the stator weight to a very small value, a good pid design can be found. Changing the position of the actuator (directly connect it to the rotor) works, too. Trying to set the stator movement to zero is also possible with automatic PID tuning.
I must not change the mechanical structure of the system. Is it nevertheless possible to find a solution?

Accepted Answer

Arkadiy Turevskiy
Arkadiy Turevskiy on 19 Mar 2014
Edited: Arkadiy Turevskiy on 19 Mar 2014
Thanks for attaching the model.
The short answer is that this is actually a pretty challenging problem. The reason is that you are trying to design a stable controller that will reject a disturbance entering your system at 30 Hz (the two sine waves you have there). To reject this disturbance effectively, system bandwidth needs to be pretty high, higher than 30 Hz, so that controller can overcome this disturbance. However, it is hard to design such a high-bandwidth controller and keep the system stable, because the plant model has a resonant peak at ~13Hz and another resonant peak at ~38Hz.
Now, if you are interested, more details follow.I ran simulations with one sine wave at a time and the upper one has a much larger effect on the rotor position. So, for simplicity, let's just focus on the upper sine wave, which, again, enters the system at 30 Hz.
Configure linearization IO points in the model as shown here:
then use Linear Analysis tool and linearize the model to compute
1) plant transfer function (from PID block output to rotor position with loop broken at PID Controller output)
and
2) Transfer function from disturbance (upper sine wave) to rotor position.
You get this:
The left Bode plot is plant transfer function. You see the two resonant frequencies. The right bode plot is transfer function from disturbance to plant output. Again, observe two resonant frequencies. Also notice the strong effect of disturbance on the plant output at 30 Hz in comparison to controller effect on plant output at 30Hz.
PID controller is clearly not going to do a good job here. Here is a SISO Tool bode plot with controller just set equal to a gain of 4. (note that I added 10e8 gain to rotor position in Simulink model to work with smaller numbers when designing controllers).
This increases the bandwidth, but the open loop gain at 30Hz is still below 0 dB.
Even if you try to put a notch filter on the resonant peak,or even two notch filters to suppress both peaks, it is pretty much impossible to get stable response and high system gain at 30Hz. Here is the bode plot of open loop transfer function with two notch filters in the controller.
This seems to be one of those cases when no control system can overcome limitations imposed by the mechanical design.
HTH
Arkadiy
  1 Comment
oezge
oezge on 27 Mar 2014
Thank you very much for your detailed answer. I followed all steps and I see the problem. Now I entered low disturbances (1Hz, 0.1Hz), but I coulnd't find a good controller design. (Actually, the system should be working for 0.01 - 50Hz.)

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!