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

Simulink- interpreted matlab Fcn.

 

19sanjok88
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 06.05.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.06.2015, 14:23     Titel: Simulink- interpreted matlab Fcn.
  Antworten mit Zitat      
Hallo,
ich sitze gerade an meiner Masterarbeit und Arbeite erst seit 1 Woche mit Simulink. Da ich im Internet so nicht fündig geworden hoffe ich, dass mir hier jemand helfen kann.

Mein Problem ist folgendes. Ich soll eine Funktion für ein Batteriemodell schreiben, dass dann später in c++ geschrieben wird und dann auf einem Simulator getestet werden soll. Das Bild im Anhang ist ist die Vorgabe die ich bekommen habe.

Ich muss also für das Batteriemodell erst mal eine Ah-Bilanzierung machen. Dabei will ich ein Startwert vorgeben. Also die Kapazität bei Start C_start= x
Bei der Ah-bilanzierung soll dan jede sekunde ein wert dazuaddiert oder subtrahiert werden. Also in formel: C(t)=C(0) + i*dt mit dt=1s

Ich habe das einmal als script probiert zu schreiben, da habe ich aber in dem script die Zeit als array gespeichert und mit einer forschleife ein array für die kapazität erzeugt, was ich auch plotten konnte, das hat funktioniert. Meine frage ist jetzt, wie mach ich das in Simulink? Gibt das clock jeden Berechnungsschritt einen neuen Wert in den Funktkionsblock oder einmal als "array"? und wie kann ich da am besten vorgehen??

Vielen dank schon mal im vorraus für eure Hilfe,
Mfg alex

Unbenannt.png
 Beschreibung:

Download
 Dateiname:  Unbenannt.png
 Dateigröße:  58.09 KB
 Heruntergeladen:  609 mal
Private Nachricht senden Benutzer-Profile anzeigen


Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.06.2015, 17:15     Titel:
  Antworten mit Zitat      
Also wenn ein Modell nur aus einem Matlab-Function-Block besteht würde ich ja darüber nachdenken, das ganze Ding einfach direkt in Matlab zu schreiben.

Und wenn es hinterher nach C++ übersetzt werden soll, würde ich auch darüber nachdenken, das ganze Modell einfach gleich in C++ zu schreiben.

Ansonsten hilft bei der Benutzung von Simulink das hier ganz enorm: http://de.mathworks.com/help/simuli.....tarted-with-simulink.html - vermutlich sind die meisten Deiner Fragen schon geklärt, wenn Du Dich da einmal durchklickst.
Private Nachricht senden Benutzer-Profile anzeigen
 
19sanjok88
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 06.05.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2015, 14:55     Titel:
  Antworten mit Zitat      
hi,
ja wer lesen kann ist klar in Vorteil Confused
Also ich hab das jetzt so verstanden dass Simulink für jeden Zeitschritt den Funktionsblock noch einmal von oben nach unten durchgeht. So kann das natürlich nicht funktionieren wie ich das gedacht habe.

Es ist leider von der Aufgabenstellung her so dass ich das erst in Simulink umsetzen soll.

Rein theoretisch müsste es doch gehen wenn ich mit einem Funktionsblock einen Startwert vorgebe, die Funktion einen neuen Wert berechnet und dann dieser neue Wert rückgeführt wird in die Funktion? Gibt es in Simulink einen speziellen block dafür?

danke schon mal im vorraus,
mfg Alex
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2015, 21:21     Titel:
  Antworten mit Zitat      
Ja, Simulink rechnet den Code-Block in jedem Rechenschritt einmal komplett durch.

Klär vielleicht zuerst mal ab, ob Dein Betreuer es wirklich so gemeint hat, wie Du es jetzt versuchst. Dir ist bestimmt nicht entgangen, dass Simulink dutzende Blöcke zur Verfügung stellt, mit denen sich so ungefähr fast alle Probleme, die sich in Form von Gleichungen aufschreiben lassen auch modellieren und lösen lassen. Es ist nicht unwahrscheinlich, dass er möchte, dass Du das ganze erst mal mit diesen Blöcken aufbaust.

Ansonsten hilft Dir bei Deinem akuten Problem der Memory-Block weiter. Der gibt am Ausgang immer den Eingangswert aus dem vorherigen Rechenschritt aus. Den kann man prima um einen Matlab-Code-Block herumstricken.
Private Nachricht senden Benutzer-Profile anzeigen
 
19sanjok88
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 06.05.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.06.2015, 11:17     Titel:
  Antworten mit Zitat      
Hallo Epfi,

ne das war schon so gewollt mit dem Funktionsblock, um das später einfacher in C++ zu übertragen.
Vielen dank für deine Hilfe, der Memory block ist genau das was ich gebraucht habe. Und mit dem IC block kann ich da noch einen Startwert einfügen.
Vielen dank, du hast mir sehr geholfen.

Mfg
Alex
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.06.2015, 11:20     Titel:
  Antworten mit Zitat      
Der Memory-Block hat sogar ein Feld für den Anfangswert, da ersparst Du Dir den IC-Block. Je nach Anwendung kann es mit dem IC-Block für fremde Menschen aber leichter lesbar sein, da man direkt sieht, dass ein Anfangswert existiert und wichtig ist.
Private Nachricht senden Benutzer-Profile anzeigen
 
19sanjok88
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 06.05.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2015, 20:13     Titel:
  Antworten mit Zitat      
ahhh ok , so gehts natürlich noch viel einfacher Smile
vielen dank, du hast mir echt weiter geholfen
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.