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

Mask Editor Parameter Einstellungen. Initialisieren?

 

freddy
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 17.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.10.2013, 18:52     Titel: Mask Editor Parameter Einstellungen. Initialisieren?
  Antworten mit Zitat      
Hallo Leute,

ich bin noch ganz neu in der Erstellung von Modellen mittels Simulink. Daher denke ich, dass meine Frage für euch kein Problem darstellen wird.
Also:
Ich bastle gerade an einer eigenen Bibliothek, und verwende für meine Modelle die MATLAB Functions. Dort kann ich ja eine Maske editieren, und unter "Paramters" meine Parameter eintragen, d.h. ich weise einer Variablen den Namen "c" zu.
Dieses "c" soll die Ausgangsvariable meines MATLAB Function Blocks sein, und keinen Eingang besitzen.
Code:


Nun schließe ich einen Scope an meiner MATLAB Function an, und definierte die Variable mittels Doppelkick auf die Funktion, gebe einen Wert ein, und lasse die Simulation laufen.

Allerdings bringt mir Simulink immer einen Fehler:
Output argument 'c' is not assigned on some execution paths.

Muss ich den Parameter "c" nochmals irgendwo initialisieren?
Ich dachte, Simulink versteht das, wenn ich in der Maske eine Variable eingebe, und diese dann selbst initialisiert.
Oder wo liegt mein Fehler?
Ach ja, verwende MATLAB 2013a.

Danke für eure Antwort(en)!!

Gruß
freddy
Private Nachricht senden Benutzer-Profile anzeigen


knilumis_baltaM
Forum-Century

Forum-Century


Beiträge: 241
Anmeldedatum: 20.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.10.2013, 08:14     Titel:
  Antworten mit Zitat      
Ganz kurz nochmal:
Du hast eine m-File erstellt die eine Ausgabe hat. Diese m-File willst du jetzt im Matlab Function Block aufrufen?

Kannst du Inhalt der m-File zeigen?
Private Nachricht senden Benutzer-Profile anzeigen
 
freddy
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 17.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.10.2013, 10:01     Titel:
  Antworten mit Zitat      
Erstmal danke für deine schnelle Antwort.

Ich habe im Endeffekt kein eigenes m-file erstellt. Ich mach das direkt mit Simulink. Dort rechtsklicke ich auf die MATLAB Function und gehe unter "Mask"-> "Look under Mask" und gebe dort meinen Code ein.

Um alles einfach zu halten, habe ich jetzt den Code aus der Function rausglöscht, und die Function sieht jetzt so aus, wie in meinem ersten Beitrag, also komplett leer.
Die Parameterübergabe von meiner MATLAB Function an den nächsten Block soll durch die Eingabe in der Maske erfolgen. D.h. "c" soll in der Maske eingegeben werden, und dann an den nächsten Block übergeben werden.

Ich weiß, klingt jetzt etwas unlogisch, aber ich versuche gerade, meine function Schritt für Schritt aufzubauen.

Abgespeichert wird meine Komponente als slx-Datei.

Wichtig ist mir in erster Linie, warum Simulink der Variablen "c" keinen Wert zuweist, obwohl das doch in der Maske geschieht.

Mask Editor.jpg
 Beschreibung:
Hier der Mask Editor, bei dem nur der Paramter "c" definiert werden soll.

Download
 Dateiname:  Mask Editor.jpg
 Dateigröße:  113.37 KB
 Heruntergeladen:  798 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
knilumis_baltaM
Forum-Century

Forum-Century


Beiträge: 241
Anmeldedatum: 20.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.10.2013, 10:22     Titel:
  Antworten mit Zitat      
Ok, dachte du hast von einer "Interpreted Matlab function" (in alter Matlab Version war das die Matlab Function) geredet.

Leider weiß ich immer noch nicht wo dein Problem ist. Ich habe hier nur Matlab 2012 und hier kann ich der Matlab Function keine Mask verpassen, ist wohl bei 2013 anders. Aber wenn ich die Matlab Function in ein Subsystem lege und dem Subsystem eine Maske mit dem Parameter c gebe, dann kann ich den Parameter in der Matlab Function verwenden. Du musst bei der Matlab function auf "Edit Data" (im Editor) gehen und da den Eingang c auf Parameter setzen.
Private Nachricht senden Benutzer-Profile anzeigen
 
freddy
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 17.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.10.2013, 12:03     Titel:
  Antworten mit Zitat      
Sorry, aber ich kann den Parameter unter "Edit" nicht einstellen.
Ich glaube auch, dass meine Erläuterungen etwas schwammig waren.
Ich versuchs mal mit einem neuen, einfachen Beispiel. Dafür habe ich ein Bild angehängt.

Bild 3 zeigt mein einfaches Modell. Die Konstante "1" soll an meine Matlab Function übergeben werden.

Bild 1 zeigt den Code meiner Funktion
Code:
function aus = test(ein)
%#codegen
aus=ein+parameter1;
end
Funktion ohne Link?

Dabei soll der Eingang (also die Konstante 1) mit einem Parameter (Parameter1) addiert, und dann an den Ausgang weitergegeben werden. Das Ergebnis soll auf dem Display angezeigt werden.

Bild 4 zeigt meine Maske der Matlab Function. Hier gebe ich an, dass der Parameter1 abgefragt werden kann, wenn man auf die Matlab Function doppelklickt.

Bild 5 hier kann ich dann meinen Paramter eigeben (der eingegebene Werte soll nun Parameter1 zugewiesen werden)

Bild 2 zeigt dann meine Fehlermeldung: "Undefined function or variable 'parameter1'."

Anscheinend kann die Maske von Bild 4 dem Parameter nicht zuweisen.
Muss ich irgendwo noch den Paramter initialisieren? Sorry, aber ich beschäftige mich erst seit einer Woche mit Simulink.

Präsentation1.jpg
 Beschreibung:

Download
 Dateiname:  Präsentation1.jpg
 Dateigröße:  96.67 KB
 Heruntergeladen:  847 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
knilumis_baltaM
Forum-Century

Forum-Century


Beiträge: 241
Anmeldedatum: 20.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.10.2013, 12:10     Titel:
  Antworten mit Zitat      
Du musst den Code in deiner Matlab Function noch anpassen, dann Parameter1 als Parameter kennzeichnen. Siehe Bild.

asfd.png
 Beschreibung:

Download
 Dateiname:  asfd.png
 Dateigröße:  130.22 KB
 Heruntergeladen:  912 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
freddy
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 17.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.10.2013, 12:59     Titel:
  Antworten mit Zitat      
JAAAAA!!

Genau so hab ich mir das vorgestellt!!

Vielen Dank für deine Arbeit und Geduld mit mir!!
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.