|
|
embedded Matlab code - Expected a scalar (if - Bedingung) |
|
steffen1187 |
Forum-Anfänger
|
|
Beiträge: 25
|
|
|
|
Anmeldedatum: 19.03.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.05.2012, 08:32
Titel: embedded Matlab code - Expected a scalar (if - Bedingung)
|
|
|
|
|
Guten Morgen zusammen
ich habe ein kleines Problem. Ich versuche folgendes zu erreichen (es handelt sich zunächst um ein vereinfachtes Beispiel): Ich habe zwei Werte, die sich zunächst unterscheiden. Über einen embedded Matlab - Function mit folgendem Code:
soll auf Basis der Differenz dieser Werte ein Faktor berechnet werden, der mit einem der Werte multipliziert wird, sodass diese sich nach und nach angleichen bis sie möglichst identisch sind. Das Simulink Modell ist in screen1.jpg (Anhang) zu sehen. Dieses vereinfachte Modell funktioniert auch genau so wie es soll.
In meinem ausführlicheren Simulink Modell (screen2.jpg, anhang) werden zwei Soll - Werte vorgegeben, die über verschiedene Kennfelder umgerechnet werden und aus denen sich so eine Summe ergibt, die von der "richtigen" Summe abweicht. Dies lässt sich in gegebenem Fall nicht vermeiden, tut für mein Problem auch nichts zur Sache. Der embedded code ist identisch zum vereinfachten Beispiel. Beim Ausführen wird folgende Fehlermeldung ausgegeben:
"Expected a scalar. Non-scalars are not supported in IF or WHILE statements, or with logical operators. Instead, use ALL to convert matrix logicals to their scalar equivalents.
Function 'Berechnung Faktor' (#99.138.156), line 8, column 4:
"abs(Delta_M) >=100"
Launch diagnostic report."
Ich habe mich in der Hilfe und auf google informiert und versucht das Problem zu beheben, komme jedoch nicht wirklich auf einen grünen Zweig. Ich hoffe jemand von euch kann mir helfen!
Grüße und Dankeschön
STeffen
Beschreibung: |
|
Download |
Dateiname: |
screen2.JPG |
Dateigröße: |
47.93 KB |
Heruntergeladen: |
785 mal |
Beschreibung: |
|
Download |
Dateiname: |
screen1.JPG |
Dateigröße: |
23.36 KB |
Heruntergeladen: |
815 mal |
|
|
|
|
|
cybbi |
Forum-Fortgeschrittener
|
|
Beiträge: 84
|
|
|
|
Anmeldedatum: 23.08.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: Alle
|
|
|
|
|
|
Verfasst am: 22.05.2012, 15:07
Titel:
|
|
Ich hab jetzt dein komplettes Modell und den weiteren Quellcode natürlich nicht da. Aber so wie ich das sehe, scheint dein Subsystem "Subsystem" einen Vektor / eine Matrix auszugeben (M_Ges_Ist). Kann das sein? Falls du dir da nicht sicher bist, klick mal auf "Format" --> "Port/Signal Displays" --> "Wide Nonscalar Lines".
Wenn die Linie dann nach erneutem Diagrammupdate fett erscheint, ist das tatsächlich ein Vektor / eine Matrix. Da hat dann natürlich das if-else statement ein Problem damit...
|
|
|
|
|
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.
|
|