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

DT1 Filter in Simulink nachbilden

 

martinzf
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 05.02.08
Wohnort: ---
Version: R2006b
     Beitrag Verfasst am: 06.07.2009, 11:31     Titel: DT1 Filter in Simulink nachbilden
  Antworten mit Zitat      
Hallo Leute,
leider ist das Studium zu lange her und ich bekomms nicht mehr her wie ich mir einen DT1 Filter in Simulink zusammenbasteln kann.
Die Literatur sagt die Übertragungsfunktion wäre Kd*s/Ts+1.

Hintergrund ist ich hab eine Drehzahl und will ihren Gradienten beim Motorhochlauf bekommen,das ganze soll noch zeitlich gefiltert werden.

Wie erstelle ich jetzt die Übertragungsfunktoin in Simulink mit der Möglichkeit die Zeitkonstante anzugeben. Prinzipiell wäre es ja auch möglich die Ableitung du/dt zeitlich zu filtern? Mit einem Totzeitglied oder einem PT1 Glied, bei der die Verstärkung == 1 ist oder?

Antworten wären super,danke
Private Nachricht senden Benutzer-Profile anzeigen


Tusor
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 71
Anmeldedatum: 02.07.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.07.2009, 17:38     Titel:
  Antworten mit Zitat      
Es gibt doch dafür extra den Block "Transfer Function". Bei dem kannst du dann einfach deine Parameter angeben. Dafür gibst du die Koeffizienten als Vektor eines Zähler- und Nennerpolynoms an. Aber das sollte dann in der Hilfe von Simulink zu dem Block erklärt sein.

Viele Grüße

Tusor
Private Nachricht senden Benutzer-Profile anzeigen
 
martinzf
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 05.02.08
Wohnort: ---
Version: R2006b
     Beitrag Verfasst am: 07.07.2009, 14:14     Titel:
  Antworten mit Zitat      
Ja danke für die Antwort, wie gesgat das Studium ist einfach zu lange her.

Aber nun stellt sich gleich noch eine andere Frage(siehe Bilder mit Regelstrecke und Sprungantworten)
Kanal 1 : Rechtecksignal
Kanal 2 : PT1 Filter - klar
Kanal 1 : DT1 Filter mit Ü-Funktion Kd*s/Ts+1, dabei Kd = 1, T = 0.1
Kanal 1 : DT1 Filter Nachbildung : PT1 Filter(P = 1, T=0.1) anschließend du/dt

2 Fragen:
1.Wie bekomm ich es hin dass ich im DT1 (Kanalausgang 3) nicht von 10 anfange herunterzufiltern? Sondern halt erstmal konstant laufe wie das Rechtecksignal

2. Wieso ist die Nachbildung(Kanal4) nicht das identische Signal wie der DT1 Filter der als Übertragungsfkt(Kanal 3) dargestellt ist?
Versteh ich einfach nicht.

Für Hilfe wäre ich sehr dankbar.

Mein Problem ist nämlich nun dass ich eine Messung einlese die mit Leerlaufdrehzahl beginnt, dann macht das Modell zum Start einen Sprung und filtert von dort erstmal runter obwohl bereits der Hochlauf des Motors beginnt. Ich bräuchte also so etwas wie einen Initialwert für den DT1

Zwischenablage01.jpg
 Beschreibung:
Regelstrecke

Download
 Dateiname:  Zwischenablage01.jpg
 Dateigröße:  11.25 KB
 Heruntergeladen:  2442 mal
Zwischenablage02.jpg
 Beschreibung:
Sprungantworten

Download
 Dateiname:  Zwischenablage02.jpg
 Dateigröße:  113.15 KB
 Heruntergeladen:  2048 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Tusor
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 71
Anmeldedatum: 02.07.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.07.2009, 17:58     Titel:
  Antworten mit Zitat      
Hallo,

ich fange mal mit 2. an: Du hast mir endlich ein Beispiel geliefert, wieso mein Betreuer sich immer über die Differentiationsblöcke aufregt. Probiere mal andere Solver aus. Zum Beispiel ein ganz normaler ode1 mit 1e-3 als Schrittweite bringt das gleiche Ergebnis für beide Varianten. Für reproduzierbare Ergebnisse sollte man die du/dt-Blöcke lieber nur mit einem FixedStep-Solver verwenden (hängt halt daran, wie numerisch die Ableitung gebildet wird).

