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

Loop-Problem bei Berechnung von Strom an RC-Schaltbild

 

Andrews
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 17.07.19
Wohnort: BS
Version: 18b
     Beitrag Verfasst am: 17.07.2019, 14:14     Titel: Loop-Problem bei Berechnung von Strom an RC-Schaltbild
  Antworten mit Zitat      
Guten Tag zusammen,

ich brauche Eure Unterstützung bei einem Problem, das ich in Simulink habe.

Mein Modell tut im Wesentlichen was es soll. Der resultierende Stromverlauf passt zu dem was ich haben möchte.

Das Problem liegt darin, dass die Rechenzeit des Programms, durch die Schleifen viel zu hoch ist und mein Ergebnis ein Rauschen aufweist.

Ich habe schon einiges probiert, in Simulink wie auch an den DGLn, komme aber nicht weiter.
Für eure Hilfe wäre ich deshalb sehr dankbar.

Was mein Modell tun soll:
Berechnet werden soll der Ladestrom der sich ergibt, wenn ein Batteriemodell mit konstanter Spannung geladen wird.
Dazu wird eine Differentialgleichung gesucht, die dann mittels MATLAB/Simulink gelöst werden soll.
Das Modell besteht aus einem Widerstand, zwei RC-Gliedern und einer gesteuerten Spannungsquelle OCV, deren Wert im Abhängigkeit des zugeführten Stroms steigt.

Ersatzschaltbild:
[img]https://www.directupload.net/file/d/5516/xkjhd3ht_png.htm[/img]
https://www.directupload.net/file/d/5516/xkjhd3ht_png.htm

(1) i:=I_{Lade}=i_{C_1}+i_{R_1}=C_1\dot{U}_1+\frac{U_{1}}{R_1}=C_2\dot{U}_2+\frac{U_2}{R_2}
(2) U_{Lade}=OCV+R_0i+U_1+U_2

Aus (1) folgt:

(3) U_1=R_1i-C_1R_1\dot{U}_1

(3) in (2) eingesetzt:

U_{Lade}=OCV+R_0i+R_1i-C_1R_1\dot{U}_1+R_2i+C_2R_2\dot{U}_2

Und es ergeben sich die beiden Differentialgleichungen

\dot{U}_1=\frac{1}{R_1C_1}(OCV-U_{Lade}-C_2R_2\dot{U}_2+i(R_0+R_1+R_2))

und

\dot{U}_2=\frac{1}{C_2R_2}(OCV-U_{Lade}-C_1R_1\dot{U}_1+i(R_0+R_1+R_2))

Mit diesen DGLn habe ich dann folgendes Simulinkmodell erstellt:

[img]https://www.directupload.net/file/d/5516/dxw23u8r_jpg.htm[/img]
https://www.directupload.net/file/d/5516/dxw23u8r_jpg.htm


Das Problem der Schleife ist recht offensichtlich, ich finde aber keine Möglichkeit, sie zu umgehen. Als Solver wird automatisch ODE45 gewählt.

Für Ideen und Anregungen bedanke ich mich schonmal im Voraus
Gruß Andrews

CV_Laden_model_new.slx
 Beschreibung:
Das Simulinkmodell in kompilierfähig.
Die Slope vom SOC ist auf 1/t einzustellten.
Bei t größer 5000 fällt die Rechendauer auf.

Download
 Dateiname:  CV_Laden_model_new.slx
 Dateigröße:  25.19 KB
 Heruntergeladen:  258 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, 16:02     Titel:
  Antworten mit Zitat      
Hallo,

du könntest die Gleichung von Hand auflösen. Wenn ich das richtig sehe, haben sie folgende Form:

Code:
syms u1dot u2dot k11 k12 k21 k22

s = solve([u1dot == -k11*u2dot + k12,u2dot == -k21*u1dot + k22], [u1dot, u2dot]  )
s.u1dot
s.u2dot


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
 
Andrews
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 17.07.19
Wohnort: BS
Version: 18b
     Beitrag Verfasst am: 18.07.2019, 12:19     Titel:
  Antworten mit Zitat      
Vielen Dank Harald!

Auf diese Weise konnte ich die Rechenzeit tatsächlich, um über die Hälfte reduzieren.

Und nun habe ich auch verstanden, wie man mit matlab Gleichungen löst.

Beste Grüße
Andrews
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.