Cannot create H2 controller: Error with h2syn
5 views (last 30 days)
Show older comments
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
Answers (1)
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
See Also
Categories
Find more on Classical Control Design in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!