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 in Simulink während der Simulation ändern

 

Jim
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 28.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.02.2010, 13:14     Titel: Variable in Simulink während der Simulation ändern
  Antworten mit Zitat      
Hallo Leute
Habe ein Problem, ich möchte während der Simulation den Widerstandswert verändern. Ich habe schon in einer Embedded Matlab Funktion den Verlauf programmiert. Jetzt bekomme ich leider das Resultat nicht als Variabel deklariert damit es der Widerstand versteht. Ein Poti kann ich nicht verwänden, nur eine RLC Schaltung aber das ist nicht so das Problem.

Hoffe dass Ihr mir helfen könnt
Private Nachricht senden Benutzer-Profile anzeigen


Hoorigaan
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 18.12.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.03.2010, 10:00     Titel: Antwort
  Antworten mit Zitat      
Ich verstehe dein Problem nicht so ganz, ist sehr knapp geschrieben.
Wenn sich dein Widerstand ändert und du dafür schon eine Funktion hast, dann könntest du doch da einfach deine Funktion Zeitabhängig machen und da das Signal aus der Clock reinschicken. Dann ändert sich dein Widerstand abhängig von der Zeit.
Oder habe ich da jetzt an deinem Problem vorbeigeredet?
Private Nachricht senden Benutzer-Profile anzeigen
 
Jim
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 28.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.03.2010, 12:36     Titel:
  Antworten mit Zitat      
danke für deine Antwort

du hast Recht. Mein Problem ist das ich nicht weiß wie das geht. Ich habe meiner Funktion schon ein Zeitabhängiges Signal gegeben, jedoch bekomme ich das Ausgangssignal nicht abgespeichert damit der Widerstand es während der Simulation erkennt. Mit Goto und store data geht es nicht.
Private Nachricht senden Benutzer-Profile anzeigen
 
Hoorigaan
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 18.12.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.03.2010, 09:32     Titel: Antwort2
  Antworten mit Zitat      
Das mit der Variablenspeicherung geht nicht wie du dir das vorstellst. Zumindest wüßte ich keine Methode bei der das geht, da Die "ToFile" oder "ToWorcspace"-Blöcke erst die Variablen schreiben wenn die Simulation beendet ist. So hab ich das in der Hilfe gelesen.
Du könntest eine Tabelle machen bei dem bei jedem Zeitschritt der dazugehörige Wert steht...
Oder wenn du eine Mathematische Funktion von deiner Funktion hast dann schickst du das Zeitsignal in eine UserDefinedFunction. Du kannst auch deine Funktion mit Simulinkblöcken zusammenbauen, normalerweise sind die Funktionen die du brauchst nicht sehr viel komplexer als e^t oder?
Private Nachricht senden Benutzer-Profile anzeigen
 
michai
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 83
Anmeldedatum: 22.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.03.2010, 11:39     Titel:
  Antworten mit Zitat      
Wenn ich das richtig verstehe würdest du gern den Wiederstandswert, also den Ausgangswert deiner embedded Matlab Function, wieder als Eingangswert für dein Modell benutzen, oder?
Private Nachricht senden Benutzer-Profile anzeigen
 
Jim
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 28.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.03.2010, 19:14     Titel:
  Antworten mit Zitat      
Probiere es einmal richtig zu erklären. Ich habe einen Stromkreis, wo ein Widerstand drin ist. Dieser will ich während der Simulation ändern. Ich habe schon eine Funktion erstellt wo ich als Eingang eine Rampe habe (Zeitabhängig). Also habe ich am Ausgang sofort mein Widerstandswert. Dieser will ich dann im Widerstand Abstepeichern. Krieg ich aber nicht hin.

@Hoorigaan
das klingt ja toll, wenn das mit der Tabelle funktioniert. Wie müsste ich das mit der Tabelle machen damit der Erste Wert gelesen wird, Simuliert aber dann wieder die Simulation gestoppt wird um den nächsten Wert zu lesen.
Private Nachricht senden Benutzer-Profile anzeigen
 
michai
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 83
Anmeldedatum: 22.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.03.2010, 07:08     Titel:
  Antworten mit Zitat      
Und was hat dein Widerstandsblock sonst für Eingänge und Ausgänge?
U und I? Was für einen Block hast du bisher verwendet? Kannst du mal dein bisheriges Modell oder zumindest eine abgespeckte Variante mit dem Stromkreis posten?
Private Nachricht senden Benutzer-Profile anzeigen
 
