|
Michael |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 08.09.2008, 13:48
Titel: C2D Funtkion
|
|
hallo,
bin in matlab/simulink ein neuling und versuche gerade eine regelstrecke vom zeitkontinuierlichem ins zeitdiskrete zu wandeln. habe gehört da gibt es ein Matlab befehlt C2D(....) mit dem man es leicht hinbekommt. wie funtkioniert dieser befehl wenn ich ihn dann über simunlink benutzen möchte?
danke
|
|
|
|
|
student |
Forum-Anfänger
|
|
Beiträge: 25
|
|
|
|
Anmeldedatum: 10.03.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 7.0
|
|
|
|
|
|
Verfasst am: 12.09.2008, 19:03
Titel:
|
|
|
|
|
wobei Mein_kontinuierliches_system einfach eine TF, also z.b: =zähler/nenner oder ein state-space sein kann, also z.b: = ss(A,B,C,D);.
Mein_diskretes_system ist dann auch entweder eine diskrete TF oder ein diskretes SS. Für beide gibt es einen Block im Simulink, zu finden unter
Zitat: |
Library Browser/Simulink/Discrete |
dann entweder "Discrete Transfer function" oder "Discrete State space"
ACHTUNG!!!!!!!!!!!!
das, wass c2d tut ist !NUR! eine Emulation. Also aufpassen. ---> Keine Stabilitätsgarantie (für T>0), egal wie gut der Design des Reglers!
Umbedingt Pole des L(z) UND des P(z) anschauen
unter Methode kannst du einsetzen
'zoh' s=z-1 / zT
'foh' s=z-1 / T
'tustin' s=2(z-1) / T(z+1)
'prewarp' s=2(z-1) / sigmaT(z+1)
'zoh' bildet die linke halbebene ausserhalb des einheitskreises ab -> schlecht für stabilität, aber einziger der vernünftig online läuft....
Ich hoffe, das hilft dir was
Gruss Student
p.s.: wenn du etwas Zeit hast, mache doch keine Emulation, sondern eine Z-Trafo von der Strecke und lege den Regler im Zeitdiskreten aus.
|
|
|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 05.03.2011, 11:36
Titel:
|
|
Ich wollte gerade den Befehl c2d mit der z-Transformation vergleichen...
Als Ergebnis erhalte ich hier jetzt..
nach z-Transformation:
Fzt = 10000 z^2 / z^2 - 2.01 z + 1.02
Befehl c2d:
Fzt2 = 0.004963 z + 0.00493 / z^2 - 1.97 z + 0.9802
Woher kommt der Unterschied der Zähler? Was ist an meiner Transformation falsch, denn die Sprunggantwort stimmt bei Fzt nicht?
|
|
|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 05.03.2011, 13:05
Titel:
|
|
Habe gerade noch einen Fehler entdeckt...
aus der z-Transf. Tabelle: 1/(s + a) --> z/(z - e^(-a*TS))
Ich habe ja aber 1/(s - P1/2) --> z/(-z + e^(a*TS))
Nur stimmt es dann immer noch nicht
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|