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

Matlab funktionsblock Zeitparameter??

 

Kral1987
Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 14.08.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.08.2014, 15:23     Titel: Matlab funktionsblock Zeitparameter??
  Antworten mit Zitat      
Hallo Leute,

ich bin noch ein Neuling bei Matlab und ich hoffe ihr könnt mir bei meinem Problem helfen.

und zwar habe ich eine elektrische Schaltung über Sim Powersystems aufgebaut.
Natürlich mit Anbindung an eine Matlab Funktion.

Meine Schaltung wird sich später mit der Umladung von Batteriezellen (Balancing) beschäftigen.

und zwar soll der Vorgang erst gestartet werden wenn der Ladestrom 0 ist und dieser Zustand 5 Minuten anhält.

als Eingangsvariable habe ich jetzt "Strom" wie kann ich aber die Zeit noch realisieren? hab da noch nicht so viel Plan.

if Strom== 0 && % wie bringe ich hier die dauer von 5 minute (600s) rein


ich nehme jede Hilfe dankend an Smile

Vielen Dank!
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: 14.08.2014, 15:58     Titel:
  Antworten mit Zitat      
Hallo,

den ersten Zeitpunkt in einer persistent Variable speichern und damit vergleichen.
http://www.mathworks.de/de/help/sim.....persistent-variables.html

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 14.08.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.08.2014, 16:42     Titel:
  Antworten mit Zitat      
Hallo Harald, Hallo Forum,

erstmal vielen Dank für die schnelle Antwort!
habe es nun so probiert:

function [y1,y2,y3,y4,y5,y6,y7,y8] = fcn (Strom)

persistent k
k=0;

if strom ~= k
y1=0;
y2=0;
y3=0;
y4=0;
y5=0;
y6=0;
y7=0;
y8=0;

elseif %% bestimmte Schalter werden dann geschlossen

...jetzt kann ich zwar vergleichen aber wie kann ich denn sicherstellen, dass er wirklich erst schaltet wenn mindestens 5 Minuten kein Strom geflossen ist. Denn hier würde er ja die Schalter ansteuern sobald kein Strom fließt.

Vielen Dank!
mfg,
KraL
Vielen Dank!
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: 14.08.2014, 17:00     Titel:
  Antworten mit Zitat      
Hallo,

du speicherst nun den Schaltzustand als persistent-Variable, ich meinte aber die Schaltzeit.

Die Verwendung von persistent macht bisher auch wenig Sinn, weil ja k anfangs auf 0 gesetzt und der vorherige Zustand eben somit nicht gespeichert wird.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 14.08.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.08.2014, 19:55     Titel:
  Antworten mit Zitat      
Hallo Harald, Hallo Forum,

nochmals Danke!

das k hatte ich nur gleich Null gesetzt damit ich eben bestimmen kann,
ob ein Strom fließt.

für meinen Aufbau ist es wichtig, das 5 Minuten kein Strom fließen darf.
Erst dann dürfen sich die Schaltzustände (y1-yCool überhaupt ändern.
Ich weiß noch nicht genau wie ich das mit persistent machen kann.
Persistent ist ja wenn ich richtig verstanden habe eine lokale Variable die einen Wert speichert.

Danke für Eure Hilfe
mfg,
KraL
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: 14.08.2014, 20:22     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
für meinen Aufbau ist es wichtig, das 5 Minuten kein Strom fließen darf.

Dann nimm doch die Systemzeit (Block Clock) als Eingang und frage sie ab?
Und wenn es um die vergangene Zeit seit dem Einschaltvorgang geht, dann s.o.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 14.08.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.08.2014, 21:03     Titel:
  Antworten mit Zitat      
Hallo Harald, Hallo Forum,

ich peile das mit persistent noch nicht ganz.
wie speichere ich denn den ersten Zeitpunkt?
bzw wie frage ich die Clock zeit ab?
finde da irgendwie nichts Sad

Sorry das sind wahrscheinlich ganz einfache Fragen...
aber bin ein echter Neuling.

Danke
mfg,
KraL
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: 14.08.2014, 21:22     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
bzw wie frage ich die Clock zeit ab?

Clock ist ein Block unter Sources, den du in deinen MATLAB-Function Block schicken kannst.

Zitat:
wie speichere ich denn den ersten Zeitpunkt?

t = (der Eingang, der als Clock reinkommt)

In dem Link ist die Initialisierung von persistent erklärt und das Überschreiben, mehr gibts dazu an sich nicht zu sagen.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 14.08.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.08.2014, 21:20     Titel:
  Antworten mit Zitat      
Hallo Harald, Hallo Forum,

bei mir ist das Problem das ich mir noch nicht genau vorstellen
kann wie Matlab/Simulink mit der Zeit umgeht.

Sollte ich den 1 Zustand als persistent speichern?

persistant Zeit;
Zeit= t; %% t ist hierbei das Clock eingangssignal.

Selbst wenn ich das so richtig ist wie kann ich nun sicherstellen, dass die Schalter erst nach einer Wartezeit von 5 minuten betätigt werden.
weiß einfach nicht wie ich das realisieren kann.
1-2Programmzeilen würden mir sicher schon helfen damit ich es nachvollziehen kann.

Bzw wie kann ich erreichen das ein Schalter erst nach einer bestimmten Zeit geschlossen werden soll?

Vielen Dank (ich weiß ich bin schwer von Begriff)
mfg,
KraL
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: 17.08.2014, 21:16     Titel:
  Antworten mit Zitat      
Hallo,

du musst dich wirklich an die Vorgaben aus dem Link halten.

Code:
persistent t_strom5 % Zeit, so dass 5 Min. danach Strom fließen soll

if isempty(PROD_X)
   t_strom5 = inf; % es gab noch kein Ereignis
end

if (Ereignis eingetreten)
% ggf. muss verhindert werden, dass t_strom5 wiederholt überschrieben wird.
   t_strom5 = c; % c ist die Systemzeit als Eingang
end

if c > t_strom5 + 300
% Code für geschlossenen Schalter
else
% Code für geöffneten Schalter
end


Für weitere Unterstützung musst du weitere Informationen liefern:
- ist das Ereignis einmalig?
- was soll bei mehrmaligem Eintreten des Ereignisses vor Ablauf der 5 Minuten passieren? Zählt das erste Eintreten oder was?
- gibt es ein "Auschalten"? Wie wird das ausgelöst?

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 14.08.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.08.2014, 15:09     Titel:
  Antworten mit Zitat      
Hallo Harald, Hallo Forum

mein Internet war die letzte Woche im Eimer.
Danke das hat mir sehr geholfen!

mfg,
KraL
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.