問題タブ [openmodelica]

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 に答える
783 参照

input - dymola モデルのエクスポートには、その入力の導関数が必要です

Dymola モデルを Simulink にエクスポートしたいと考えています。モデルは、微分ブロック (der)、RealInput、RealOutput、およびそれらの接続で構成されます。

このモデルを翻訳すると、次のエラーが表示されます。

「モデルには、以下にリストされているいくつかの入力の導関数が必要です: 1 u」

派生物が必要な理由は論理的ですが、エクスポートで派生物を取得することが重要であり、エラーが発生するのはなぜですか? このエラーでエクスポートを続行できません。simulink に派生ブロックがあることは知っていますが、実際のモデルはより複雑で、同じタイプのエラーが発生します。それを回避する可能性はありますか?私の dymola のバージョンは 2014 (64 ビット) です。コンパイラは「Visual Studio 2010/Visual C++ 2010 Express」を使用しています。

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

modelica - OpenModelica と Dymola の DASSL ソルバー

OpenModelica と Dymola のイベント処理について質問があります。次のモデルは、入力信号を特定のしきい値に制限します。これは、log() の負の引数を避けるために必要です。そのため、イベントが作成され、イベントが true になると、引数 'l' の変数が変更されます。

私が理解している限り、DASSL ソルバーはイベントを認識し、そのステップ サイズを自動的に調整して、イベントを正しく解決する必要があります。指定された間隔の数は、出力に保存されるポイントの数を定義するためにのみ使用されます。

モデル 'CompleteModel' を Dymola で DASSL を使用して 10 秒間、100 間隔で解くと問題なく動作し、変数 'l' は 0.05 に制限されます。10 間隔のみでモデルを解くと失敗します。奇妙なことに、OpenModelica の DASSL は、与えられた間隔の数に関係なく、モデルを正しく解決します。

この動作は期待できますか? Dymola と OpenModelica の DASSL ソルバーに大きな違いはありますか? 私の意見では、DASSL を使用したモデルの正しいソリューションは、(保存された) 間隔の数とは無関係である必要があります (OpenModelica の場合と同様)。

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

modelica - Modelica: 単純な流体モデルの作成

フロー コンポーネントのモジュラー シミュレーションを作成しようとしています (最初は、学習と単純化のために、標準の Modelica.Fluid を使用しません)。質量流量 (温度/エンタルピーではなく) のみを心配することから始めることにし、Stream以下に示すコネクタを作成しました。

このコネクタを使用して、単純なシステム全体の圧力と流量を追跡したいと考えています。

これらのコンポーネントに対して次のモデルを作成しました。

これらのモデルのインスタンスを作成し、それらを別のモデルに接続できます。ただし、境界条件と思われる問題に直面しています。入ってくる流体源の圧力を指定したいと思います。流れがタンクに移動すると、バルブの圧力が低下します。これは、タンク内の公称圧力と流体源との差によって決定され、正常に機能するはずです。

問題は、ポンプが流体シンクに出会うときです(または、ポンプがタンクに直接入っている場合)。流体シンクの圧力を設定すると、ポンプの出口の圧力も設定されるため、ポンプに問題が発生します(それらは接続されています)。ポンプの圧力は、入口の圧力と流量の関数である必要があり (システムに圧力を加える必要があります)、これに基づいてシンクの圧力を計算する必要があります。ただし、その圧力はdpの計算にも必要です...したがって、円になってしまいます。

このようなシステムを実装するためのより良い方法はありますか?

ありがとう!

編集:セットポイント(ポンプはまだ実装していません)が、これらのモデルを方程式で使用するメインモデルに設定されていることを忘れていました。したがって、私のモデルはすべてバランスが取れています。(以下の回答に関する私のコメントを参照してください)。

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

modelica - Modelica でレベル <= 0 のときにタンクの流量を制限する

次のように作成しているタンクのモデルがあります。

レベルが <=0 の場合、タンクが負の値のフローを許可しないようにするにはどうすればよいですか (どのポートにも流体が流出することはありませんが、流体は引き続き入ることができます)。些細なことを見逃しているように感じますが、方程式が多すぎない方法を見つけることができないようです (過剰決定システム)。

ありがとう

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

modelica - 次元が指定されていない Modelica 配列

サイズが指定されていないコネクタの配列 x を持つモデルが与えられた場合、たとえば

x を特定のサイズ、たとえばこのようなものでインスタンス化するにはどうすればよいですか?

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

modelica - Modelica 配列方程式

99 ページの Modelica 3.3 rev 1 言語仕様には、次のパラメータ宣言があります。

[1]この文脈で とはどういう意味ですか?

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

modelica - Modelicaで接続を動的に切り替える

あらゆる種類の基本型 (Real、Integer、String、Boolean) を含む大きなコネクタがあるとします。状態イベントに基づいて接続を切り替えるにはどうすればよいですか? 私はこのようなことをしたいと思います:

これは動作しません。Modelica ではどのように適切に表現できるのでしょうか?

Adrian Pop のコメントに基づく回答。

更新: 上記のモデルは間違っています。なぜなら、スイッチから予期しないイベントが発生しない場合、ocon は icon[1] の初期値を永久に出力するからです。これは間違った答えによるものではなく、答えの私の誤った解釈によるものであることに注意してください。次のモデルは、Michael Tiller による回答に基づいています。