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
also 1 1 1 F(s)= (----- ------------------- (1-a) ) - ( --------) A*s+1 B^2*s^2+2*B*s+1 s+1 5<A<15 3<B<8 0.2<a<0.6
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.