Zu 1. Das er bei 10 anfängt ist eigentlich vollkommen logisch, da du ja ein DT1 gebaut hast. Das heißt, der leitet dein Eingangssignal ab. Was ist die Ableitung eines Sprunges? Richtig, der Dirac-Impuls. Also eigentlich ein unendlich hoher Peak. Auf Grund des T1-Verhaltens ist der nicht unendlich hoch, sondern nur noch 10. Genauer gesagt ist er immer Kd/T hoch (kann man irgendwie herleiten, aber interessiert hier nicht).
In dem angehängten Modell findest du eine Möglichkeit: Das Problem ist ja, dass der DT1-Block zu t=0 einen Sprung auf Leerlaufdrehzahl sieht. Und den muss man verhindern. Die einfachste Möglichkeit, die mir eingefallen ist, ist im Anhang zu sehen: Du ziehst einfach die Leerlaufdrehzahl ab. Damit ist der erste Sprung am Eingang bei t=0 quasi 0 (oder halt sehr klein, wenn du mit der Leerlaufdrehzahl etwas daneben liegst, aber der erste Wert (das ist ja der wichtige!) lässt sich ja einfach aus den Messdaten ablesen). Alle weiteren Änderungen im Signal werden differenziert.
Die zweite Möglichkeit wäre, die Messdaten, wo der Motor in Leerlaufdrehzahl ist, so oft zu kopieren, dass du eine genügend lange Leerlaufphase vortäuschst, in der sich der DT1-Block von dem ersten Sprung erholen kann.

Ich hoffe, dass das so passt.

Viele Grüße

Tusor

Diff.mdl
 Beschreibung:
Testmodell mit DT1 der den ersten Sprung nicht detektiert

Download
 Dateiname:  Diff.mdl
 Dateigröße:  19.57 KB
 Heruntergeladen:  1320 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
martinzf
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 05.02.08
Wohnort: ---
Version: R2006b
     Beitrag Verfasst am: 09.07.2009, 15:29     Titel:
  Antworten mit Zitat      
als allererstes viel Dank für die ausführliche Antwort. Meine Meinung von diesem Forum wurde mal wieder absolut bestätigt.

Zum anderen, den ersten Wert am Anfang zu subtrahieren bringt das gewünschte Ergebnis und erscheint jetzt auch so logisch...hätte ich selber drauf kommen müssen

Danke nochmals
Private Nachricht senden Benutzer-Profile anzeigen
 
Tusor
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 71
Anmeldedatum: 02.07.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.07.2009, 16:54     Titel:
  Antworten mit Zitat      
freut mich, dass es klappt.

Ich habe heute nebenbei bemerkt, dass es auch die Möglichkeit gibt, für die Simulation "Initial Values" vorzugeben. Das hat den Zweck, dass man die Endwerte einer Simulation als Startwerte für eine andere nehmen kann. Das dürfte hier auch funktionieren. Ich hatte aber leider keine Zeit, mir das genauer anzuschauen. Wäre aber vielleicht noch eine Überlegung wert.

Viele Grüße

Tusor

P.S.: Ich setzt das Thema mal auf "beantwortet", oder?
Private Nachricht senden Benutzer-Profile anzeigen
 
martinzf
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 05.02.08
Wohnort: ---
Version: R2006b
     Beitrag Verfasst am: 10.07.2009, 10:11     Titel:
  Antworten mit Zitat      
Initial Step Size hab ich gefunden,aber Value nicht?

Zwischenablage01.jpg
 Beschreibung:

Download
 Dateiname:  Zwischenablage01.jpg
 Dateigröße:  60.02 KB
 Heruntergeladen:  1827 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Tusor
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 71
Anmeldedatum: 02.07.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.07.2009, 16:50     Titel:
  Antworten mit Zitat      
Ich habe gerade noch mal geschaut: Heißt "initial state" und ist unter Data Import/Export zu finden.
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.