ich bin grad ganz schön am verzweifeln, mit dem Matlabfunction Block.
1. ich benötige eine Funktion, die den Abluaf des Programmes für 20 sekunden warten lässt, die Simulinksimulation jedoch weiter laufen lässt.
clock, tictoc,stopwatch hab ich schon ausprobiert. Die Funktionen erkennt der Function Block aber nicht.
2. In meiner while-Schleife ändert sich der Spannungswert nicht. Das heißt, ich habe nicht den aktuellen Wert zur Verfügung, sondern nur den Wert bei Eintritt in die Schleife.
Vielleicht hat ja einer von euch eine Idee, wie man das umsetzen kann.
Muss nicht elegant sein, hauptsache es klapp:)
Ich hab auch schon überlegt, mehrere function Blöcke hintereinander zu schalten, aber dann werden ja trotzdem alle gleichzeitig abgearbeitet oder?
Vielen Dank euch schonmal
Grüße
Sari
Ablauf Modell: 3Zellen, jede hat einen Schalter A mit dem man einen Widerstand parallel schalten kann. Es soll geladen werden. Hat eine Zelle 4.18V erreicht, soll die Ladung gestoppt werden. Der Schalter A der Zelle soll geschlatet werden und die Zelle wird entladen. Solange bis bestimmter Wert erreicht ist. Dann A wieder auf 0 und Ladung wird fortgesetzt.
MEIN PROGRAMM DAZU:
Code:
% Die Ladung soll gestoppt werden, wenn eine Zelle den maximalen % Spannungswert erreicht hat--> stoppen mit y=0
% Bedingung für Ladeabbruch if(Spannung>4.18 || Spannung2>4.18 || Spannung3>=4.18)
y=1;
% Hier soll im Programmablauf 20 Sekunden gewartet werden % und das Simulinkmodell jedoch weiterlaufen (Spannungskurve sinkt % ab),damit ich die aktuelle Spannung habe. % WIE KANN MAN DAS WARTEN UMSETZEN ?????? % --> STOPPUHR ????
% Nach 20s Speichern der aktuellen Spannung
spg1=Spannung;
spg2=Spannung2;
spg3=Spannung3;
% Bestimmung Vmin und Vmax if spg1>spg2
Vmin=spg2;
Vmax=spg1;
else Vmin=spg1;
Vmax=spg2;
end if Vmin>spg3
Vmin=spg3;
else Vmin=Vmin;
end if spg3>Vmax
Vmax=spg3;
else Vmax=Vmax;
end % Werteberechnung
d1=spg1-spg2;
d1=abs(d1);
d2=spg1-spg3;
d2=abs(d2);
d3=spg2-spg3;
d3=abs(d3);
D=(d1+d2+d3)/3;
Ventlade=D+Vmin;
end
% WHILE SCHLEIFE
whlile (Abbruch==0) % Schalten des Ausganges, der größten Spannung. Heißt im Modell, das % zu der Batteriezelle mit der höchsten Spannung ein Widerstand parallel % geschaltet wird und die Zelle sich über diesen entladen soll. A=Schalter % Widerstand switch(Vmax) case spg1,
A1=1;
case spg2,
A2=1;
case spg3,
A3=1;
end % Es soll erst wieder geöffnet werden, wenn die Spannung der höchsten % Zelle auf den ausgerechneten Wert Ventlade abgesunken ist. Das heißt, % dass ich in der While-Schleife die aktuellen Spannungen brauche, aber % die wird irgendwie nicht übernommen sondern er speichert den % Spannungswert, der bei wechseln in die While-Schleife herrscht.
% Öffnungsbedingung für A1,A2,A3 % Variablen auf Ausgangsbedingungen setzen if Spannung<=Ventlade;
A1=0;
A2=0;
A3=0;
Vmin=0;
Vmax=0;
d1=0;
d2=0;
d3=0;
Abbruch=1;
end
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
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.