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

Variable Werte einer Matlab-Function in Simulink

 

MatlabErlerner
Forum-Century

Forum-Century


Beiträge: 104
Anmeldedatum: 26.06.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.07.2016, 12:51     Titel: Variable Werte einer Matlab-Function in Simulink
  Antworten mit Zitat      
Hallo zusammen,

ich habe folgendes Problem:
Ich habe ein ganz einfaches Simulink-Modell geschrieben, in welchem ich einen Matlab-Function-Block eingebaut habe.
In der Matlabfunktion habe ich eine 'persistent'-Variable definiert (vektor). Diese soll ein Vektor sein, der mit jedem Simulationsschritt um einen weiteren Eintrag (nämlich den neuen Eingangswert) erweitert wird.
Wenn ich das Model laufen lasse, dann bekomme ich allerdings eine Fehlermeldung:
Zitat:
Size mismatch (size [1 x 1] ~= size [2 x 1]).
The size to the left is the size of the left-hand side of the assignment.

Function 'MATLAB Function' (#254.107.113), line 10, column 1:
"vektor"
Launch diagnostic report.
Component: MATLAB Function | Category: Coder error


Wie löse ich diese Problem? Habt ihr Tipps bzw. Ideen, wie man das lösen kann?
Anbei habe ich das Model gehangen!

Beste Grüße
Max

Test.slx
 Beschreibung:

Download
 Dateiname:  Test.slx
 Dateigröße:  15.25 KB
 Heruntergeladen:  295 mal
Private Nachricht senden Benutzer-Profile anzeigen


MatlabErlerner
Themenstarter

Forum-Century

Forum-Century


Beiträge: 104
Anmeldedatum: 26.06.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.07.2016, 13:40     Titel:
  Antworten mit Zitat      
Achso, das habe ich vergessen zu erwähnen, wenn es Alternativen gibt (bspw. nicht über persistent-Variable zu gehen), dann bin ich auch dafür offen.

Beste Grüße! Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
MatlabErlerner
Themenstarter

Forum-Century

Forum-Century


Beiträge: 104
Anmeldedatum: 26.06.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.07.2016, 14:17     Titel:
  Antworten mit Zitat      
Hat denn niemand eine Idee, ich bräuchte wirklich dringend Hilfe, ich komme einfach nicht weiter Sad
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

mir ist keine Möglichkeit bekannt, die Dimension von vektor und y in einem MATLAB Function-Block dynamisch zu ändern.

Laut Forum-Knigge sollte man übrigens 24 Stunden warten, bevor man ein Thema pusht.
http://www.gomatlab.de/knigge-t27147.html
Für schnelle Antworten würde ich einen Anruf beim Technischen Support von MathWorks empfehlen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
MatlabErlerner
Themenstarter

Forum-Century

Forum-Century


Beiträge: 104
Anmeldedatum: 26.06.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.07.2016, 16:28     Titel:
  Antworten mit Zitat      
Vielen Dank Harald,

es tut mir Leid, aber ich war/bin total verzweifelt. Hast du denn eine alternative Lösungsmöglichkeit für das skizzierte Problem?

Beste Grüße
Max
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 18.07.2016, 16:58     Titel:
  Antworten mit Zitat      
Hallo,

du sammelst ja alle Werte. Sollen diese nun angezeigt, verarbeitet, oder visualisiert werden?

Wenn es um eine Verarbeitung der Daten geht, die nicht dynamisch passieren muss, dann könnte man die Daten in den MATLAB-Workspace schreiben (z.B. über Out-Blöcke) und dort nachverarbeiten.

Kann aber auch sein, dass es andere, mir nicht bekannte Möglichkeiten gibt. Wie gesagt, der Technische Support kann da wohl weiterhelfen.
Alternativ kannst du es noch auf MATLAB Answers versuchen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
MatlabErlerner
Themenstarter

Forum-Century

Forum-Century


Beiträge: 104
Anmeldedatum: 26.06.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.07.2016, 13:58     Titel:
  Antworten mit Zitat      
Hallo Harald,

genau ich sammele Werte, um diese dann dynamisch weiterzuverarbeiten. Ich brauch eigentlich immer wieder den im Matlab-Function-Block erstellten Vektor (aus u*9, und vektor) aus dem aktuellen Simulationsschritt im nächsten! Über einen Memory-Block hab ich es leider auch nicht hinbekommen, da sich dieser Vektor ja immer weiter erweitert (eine Grenze würde ich dann noch einbauen, sobald es wie gewünscht funktioniert).
Wie kann ich das sonst hinbekommen. Solltest du wirklich nicht weiter wissen, dann werde ich mal den Support von Matlab kontaktieren!

Grüße
Max
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.07.2016, 16:04     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Über einen Memory-Block hab ich es leider auch nicht hinbekommen, da sich dieser Vektor ja immer weiter erweitert (eine Grenze würde ich dann noch einbauen, sobald es wie gewünscht funktioniert).

Du willst also die letzten N Werte sammeln und dann irgendwann den jeweils ältesten ersetzen? Das wäre deutlich leichter als die ursprüngliche Problemstellung:
Code:
persistent vektor

if isempty(vektor)
   vektor = zeros(10,1);
end

y = [u*7; vektor(1:end-1)];
vektor = y;


Es ist übrigens etwas merkwürdig, wenn du drängelst und dir dann 4 Tage mit einer Reaktion Zeit lässt. Da bekommt man den Eindruck, dass es dann wohl doch nicht so dringend war.

Grüße,
Harald

P.S.:
Zitat:
Solltest du wirklich nicht weiter wissen, dann werde ich mal den Support von Matlab kontaktieren!

Dass ich evtl. eine Antwort auf eine Frage finden könnte, sollte niemanden davon abhalten, sich vom Technischen Support helfen zu lassen.
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 - 2025 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.