How to modify H-infinity controller set up to scale controller output?
Afficher commentaires plus anciens
I have the linear wind turbine model as follows:
b1=-356.3851;
b2=145.1693;
Bd=6.215E6;
Kd=8.67637E8;
Jr=38677056;
Jg=534.116;
N=97;
R=63;
p=1.225;
A=[(b1-Bd)/Jr Bd/(N*Jr) -Kd/Jr;
Bd/(N*Jg) -Bd/(N^2*Jg) Kd/(N*Jg);
1 -1/N 0];
B=[0 b2/Jr;
-1/Jg 0;
0 0];
C=[1 0 0];
D=[0 0];
lin=ss(A,B,C,D);
lin.InputName={'tg','v'}; %tg is control signal, v is external input (disturbance)
lin.OutputName={'wr'}; %output is rotor speed which is to be controlled
Then the closed loop system:
R=tf(1); %gain of 1 to make the summation block
R.u='faker'; R.y='r'; %r is the reference
error=sumblk('e=wr-r');
We = makeweight(40,[1000000,0.3],0);
We.u='e'; We.y='we';
lincon=connect(lin,R,error,We,{'v','tg','faker'},{'wr','we','e'});
Controller synthesis and closed loop with controller:
[KH,g0,g]=hinfsyn(lincon,1,1);
KH=balred(KH,3);
KH.u='e'; KH.y='tg';
Con=connect(lincon,KH,{'v','faker'},{'wr','we'});
step(Con)
As you can see on the top right graph (from faker (which is the same as r) to the output wr), the settling time is around 15 seconds. I reached this after a ton of experimentation with regards to the error weight We. Firstly, if there is a way to obtain a settling time of less than 5 seconds, please let me know. Before the experimentation, it was in magnitudes of 10^5 seconds. Additionally, if there is a systematic way to obtain We thats better than just trial and error, I would like to know that as well.
Anyway, developing this system in simulink and running it has the following outcome where the yellow is the system response and blue is the reference. It is lagging behind and hardly follows the reference:

However, if I simply put a static gain of 10 on the controller output, the response is much better:

So my question is, how can I modify the controller set up so that it produces an output that does not require me to place a static gain? I have tried various weights on the control signal tg but I have not had any success.
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur H-Infinity Synthesis dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




