Der Code, den ich verwendet habe, ist einfach.
Code: Select all
simIn = Simulink.SimulationInput("Model");
simIn = simulink.compiler.configureForDeployment(simIn);
simIn = setModelParameter(simIn,RapidAcceleratorUpToDateCheck="on");
input1 = 1;
simIn = setVariable(simIn, "input1" , input1);
simOut = sim(simIn);
Funktion oder Variable „input1“ wurde nicht erkannt.
Fehler bei der Verwendung von buildRacTarget
Variable „input1“ wurde aus dem Basisarbeitsbereich gelöscht.
Die einzige Möglichkeit für mich, diesen Fehler zu verhindern, besteht darin, die Variable vorher im Befehlsfenster zu definieren, d. h. vor dem Ausführen von Anwendungs-Compiler zum Erstellen der ausführbaren Datei. Dies ist jedoch für meine Zwecke keine nützliche Lösung.
Ich habe mehrere Ansätze ausprobiert, wie zum Beispiel:
[*]Verwendung von Evalin und Zuweisen von Funktionen
[*]Verwenden eines zweiten Matlab-Skripts namens initial.m, das die Variable input1 definiert und sie dann an ein .m übergibt (das ein Funktionsskript mit der Definition function model(input1 ist). ), das die definiert Simulink.SimulationInput-Objekt und führt das Simulink-Modell aus. Auch dies funktioniert perfekt in Matlab und Simulink, kann aber nicht in eine ausführbare Datei kompiliert werden.
Diese Ansätze haben jedoch nicht funktioniert.
< /ol>
Meine Frage ist, wie kann ich das Problem beheben? Warum wird die in der .m-Datei definierte Variable gelöscht, wenn sie in Matlab und Simulink ausgeführt wird?
Ich hoffe, Sie können mir helfen.
Frohe Feiertage!