trying to use the command hinfsyn on a rotary inverted pendulum for stabilization analysis

Hello
I am trying to follow this paper
I have made following code for making the system looking like this
The code is given below
A=[0 0 1 0;
0 0 0 1;
0 39.32 -14.52 0;
0 81.78 -13.98 0;];
B=[0;0;25.54;24.59];
C=[1 0 0 0;
0 1 0 0];
D=[0;0;];
sys=ss(A,B,C,D);
sys.InputName={'u'};
sys.OutputName={'theta','alpha'};
s=tf('s');
Wact=0.002*(s+0.01)/(s+10);
Wact.u='u'; Wact.y='e1';
Wn1=ss(0.05);
Wn1.u='d1'; Wn1.y='wn1';
Wn2=ss(0.0275);
Wn2.u='d2'; Wn2.y='wn2';
Wx1=151.5/(s+50.5);
Wx1.u='theta'; Wx1.y='e2';
Wx2=202/(s+50.5);
Wx2.u='alpha'; Wx2.y='e3';
sdmeas=sumblk('y1 = theta+wn1');
abmeas=sumblk('y2 = alpha+wn2');
ICinputs={'d1','d2','u'};
ICoutputs={'e1','e2','e3','y1','y2'};
qsys=connect(sys,Wact,Wn1,Wn2,Wx1,Wx2,sdmeas,abmeas,ICinputs,ICoutputs);
When I am running the command hinfsyn I get following gamma
[~,~,gamma]=hinfsyn(qsys,2,1)
gamma = 0.3644
while in the paper they have
gamma=0.6951 in section 3.1 H-infinty controll. Where is my mistake or any solution to get the same answer as in the paper ?
Thanks for all answers
Tor Erik Haavik

댓글 수: 3

Hi CyberRobotics,
Some observations ....
The C-matrix in the code above does not match eqn (28) in the linked paper. Though eqn (28) in the linked paper doesn't match the surrounding text in the paper (C(2,4) = 1?). So either they used a wrong C-matrix or eqn (28) has a typo.
Also, Figure 5 in the paper (and shown above) appears to be missing the reference command input for theta that would typically be included in the model to design a command following system (as appears to be the goal here) where the feedback to the controller (K(s)) would be the theta error signal.
Then Figure 6 says the step response is from Vm, but Vm is the control input and not an input to the closed-loop system.
Later in the paper the authors use acker() for pole placement, but MathWorks has recommended not using acker for a long time. place is recommended (though in this case acker did produce the correct result). As far as I can tell, acker is not included in the formal doc for the Control Systems Toolbox.
The authors state: "Obviously, there is no way we can have robustness analyzed for uncertainties with this [state feedback] structure." That statement is incorrect.
Figure 5 doesn't match the text. The text states that Wn1 is applied to the disturbance on theta and Wn2 to the disturbance on alpha. But Figure 5 shows the exact opposite. If you reverse the wn inputs to sdmeas and abmeas you'll get a gamma of 0.61, which is closer to the reported result.
So do think that a gamma of 0.61 and if I have understand correct my code works correctly just a bad article explaining the stuff?
Based on the article, it's hard to say what is "correct" because the results from the article are not able to be replicated, at least for me. Every time I look at a different section I have more concerns. I'm really curious about how the authors developed Figure 6.

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

도움말 센터File Exchange에서 MATLAB에 대해 자세히 알아보기

제품

릴리스

R2024b

질문:

2025년 1월 18일

편집:

2025년 1월 19일

Community Treasure Hunt

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

Start Hunting!

Translated by