Verfasst am: 27.11.2022, 13:28
Titel: ToWorkspace: verschiedene Array-Größen korrigieren
Hallo Liebe Community!
Was Matlab und Simulink angeht, bin ich noch eher Anfänger. Die Frage bezieht sich auf eine Prüfungsaufgabe einer Fern-Uni, die ich so leider nicht veröffentlichen darf.
Es geht um einen RL-Kreis, der in Simulink als Blockschaltbild simuliert werden soll, und von einem Matlab-Script aus gesteuert wird.
%Simulationsparameter und Simulation
sim_parameter=simset('Solver','ode5','FixedStep',1e-04));
Tsim=2; %Simulationsdauer in Sekunden
simOut=sim('tester_mod', Tsim, sim_parameter);
t=simOut.tout; %Das mache ich, um auf die Daten des Array "tout" vom SimModell zugreifen zu können
i=simOut.i; %dito
%Darstellen der Simulationsergebnisse
figure(1),
plot(t,i,'k'), hold on, grid on,
xlabel("Zeit t/s"),
ylabel("Strom i/A"),
Mein Problem ist nun, dass mir mein Simulationsmodell mit dem Block "ToWorkspace" ein Array für den Strom i ausgibt, mit der Größe 2001x1 double, und ein Array für die Simulationszeit tout, mit der Größe 20001x1 double. Wenn ich nun i und t plotten möchte, dann geht das natürlich nicht, weil die beiden Array's nicht die gleiche Größe haben. Aber wie kann ich dieses Problem umgehen?
Falls noch jemand eine elegantere Lösung hat, um auf die Daten vom "ToWorkspace"-Block zuzugreifen, freue ich mich sehr über eure Tipps.
Im Anhang habe ich euch ein paar Screenshots eingefügt.
ich hätte eigentlich erwartet, dass die Längen zusammenpassen.
Wenn sie das nicht tun, muss man wissen, wie die 2001 Werte zu den 20001 Werten gehören, um das zu korrigieren. Ein (ggf. abgespecktes) Beispielmodell, in dem das Problem auftritt, wäre hilfreich.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Error in task2_dat (line 22)
plot(x,i,'k'), hold on, grid on,
Wo sollen denn x und i herkommen?
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
das ist so, weil du es so gesetzt hast.
Als FixedStep hast du 1e-4 vorgegeben, im ToWorkspace Block tStep = 0.001 = 1e-3. Wenn du die Einstellung im Block auf -1 (inherited) lässt, dann sind die Längen gleich und es gibt kein Problem beim Plotten.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
die Lösung kann manchmal so einfach sein ( hat auch funktioniert).
Dankeschön
LG Sonja
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
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.