問題タブ [modelica]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - modelica モデルと Java モデルのインターフェース
Dymola で開発したモデルがあり、それを Java のモデルとインターフェースする必要があります。より正確には、各タイム ステップで、両方のモデルが他方に入力を提供します。
これまでのところ、次のことがわかりました。 - Dymola は C コードを生成/エクスポートできます。彼らは理解できない(これまでのところ)インターフェースを提供しますが、主なポイントは、エクスポートがVisual C ++専用であり、クロスプラットフォームである必要があるということです。- OpenModelica (OMC) は C コードを生成できますが、ライブラリとして使用できるかどうかわかりませんでした。
モデリカと Java モデルをインターフェースする方法について何かアドバイスがあれば、共有してください ;)
modelica - Modelica.Media:BasePropertiesとsetState_XXX
Modelica標準ライブラリには、Modelica.Media流体の熱力学的特性を利用できるライブラリが付属しています。Modelica.Mediaドキュメントからの引用:
Modelica.Mediaのメディアモデルは、部分パッケージから継承したパッケージによって提供されます
Modelica.Media.Interfaces.PartialMedium。すべてのパッケージは以下を定義します:
- [...]
- 流体の基本的な熱力学的特性を計算するための
BasePropertiesモデル。setState_XXXさまざまな入力引数(密度、温度、setState_dTXとなる組成など)から熱力学的状態レコードを計算する関数。- [...]
上記のように、メディアライブラリを使用する2つの異なる基本的な方法があります。これについては、次のセクションで詳しく説明します。
1つの方法は、モデルBasePropertiesを使用することです。
[...]
2番目の方法は、setState_XXX関数を使用して、他のすべての熱力学的状態変数を計算できる熱力学的状態レコードを計算することです[...]
私の同僚はBaseProperties(彼はほとんどの時間をコンポーネントのモデリングに費やしています)、
私は関数を好みsetState_XXXます(私はほとんどの時間をプロパティライブラリの作成に費やしています)。
ここで、シンプルで小さなコンポーネントライブラリを一緒に開発したいと考えています。おそらく、2つのアプローチのいずれかを使用することに同意する必要があります。
2つのアプローチの長所/短所を説明する出版物をお勧めできますか?もちろん、関数の使用を促進する出版物setState_XXXが好まれます... ;-)
コンポーネント(非常に単純なタービンなど)をモデル化するときに、2つのアプローチのどちらを使用するかを決定するための簡単なルールはありますか?Modelica.Fluidのコンポーネントは両方を使用しているようです。
connector - Modelica-複雑なタイプのコネクタの1つのパラメータのみを変更します
複雑なコネクタがあるので、それを伝播するときに、他の変数のすべての等式を明示的に記述する必要なしに、変数のセットの1つの変数のみを変更したいと思います。
理想的なのは、connectステートメントとその1つの特定の変数の上書きです。
よろしくお願いします。
modelica - Modelica: カスタム クラス/モデルでの der() の使用
私は Modelica を学ぼうとしており、マルチボディ ライブラリを使用して非常に単純なモデルを構築しました。モデルは、ワールド オブジェクトとビームに接続されたボディ (質量) で構成され、ビームは 2 つの拡張 PartialOneFrame_a クラス (以下を参照) に接続され、1 つの軸に一定の力を作成するように変更しました。基本的に、このオブジェクトのグループが行うことはすべて、重力の下で落下し、体の中心からの縦方向のオフセットで作用する 2 つの力が原因で回転することです。
次に、回転する「アーム」の端に接続する非常に単純な空力コンポーネントを作成できるかどうかを確認したかった. 私の考えは、上記の Constant_force モデルの例に従い、最初の単純なカットでローカル フレーム速度に基づいて力を生成することでした。これは私の問題が発生した場所です-der(frame_a.r_0)を使用して速度を計算しようとしましたが、これをresolve2関数を使用してローカルフレームに変換しようとしましたが、der(...)行を追加するとモデルが正しく機能しませんでした- (OpenModelica を使用して) 「正常に」シミュレートされますが、v11b ベクトル (以下を参照) はすべてゼロになるため、プロット プロットに表示される der(frame_a.r_0) になります。それだけでなく、他のすべてのコンポーネントの動作も単純になりました。常にゼロ - (本体の frame_a.r_0、w_a など)。
速度を単純に計算するためだけにいくつかの方法を試しました(コメント行からわかります)ので、正しい動作を確認するためにプロットできましたが、役に立ちませんでした。私はアルゴリズムまたは方程式のアプローチを使用しました-さまざまなアプローチでいくつかの異なる(ただし誤った動作も)達成しました。
任意のヒント?ここで基本的な何かが欠けているに違いありません.フレームコンポーネントは本質的に速度ベクトルを持っていないようですので、計算する必要がありますか??
modelica - Dymola/Modelica で 3 つのサブモデルの 1 つだけをシミュレートする方法
Dymola は初めてで、Dymola に化学反応器を実装する必要があります。反応器は変数 x に応じて異なる動作をするため、3 つの異なるモデルで反応器の動作をモデル化しました。したがって、モデル a は x<=0.1 に対して有効であり、モデル 2 は 0.75>x<0.1 に対して有効であり、モデル 3 は x>0.75 に対して有効です。各シミュレーション ステップで 3 つのモデルの 1 つだけを実行する方法はありますか? 「if」ステートメントを調べて、3 つのモデル方程式すべてを 1 つのモデルにまとめましたが、うまくいきませんでした。私を助けてくれる人はいますか?どんなヒントも素晴らしいでしょう!ありがとうございました!
modelica - 初心者: 私のプロジェクトで modelica に頼っても安全ですか?
Modelica の構文に従って、完全なシステムを正しくモデル化したと仮定すると、コンパイラはそれを処理するのに十分「成熟」していますか?
少なくとも 15 個の接続されたコンポーネントでシステムをモデル化する必要があります。各コンポーネントは比較的単純で、数学的に言えば、代数方程式のみです。Modelica は私にとって非常に魅力的ですが、私は完全な初心者であり、このプロジェクトは私にとって重要なので、Modelica にコミットすることを少し恐れています.
コンパイラがすべての標準ライブラリの例とモデルを完全にシミュレートできないことは理解していますが、正確な制限をどのように知ることができますか?
ありがとう。
modelica - 時間以外の他の変数に関して導出する方法は?
モデリカを始めたばかりです。組み込みの時間微分演算子 [der(expr)] があることは承知しています。他の変数で派生させる必要がある場合、どうすればそれを行うことができますか? 例: 変数 'x' を導出する必要がある場合、これはどのように形成できますか?
modelica - Modelica.Mediaでの質量分率の処理:reducedXを使用するかどうか?
私が取り組んでいる多成分媒体の質量分率をどのように処理するかについて質問があります。具体的には、縮小状態モデル(reducedX = true;のように)と完全状態モデル(reducedX = false;のように)のどちらを選択するのか疑問に思っています。
モデルは現在縮小状態であり、正常に機能しているようです。私には、sum(X)= 1という事実を利用するのは良い考えのように思えましたが、Modelica.Media-packageのドキュメントでこれを見つけました。
"(...)この種のモデル(完全状態モデル)はより重いですが、1つの追加の状態変数を提供するため、その制約によって引き起こされる可能性のある数値的および/または記号的な問題が発生しにくくなります(縮小状態モデルで)。」
これらの「数値的および/または象徴的な問題」が心配なことであるかどうか、または縮小状態モデルを使用しない他の理由があるかどうかを誰かが知っていますか?または、フルステートモデルを使用することのその他の利点はありますか?
問題に関する助けや考えは大歓迎です!
modelica - Modelica.Media: トレース コンポーネントの使用
トレース コンポーネントのコツと、Modelica.Media および Modelica.Fluid のコンテキストでそれらを使用する方法を理解しようとしています。私は現在、いくつかの成分が微量で存在する多成分媒体に取り組んでいます。つまり、液体のバルク特性にとって重要ではありません。一方、これらの成分は(化学)反応を起こすため、この挙動を説明するために、それらが適切な方法で物質収支に含まれていることが不可欠です。
これらをトレース コンポーネントとしてモデル化したかったのですが、上記のコンテキストでこれらのコンポーネントを実装する方法がよくわかりませんでした。より具体的には、微量成分の質量 (分率) がモデル内部の反応またはモデル内部の物質移動によってどのように変化するかを理解できませんでした。微量成分の質量分率は、特定の媒体で一定であることを意味しているように思えますが、そうですか?
現在、トレース コンポーネントを必要なように動作させることができなかったため、メディアのすべてのコンポーネント (微量のものを含む) は「通常の」コンポーネントとして含まれています。とにかく、メディアを多かれ少なかれスクラッチの形にしているので、流体特性を計算するための式を与えるときに、少量存在する成分を省略できると考えました. この方法で微量のメディア コンポーネントをモデリングした経験のある人はいますか?
通常のコンポーネントとトレース コンポーネントの違いを詳しく説明したり、トレース コンポーネントが上記のシステムをモデル化するための最良の方法であるかどうかについてアドバイスを提供したりできる人がいれば、非常に感謝しています。ヘルプやコメントをいただければ幸いです。
modelica - modelicaで偏導関数を使用するには?
モデリカで偏導関数を使用する必要がある場合、どのように使用できますか。偏導関数がモデリカで解決できるかどうかはわかりませんが、使用できる場合はどのように実装する必要があるかを知りたいです。