問題タブ [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.
simulation - Modelica の翻訳段階への障壁?
一般的な Modelica のアドバイスはありますか?
約 2000 の方程式と測定データからの入力の 3 つのベクトルでモデルを構築しました。OpenModelica を使用すると、シミュレーションの試行が変換段階で停止し始め (以前は 1 分もかからなかったのに、数時間実行されます)、今では定期的に「omc.exe への接続が失われます」。翻訳/コンパイルのパフォーマンスを低下させる累積的な何かが発生している可能性がありますか?
一般的に、シミュレーションを軽量かつ高速に保つための適切な経験則はありますか? カップリングによっては、追加の方程式によって結果として得られる連立方程式のサイズが指数関数的に増加する可能性があることを認識しています。これは問題になる可能性がありますか?
ご感想ありがとうございます!
modelica - コネクタ配列から配列を抽出
コネクタを引数として Modelica 関数を記述することは、少なくとも推奨されていないようです。試してみると、警告が表示されます。
コネクタがあるとします
記録
と関数
コネクタの配列が与えられた場合、つまりcon c[N]
、それをレコードの配列に変換するにはどうすればよいrec
ですか?
1つのアプローチは、関数を使用することです
経由で呼び出しますconvert(size(c, 1), c.x, c.y)
。
もっと簡単な方法はありますか?
modelica - 部分モデルの Modelica 配列
を部分A
モデルとしC
、D
を拡張モデルとするA
。与えられたモデル
X をインスタンス化するにはどうすればよいですか。たとえば、次のようなものです。
更新:2つのバリエーションを試しました。一つは
これは、 「入力、パラメーター、および変数はデフォルトでのみ設定できますが、変更されている可能性があります」という警告で失敗します。. もう一つは
「Component a = {c,b,c}, but before a = << Empty >>. The components are not同一.」というエラーで失敗します。
次のことが可能であることに注意してください。
P.X
しかし、パラメトリック配列を使いたいです。繰り返しますが、これを達成するための次のアイデアは機能しません。
simulation - 複数の LUT から選択する最良の方法は? (モデリカ)
物理システムのモデルでは、ルックアップ テーブルの係数で 1 つのフラックス値を変更します。LUT 自体は、整数インデックスに基づいて LUT のカタログから選択されます。現在、テーブル データを CombiTable2D コンポーネントにロードしています。正しい LUT を選択/定義する正しい方法は何ですか? それらすべてを 1 つの入力データ ファイルに名前付きのテーブルとして含める場合、その tableName (CombiTable パラメーター) に基づいて LUT を選択する方法はありますか? 方程式またはアルゴリズム形式の For ループで遊んでいますが、まだ機能する構文を見つけていません。
考えてくれてありがとう...
modelica - Modelica の抽象スイッチ
部分モデルの Modelica 配列について以前に尋ねた質問の動機を与えたいと思います。次の 2 つのコントローラー間のスイッチのモデルを考えてみましょう。
の発散によりしばらく選択されていない場合、PIコントローラーが壊れる可能性があるという事実を無視しましょうx
。x
これは、PI コントローラーが選択されているときにリセットすることで修正できます。ただし、これはここでのポイントではありません。
このスイッチを 2 つの方法で抽象化したい。まず、パラメトリックな数のコントローラーを切り替えます。次に、部分モデルを使用してコントローラーを抽象化します。をコントローラーCtrl
の部分モデルとします。
次のように、スイッチに組み込まれた 2 つのコントローラーをインスタンス化できます。
スイッチの抽象バージョンは、次のようなものであると想定されています。
ただし、このモデルにはいくつかの問題があります。まず、このモデルをインスタンス化する方法が明確ではありません。たとえば、1P
つのPI
コントローラーを使用する場合です。次に、驚くべき警告が表示されます。c[1].u
Modelicaでこの抽象的なスイッチを何らかの方法で表現することは可能ですか?
modelica - Modelica: コネクタとダイレクト入力のミキシング
次の Modelica パッケージは、特に有用でも興味深いものでもありませんが、警告は発生しません。
ただし、A
次の場合のように がコネクタを使用しない場合は、次の警告が表示されますa.x
。明らかに、 の拘束方程式がありa.x
ます。なぜそのような警告があるのですか?
utf-8 - Modelica エンコーディングの問題
Modelica 3.2 ( 2010 年 3 月リリース) 以降、コメント、説明文字列、および/または注釈で任意の Unicode 文字を使用することが許可されています。
しかし、何らかの理由で、次のようなコードで問題が発生しています。
問題を再現するには、次の UTF-8 ラウンドトリップを試してください。
- 上記のテキストをコピーして、お気に入りのテキスト エディターに貼り付けます
- UTF-8 (BOM の有無にかかわらず、またはその他のエンコード) を使用してファイルを保存し、閉じます。
- お気に入りのエディターで再度開き、次に OpenModelica と Dymola で (この順序で)
- 問題が解決しない場合は、Dymola の保存ボタンを押してください (文字を削除して、もう一度入力してください)。
- お気に入りのエディターである OpenModelica と Dymola で再度開く
- 少なくともいくつかの記号はどこかで異なって見えるでしょう
どこでも見栄えがするようにそのファイルを保存する方法を誰か教えてもらえますか? それとも期待しすぎですか?何をどこで修正する必要がありますか?
modelica - Dymola での通話の録音に関する問題
次のパッケージ「RecordTest」(より大きなモデルのエラーを再現する例) には、一部のデータの構造を定義するためのレコードが含まれています。さらに、パッケージ 'DataDefintion' では、2 つのデータ セットが定義されています。最後に、このデータはパッケージ 'UseOfData' で使用する必要があります。ここで、データセットが読み取られ、すべての配列 A の合計が関数 'FunctionWithData' で評価されます。
モデル 'FunctionCall' のシミュレーションは OpenModelica で正常に動作します。Dymola では、「変数パッケージ定数 RecordTest.UseOfData.ReadData[1].A の場合、配列変数の添字 RecordTest.UseOfData.ReadData.Index は整数ではありません」というエラーが表示されます。
私は何かが恋しいですか?定数「Index」は、レコード「DataStructure」で整数として定義されています。さらに、モデルは OpenModelica で実行されます。Dymolaのエラーがわかりません。
前もって感謝します。
conditional-statements - 私が提供していない条件付き選択アルゴリズムから返された値?
Modelica では、単純なマッピング (ケース構造のペア) を作成して、MxN 値のテーブルを 5x5 値のテーブルに縮小しました。しかし、境界 (行 = M または列 = N) にある入力でシミュレートすると、マッピングは「5」を返すはずなのに「0」を返します。範囲外のケースを含めましたが、戻り値は「0」ではなく「3」である必要があります。出力として「0」を指定することはありません。
これは、関数が時不変であること、おそらく初期条件の欠如が原因でしょうか?
コードは次のとおりです。
ご意見ありがとうございます。