How to design controller for coupled 2 input 2 output system?
71 views (last 30 days)
Show older comments
Eric
on 3 Nov 2025 at 3:04
Commented: Eric
about 21 hours ago
Hi everyone,
I am confused on this topic of designing an integral controller (c1 and c2 here are integral controller) for a multiple input multiple outout system which i have (Attached is the control structure of whole system). The structures which are standard on the control system toolbox are just SISO systems and if i force provide a matrix with 4 transfer functions (which represent my direct plant and coupled transfer function as shown in structure) matlab says: The model for "G" must be single input, single output. I thought of designing the controllers independently like treating each output as a seperate entity but then since they are coupled ignoring another part or another controller will not be correct we have to treat entire system as one. I have been stuck on this problem for too long i tried searching for other resources regarding this but there is no any clear explanation of how they designed a controller for a MIMO coupled system please if anybody can guide me on this that would be an immense help. and also out of curiosity how do you represent these kind of systems in state space ?

Thank you.
10 Comments
Paul
on 4 Nov 2025 at 1:08
What is the basis for all of the restrictive conditions cited in this comment? I will confess I haven't thought about it too much, but at best it would seem that those might be sufficient conditions, not necessary ("must be") conditions.
I'm not following the last condition at all. The external input has no influence on the stability of the closed loop system.
Sam Chak
on 4 Nov 2025 at 6:02
Hi @Paul
Thanks for pointing that out. I built the Simulink model quickly from the MIMO config @Eric posted earlier, before he shared the transfer functions. The conditions I reported come from empirical simulation results, not from a formal stability analysis. I’ve attached the Simulink model for anyone who wants to reproduce or inspect the setup.
Accepted Answer
Andrew Ouellette
on 5 Nov 2025 at 17:07
From your comments on your post, it looks like you would like to tune 2 I controllers for your MIMO system. As you've discovered, Control System Designer only supports SISO systems. For MIMO systems like yours, you should use Control System Tuner instead (Especially since you already have a fixed structure for your controller!).
First, let's define your system:
%% Laplace variable
s = tf('s');
%% 2x2 transfer function matrix
G11 = 5/(s^2 + 2*s + 25) * exp(-0.05*s);
G12 = 3/(s^2 + 4*s + 16) * exp(-0.10*s);
G21 = 10/(s^2 + 6*s + 100) * exp(-0.03*s);
G22 = 4/(s^2 + 1.5*s + 36) * exp(-0.08*s);
%% TITO system
G = [G11 G12;
G21 G22];
You can then import this system into Simulink using the LTI System block, which has built in support for MIMO transfer functions and delays. Here's an example diagram:

You can then launch Control System Tuner from the Apps tab in Simulink. From there, select your two I controllers as your tunable blocks, and design one or more tuning goals to achieve the performance you desire.
You can read more about Control System Tuner here: https://www.mathworks.com/help/control/ref/controlsystemtuner-app.html
More Answers (1)
Sam Chak
on 3 Nov 2025 at 16:24
Hi @Eric
Perhaps you can try this control architecture. With this approach, the PID controllers can be designed for plants G11 and G22 as if they were decoupled from G12 and G21. The desired outputs can likewise track different reference setpoints, as shown below.

Scope 3:

0 Comments
See Also
Categories
Find more on Classical Control Design in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


