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

CSV-Datei zum Modell einbinden über Lookup Table

 

Will-i-am
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 16.07.19
Wohnort: Hannover
Version: ---
     Beitrag Verfasst am: 16.07.2019, 14:42     Titel: CSV-Datei zum Modell einbinden über Lookup Table
  Antworten mit Zitat      
Hi Zusammen,

ich habe vor einigen Wochen mit Matlab/Simulink angefangen, und ich konnte dank der Beiträgen dieses Forums schön einsteigen. Schon mal danke dafür!!!
Ich möchte nun im Rahmen meiner Abschlussarbeit ein vorhandenes Modell erweitern: Es sollen Messwerten übertragen werden, die in verschiedenen CSV-Dateien gespeichert sind.
Mein Ansatz ist es eine Skript-Datei zu erstelle, welche das Laden eine beliebige CSV-Datei.
Code:
clear all
close all
%Datei aus Dialog Fenster auswählen
[csvfile,path2csv] = uigetfile('*csv', 'Bitte Datei auswählen');
%Einlesen der Datei
handles.ExcelFile = fullfile(path2csv,csvfile);
File = csvread(handles.ExcelFile,1,0);
%Parameter-Einträge zuweisen
Parameter_Time = File(:,1);
Parameter_Voltage = File(:,2);


Die Variable „Parameter_Time“ und „Parameter_Voltage“ werden in der Workspace generiert und in der Datei Set_Parameter.mat gespeichert (siehe Anhang). Diese Variable setze ich dann als Parameter der Lookup Table.
Es kommt aber dabei folgende Fehlermeldung:
Invalid setting in .../../../1-D Lookup Table' for parameter 'BreakpointsForDimension1'.
Error evaluating parameter 'BreakpointsForDimension1' in ../../../1-D Lookup Table'
Undefined function or variable 'Parameter_Time'.

ich dachte, es liegt vielleicht daran, dass die Lookup Table nach seinen Parametern sucht, bevor die Skript-Datei ausgeführt wird. Deswegen habe ich eine Funktion mit einer if-Abfrage dazu gepackt (siehe test.slx im Anhang). Aber ich bekomme genau den gleichen Fehler.

Kann mir jemand bitte weiterhelfen?
Hinweis: Das eigentliche Modell wird später über ConfigurationDesk kompiliert, und anschließend in ControlDesk von implementiert.

test.slx
 Beschreibung:

Download
 Dateiname:  test.slx
 Dateigröße:  24.26 KB
 Heruntergeladen:  202 mal
Set_Parameter.mat
 Beschreibung:

Download
 Dateiname:  Set_Parameter.mat
 Dateigröße:  609 Bytes
 Heruntergeladen:  200 mal
Set_Adress_Parameter.m
 Beschreibung:

Download
 Dateiname:  Set_Adress_Parameter.m
 Dateigröße:  353 Bytes
 Heruntergeladen:  226 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: 17.07.2019, 12:11     Titel:
  Antworten mit Zitat      
Hallo,

um die Daten zu laden, würde ich einen Model Callback verwenden:

File --> Model Properties --> Model Properties --> Callbacks

und dann z.B. den Code aus der MATLAB Function in die InitFcn schreiben.

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
 
Will-i-am
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 16.07.19
Wohnort: Hannover
Version: ---
     Beitrag Verfasst am: 17.07.2019, 13:28     Titel:
  Antworten mit Zitat      
Hallo Harald,
danke für deine Antwort.

Harald hat Folgendes geschrieben:
dann z.B. den Code aus der MATLAB Function in die InitFcn schreiben.


Wenn ich den Code aus der MATLAB Function in der Callback InitFcn schreibe, bekomme ich folgende Fehlermeldung:
Error evaluating 'InitFcn' callback of block_diagram 'test'.
Caused by:
Error: Function definitions are not permitted in this context.

