MATLAB Answers

Cannot create H2 controller: Error with h2syn

2 views (last 30 days)
Ari
Ari on 15 Sep 2017
Answered: Hongbing Xiang on 3 Dec 2019
I have a linear plant with 12 states, 16 disturbances, 8 control inputs and 32 outputs. There is sensor noise associated with the outputs (so 32 noise) and I want to design a H2 controller that will reject disturbance and noise. The dynamics is:
xdot = A*x + Bd*d + Bn*n + Bu*u
z = Cz*x + Ddz*d + Dnz*n + Duz*u
y = Cy*x + Ddy*d + Dny*n + Duy*u
d = disturbance, n = noise, u = control input. z is the signal I want to minimize, y is the measured output. So my H2 plant looks like this:
G = [A B1 B2; Cz D11 D12; Cy D21 D22]
where B1=[Bd Bn], B2=Bu, D11=[Ddz Dnz], D12=Duz, D21=[Ddy Dny], D22=Duy. In my case, Ddz=0, Dnz=0, Ddy=0, Duy=0 (no direct feedthrough). When I try to create the H2 controller using h2syn command I get the following error:
nu = size(B2,2);
ny = size(Cy,1);
[K,CL,GAM,INFO] = h2syn(h2sys,ny,nu);
Error using -
Matrix dimensions must agree.
Error in lti/h2syn (line 193)
f2 = -d12'*c1 - f2c ; % f2 = -f2a
Error in T2D1Controls (line 71)
[K,CL,GAM,INFO] = h2syn(h2sys,ny,nu);
Any idea why this is happening? I am attaching the plant for reference.

  0 Comments

Sign in to comment.

Answers (1)

Hongbing Xiang
Hongbing Xiang on 3 Dec 2019
hello, is the problelm solved ? I am learning how to design H2 controller, do you have any suggestions ?

  0 Comments

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!