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

C2D Funtkion

 

Michael

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.09.2008, 13:48     Titel: C2D Funtkion
  Antworten mit Zitat      
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

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 10.03.08
Wohnort: ---
Version: 7.0
     Beitrag Verfasst am: 12.09.2008, 19:03     Titel:
  Antworten mit Zitat      
Code:
Mein_diskretes_system=c2d(Mein_kontinuierliches_system,Sampling_Zeit,Methode);


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 Wink

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.
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 05.03.2011, 11:36     Titel:
  Antworten mit Zitat      
Ich wollte gerade den Befehl c2d mit der z-Transformation vergleichen...

Code:

% PT2 Strecke aufstellen und in z Bereich transformieren
% Streckenparameter
D1=0.1;
T1=0.01;
Kst=1;
TS=1/1000; % Abtastzeit

% zunächst im Bildbereich
s = tf('s');
% PT2 Strecke
Fst = (Kst/(T1^2*s^2 + 2*D1*T1*s + 1));

% Berechnung der Polstellen für Partialbruchzerlegung
% s1/2 = - 1/T1*[D1 +/- sqrt(D1^2-1)]
P1 = - 1/T1*(D1 + sqrt((D1^2)-1));
P2 = - 1/T1*(D1 - sqrt((D1^2)-1));

% Strecke in Partialbrüchen
Fst = (Kst/(T1^2))*(1/((s-P1)*(s-P2)))

% z-Transformation f(s) --> f(z)
% aus Tabelle: 1/(s + a) --> z/(z - e^(-a*TS))
% Fzt = Kst/T1 * (z/(z - e^(-P1*TS))*(z/(z - e^(-P2*TS))
z = tf('z',TS);
Fzt = (Kst/(T1^2)) * (z/(z - exp(-P1*TS)))*(z/(z - exp(-P2*TS)))
Fzt2 = c2d(Fst,TS,'zoh');
 


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?
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 05.03.2011, 13:05     Titel:
  Antworten mit Zitat      
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 Sad
Private Nachricht senden Benutzer-Profile anzeigen
 
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.