Forward and feedback controllers in SISOtool.

Hello.
I have two different controllers in a feedback loop which I'd like to keep seperated. My problem is that the architectures in SISOtool that support 2 controllers, I can't really "block algebra" my setup to look like those while still keeping the controllers seperated.
What I have is the following:
where C and F would be my controllers.
Any advise is really apprecieated.
Regards Mathias

 Accepted Answer

Hi Mathias,
Unfortunately there is no way to do this now with SISO Tool. The only option is to tune C first using configuration 1, and use F using configuration 2.
Of course you could still tune them without SISO Tool too. Arkadiy

8 Comments

Hi Arkadiy.
I thank you for taking the time to answer me. In the mean time i found out that using controller design from simulink allows me to use sisotool the way i wanted. I simply design above coled loop in simulink and chose both controllers as tunable.
Hope you can confirm this :)
You also write as the last point in your reply that other tools exist to tune multiple controllers? Could you give a reference to some? And would some of these alternatives be an advantage?
Regargs Mathias
Hi Mathias, You are correct. If you have access to Simulink, you can setup an arbitrary control architecture, and then tune it with what we now call Control System Designer (SISO Tool). For your configuration you will be able to edit both C and F (change magnitude, set poles and zeros), and see the impact of your interactive tuning on a step response of the system.
As for the second question: there is a tool called Control System Tuner (in Robust Control Toolbox) that lets you automatically tune arbitrary MIMO control architectures in Simulink. In your case you would specify C and F as blocks to tune, specify the system requirements (for example, reference tracking from r to y,as well as minimum stability margins), and let the tool tune both C and F automatically for you. When you create a block diagram in Simulink, you select what blocks to use for C and F (transfer function, state space, PID controller, etc), and the tool tunes block parameters while keeping the specified controller structure.
To learn more check out these videos 1 , 2 ,and read this blog post .
If this looks interesting, you can learn more by checking the doc.
In comparison to Control System Designer (SISO Tool), Control System Tuner can deal with arbitrary MIMO systems, and it tunes the gain automatically to meet specified requirements (as opposed to you basically doing loop shaping for a SISO system yourself in SISO Tool).
Feel free to ask further questions if interested.
Mathias
Mathias on 20 Jun 2014
Edited: Mathias on 20 Jun 2014
Hi Arkadiy
Once again thank you very much for taking your time to provide such a fullfilling reply, most helpful.
So if I gather your text correct, the "Control System Designer" run from SIMULINK can not do the "optimization based tuning" as when run via "sisotool" from MATLAB, only manual tuning? And is this the reason that when i try to press the "optimize compensators" that it gives a error message saying "Use two or more subscripts to select or delete all elements, as in the "sys(:)" command." when running via SIMULINK.
However it seems that this feature has been implemented via the Control System Tuner which can be run via SIMULINK?
Regards Mathias
By the way, i'm using R2013b.
Hi Mathias, No, you should be able to do optimization-based tuning if you setup a controller architecture in Simulink.
Optimization-based tuning requires Simulink Design Optimization. Do you have this tool?
I can further troubleshoot if you attach the model with saved session of Control System designer.
Hi again.
Sorry for the late answer, but somehow I'm now able to do the optimization-based tuning, must have done something wrong before. Any way to define steady state value as a criteria? Sometimes it finds a solution that fits the step characteristics, but in slowly diverges to another steady state.
Regaards Mathias
Mathias, you simply need to change the boundary "duration", just click on the final segment right point and drag to the right as far as you need.
To get more time on the time axis, right click on the pliot, and set the limits as needed in "properties".
Thanks again for your assistance. This was what i had already been doing, but thought there might be a way of entering it as a design rule. ;)
Thanks again for all your help Arkadiy. How is "help appreciation" shown best on this fora?
you are welcome. you show your appreciation by accepting the answer - that's it.

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!