Jim
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 28.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.03.2010, 08:17     Titel:
  Antworten mit Zitat      
also es ist so das ich ein Widerstand habe, will seinen Wert nur während der Simulation ändern. Beiliegend Die Grundschaltung

vielen Dank für das Interesse und die Hilfe

Projekt.JPG
 Beschreibung:

Download
 Dateiname:  Projekt.JPG
 Dateigröße:  8.05 KB
 Heruntergeladen:  2076 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
michai
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 83
Anmeldedatum: 22.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.03.2010, 08:38     Titel:
  Antworten mit Zitat      
Ok, das macht einiges Klarer.
Ich kenne mich leider mit der Simpower Toolbox nicht aus und kann dir hier deshalb leider auch nicht helfen. Sad
Sorry.
Private Nachricht senden Benutzer-Profile anzeigen
 
Hoorigaan
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 18.12.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.03.2010, 12:07     Titel: Antwort3
  Antworten mit Zitat      
Ok ich hba gerade nachgeschaut, ich habe diese Toolbox gar nicht, weiß also nicht wie dein Widerstandsblock aussieht.
Das mit der Funktion und der Tabelle war nur eine Idee wie man Werte zeitabhängig ändern kann. Speichern kannst du deine Widerstandswerte wenn der Widerstand einen Ausgang hat und du ihn z.B in eine Variabel oder mat.-file schreibst. Darauf kannst du allerdings erst nach der Simulation zugreifen.

Ich weiß nicht wie dein (ohmscher?)Widerstandsblock aussieht, insofern kann ich dir leider auch nicht mehr sagen als meine Idee bisher.
Private Nachricht senden Benutzer-Profile anzeigen
 
Jim
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 28.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.03.2010, 13:19     Titel:
  Antworten mit Zitat      
erst mal Danke

im Widerstand ist nur eine Variable, also der ohmsche Widerstand. Da kann ich ne Variable eingeben z.B. R. Wenn ich das tue dann muss ich im Matlab den Wert eingeben, also R=100 z.B.. Deine Idee ist top, muss nur den Befehl finden um ihm die Variablen im matlab zu gegen, danach die Simulation starten, die Simulation nach einer gewissen zeit stoppen einen anderen Wert einlesen und wieder starten, so hab ich das jetzt im Kopf.
Weiss leider nicht wie man über den Matlab die Simulation startet, anhält, und das noch nach einer vorgegebenen Zeit.
Private Nachricht senden Benutzer-Profile anzeigen
 
Hoorigaan
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 18.12.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.03.2010, 09:39     Titel:
  Antworten mit Zitat      
Ich hab noch ein paar Ideen, ob man die umsetzen kann und wie weiß ich leider nicht. Kann acuh nichts ausprobieren, da ich die Toolbox ja nicht habe.

Hat der Widerstand evtl noch einen anderen Eingang? Was geht denn zum ersten Eingang rein? Vllt. könnte man ihm durch einen 2. Eingang die Widerstandsfunktino übergeben.

Gibt es nicht einen Block "Schiebewiderstand"? Da müsste man ja über ein Signal den Widerstand ändern können.

Letzte Idee wäre, dass du die Simulation in gewissen Zeitschritten ausführen lässt mit unterschiedlichem Widerstand. Das wäre allerdings sehr aufwendig.
Du könntest dann dein Simulinkmodell aufrufen mit:
Code:

sim('NameModell',[0 10])
%Auswertung
sim('NameModell',[10 20])
%Auswertung usw.
 

Dabei solltest du dann am Besten deine Ergebnisse in eine Variable oder .mat schreiben lassen um die Ergebnisse am Ende als Ganzes auswerten zu können.
Private Nachricht senden Benutzer-Profile anzeigen
 
Jim
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 28.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.03.2010, 17:14     Titel:
  Antworten mit Zitat      
vielen Dank, deine Idea ist gut.

es gibt einen Schiebewiderstand kann diesen jedoch nicht benutzen da ich ihn nicht verbinden kann. (Brauche eine Kapazität) Habe es jetzt einfach auf die altmodische Art gelöst, 50 mal simuliert und dann alles im Exel eingetragen um mein Diagramm zu bekommen.

Nochmals Vielen Dank
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.