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

Z- Transformation mit Matlab

 

karlotto

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.11.2008, 11:28     Titel: Z- Transformation mit Matlab
  Antworten mit Zitat      
Hallo
Ich möchte gerne einen DC Motor mit Matlab simulieren. Das bekomm ich auch im Zeitbereich hin.
Nun möchte ich aber einen diskreten Regler entwerfen und brauch dafür die Z- Transformierte des Motormodells.
Das bekomm ich eigentlich auch noch hin, aber wenn ich das mache und auch simuliere bekomm ich ein ganz anderes ergebnis raus.

Jetzt wollte ich das prüfen, indem ich die Ztransformierte wieder zurück transformieren wollte. bzw das hab ich gemacht, un das ergebnis was ich dann raus bekomme stimmt natürlich nicht mit dem ursprünglichen überein.

t=[0:0.001:.1]';
t1=[0:0.001:.02]';

U=[t,12*ones(length(t),1)]; %%Eingangseitiger Sprung von 0 auf 12V
U1=[t,12*ones(length(t),1)]; %%Eingangseitiger Sprung von 0 auf 12V


%Motordaten
k = 0.0195; %%Motorkonstante [mNm/A]
R = 2.5; %%Ankerwiderstand [Ohm]
L = 0.0003; %%Ankerinduktivität [mH]
J = 17.6*10^(-7); %%Trägheit (Anker) [kg*m^2]
b = 0.0000001; %%Reibung [Nm*s] noch ungeklärt
M_L = 0.2; %%Lastmoment [Nm] noch ungeklärt


% Zeitkontinuierliche Ü-Funktion
zaehler=[k];
nenner=[(L*J) ((L*b)+(R*J)) ((R*b)+(k*k))];


%Z Transformation

T=0.001; %Abtastzeit der Drehzahlregelung

syscon=tf(zaehler,nenner) %SYS = TF(NUM,DEN)
sysd_bi=c2d(syscon,T,'tustin') %bilinear Transformation

[z n]=tfdata(sysd_bi,'v')

sys_rueck=d2c(sysd_bi,'tustin')
[x y]=tfdata(sys_rueck,'v')


paddy141
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 07.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.11.2008, 12:19     Titel:
  Antworten mit Zitat      
Hallo Gast,

ich habe schonma ungefähr das gleiche Problem wie du gehabt.
Also einen diskreten Regler entwerfen.

Mir stellt sich jetzt die Frage warum du das ganze Modell diskretisieren willst?
Wenn du den Regler nacher am Moter testen willst, auch keinen "diskreten" Motor! Deshalb solltest du meiner Meinung nach, einen diskreten Regler für einen "kontinuierlichen" Motor entwerfen.
Was ist der Grund für einen diskreten Regler?
Private Nachricht senden Benutzer-Profile anzeigen
 
karlotto

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.11.2008, 13:40     Titel: stimmt
  Antworten mit Zitat      
stimmt, eigentlich muss ich das modell nicht diskretisieren.
Ich will den motor mit einem µC Regeln. Dann muss ich eigentlich nur den Regler selbst diskretisieren und in das modell ein Integrator mit rein rechnen, wegen dem Abtasthalteglied.
richtig?

Aber trotzdem müsste matlab doch wieder die ursprüngliche Übertragungsfunktion wieder ausgeben, wenn ich einmal hin und zurück transformieren.

gruß
 
paddy141
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 07.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.11.2008, 14:16     Titel:
  Antworten mit Zitat      
Du musst einfach bei aufnehmen der "Messerte" einen AD-Wandler nachschalten und nach dem Regler einen DA-Wandler einbauen.
Du kannst bei deinem Motorregler sehr wahrscheinlich die Reglerparameter auch "kontinuierlich" auslegen.
Nur weil du mit einem µC reglen willst heißt das nicht, dass das ein ein diskretes System ist! Es ist sehr wahrscheinlich ein quasikontinuierliches System. Ich würde mir die einschlägige Literatur zu diesem Thema durchlesen!
Private Nachricht senden Benutzer-Profile anzeigen
 
karlotto

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.11.2008, 18:42     Titel: aber.....
  Antworten mit Zitat      
.... wenn ich den Regler später für einen µC programmieren will, muss ich ihn doch in einert diskreten Form haben, sonst kann ich ihn doch nicht programmieren?
 
paddy141
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 07.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.12.2008, 09:16     Titel:
  Antworten mit Zitat      
Ist das für die programmierung wirklich notwendig??
Lies dir die einschlägige Literatur zu dem Thema durch und achte besonders auf das Thema quasikontinuierliche Regler
Private Nachricht senden Benutzer-Profile anzeigen
 
Mike84

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.12.2008, 16:50     Titel:
  Antworten mit Zitat      
Jetzt mal davon abgesehen. Die beiden Systeme sind doch gleich.
Vergleiche die beiden einfach mal mit dem Befehl 'step'.

Beim rücktransformierten System wurde lediglich im Nenner die 5.28e-10 ausgeklammert.

Die beiden Systeme, die ich anhand deiner Daten bekommen habe:

Ursprüngliches System:
Code:

 0.0195
--------------------------------------
5.28e-010 s^2 + 4.4e-006 s + 0.0003805
 

Rücktransformiertes:
Code:

       3.693e007
------------------------
s^2 + 8333 s + 7.206e005
 



0.0195/5.28e-10 = 3.693e7

Grüße
 
paddy141
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 07.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.12.2008, 17:08     Titel:
  Antworten mit Zitat      
Was hast du denn da transformiert?
Und was soll ich dir jetzt beantworten? Die beiden Gleichungen sind gleich JA!!
Wie kann ich dir genau weiterhelfen?

Gruß
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.