2010-11-26 6 views
3

Was ist der beste Weg, um einen Konstruktor für einen Datensatz zu implementieren? Es scheint so, als ob eine Funktion in der Lage sein sollte, ein Record-Objekt bei der Instanziierung des Record in einem späteren Modell höher in der Struktur zurückzugeben, aber ich kann das nicht zum Laufen bringen. Für den Moment verwende ich einfach eine Reihe von parameters am Anfang des Datensatzes, die die Variablen im Datensatz enthalten, aber es scheint, dass das nur in einfachen Fällen funktioniert.Modelica - wie man einen Konstruktor für einen Datensatz implementiert

Kann jemand ein wenig Licht vergießen? Vielleicht sollte ich keine Schallplatte benutzen, sondern ein Modell. Weiß jemand auch, wie die PDE-Funktionalität kommt? Das Buch sagt nur, dass es kommt, aber ich habe einige andere Dinge gesehen.

Antwort

3

Ich habe nicht die Schlagkraft, um Tags hinzuzufügen (was sinnvoll ist, da mein "Ruf" niedriger ist als Ihre) so leid tut mir leid. Ich dachte, ich hätte irgendwann einmal einen hinzugefügt, aber vielleicht irre ich mich.

Ich denke, Sie müssen klar sein, was Sie mit Konstruktor meinen, da es eine sehr spezifische Bedeutung in Modelica hat. Wenn ich Ihre Frage richtig verstehe, klingt es wie das, was Sie tun möchten, ist eine Instanz eines Datensatzes zu erstellen, der einige Felder hat, die in den Konstruktorargumenten angegeben sind, und aus diesen Argumenten wird eine Menge anderer Felder im Datensatz berechnet. Ist das korrekt?

Wenn ja, gibt es einen Mechanismus, um dies zu tun. Sie erwähnen "das Buch", aber es ist nicht klar, welche Sie meinen. Wenn es mein ist, hat es diese sogenannten "Plattenbauer" definitiv nicht erwähnt, weil es zu alt ist. Ich weiß nicht, ob Peter Fritzons Buch sie auch erwähnt. Sie existieren jedoch und sind in Abschnitt 12.6 der Modelica 3.2 specification dokumentiert.

Wie für PDEs gab es Arbeit in dieser Art von Sache, aber nichts wurde wirklich innerhalb der Designgruppe zu diesem Thema getan. Ich würde hinzufügen, dass, wenn Sie entweder elliptische oder parabolische PDEs in regulären Gittern lösen wollen, dies nicht zu schwer ist, selbst mit der aktuellen Sprache. Der einzige wirkliche Nachteil ist, dass die meisten Tools wahrscheinlich nicht sehr sparsam mit Sparsity umgehen. Auch unregelmäßige Raster wären möglich, aber dann geraten Sie in komplizierte Basisfunktionen. Schließlich sind hyperbolische PDEs meiner Ansicht nach ziemlich schwierig (in jeder Umgebung) aufgrund der impliziten physikalischen Beschränkungen zwischen Zeit und Raum, die schwer auszudrücken sind (d. H. Der CFL-Zustand).

Ich hoffe, dass Ihre Fragen so weit beantwortet.

+0

Danke, die Spezifikation ist lesbar genug zu verstehen. Wie kann ich wissen, ob meine Modelica-Umgebung dieser Spezifikation entspricht (OpenModelica ubuntu repo version), gibt es einen Befehl, den ich überprüfen kann? Aber hey, jemand hat das Etikett für mich erstellt. Ich werde eine andere Frage haben, aber ich werde ein minimales Beispiel schreiben müssen. Danke noch einmal! –

+0

Ach ja, ich meinte das Peter Fritzson Buch. Gibt es etwas neues Material, oder sollte ich mit ihm weitermachen und die Spezifikation ergänzen? –

+0

Es gibt sicherlich älteres Material zur Verfügung.;-) (schamloser Stecker) –

1

Ich kann nur Ihre Frage zu dem Buch von Peter Fritzson kommentieren. Er hat bestätigt, dass er an einem Update arbeitet und er hofft, es im Laufe des Jahres 2011 fertig zu bekommen.

Original-Beitrag hier:

http://openmodelica.org/index.php/forum/topic?id=50

Dank für die Einleitung des modelica Tag, ich könnte auch in naher Zukunft für mich nützlich sein ... :-)

Grüßen, Roel

+0

Ausgezeichnet, ich freue mich darauf. –