|
|
bitte um Hilfe bei Signal-Displays |
|
mat_macs |
Forum-Anfänger
|
|
Beiträge: 26
|
|
|
|
Anmeldedatum: 27.09.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 27.09.2010, 16:12
Titel: bitte um Hilfe bei Signal-Displays
|
|
|
|
|
Hallo liebe Leute,
bin absoluter Matlab-Simulink Anfänger und brauche dringend Hilfe...Ich arbeite an einem Beleg und habe ein Simulink-Modell, was an sich gut funktioniert. Nun will mein Betreuer, dass ich quasi alle Eingaben/Eingangswerte (In1....10) bzw Anfangswerte wie Zeit, Geschwindigkeit, Kraft usw in die oberste Schicht meines Modells in eine Art Box bringe, indem er diese sieht und durch Anklicken auch verändern kann.
Er will quasi meine Eingangsgrößen, die z.T. erst in den Subsystemen zum Einsatz kommen und auf der obersten Schicht nicht zu sehen sind, oder die Sample Time meiner PID-Controller alles übersichtlich haben, sobald er das Modell öffnet.
Dazu dachte ich mir, dass ich das halt irgendwie aus einem M-file generiere, nur weiß ich nicht wie. ICh stelle es mir so vor, dass ich im m-file einen Befehl eingebe, dass der jeweilige Wert z.B. per Display-Symbol im Simulink-Modell dargestellt wird. Noch besser wäre es jedoch, wenn ich dann direkt in dem Kästchen den Wert noch verändern könnte und dies auch gleich noch im m-file aktualisiert wird.
Ich dachte erst an sowas wie goto und from, aber das funktioniert ja bei bestimmten Reglerparametern nicht. Und ich weiß nicht, wie die Kommunikation zwischen m-file und Simulink-Modell funktioniert.
Ich bitte euch um Hilfe, ich stehe ziemlich unter Zugzwang und komme zwecks nicht so guter Englisch- und fehlender Matlab-Kenntnisse nicht so zurecht...
Danke schon im Voraus!
Liebe Grüße an alle, die mir helfen wollen.
Horst[/b]
PS: Ihr würdet mir auhc schon helfen, wenn ihr mir sagt, welchen Begriff ich in der Hilfe eingeben muss!
|
|
|
|
|
Lord nibbler |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.09.2010, 08:01
Titel:
|
|
|
|
|
Hallo mat_macs,
mir ist noch nicht ganz klar was du bzw. dein Betreuer wollen.
Man kann bei Simulink zwischen zwei Arten von Parametern unterscheiden.
- Parameter, die man als Signal von aussen zuführen kann
- Parameter, die NUR über den Blockdialog oder andere Modelleinstellungen veränderbar sind.
Erstere kannst du alle als normale Signale rausziehen und auf oberster Ebene mit Hilfe von Constant-Blöcken definieren, die man ja dort dann auch sehr einfach ändern kann.
Letztere lassen sich so nicht behandeln und müssen meist auch fest für einen gegebenen Simulationslauf sein. Diese müssen aber auch keine festen Zahlenwerte besitzen sondern können über eine Workspace-Variable befüllt werden, sodass man bspw. über ein m-Skript diese Parameter setzen kann. Typisches Beispiel wäre die SampleTime in verschiedenen Blöcken. Möchte man ALLE Parameter eines Modells auf oberster Ebene anzeigen lassen sind das schnell mehrere tausend Werte bei denen 98% auf default-Werten steht. Da findet man unter Garantie nicht mehr die gesuchten Werte.
Ich würde also nur Parameter der ersten Art auf die oberste Ebene ziehen und diese dort veränderbar machen.
Gruß Lord nibbler
|
|
|
mat_macs |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 26
|
|
|
|
Anmeldedatum: 27.09.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.09.2010, 11:23
Titel:
|
|
|
|
|
Hallo Lord Nibbler,
erst einmal vielen Dank für deine Antwort. Ich entnehme deinem Post also, dass es nicht möglich ist, im m-file also eine Variable t=0.045s und v=100m/s zu definieren und im Simulink-Modell dann den Display-Block oder den Scope-Block zu nutzen, um das t und das v zu sehen (damit man halt genau auf den ersten Blick sieht, mit welchen Variablen das Modell gerade läuft)?
Gut dann dafür erst einmal vielen Dank, dass du mich zu dieser Erkenntnis gebracht hast.
Naja, wenn ich deine erstere Möglichkeit nun verwenden würde, dann müsste ich doch aber den Constant-Block mit irgendeiner Operation (FCN-Block, oder halt irgendeinem Prozess) per Pfeil verbinden, oder? Sonst ist doch der Ausgang nicht belegt und dies würde doch sicher als Fehler angezeigt. Gut, für das v zB kann man dann ja mit goto und from arbeiten, aber für die Reglerparameter Kp, Ki, Kd und t?
Na gut, aber die erste Frage meinerseits scheint beantwortet zu sein, dafür wirklich danke! Dann versuche ich jetzt noch einmal mir eine andere Art zu überlegen und falls du mein Problem jetzt klar vor Augen hast und evtl. eine Lösungsmöglichkeit weißt, bitte ich dich, mir noch einmal kurz bescheid zu geben. Vielen Dank nochmals und einen schönen Tag!
Gruß,
Horst
|
|
|
LittleX |
Forum-Guru
|
|
Beiträge: 494
|
|
|
|
Anmeldedatum: 14.05.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.09.2010, 11:54
Titel:
|
|
Hallo,
also wenn Du die Modellparameter zentral anzeigen und auch verändern möchtest würde ich in MATLAB eine grafische Oberfläche erstellen (siehe dazu auch das Tool guide)
Andere Möglichkeit: Gerade wenn Du Deinen Regler in ein Subsystem packst, kannst Du das Subsystem auch sehr schön maskieren und z.B. als Anzeige die Parameter ausgeben lassen. Über die Maske können die Reglerparameter dann auch verändert werden. (siehe in der Doku masked subsystem)
Das Modell mit unzähligen Constant und Display Blöcken zuzukleistern, nur um die Werte zu sehen, würde ich nicht machen.
Wenn ein Block einen nicht verbundenen Ausgang hat bekommst Du eine Warnmeldung in MATLAB. Es gibt unter Sinks auch einen Terminator Block.
Viele Grüße,
LittleX
|
|
|
Lord nibbler |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.09.2010, 11:57
Titel:
|
|
Hallo mat_macs,
natürlich kannst du die Variable t die im Workspace liegt in einem Constant-Block verwenden und dieses Signal in einem Scope oder einem Display anschauen. Oder du kannst dir über die Maske eines leeren Subsystems solche Infos anzeigen lassen.
Jetzt kommt es darauf an wie du Kp verwendest ist ein Eingang i zu einem Block? Dann kannst du diesen mit einem Signal belegen, das du durch alle Hierarchiebenen mittel Inports von der obersten Ebene bis zu dem benötigten Block ziehst. Wenn es ein Wert ist, denn du nur in einem Dialog angeben kannst fällt diese Möglichkeit weg dann gibt es eben noch die Möglichkeit diese Variablen im Worksapce zum Beispiel über ein m-Skript zu definieren und sie an den entsprechnden Stellen zu nutzen.
Wenn sich die Anzahl dieser Variablen in Grenzen hält spricht natürlich nichts dagegen sie wie oben beschrieben in Constant-Blöcken auszugeben.
Gruß Lord nibbler
|
|
|
mat_macs |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 26
|
|
|
|
Anmeldedatum: 27.09.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 30.09.2010, 09:46
Titel:
|
|
danke Jungs! Das hat geholfen!!
Tausend Dank!
|
|
|
|
|
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.
|
|