|
Driss |
Forum-Anfänger
|
|
Beiträge: 45
|
|
|
|
Anmeldedatum: 13.10.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.11.2010, 07:39
Titel: If Anweisung Simulink
|
|
Hallo Simulink Experten,
kann mir jemanden bitte helfen, wie ich die If Bedingung richtig einsetzen soll. Ich versuch mal gerade der Wert von y in Abhängigkeit von x abzulesen .
Also ich habe 2 Signale x und y, die von 135 bis 0 laufen. Mit der If Anweisung möchte ich an der Stelle wo x = 40 ist der Wert von y abfragen und wo anders benutzen.
Bitte helfen.
|
|
|
|
|
Lord nibbler |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.11.2010, 09:24
Titel:
|
|
Hallo Driss,
benutze einen Switch das ist einfacher.
1. Compare To Constant Block mit x als Eingang und 40 als Parametrierung
2. Bedinungungsport (2.Port) des Switches mit dem Ausgangssignal des Compare-Blocks verwenden.
3. Selbsterhaltungsschleife mit Ausgang Switch - 1/z - unterem Eingang des Switch aufbauen.
4. y mit erstem Eingang von Switch verbinden.
5. fertig.
Gruß Lord nibbler
|
|
|
Driss |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 45
|
|
|
|
Anmeldedatum: 13.10.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.11.2010, 09:59
Titel:
|
|
Hallo nibbler,
erst mal danke schön für die Antwort. Ich habe es aber nicht genau verstanden. Kanst du mal bitte mehr erläutern.
Der erste Ansatz mit dem Compare Block werden die X-Werte mit 40 verglischen. dh 1 oder 0 das ist Ok. Das verbinde ich mit dem Switch Block als Bedingungsport ist auch Ok. Der erste Port vom Switch ist mit dem Y verbunden ist Ok. Aber der 3 Anstz mit der 'Selbsterhaltungsschleife mit Ausgang Switch - 1/z -' verstehe ich nicht.
Der Block hat einen Eingang und einen Ausgang!
Kanst du mir bitte erklären, wie ich somit den Wert von Y(x ==40) bekommen kann?.
Der Switch ist mit ~=0 als Bedingung gesetzt.
Danke noch mal
Gruß Driss
|
|
|
Lord nibbler |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.11.2010, 10:12
Titel:
|
|
Hallo Driss,
also du verbindest den ausgang des sitch mit einem 1/z-Block (auf die SampleTime -1 achten) und verbindest diesen wiederum mit dem dritten eingang des switches, wenn du jetzt den ausgang des switches mit einer abzweigung nochmal abgreifst hast du das gesuchte signal (y-wert bei x= 40)
Gruß Lord nibbler
|
|
|
Driss |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 45
|
|
|
|
Anmeldedatum: 13.10.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.11.2010, 10:30
Titel:
|
|
Hallo nibbler,
wie soll bitte die Switch-Bedingung eingestellt werden, wenn ich das so auf der Reihenfolge bauen soll? und was meinst du mit abzweigung?
Gruß
Driss
|
|
|
Lord nibbler |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.11.2010, 11:15
Titel:
|
|
Bedingung u2~=0 ist genau richtig.
Das Signal nach dem Switch ist dann das was du suchst.
Eine Abzweigung kannst du in Simulink so erreichen Maus auf signallinie rechte Maustaste drücken, halten und dahin ziehen wo man möchte.
Gruß Lord nibbler
|
|
|
Driss |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 45
|
|
|
|
Anmeldedatum: 13.10.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.11.2010, 11:31
Titel:
|
|
ja du hast recht aber leider es funktioniert in meinem Modell nicht, sonder nur wenn ich es extern ausbrobiere.
Ich glaube, dass es daran liegt, dass die X,Y Werte dynamisch sehr schnell lalufen. Oder was meinst du. Das Modell beschreibt einen Antrieb, der in den letzten 40 mm sehr schnell gebremst wird.
Gibt es da eine andere Möglichkeit.
Ich wäre sehr dankbar
Gruß
Driss
|
|
|
Lord nibbler |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.11.2010, 12:01
Titel:
|
|
dann solltest du dir überlegen ob eine überprüfung auf x == 40 sinnvoll ist oder nicht besser ein <=40 oder abs(x-40)<5 oder oder oder, dass must du aus der Anwendung entscheiden. Wenn dein x natürlich nie genau 40 ist dann ist die Bedingung nie wahr.
Gruß Lord nibbler
|
|
|
Driss |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 45
|
|
|
|
Anmeldedatum: 13.10.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.11.2010, 16:19
Titel:
|
|
Hallo nibbler,
ich danke dir sehr für die Helfe. Eine Frage noch, kann ich auch mit diesen Ansatz (x >=, <= ....) dabei der Wert von x auch abfragen.
Danke noch mal
Gruß
Driss
|
|
|
Lord nibbler |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 25.11.2010, 08:47
Titel:
|
|
Hallo Driss,
natürlich kannst du in dem compare auch <= oder >= einstellen, du kannst auch kompliziertere Logiken mit mehreren Blöcken aufbauen.
Gruß Lord nibbler
|
|
|
|
|
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.
|
|