How to design controller for coupled 2 input 2 output system?
Show older comments
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
Mathieu NOE
on 3 Nov 2025
hello
have ypu the G transfer functions ? have you aleady started a code ?
so C1 and C2 are supposed to be only integrators ?
In Matlab, the 2x2 transfer function matrix can be represented like so:
G11 = tf(1,[1,11]);G12 = tf(1,[1,12]); G21 = tf(1,[1,21]); G22 = tf(1,[1,22]);
Gtf = [G11 G12;G21 G22]
A state space form can be obtained as
Gss = ss(Gtf);
Gss can specified in the LTI System block. Or, the specific matrices of Gss, such as
Gss.B
can be specified as the parameters in the State Space block.
Source of error message unclear w/o seeing the code that generated it.
Sam Chak
on 3 Nov 2025
Hi @Eric
If you look at the signal flows, you will see that C1–G11 and C2–G22 form closed loops, while C1–G21 and C2–G12 are open loops. If both C1 and C2 are constrained to be pure integral controllers
, several restrictive conditions must be satisfied to ensure stable output responses:
- The transfer functions G11 and G22 must be equivalent.
- The transfer functions G12 and G21 must be equivalent.
- The closed-loop systems C1–G11 and C2–G22, excluding influences from the open loops, must be stable.
- Because the open-loop systems C1–G21 and C2–G12 have a pole at the origin, the error signals (inputs to C1 and C2) must converge to zero.
- The reference setpoints r1 and r2 must be identical.
Block diagram

Error signals

Output signals

However, if the MIMO system is to be regulated at different reference setpoints and the plant transfer functions G11, G12, G21, and G22 differ, then the controllers C1 and C2 must be designed with care.
Eric
on 3 Nov 2025
Eric
on 3 Nov 2025
Eric
on 3 Nov 2025
Mathieu NOE
on 3 Nov 2025
well, once you have identified your 4 tfs , you can simply "remove" the coupling terms in the output so you fall back to the design of two SISO (independant) systems
instead of using directly y1 in the first feedback loop use y1b = y1 - G12estimated * u2
idem for lower loop :
instead of using directly y2 in the second feedback loop use y2b = y2 - G21estimated * u1
Paul
on 4 Nov 2025
I don't think the State Space block can explicitly model those delays, so you'd have to take the ss matrices as the block parameters to the State Space block and then model the input and output delays separately. I'm pretty sure, but not 100% certain, that G can be used directly in the LTI System block, as could ss(G).
Paul
on 4 Nov 2025
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
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
More Answers (1)
Sam Chak
on 3 Nov 2025
0 votes
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:

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!
