WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Vorsteuerung

 

Skydiver85

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.11.2010, 21:32     Titel: Vorsteuerung
  Antworten mit Zitat      
Kann mir jemand erklären, wie man eine Vorsteuerung realisiert?

In diversen Unterlagen habe ich gelesen, dass die Vorsteuerung als Reziprokwert von der Regelstrecke angenommen wird.
Nun besteht aber meine Regelstrecke aus zwei Übertragungsfunktionen, welche natürlich unterschiedliche Pol- bzw. Nullstellen haben.

Reziprokwert einer Übertragungsfunktion bedeutet ja schlussendlich, den Zähler mit dem Nenner und umgekehrt auszutauschen.

Will ich dies aber mit Matlab/Simulink/Sisotool simulieren, dann erhalte ich (von Simulink) eine Fehlermeldung, dass der Nenner grösser sein soll.


Irgendwie fehlt mir zum einen die Theorie, aber dann auch die Umsetzung in der Praxis.

Über ein paar hilfreiche Informationen freue ich mich.

gruss


klabautermann

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.11.2010, 08:56     Titel:
  Antworten mit Zitat      
Das Problem mit der inversen Übertragungsfunktion ist, wie du bereits erkannt hast, die Ordnung von Zähler und Nenner. Deshalb funktioniert dieses invertieren nur bei sogenannten phasenminimalen Systemen.

Ich weiss nicht genau, welche Möglichkeiten es gibt eine Vorsteuerung zu realisieren. Eine Methode für lineare Systeme, die ich allerdings bereits erfolgreich angewendet habe, ist die sogenannte Flachheits-Methodik.

Mit diesen Informationen müsste das zu schaffen sein:
http://www.isys.uni-stuttgart.de/le.....steir_rt_sem_09_zeitz.pdf

Grüße
klabautermann
 
guest1

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.12.2010, 12:54     Titel:
  Antworten mit Zitat      
Hallo,

hast du schon eine Antwort auf deine Frage, bzw. eine Lösung zu deinem Problem gefunden? Wenn ja, wie hast du es gelöst? Mich interessiert der Ansatz ebenfalls.

Ich hatte neulich das selbe Problem, also auch, dass ich ein für die Vorsteuerung ein invertiertes Modell der Strecke aufbauen musste, was einen höheren Zählerpolinomgrad zur Folge hatte.
Bei genauerer Rechnung (heißt: Papier und Bleistift und dies ungeliebten Differentialgleichungen aufstellen) stellte sich heraus, dass sich manche Anteile "wegkürzten" und die Vorsteuerungsparameter sich aus Verhältnissen der Streckenparameter ergaben.
Ist jetz sicher keine konventionelle Vorgehensweise, aber das Modell funktioniert.
Ich hab also nicht einfach die Übertragungsfunktion der Strecke invertiert, sondern die Parameter für die Vorsteuerung nochmals neu berechnet. Vielleicht hilft es dir weiter, wobei das angehängte pdf auch sehr interessant klingt

Grüße
 
Daniel_82

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.12.2010, 17:55     Titel:
  Antworten mit Zitat      
Ich gib mal ein einfaches Beispiel für das Problem


Schauen wir uns einfach mal einen Masseschwinger an, ich hoffe,ich bring die gleichungen noch richtig zustande Smile Dieser wird gedämpft und es greift die Kraft F an .. wir suchen den Kraftverlauf F, damit der masseschwinger einer gewünschten posision x(t) folgt..

mx''=-dx'-cx+F (Impulsbilanz)

Soooo..

Wir WÜNSCHEN uns ein x(t), damit kennen wir aber auch x' und x''
und wir können die obige gleichung einfach umformen

F=mx''+dx'+cx

wir suchen uns also eine funktion x(t) aus (diese muss 2mal differenzierbar sein), und leiten diese 2 mal ab.

Das Konzept der Flachheit und damit der Vorsteuerung ist relativ neu.

Beim Obigen Beispiel funktioniert das relativ einfach.

Allgemeiner muss man die Systemgleichungen
x'=Ax+bu
y=cx

Betrachten. man leitet dann y so oft ab, bis der Eingang u in den Gleichungen auftaucht

y'=c*x' = c*(Ax+bu)

entscheindend ob u nun auftaucht oder nicht ist also das Produkt c*b
angenommen es taucht auf

dann formt man diese Gleichung auf u um,und hat den Inversen Eingang.
Falls der Eingang nicht auftaucht,nochmal Ableiten, also y'' bilden.. Taucht er dann auf,umformen ..

Aber Vorsicht... Es kann sein,dass dieser gar nicht auftaucht.. oder es gibt eine sogenannten Nulldynamik... (entspricht einem nicht erreichbaren Teilsystem,dessen Dynamik muss untersucht werden) etc etc etc.. da gibts dann ziemlich viele Effekte... Literatur: Isidori, Regelungstechnik Skriptum TU Wien, Kapitel 5 (kann ich raussuchen wenn du möchtest)



So einfach mit der Inversion von Übertragungsfunktionen funktioniert das leider in den seltensten Fälle, weil eben das "Grad Problem" auftritt.

Es gibt da allerdings einen "Trick"

sagen wir,wir haben das System G= 1/(s+2)^2


Also unsere Strecke hat zählergrad 0 und nennergrad 2

Nach der Inversion haben wir das Problem,dass der Zählergrad größer als der Nennergrad wird, somit entsteht ein differenzierer, der nicht implementierbar ist (Zählergrad > Nennergrad = physikalisch Sinnlos)

Einfacher Trick: wir fügen Realisierungspole hinzu,dessen Dynamik schnell sind.

unser inverses System G^-1 wäre ja (s+2)^2 / 1

wir nehmen jetzt einfach für das inverse System V* (s+2)^2 / (s+1000)^2

also 2 Pole bei 1000 dazu

der Faktor V wird benötigt, damit wir die Gesamtverstärkung von 1 behalten.

Wir erhalten damit

G*G^-1 = V/(s+1000)^2

ist zwar nicht ganz 1, aber wenn du von dieser Funktion die Sprungantwort zeichnest (mit step zum beispiel), merkst du schnell,dass das schon praktisch der Sprung ist. Smile 2 Pole bei 1000 bedeutet, dass das Eingangssignal in das Gesamtsystem praktisch dem Ausgangssignal entspricht(achte auf die Zeitskala beim Bild)

matlabcode:

s=tf('s')
TF=1000000/(s+1000)^2
step(TF)


Hoffe ich konnte bissl helfen
LG
daniel
 
Daniel_82

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.12.2010, 17:57     Titel:
  Antworten mit Zitat      
Ich seh grad,da sind viele Rechtschreibfehler oben drinn Smile ich hätte es Korrektur lesen sollen Smile Bitte nicht als mangelnden Respekt auffassen dass ich ihnen so eine Wortwurst hingeknallt habe Smile
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.