問題タブ [jmodelica]

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.

0 投票する
1 に答える
428 参照

python - JModelica: 再コンパイルせずにループ反復変数を変更する

JModelica で次の静かな基本的な問題が発生しました。かなり単純なモデルを考えてみましょう:

もちろん、これを python でコンパイルすると実行されます。変数 Dum の値は、想定どおり常に 5 です。問題は、コンパイルされた fmu ( test.fmu ) を次のようにロードした後、パラメーター "It" に変更したい場合です。

シミュレーションを実行すると、「Dum」には 4 ではなく 5 が返されます。シミュレーション後に「It」の時間曲線をプロットするとわかるように、「It」は実際には 4 に変更されます。実際にループに影響を与えるようにオンザフライで変更する方法があるかどうかは誰にもわかりませんか?

これはもちろんおもちゃの例ですが、さまざまな範囲を必死にループする必要があり、再コンパイルに時間がかかるはるかに大きなプロジェクトには、その機能が必要です。

本当にありがとう

0 投票する
1 に答える
103 参照

modelica - パターン依存パラメータを持つ繰り返しコンポーネント

パターン内のどこにあるかによって変化するパラメータ (長さなど) を持つコンポーネント (動的パイプなど) の繰り返しパターンがあるとします。対象のパラメーターの前にある「each」プレフィックスを省略することで可能になる可能性があると提案しました。

例えば。パイプを取得して、次の方法でモデルに追加します。

非常に単純な例として、パターンの 1 番目のパイプの長さをある程度の長さ (length_1) にし、その他すべての長さを length_n にするように指定します。私の考えでは、パラメータを次のように定義するときに if ステートメントを配置して、length_1 を n=1 パイプ コンポーネントに割り当て、その他すべてに length_n を割り当てることができるのではないかと考えています。

上記のフレームワークの単純なモデルを以下に示します。

このままでは、モデルは機能しません。if ステートメントの作成方法が間違っているのか、それとも単純に許容できないのか ("each" プレフィックスの解釈が間違っている場合に該当する可能性があります) はわかりません。

何かご意見は?

0 投票する
1 に答える
128 参照

modelica - Modelica 標準ライブラリ コンポーネント AbruptAdaptor

テスト済み:

MSL バージョン:

  • 3.2.1、2013-08-14、ビルド 2 (2013-08-14 08:44:41Z)
  • 3.2.1、2013-08-14、ビルド 4 (2015-09-30 09:15:00Z)

以下は、4 つのコンポーネントを持つモデルです。

  1. 質量流量源 (M_bound)
  2. 突然アダプター (abruptAdapter)
  3. 動的パイプ (pipeSmall)
  4. 圧力源 (P_bound)

このセクションには、モデルの 2 つの接続ケースも含まれていequationます。

ケース #1: M_bound -> abruptAdaptor -> pipeSmall -> P_bound

ケース #2: M_bound -> pipeSmall -> abruptAdaptor -> P_bound

要約: ケース #1 は正常にシミュレートされますが、ケース #2 は失敗します。生成されたエラーを以下に示します。

質問: ケース #2 が失敗する理由と、その修正方法に関する推奨事項は? どんな洞察も素晴らしいでしょう。コンポーネントのバグである可能性さえありAbruptAdaptorます。

型式コード

0 投票する
1 に答える
160 参照

modelica - Dymolaでシリンダーからタンクに水を移す方法は?

Dymola モデルを作成しました。空のタンクがあり、静的パイプを介して sweptVolume コンポーネントの出力に接続されています。sweptVolume への入力は一定の力です。この力を利用して、水圧シリンダーからタンクに水を輸送したいと考えています。

ピストンの断面積を仮定しました。圧力が大気圧 (101.325kPa) であると仮定して、シリンダー内の水を押しのけるのに必要な力を計算しました。しかし、どういうわけか、水が移動せず、タンクを満たしていなくても体積が一定に保たれていることがわかります。

指定された一定の力の入力が間違っている場合に備えて、sweptVolume 要素 (位置、移動など) にどのタイプの入力を与える必要があるかを提案してください。

お時間とご関心をお寄せいただきありがとうございます。

0 投票する
2 に答える
304 参照

modelica - JModelica での外部ファイルの参照

外部ライブラリ *.a ファイルを介してシミュレーション中に C コードを参照する Modelica ファイルがあります。

例えば:

OpenModelica で Modelica モデルを開くと、シミュレートして適切な結果が得られるため、必要なファイルが自動的に読み込まれるように見えます。

しかし、Modelica ファイルを JModelica-SDK-1.12 でコンパイルしようとすると、ライブラリ *.a ファイルが見つからないというエラーが表示されます。

私の質問は次のとおりです。JModelica で compile_fmu を使用するときに、追加のファイルを参照する適切な方法は何ですか?

成功しなかったので、試しました:

奇妙なことに、私が JModelica-1.17 (非 SDK) を使用していたとき、ファイルは正常にコンパイルされましたが、結果は意味を成しませんでした。SDK バージョンを試して、以前の投稿でのエラーが修正されたかどうかを確認するように勧められまし