mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP WOK mit Schwierigkeiten


Autor: Jörn A. (joern_)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Detlef _a (detlef_a)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Jörn A. (joern_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!

Autor: Detlef _a (detlef_a)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Jörn A. (joern_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Jörn A. (joern_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nochmal zum Zustandsregler:

also du meinst:

x=A*x+b*u
y=c*x

u=k*x

oder?

Autor: Detlef _a (detlef_a)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Jörn A. (joern_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: Detlef _a (detlef_a)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Detlef _a (detlef_a)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.