|
FCD |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.07.2011, 16:04
Titel: Problem mit switch
|
|
Hallo Forengemeinde,
ich habe ein problem mit dem switch block.
in meinem modell wird ein winkel berechnet der dann mit einer konstanten verstärkt wird.daraus resultiert eine kraft. diese kraft ist an der position eins des switch blocks.
da der winkel positiv als auch negativ sein kann und auch durchaus von bedeutung ist, muss das vorzeichen beibehalten werden.
ist nun das ergebnis aus winkel mal konstante größer als 10^3 bzw kleiner als -10^3,
dann soll die kraft nach einer bestimmten vorschrift berechnet werden. diese geht in die position drei des switch blockes.
An die zweite position habe ich nun eine konstante mit 10^3 gesetzt.
mein problem ist nun, dass bei -10^3 nicht umgeschaltet wird.
wie kann ich diesen fall berücksichtigen.
oder ist es auf eine andere art und weise einfacher
Ich hoffe es kann mir einer von euch weiterhelfen. THX
Gruß
|
|
|
|
|
Georg J |
Forum-Century
|
|
Beiträge: 113
|
|
|
|
Anmeldedatum: 22.06.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2008a
|
|
|
|
|
|
Verfasst am: 18.07.2011, 18:59
Titel:
|
|
Hi FCD,
Kannst du deine Berechnung nicht einfach in ein Matlab M-File packen und dieses dann mit dem Simulink-Block "Matlab Fcn" aufrufen?
Gruss, Georg
|
|
|
FCD |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.07.2011, 11:57
Titel:
|
|
Hi Georg,
mein problem hierbei ist, dass die zweite berechnungsvorschrift in einem subsystem berechnet wird.
wie kann ich auf dieses in einer matlab datei verweisen
ich habe:
function Kraft = fcn(Winkel)
if (kraft >= -10^3) && (kraft <= 10^3)
Kraft = Konstante*Winkel
else
Kraft = "Berechnungsvorschrift nach subsystem"
end
|
|
|
Georg J |
Forum-Century
|
|
Beiträge: 113
|
|
|
|
Anmeldedatum: 22.06.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2008a
|
|
|
|
|
|
Verfasst am: 19.07.2011, 12:16
Titel:
|
|
|
|
|
HI FCD,
Es gibt zwei Möglichkeiten.
1. Du schreibst dein Subsystem ebenfalls als M-Funktion und rufst diese innerhalb der Karftberechnung auf
2. Du lässt dein Subsystem die Berechnung immer durchführen und gibst auch diesen Wert an die Kraft-Funktion weiter. Diese entscheidet dann, ob der Wert verwendet wird.
Da du das Subsystem ja schon fertig hast, bietet sich die 2. Variante an. Dann sparst du dir weitere Programmierarbeit. Die Kraftfunktion müsste dann etwa so aussehen:
In Simulink musst du dann bei den Matlab Fcn Block Parametern folgendes eintragen:
wobei u(1) = Winkel und u(2) = output Subsystem. Bei Bedarf könntest du die Konstante noch als dritten Funktionsparameter in den Funktionskopf mit hereinnehmen.
Da der Matlab Fcn Block nur einen Eingangsport hat, musst du die beiden Signale vorher mit einem MUX zusammenfügen. Der obere Port vom Mux ist dann u(1) und der untere u(2). Den Switch brauchst du nun nicht mehr. Das macht jetzt die Funktion Kraft.m.
Gruss, Georg
|
|
|
FCD |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.07.2011, 12:20
Titel:
|
|
Vielen Dank Georg
ich werde es dann gleich mal versuchen und berichten.
Gruß
|
|
|
Georg J |
Forum-Century
|
|
Beiträge: 113
|
|
|
|
Anmeldedatum: 22.06.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2008a
|
|
|
|
|
|
Verfasst am: 19.07.2011, 12:24
Titel:
|
|
Prima.
Ich hoffe, du hast bemerkt, dass ich die Variable prod noch in produkt umbenannt habe. Das war nämlich eine unbedachte Wahl, da prod bereits eine Funktion in Matlab ist.
Viel Erfolg!
|
|
|
|
|
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.
|
|