Hy
habe jetzt nach langem Testen endlich meine Strecke in Matlab
hinbekommen
Transfer function:
-240 s^3 - 136 s^2 - 22.5 s - 0.5
--------------------------------------
240 s^4 + 376 s^3 + 159 s^2 + 24 s + 1
Kp=1
Ki=0.61
Kd=0.04
(durch testen)
Der Regler funktioniert soweit ganz gut, aber kann man ihn nicht am
besten mit Wurzelortskurven auslegen?
Leider ergibt die WOK zum System leider keine zur Literatur passenden
Zusammenhang, da so lange der Regler kausal sein soll, ein Zweig in der
positiven Halbebene liegt wenn V>0, was ja nicht sein darf!
1. Kann ich trotzdem per WOK auslegen?
2. Gibts es noch andere Verfahren?
WOK hat überhaupt nix mit kausalem oder nicht kausalem Regler zu tun.
Für Deine transfer function ist aller wunderbar stabil für alle k's. WOK
macht Dir P-Regler, du willst PID!? WOK ist ols school, gibt deutlich
besseres Zeug, z.B. Zustandsregler. Gutes tutorial zur WOK bei deutschem
Wikipedia.
Cheers
Detlef
also mit Zustandsregeler meinst du wahrscheinlich
Zustandsvektorrückführung mit I Anteil und Beobachter-ZVR und ähnliches.
Leider ist meine Übertragungsfunktion leider je nach Betriebsart
verschieden, und die Pole wandern. So macht es kein Sinn Pole zu kürzen,
die nicht immer da sind. oder geht das auch. weil wenn ich eine Matrix
in Regelungsnormalform von meine DGL mache, berechne ich den Regler ja
nur für die eine "Strecke" und weis nicht wie er sich verhält wenn sich
die Strecke varaiert..
a= 0.2 bis 0.6
min
1 1 1
( ----- -------------- (1-a) ) - ( --------)
5s+1 9s^2+6s+1 s+1
max
1 1 1
(----- -------------- (1-a) ) - ( --------)
15s+1 64s^2+16s+1 s+1
Mit einer WOK kann ich auch einen PID auslegen, z.B. SiSo Tool mit
Matlab kann ich auch NS&Pole im Regler einfügen und so die WOK ändern.
Mein Problem ist nur, das beim PI& PID jeweils ein Pol bei 0 liegt. von
diesem Pol geht in der WOK ein Zweig gegen +unendlich, was nicht der
stabile Bereich ist. zudem gibt es kein dominaten Pol, was ja eigentlich
wichtig ist!
Hilfreich wäre es, die Übertragungsfkt. in Abhängigkeit vom Parameter a
zu kennen. Ich weiß nicht, was das SiSo tool von Matlab macht, aber ne
WOK hat meiner Kenntnis nach nur eine Parameter, und das ist das Kp des
Proportionalreglers. Mit 'Zustandsregler' meine ich 'Zustandsregler',
dieser Begriff bezeichnet EINEN bestimmten Reglertyp. Bitte genauere
infos, Deine Einlassungen sind mir weitestgehend unverständlich.
Cheers
Detlef
ja, so ist es, das ist nen Zustandsregler. Dein F(s) ist ja etwas
heftiger. Hast Du mal für den kompletten Parameterraum die Lage der Pole
und Nullen ausgerechnet? Will ich mich wohl gerne mehr zu äußern,
braucht aber etwas Zeit.
Cheers
Detlef
also die Pole sind ja direkt abzulesen, wenn man alles auf einen Nenner
bringt...
P1= -1
P2= -1/A
P3,4= -1/B
die Nullstellen:
(1-a)*(s+1)-(A*s+1)(B^2*s^2+2*B*s+1) ergeben
s^3*(-A*B^2)+s^2*(-2*A*B-B^2)+s*(1-a-A-2B)-a
auch alle abhängig von A,B und a
von daher verschiebt sich immer die Matrix A in der Regelungsnormalform.
wenn ich dann nach Ackermann oder so weitermachen will geht das nicht
oder...
hier liegen die Nullstellen des offenen Kreises für den gesamten
Parameterraum. Schönes Bild, sieht aus wie ne Röntgenaufnahme der
Rippen.
Cheers
Detlef
clear
nn=20;
A=linspace(5,15,nn);
B=linspace(3,8,nn);
a=linspace(0.2,0.6,nn);
pa=zeros(3,nn^3);
n=1;
for(kA=1:length(A))
for(kB=1:length(B))
for(ka=1:length(a))
pp=[(-A(kA)*B(kB)^2) (-2*A(kA)*B(kB)-B(kB)^2) (1-a(ka)-A(kA)-2*B(kB))
-a(ka)];
n=n+1;
pa(:,n)=roots(pp);
end;end;end
plot(pa,'b.');
grid
return
Hier die WOK für den ganzen Parameterraum und nen paar k's eines
Proportionalreglers. Das ganze Ding wird also durchaus instabil, selbst
für k's kleiner als 1. Als nächstes liegt die Entscheidung an, was man
von dem Regler eigentlich will, der 'funktioniert soweit ganz gut', was
willst Du mehr? Möglicherweise habe ich mich angesichts der
fortgeschrittenen Zeit verrechnet.
Gute Nacht
Detlef
clear
nn=10;
A=linspace(5,15,nn);
B=linspace(3,8,nn);
a=linspace(0.2,0.6,nn);
k=linspace(0,1,20);
pa=zeros(4,length(k)*nn^3);
n=1;
for(kA=1:length(A))
for(kB=1:length(B))
for(ka=1:length(a))
for(kk=1:length(k))
% 1 + s + A*s + 2*B*s + A*Power(s,2) + 2*B*Power(s,2) +
2*A*B*Power(s,2) +
%Power(B,2)*Power(s,2) + 2*A*B*Power(s,3) + Power(B,2)*Power(s,3) +
%A*Power(B,2)*Power(s,3) + A*Power(B,2)*Power(s,4)
ppz=k(kk)*[0 , (-A(kA)*B(kB)^2) ,
(-2*A(kA)*B(kB)-B(kB)^2) , (1-a(ka)-A(kA)-2*B(kB)) , -a(ka)];
ppn= [A(kA)*B(kB)^2 A(kA)*B(kB)^2+B(kB)^2+2*A(kA)*B(kB)
B(kB)^2+2*A(kA)*B(kB)+2*B(kB)+A(kA) 2*B(kB)+A(kA)+1 1 ];
n=n+1;
pa(:,n)=roots(ppz + ppn);
end;end;end;end
plot(pa,'b.');
grid
return