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

Initialisierungsdateien und Konstanten

 

AlexanderKiebler82
Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 11.08.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.08.2008, 00:56     Titel: Initialisierungsdateien und Konstanten
  Antworten mit Zitat      
Hallo
Ich arbeite gerade an einem Simulink Projekt. Hierbei möchte ich gerne
*eine* Datei zu Initialisierung von Konstanten haben. Diese wird beim Laden des Projekts automatisch aufgerufen.
Leider habe ich nun das Problem, dass ich, wenn ich die Werte zur Speicheralloziierung (z.B.: zeros(Vorinitialisierte_Variable)) verwende, der Kompiler/Interpreter(???) meckert und die Simulation abbricht.
Habe ich die Möglichkeit Variablen als Konstanten zu deklarieren welche dann zur Speicheralloziierung verwendet werden können ??
Über eine schnelle Antwort würde ich mich sehr freuen
Gruß Alex
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden


Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 13.08.2008, 16:46     Titel:
  Antworten mit Zitat      
Hallo Alex,

das Problem verstehe ich nicht ganz: üblicherweise kann man einfach eine .m-Datei schreiben mit
Code:
A = [1 2; 3 4];
g = 9.81;
 

und diese ruft man in der PreLoadFcn auf (File->Model Properties->Callbacks, dort bei PreLoadFcn den Namen der .m-Datei eintragen (ohne .m, also den Befehl, den Du sonst im CommandWindow eingeben würdest, um das skript laufen zu lassen).

Ciao,
Titus
Private Nachricht senden Benutzer-Profile anzeigen
 
AlexanderKiebler82
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 11.08.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.08.2008, 16:54     Titel:
  Antworten mit Zitat      
Hi Titus
Danke Für die Antwort.
Die Initialisierung wird wie du beschrieben hast vorgenommen und läuft dann auch. Aber wenn ich jetzt eine in der Präload function initialisierte Variable verwende, um einen Vektor zu erzeugen, meckert matlab.
z.B.:
PräLoadFunc:
size = 10;
EmbeddedMATLAB Function:
zeros(size); %Hier mecker matlab, da size keine konstante ist
Gruß Alex
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 13.08.2008, 16:59     Titel:
  Antworten mit Zitat      
O.K., wir kommen der Sache näher Wink.
Der Embedded MATLAB function block: hast Du den Parameter als Parameter hinzugefügt? Wichtig: den Haken bei 'tunable' muss man wegnehmen (dann ist er nämlich nicht tunable, also constant).

Titus
Private Nachricht senden Benutzer-Profile anzeigen
 
AlexanderKiebler82
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 11.08.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.08.2008, 17:34     Titel:
  Antworten mit Zitat      
Parameter als Parameter hinzufügen???
also muß er in die übergabeliste ??
z.b.:
function fcn(PARAMETER)
Und wo hat sich der tuneable haken versteckt ??
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 14.08.2008, 11:33     Titel:
  Antworten mit Zitat      
Hallo,

wenn Du den Embedded MATLAB Editor geöffnet hast:
- Menü Tools->Edit Data/Ports
- Knopf oben links (neuen Eintrag)
- umbenennen und "Scope" auf "Parameter" setzen
- Haken bei Tunable wegnehmen

Titus
Private Nachricht senden Benutzer-Profile anzeigen
 
schweikl_alex

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.08.2008, 12:44     Titel:
  Antworten mit Zitat      
Zu diesem Thema hätt ich auch ne Frage.

Ich habe auch ein Simulink Modell entwickelt. Hier hab ich eine Maskiertes subsystem. 5 Werte. Die belege ich mit 1,2,3,4,5. in diesem Subsytem übergebe ich die WErte dann einer Matlab fcn mit hilfe eines matlab fcn blockes.

In der Matlab Funktion führe ich den Befehl disp(); aus. der zeigt mir nun die übergebenen Parameter an.

Führe ich jetzt das Modell aus, so erhalte ich im Command Fenster erst einmal 5 nullen die angezeigt werden, danach 1,2,3,4,5!

Simulink initialisert irgendiwe erst das modell und dann führt es richtig aus oder?

Kann ich das initialiseren irgendwie umgehen? oder kann ich es abfragen?

mir wäre geholfen, wenn ich in der Matlab funktion irgend eine if anweisung schreiben könnte, die sagt wenn du initialiserst, mach gar nichts, ansonsten mach den disp Befehl!!!!


geht so was???
 
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.