|
|
Volumenänderungsarbeit in Matlab/Simulink berechnen |
|
rambotnik |
Forum-Anfänger
|
|
Beiträge: 13
|
|
|
|
Anmeldedatum: 15.07.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.07.2011, 14:26
Titel: Volumenänderungsarbeit in Matlab/Simulink berechnen
|
|
Hallo,
ich habe ein Problem mit Matlab. Bin noch sehr frisch mit dem Programm und kenne noch nicht die ganzen Kniffe.
Ich möchte die Arbeit eines Vieraktmotors über das Integrad pdV berechnen. p und V sind über den Kurbelwinkel aufgelöst gegeben.
Leider kann ich dem Integrator nicht sagen, dass er nach V und nicht nach t integrieren soll.
Habe das bereits über einen Umweg umgangen, dass ich erst V nach t ableite, das mit p multipliziere und dann integriere. Das klappt auch, aber sobal die step-size geändert wird, ändert sich logischerweise das Ergebniss.
Es muss doch einen Weg geben, dies zu realiesieren?
Vielen Dank
|
|
|
|
|
Georg J |
Forum-Century
|
|
Beiträge: 113
|
|
|
|
Anmeldedatum: 22.06.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2008a
|
|
|
|
|
|
Verfasst am: 15.07.2011, 23:40
Titel:
|
|
|
|
|
Hi rambotnik,
Ich habe bisher noch nicht mit diesem Thema in Simulink zu tun gehabt, aber ich würde wahrscheinlich die Integration selbst programmieren.
Deine Idee ist kreativ, aber ich habe Bedenken, die Ableitung zu bilden, wenn man sie nicht braucht. Je nach Signal kann das zu grossen Peaks führen.
Du könntest selbst ein M-File schreiben, mit dem du die Fläche unter p(V) näherungsweise berechnest. Dazu eignet sich die Trapezsumme.
Der Index n steht für den Wert zum aktuellen Zeitpunkt t_n, n_1 steht für n-1 (den Wert zum vorherigen Zeitpunt). Mit einem Memory Block oder einem unit delay kannst du die Werte zum Zeitpunkt n_1 rückführen.
Der Druck wäre x und das Volumen y.
Ich habe das Ganze mal in ein Simulink-File gepackt und als x-Wert die Zeit eingegeben. Der Ausgang der Matlab-Funktion müsste dan dasselbe Ergebnis liefern wie der Integrator-Block 1/s.
Je kleiner die Schrittgrösse, desto besser das Ergebnis. Wenn man variable Schrittgrösse verwendet, gibt es bei 1e-3 Schrittgrösse noch einen Unterschied. Bei der selben, aber dafür festen Schrittgrösse ist kein Unterschied mehr erkennbar.
Gruss, Georg
Beschreibung: |
Simulink Modell als Beispiel |
|
Download |
Dateiname: |
Integrator_X.mdl |
Dateigröße: |
24.89 KB |
Heruntergeladen: |
600 mal |
Beschreibung: |
|
Download |
Dateiname: |
int_x.m |
Dateigröße: |
79 Bytes |
Heruntergeladen: |
575 mal |
|
|
|
Georg J |
Forum-Century
|
|
Beiträge: 113
|
|
|
|
Anmeldedatum: 22.06.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2008a
|
|
|
|
|
|
Verfasst am: 16.07.2011, 00:05
Titel:
|
|
|
|
rambotnik |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 13
|
|
|
|
Anmeldedatum: 15.07.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.07.2011, 11:16
Titel:
|
|
Hmm,
weiß nicht so recht, wie ich damit umgehen soll.
habe mal mein Modell angehängt. p und V variieren ständig (m und T kommen von außen).
Gruß
Beschreibung: |
|
Download |
Dateiname: |
p_V.mdl |
Dateigröße: |
40.6 KB |
Heruntergeladen: |
671 mal |
|
|
|
Phate |
Forum-Guru
|
|
Beiträge: 283
|
|
|
|
Anmeldedatum: 09.11.09
|
|
|
|
Wohnort: Stuttgart
|
|
|
|
Version: R2008b
|
|
|
|
|
|
Verfasst am: 20.07.2011, 12:07
Titel:
|
|
Hi,
Das ist ja ein Simulinkmodell könntest du u ns vl. noch sagen welchen Solver du ausgewählt hast, welche maximale Schrittweite du zuläst und welchen Fehlertoleranzen eingestellt sind.
Dann kannst du mal deine Abweichungen die du bei der Simulation bekommst besser einordnen ob es ein Problem am Solver oder am Modell ist.
Grüße
|
|
|
rambotnik |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 13
|
|
|
|
Anmeldedatum: 15.07.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.07.2011, 12:20
Titel:
|
|
Schrittweite ist 1e-5
Solver ist Euler
In dem Modell ist die Integration noch nicht drin, da ich nicht weiß ich ich p über V integrieren kann in Simulink. Da muss es doch einen Block geben, wo ich einen Eingang p und einen V habe und darüber integrieren kann, oder?
Wer sich damit nicht auskennt, zur Veranschaulichung ist hier ein p(V) Diagramm. Ich möchte die eingeschlossene Fläche ermitteln:
http://upload.wikimedia.org/wikiped...../6/6a/PvDiagramm-Otto.png
Gruß
|
|
|
Georg J |
Forum-Century
|
|
Beiträge: 113
|
|
|
|
Anmeldedatum: 22.06.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2008a
|
|
|
|
|
|
Verfasst am: 20.07.2011, 12:37
Titel:
|
|
|
|
|
Hi rambotnik,
Ich hab den Integrator mal in dein Modell eingebaut und mir scheint das Ergebnis sinnvoll zu sein. Für m und T habe ich willkürlich konstante Werte gewählt.
Bei minimalem Volumen ist der Anfangsdruck maximal. Der Druck sinkt dann linear mit zunehmendem Volumen. Wenn das maximale Volumen erreicht ist, steigt der Druck exponential an.
Daraus folgt, dass das Integral bei zunehmendem Volumen der Fläche unter dem Trapez entspricht (bei maximalem Volumen näherungsweise ein Dreieck: im Beispiel ca. 0*5*6e-3*50 = 0.15). Danach ist bei abnehmendem Volumen das Integral die Fläche unter der Exponential-Kurve.
Mir ist noch aufgefallen, dass du beim Solver keine Vorgaben gemacht hast. Die variable Schrittgrösse mit automatischen Einstellungen führt oft zu Problemen im Solver, wie auch hier. Man muss den Bereich für die variable Schrittgrösse genau definieren. Deshalb verwende ich lieber eine feste Schrittgrösse.
Bedenke, dass der Output des Integrator-Blocks p(V) die Fläche zwischen der Kurve und der X-Achse liefert! Das ist die Definition des Integrals. Wenn du die Fläche zwischen der Geraden und der exponentiellen Kurve haben willst, musst du noch das Integral unter der exponentiellen Kurve abziehen. Dafür brauchst du dann entweder zwei Integrator-Blöcke, oder du änderst die M-Funktion.
Ich werde heute nicht mehr dazu kommen, das für dich auszuarbeiten. Aber ich denke, du weisst jetzt wohin die Reise gehen soll.
Gruss, Georg
Beschreibung: |
|
Download |
Dateiname: |
p_V.mdl |
Dateigröße: |
50 KB |
Heruntergeladen: |
655 mal |
|
|
|
Phate |
Forum-Guru
|
|
Beiträge: 283
|
|
|
|
Anmeldedatum: 09.11.09
|
|
|
|
Wohnort: Stuttgart
|
|
|
|
Version: R2008b
|
|
|
|
|
|
Verfasst am: 20.07.2011, 15:21
Titel:
|
|
Hi,
Noch etwas vl allgemein zu Verbrennungsmotorensimulation. Das Problem der variablen Schrittweite hat mein Vorredner ja schon erwähnt.
Zusätzlich kommt noch das Problem, dass bei der Verdichtung in einem Verbrennungsvorgang ein sehr Steifes System entsteht was zusätzlich bei hohen Drehzahlen ein sehr kurzes Ereignis ist. Somit musst du noch mehr aufpassen. Nicht nur bei der Wahl deiner Schrittweite sondern auch im Hinblick auf deinen Solver.
Grüße
|
|
|
rambotnik |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 13
|
|
|
|
Anmeldedatum: 15.07.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.07.2011, 16:18
Titel:
|
|
Wir haben jetzt ne Info vom Betreuer bekommen, dass wir einfach das
"p*dV/dphi" mitteln sollen. Er hat wohl anhand des Andrangs in seiner Sprechstunde gemerkt, dass es da zu viele Probleme gab.
Trotzdem vielen Dank für eure Mühen.
Eine Frage noch. Warum gibt es den Integrator nur über der Zeit?
Gruß
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|