How to tune a PIV controller using MATLAB?
10 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Faris
le 18 Mar 2015
Commenté : Arkadiy Turevskiy
le 24 Mar 2015
How should I go about tuning this controller in MATLAB? I am trying to get the system to have a settling time of < 1 second, P.O < 15% and zero steady state error.
MATLAB's SISO tool doesn't have an architecture for a PIV controller with feed forward. I tried using the SISO tool with the fourth control architecture (PIV without a feed forward). But automatic tuning "Could not find a solution that satisfies all constraints" even though my constraints were very "relaxed" (P.O < 50% and settling time < 20 seconds).
Also this method: Specify Control Architecture in Control System Tuner doesn't show you how to add a feed forward or a differentiator (required for C2).
0 commentaires
Réponse acceptée
Arkadiy Turevskiy
le 23 Mar 2015
Modifié(e) : Arkadiy Turevskiy
le 23 Mar 2015
Control System Tuner app works well for this custom controller architecture. The easiest way (at least for me) to create a block diagram specifying this architecture is in Simulink. So:
1. I created a Simulink model shown below:
Instead of using a pure derivative (never a good idea), I used s*N/(s+N) circuit shown in the region highlighted in blue. It basically differentiates the input signal at the lower frequencies, but at the higher frequencies (where you will have a lot of noise in your sensor reading), it adds a first order filter.
I set the gains for PI and Kv to 1,1,1 - default values. The system is unstable with these gains.
2. Now I started Control System Tuner, set PI and KV as blocks to tune, and added a step tracking requirement as shown below:
3. Now press "Tune", and the tool very quickly creates the design meeting requirements. Update block parameters to write the tuned values back to Simulink. Simulate and look at the results:
The model with tuned gains and Control System Tuner session are attached.
HTH. Arkadiy
2 commentaires
Arkadiy Turevskiy
le 24 Mar 2015
Because any measurement is always noisy. Think about the bode plot of pure derivative, s, - it amplifies frequency content at high frequencies. So you would be taking the noise from your measurement and amplifying it.
Plus de réponses (0)
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!