robust control: a simple pid controller is better then every hinf! Why?

Hi folks. I currently experiments with a PT2 uncertrain plant. For that system i'll create a controller which has a specific robust performance. For that i'll use Matlab 7.3 with Robust Control Toolbox

3.1.1. Cause of the robust performance i need mu-synthesis with d-k iteration. The mentioned toolbox contains the dksyn function. The weighting function envelopes sensitivity of the closed loop of the PID controller with the uncertain plant. I understand the h-inf. norm, that it'll find out of a set of controllers a specific one, which can achieve my requierements. So if i argue, that the PID controller contains to this set of controllers, why isn't a similar structure found?

Thx for every comments and ideas. Best greets Eggi

% nominelle Parameter nm = 3; nc = 1; nk = 2;

% relative Fehler pm = .4; pc = .2; pk = .3;

% erzeuge "unsichere Parameter" um = ureal('m',nm,'Percentage',[-1 1]*100*pm); uc = ureal('c',nc,'Percentage',[-1 1]*100*pc); uk = ureal('k',nk,'Percentage',[-1 1]*100*pk);

% normale Matrizen A0 = [ 0 1; -nk/nm -nc/nm]; B0 = [ 0; 1/nm]; C0 = [ 1 0]; D0 = [ 0]; %#ok

% Matrizen mit unsicheren Parametern A = [ 0 1; -uk/um -uc/um]; B = [ 0; 1/um];

% nominelle Strecke G0 = ss(A0,B0,C0,D0);

% Zusammenbinden des Zustandsraumsystems (unsicheres strukturiertes SS) Gus = ss(A, B, C0, D0);

% Erzeugen eines Vergleichsreglers (PID) k = 15; ti = 1; td = 1;

Kpidtf = k*tf([ti*td ti 1],[0.01 ti 0]); [a,b,c,d] = tf2ss(Kpidtf.num{1},Kpidtf.den{1}); Kpid = ss(a,b,c,d);

figure; CLpid = feedback((Gus.NominalValue*Kpid),1); step(CLpid),grid;

%% Wichtungsfunktionen % Wichtungsfunktion zur Bewertung des Stellgliedes nWu = 1; dWu = 1; gWu = 10^(-2); Wr = tf(nWu, dWu)*gWu;

Wt = ss([15.05 -15.06; 16.58 -16.56],[0.5211; -0.5211],[0.7307

-0.7589],1.312); Ws = ss([-0.02859 0.05684; 0.5143 -1.028],[3.237; -1.618],[1.116 1.59],

0.9393);

% Zusammenbinden des Systems mit "unsicheren" Parametern und den % Wichtungsfunktionen systemnames = ' Gus Ws Wr '; inputvar = '[ dist; control ]'; outputvar = '[ Ws; -Wr; -Gus-dist ]'; input_to_Gus = '[ control ]'; input_to_Ws = '[ Gus+dist ]'; input_to_Wr = '[ control ]'; sysoutname = 'Pus'; cleanupsysic = 'yes'; sysic;

% Reglersynthese [Khinfs, clps, GAMhinfs,DKINFOhinfs] = dksyn(Pus, 1, 1);

disp(['Hinfs: ' num2str(GAMhinfs)]);

% Binden des geschlossenen Systems CLhinfs = feedback((Gus*Khinfs),1); CLpid = feedback((Gus*Kpid),1);

% Empfindlichkeitsfunktion Shinfs = 1/(1+Khinfs*Gus); Spid = 1/(1+Kpid*Gus);

%%

figure; bode(Khinfs,Kpid),grid; figure; step(CLhinfs,CLpid),grid,legend('H-unendlich strukturiert','PID'); figure; bode(Shinfs,Spid,'c',1/Ws,'r'),grid,legend('H-unendlich strukturiert','PID','1/Ws');

Reply to
Eggi
Loading thread data ...

It isn't clear what your question is. The example you chose is not that difficult to control so it is relatively robust without any tricks. I don't have Matlab or the Toolbox so a lot of the commands are cryptic. It would have been best to display intermediate results, links to graphs or include more comments as to what you are trying to prove. Eggi, do you have a link to a web site that shows what you are trying to do?

Peter Nachtwey

Reply to
pnachtwey

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.