Hier den Code der Funktion:
Code:
function [Parameter_Time, Parameter_Voltage,trigger] = fcn(u)
%#codegen
switch  u
    case 0
        disp('CASE 0 WIRD AUSGEFÜHRT')
        Parameter_Time_str=load('Set_Parameter.mat','Parameter_Time');
        Parameter_Time=Parameter_Time_str(1).Parameter_Time(:);


        Parameter_Voltage_str=load('Set_Parameter.mat','Parameter_Voltage');
        Parameter_Voltage=Parameter_Voltage_str(1).Parameter_Voltage(:);
   
    otherwise
        disp('ERROR: Falscher Parameter im functionblock der Time und Voltage für die Lookuptable des Toelner bereitstellt')
       
end


trigger=1;

Es fehlt mir leider nichts anderes ein, wie die Funktion definieren kann.

Gruß,
William
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: 17.07.2019, 14:02     Titel:
  Antworten mit Zitat      
Hallo,

ich meinte nicht den kompletten Code, sondern nur das Definieren der Parameter, also:

Code:
       Parameter_Time_str=load('Set_Parameter.mat','Parameter_Time');
        Parameter_Time=Parameter_Time_str(1).Parameter_Time(:);


        Parameter_Voltage_str=load('Set_Parameter.mat','Parameter_Voltage');
        Parameter_Voltage=Parameter_Voltage_str(1).Parameter_Voltage(:);


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
 
Will-i-am
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 16.07.19
Wohnort: Hannover
Version: ---
     Beitrag Verfasst am: 17.07.2019, 14:49     Titel:
  Antworten mit Zitat      
Hallo Harald,

es hat gut funktioniert. Ich habe hier wieder was neues gelernt, vielen Dank!!!

Leider konnte dieser Ansatz das eigentliche Problem nicht lösen. Ich probiere es anders. Wenn ich nicht weiter komme, werde vielleicht ich einen anderen Beitrag erstellen.

Gruß,
William
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: 17.07.2019, 15:20     Titel:
  Antworten mit Zitat      
Hallo,

doofe Frage: was ist das eigentliche Problem?
Warum die Variablen nicht verfügbar sind? Weil die Funktion einen eigenen Workspace hat.

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
 
Will-i-am
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 16.07.19
Wohnort: Hannover
Version: ---
     Beitrag Verfasst am: 17.07.2019, 17:51     Titel:
  Antworten mit Zitat      
Hi Harald,

mein Ziel ist es eine Modell basierte GUI(controldesk) zu erweitern.
Ich möchte die Variable „Parameter_Time“ und „Parameter_Voltage“ die im Modell schon vorhanden sind mit den Werten aus einer freiwählbare Excel-Tabelle ausfüllen. Werte können derzeit über Eingabefelder auf der GUI manuell eingestellt werden, und sprechen so die Variable an. Das will ich ändern, z.B. über ein Bouton ein Dialog-Fenster aufrufen, wo ich die gewünschte Tabelle auswählen kann.
Dazu habe ich auf einem Multiplexer einen zusätzlichen Port gefügt, wo ich das Signal aus dem Lookup Table senden wollte (siehe erste Beitrag). Das kann so nicht funktionieren, da der Hersteller eine bestimmte Anzahl von Eingängen festgelegt hat. Dieser Port würde bestimmt nicht berücksichtigt, selbst wenn ich die Variable in der Workspace bekommen würde. Dem Anhang kannst das ursprüngliche Modell und ein Bild der GUI entnehmen.

Ich suche nun nach einer Möglichkeit die beide Variable sowie sie Modell stehen, mit werten zu füllen. Vielleicht fällt dir was spontan ein, oder war mein Einsatz schon richtig, und ich muss nur was berücksichtigen?

Gruß,
William

TOE8825_ContrDesk.JPG
 Beschreibung:

Download
 Dateiname:  TOE8825_ContrDesk.JPG
 Dateigröße:  77.28 KB
 Heruntergeladen:  236 mal
Ursp_Modell.slx
 Beschreibung:

Download
 Dateiname:  Ursp_Modell.slx
 Dateigröße:  22.81 KB
 Heruntergeladen:  206 mal
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.