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

Signalverzögerung im Modell

 

ba6883
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 03.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.10.2012, 07:28     Titel: Signalverzögerung im Modell
  Antworten mit Zitat      
Hallo Leute,

vorab, ich bin totaler Newbie in Simulink/Matlab, bin jedoch momentan dabei in meiner Diplomarbeit ein Modell einzubauen.

Es geht darum, dass ich ein Simulink Modell auf ein Steuergerät übertrage, welches digitale Ein- und Ausgänge besitzt das bspw. einen Pumpe ansteuert.

Die Aus- und Eingänge funktionieren, ich kann die Pumpe manuell ansteuern, allerdings versuche ich das jetzt alles zu automatisieren und die Pumpe mit einer gewissen Routine anzusteuern.

Folgendes habe ich vor:

Ich habe drei Eingänge (E1-3) und einen Ausgang (A1).

Eingang 1: Routinestart
Eingang 2: Vorgabe Geschwindigkeit
Eingang 3: Grundvorgabe

Ausgang 1: Pumpenansteuerung

Es soll so laufen, dass ich manuell auf den Eingang 1 einen "1" gebe, danach soll die Pumpe von der Grundvorgabe switchen und mit verschiedenen Geschwindigkeiten nach bestimmten Zeiten angesteuert werden.

Wie kann ich eine Zeitverzögerung in das Simulink Modell einbauen?
Keine Matlabprogrammierung!

Z.B. soll dies später so ablaufen.

Ich gebe manuell eine "1" auf den Routinestart. Von der Grundvorgabe (Stopp) soll dieser auf Vorgabe Geschwindigkeit switchen.
Danach soll die Pumpe für 10s auf 10% Geschwindigkeit laufen, nach dieser Zeit für 10s auf 50% usw. bis die letzte Zeit abgelaufen ist und die Pumpe wieder auf die Grundvorgabe wechseln. Ich danach jedoch durch einen Wechsel von "1" auf "0" wieder von vorne beginnen kann.

Für eine Steuerung in der Automatisierungstechnik (bspw. S7/S5) ist die Verzögerung bzw. Zeitsteuerung kein Problem, aber Simulink macht mir ein paar Probleme.

Wäre super wenn mir da jemand einen Tipp geben könnte.

Im Anhang findet ihr mein derzeitiges manuelles Subsystem.


Viele Grüße

Bernhard

untitled.mdl
 Beschreibung:
Modell für die manuelle Ansteuerung

Download
 Dateiname:  untitled.mdl
 Dateigröße:  23.18 KB
 Heruntergeladen:  478 mal
Private Nachricht senden Benutzer-Profile anzeigen


atomPower
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 27.08.12
Wohnort: München
Version: 2007b
     Beitrag Verfasst am: 12.10.2012, 10:30     Titel:
  Antworten mit Zitat      
Vielleicht mit Stateflow probieren!
Z.B. ähnlich dem Anhang.

Bin auch Neuling in Matlab Smile

stateflow_pump.mdl
 Beschreibung:

Download
 Dateiname:  stateflow_pump.mdl
 Dateigröße:  24.53 KB
 Heruntergeladen:  536 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
ba6883
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 03.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.10.2012, 07:40     Titel:
  Antworten mit Zitat      
hi,

also Stateflow hab ich ja noch weniger Ahnung als mit Simulink.
Sieht aber sehr interessant aus dein Modell.

Kannst du mir vielleicht kurz erklären wie dein Modell funktioniert?

Gruß

Bernhard
Private Nachricht senden Benutzer-Profile anzeigen
 
atomPower
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 27.08.12
Wohnort: München
Version: 2007b
     Beitrag Verfasst am: 15.10.2012, 09:21     Titel:
  Antworten mit Zitat      
hi,

in dem Modell habe ich mehrere Zustände definiert (z.B. Start, 10% und 50%), dann wird eine Variable 'Init' als Eingangsvariable angelegt, solange diese gleich '0' ist, bleibt Stateflow in dem Start-Zustand hängen. Legst du eine '1' am Init ein, springt das ganze in den 10%-Zustand (Übergangsbedingung Init != 0).
In dem 10% Zustand wird am Anfang ('en:') eine lokale Variable 'time' auf '0' gesetzt und eine weitere lokale Variable 'a' auf dein Wert für 10% des Pumpenbetriebs gesetzt. Danach ('du:') wird die Zeit hochgezählt und einer Ausgangsvariable 'ausgang_pumpe' der Wert von a zugewiesen. Erreicht deine time-Variable 10 Sekunden wird in den nächsten Zustand gesprungen. Für die 10 Sekunden musst du dann noch einen richtigen Zahlenwert einsetzen.
Hoffentlich ist es verständlicher geworden.

Das ganze lässt sich bestimmt noch irgendwie optimieren, weiß aber noch nicht wie Wink

Schöne Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
ba6883
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 03.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.10.2012, 14:40     Titel:
  Antworten mit Zitat      
hallo atomPower,

danke für die Erklärung. Mittlerweile habe ich mich mit Stateflow richtig angefreundet. Hier habe ich westenlich mehr Möglichkeiten meine Steuerung einzubauen.

Vielleicht kannst du mir diese kleine Frage beantworten:

Es geht um eine Schleife in Stateflow. Bspw. habe ich einen wechselnden Eingang (z.B. manuelle Eingabe). Dieser soll kontinuierlich auf einen Ausgang geschalten werden und erst bei einer bestimmten Signalgröße weiterschalten.
Ich weiß noch nicht genau was ich den State reinschreiben muss, damit dieser ständig den Wert ausgibt. Ausstieg ist kein Problem nur die Schleife macht mir Ärger. Muss man eine Transition zurückführen oder den Wert im State vergleichen oder gibt es vielleicht ein Jump?

Viele Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
ba6883
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 03.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.10.2012, 14:53     Titel:
  Antworten mit Zitat      
hi,

hat sich erledigt. Stell mich gerade etwas an.
Vor 10min hab ichs noch gelesen. Embarassed

Für was gibt es wohl: Entry, During und Exit ???!? Rolling Eyes Idea

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.