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

ToWorkspace: verschiedene Array-Größen korrigieren

 

sun-J
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 08.10.22
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.11.2022, 14:28     Titel: ToWorkspace: verschiedene Array-Größen korrigieren
  Antworten mit Zitat      
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.

Mein Matlab-Script sieht momentan so aus:
Code:
U=12;
R1=1; %Ohm
R2=1; %Ohm
L=1; %Henry
tStep=0.001; %Sekunden, Zeitabstände

%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.

Danke und LG Sonja

Matlab_Frage.pdf
 Beschreibung:

Download
 Dateiname:  Matlab_Frage.pdf
 Dateigröße:  171.44 KB
 Heruntergeladen:  135 mal
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 27.11.2022, 18:47     Titel:
  Antworten mit Zitat      
Hallo,

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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
sun-J
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 08.10.22
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.11.2022, 19:23     Titel:
  Antworten mit Zitat      
Hi,

anbei mal mein Code + SimLink-Modell.

LG Sonja

task2_mod.mdl
 Beschreibung:

Download
 Dateiname:  task2_mod.mdl
 Dateigröße:  61.48 KB
 Heruntergeladen:  119 mal
task2_dat.m
 Beschreibung:

Download
 Dateiname:  task2_dat.m
 Dateigröße:  495 Bytes
 Heruntergeladen:  162 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 28.11.2022, 21:43     Titel:
  Antworten mit Zitat      
Hallo,

das erzeugt die Fehlermeldung:
Zitat:
Unrecognized function or variable 'x'.

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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
sun-J
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 08.10.22
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.11.2022, 23:14     Titel:
  Antworten mit Zitat      
Hi,

ich habe testweise die Simulationsergebnisse in zwei Variablen zwischengespeichert:

Code:
t=simOut.tout;
i=simOut.i;


und erhalte hier dann als Fehlermeldung
Code:
Error using plot
Vectors must be the same length.

Error in tester_dat (line 20)
 plot(t,i,'k'), hold on, grid on,


Anbei noch einmal meine Testfile, die diesen Fehler schmeißt.

Gruß, Sonja

tester_mod.slx
 Beschreibung:

Download
 Dateiname:  tester_mod.slx
 Dateigröße:  27.22 KB
 Heruntergeladen:  122 mal
tester_dat.m
 Beschreibung:

Download
 Dateiname:  tester_dat.m
 Dateigröße:  420 Bytes
 Heruntergeladen:  129 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.11.2022, 10:10     Titel:
  Antworten mit Zitat      
Hallo,

das ist so, weil du es so gesetzt hast. Wink
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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
sun-J
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 08.10.22
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.11.2022, 18:37     Titel:
  Antworten mit Zitat      
Hallo Harald,

die Lösung kann manchmal so einfach sein ( hat auch funktioniert).

Dankeschön Smile

LG Sonja
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.