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

Skript zur Erstellung von Simulink Parameter

 

albiknalltuete
Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 27.08.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.01.2018, 09:22     Titel: Skript zur Erstellung von Simulink Parameter
  Antworten mit Zitat      
Hallo,

ich muss viele Simulink Parameter im Workspace erstellen und wollte das etwas automatisieren. Ich möchte in Matlab ein Skript schreiben, welches ich ausführen und die gewünschten Daten eingeben kann, z.B. Name, Beschreibung, Wert, Max, Min, etc. Danach wird der entsprechende Parameter erstellt.

Ich orientiere mich an dieser Doku von MathWorks:
https://de.mathworks.com/help/simulink/slref/parameter.html

Wenn das eher in Simulink passt, dann bitte verschieben.

Meine Idee sieht folgendermaßen aus:
Code:
% Definition der Werte
para_name = input ('Name des Simulinkparameters\n','s');    % Name
para_desc = input ('Beschreibung des Parameters\n','s');    % Beschreibung
para_value = input ('Wert des Parameters\n');               % Zahlenwert

% Wenn kein Wert eingegeben wird, dann muss die Dimension des Parameters
% angegeben werden
para_value_empty = isempty(para_value);
if para_value_empty == 1
    para_dim_row = input ('Anzahl der Reihen\n');           % Anzahl der Reihen des Vektors
    para_dim_col = input ('Anzahl der Spalten\n');          % Anzahl der Spalten des Vektors
else
                                                            % ohne Funktion
end

para_max = input ('Maximaler Wert des Parameters\n');       % max. Zahlenwert
para_min = input ('Minimaler Wert des Parameters\n');       % min. Zahlenwert
para_unit = input ('Einheit des Parameters\n');             % Einheit

% Erstellung des Parameters im Workspace
...


Bei der Erstellung habert es jetzt. Es stellt sich mir die Frage, wie soll ich den Befehl:
Code:
paramObj = Simulink.Parameter


ausführen soll, denn wenn ich para_name für paramObj einsetze, dann erstellt es mir einen Parameter mit dem Namen para_name. Das scheint nicht der richtige Weg zu sein.
Danach dachte ich, ich erstelle einen Paramater mit

Code:
myParam = Simulink.Parameter


und ändere dann den Namen analog zu myParam.Value = xx mit myParam.Name = xx. Das funktioniert auch nicht.

Wie kann ich das Problem lösen?
Private Nachricht senden Benutzer-Profile anzeigen


albiknalltuete
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 27.08.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.01.2018, 13:29     Titel: dynamische Bennung nicht gewollt
  Antworten mit Zitat      
Ich habe versucht Ansätze zu finden, aber die laufen immer darauf hinaus, dass ich die dynamische Variablenerstellung nutzen müsste, was nicht gewollt und uneffizient ist.

Gibt es eine Möglichkeit die Simulink.Parameter mit Code umzubennen, wie es im Model Explorer möglich ist?

Warum ich das ganze mache: Ich muss über 100 Simulink.Parameter erstellen -.-
Private Nachricht senden Benutzer-Profile anzeigen
 
Teutone

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.01.2018, 17:32     Titel: Warum nicht evalin?
  Antworten mit Zitat      
Ich würde die drei Pünktchen ersetzen durch:
Code:
assignin('base', param_name, Simulink.Parameter)


Wenn allerdings die Simulink.Parameter in ein Simulink Data Dictionary wandern sollen, dann erklärt die Hilfe zu Simulink.data.assigninGlobal, wie das geht.
 
albiknalltuete
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 27.08.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.01.2018, 09:24     Titel: Re: Warum nicht evalin?
  Antworten mit Zitat      
Teutone hat Folgendes geschrieben:
Ich würde die drei Pünktchen ersetzen durch:
Code:
assignin('base', param_name, Simulink.Parameter)


Wenn allerdings die Simulink.Parameter in ein Simulink Data Dictionary wandern sollen, dann erklärt die Hilfe zu Simulink.data.assigninGlobal, wie das geht.


Damit nutze ich doch wieder Befehle, die nicht der "best practice" entsprechen?!
Ich lese immer nur, dass man kein eval() und kein assignin() nutzen soll, aber finde leider auch keine Alternativen, wie man es besser macht.

Die Simulinkparameter müssen im Base Workspace stehen. Das ist die Vorgabe der Toolbox, die die Variablen und das Simulinkmodell dann in maschinen Sprache übersetzt um es auf einem eingebetteten System zu nutzen.

Vielleicht hat ja noch jemand eine Idee, sonst werde ich assigin() nutzen müssen oder alle Paramter händisch eingeben. Shocked Crying or Very sad
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.