Using hinfsyn / dksyn, the resulting controller K has an input (B) matrix with only zeros.
1 view (last 30 days)
Show older comments
Hello
I am trying to build an hinf controller, and I am a little confused about the result. I am trying to control a simple plant G with a feedback K and weight functions W1 (error), W2 (control signal) and W3 (measurement noise) using the connect command.
close all
clear all
clc
% model parameters
K = ureal('K',5.2e7,'Range',[5.0e7 5.4e7]);
C = ureal('C',0.9,'Range',[0.6 1.2]);
Fe = ureal('Fe',5e6,'Percentage',10); %%approximated, not consider the sqrt
A = [0 1; -K -C];
B = [0; Fe];
C = [1 0];
D = 0;
G = uss(A,B,C,D);
G.u = 'Vin';
G.y = 'x';
% define loop shapes
%W1
kdep=1; % No overshoot
epss=0.01; % Statical error
trep=0.1; % Settling time
invW1=tf([kdep 3*epss/trep],[1 3/trep]);
W1=1/invW1;
W1.u = 'e';
W1.y = 'y_Wperf';
%W2
o2=800;
M2=10.3;
e2=0.005;
W2=tf([ 1 o2/M2],[e2 o2]);
W2.u = 'Vin';
W2.y = 'y_Wu';
%W3
b=0.02; % maximum disturbance
W3=zpk(b);
W3.u = 'noise';
W3.y = 'y_Wn';
% build the system
Sum1 = sumblk('x_n = y_Wn + x');
Sum2 = sumblk('e = ref - x_n');
Model_inputs = {'ref';'noise';'Vin'};
Model_outputs = {'e';'y_Wperf';'y_Wu'};
Model_1 = connect(G,W3,W2,W1,Sum1,Sum2,Model_inputs,Model_outputs);
%%use hinfsyn to compute the H_inf value and controllers K
ncont = 1; % one control input u
nmeas = 1; % one output y
[K,~,gamma] = hinfsyn(Model_1.NominalValue,nmeas,ncont)
%[K,~,RPmuval] = dksyn(Model_1,nmeas,ncont)
%response
S=inv(1+G*K);
T=1-S;
step(T,5)
The resulting system in closed loop is 0 due to the resulting controller. I tried to solve the same problem by building a simulink model of the problem and using the command linmod and hinfric, what gave me a controller K that works. However linmod does not recognizes the uncertainty of the system. Any thought on this would be helpfull.
0 Comments
Answers (0)
See Also
Categories
Find more on H-Infinity Synthesis 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!