How to tune multiple plant models using Control System Tuner App ?

4 views (last 30 days)
Hello everyone.
Here is my plant I want to tune with the Control System Tuner App:
The thing here is that my plant is nonlinear. So I have identified 2 different state space "Motor Model" at different operating points.
Lets call them :
-Motor Model 1, using : A_m1,B_m1,C_m1,D_m1
-Motor Model 2, using : A_m2,B_m2,C_m2,D_m2
What I want is to tune my PID for both models.
However, in the Control System Tuner App, when I go to parameter variations, I cannot vary the state-space matrix.
Here is the only answer I found on Matlab ressources, in the section "Tuning for Multiple System Configurations" :
It says we have to create an array of models for our plant.
How do we create an array of models identified?
How can we then implement this array of models in simulink, to tune it via the Control System Tuner app?
Thank you in advance!

Answers (1)

Melik BEN MARZOUK
Melik BEN MARZOUK on 19 Apr 2021
I've got the SOLUTION !!!!!!!
You have to choose the model to apply in you simulink based on a workspace variable "model_choice". And this variable is the parameter to varry in the Control System Tuner App.
Detailed Explanations:
-Add the "model_choice" variable to your workspace :
model_choice = 0
-In your loop you want to tune, just add a parameter called "model_choice", and replace the identified model with a subsystem as following:
-In the subsystem, add an "Index vector block", in order to be able to choose which model to use, depending on the model_choice variable.
Here, if model_choice=0, the motormodel1 will be applied. If model_choice=1, it's the motormodel2. You can add as many models as you want.
-When you have this structure in your Simulink, simply use the Control System Tuner app, and in parameters variation, choose the parameter "model_choice" :
Tadaaaaaam, tune both models as desired:
As simple as that !

Community Treasure Hunt

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

Start Hunting!