問題タブ [dymola]
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.
dymola - Dymola で Modelica クラスを読み取り専用にする
ユーザーが作成したクラスをdymolaで読み取り専用にする方法はありますか? それを使用するモデルで作業するときに、誤って変更することを避けたいです。
algorithm - Modelica: どのモデルのどのアルゴリズム? ダッスル、オイラー
OpenModelica または Dymola は、モデルをシミュレートするためのいくつかのアルゴリズムを提供します: Dassl、Euler、Rungekutta、inline-rungekutta、Radau...
どのように正しいものを選択しますか?
modelica - OpenModelicaでのポリゴン作成
OpenModelicaのIcon/Diagram Layerで正多角形を作成していると、原点が多角形の中心/重心であり、原点を基準として多角形の点の座標が計算されていることがわかります。
OpenModelica で不規則な多角形の原点座標と点座標がどのように生成されるか教えてもらえますか?
modelica - Dymola での RealInput 変数の変更の検出
RealInput 値 X に変更があった場合は常に検出する必要があります。X == pre(X) かどうかを確認しようとしましたが、エラーと、Real が等しいかどうかを比較できないという警告のみが表示されます。X の導関数を使うことも考えましたが、明示的な表現がありません。
私の他の考えは、連続入力を比較可能な離散変数にサンプリングしようとすることでした。これは何らかの方法で機能しますか?
modelica - Modelica Medical 非 SI ユニットの指導
Modelica モデルで医療関連の非 SI 単位を使用したいと考えています。Dymola で Modelica を使用しています。エンジニアとして、私は SI 単位の方が好きです。しかし、私のモデル パラメータは医学出版物から入手したものであり、変換ミスを避けたいと考えています。医療ユニットは、医師とのコミュニケーションも簡素化します。
たとえば、圧力には「Pa」の代わりに「mmHg」(水銀柱ミリメートル)という単位が使用されます。圧力変数は、モデルで次のように定義されます。
シミュレーション用にモデルを変換すると、モデル内の非 SI 変数ごとに次の警告が表示されます (合計で約 300 の警告)。
モデルの変更によって新しい警告が発生した場合、それを検出することはほぼ不可能です。したがって、Modelica に単位「mmHg」を教える必要があります。
トピックに関する私の現在の知識:
- Modelica 言語仕様 3.3、第 19 章単位式: 「ユーザー定義の単位記号をサポートすることは可能です。」ただし、ドキュメントはこれについて詳しく説明していません。
- ユーザーは、Dymola ディレクトリの「displayunit.mos」ファイルで次のように変換係数が定義されている限り、シミュレーション GUI で使用する表示単位 (Real 属性「displayUnit」) を定義できます。
モデルの移植性が低下するため、これはオプションではありません。モデルを実行するすべてのコンピューターで手動で実行する必要があり、管理者権限が必要です (私は持っていません)。
よろしくお願いいたします。
編集(将来これに遭遇する人に役立つかもしれません):
投稿時のバージョン: Modelica Standard Library 3.2, Dymola Version 2014 (64-bit) 2013-03-25
このトピックに関する現在の知識に次のことを追加するのを忘れていました: Physilibrary 2.1.1 は、GUI の displayUnits を定義します。コーディングのために、著者は次のトリックを使用します。
このように、Modelica は圧力タイプの変数を単位がパスカル (N/m2) であるとして処理しますが、コードに入力されたすべての値を所定の公称値で除算します。
訂正:
このセクションでは、物理ライブラリーが単位変換に公称実数属性を使用することを以前に述べました。これはそうではありません。私を訂正してくれた Marek Matejak (Physilibrary の著者) に感謝します。属性名義の唯一の目的は、安定性の理由から数値問題をスケーリングすることです。
contextmenu - dymolaでコンテキストメニューを作成するには?
dymola で独自のコンテキスト メニューを作成するにはどうすればよいですか? MATLAB でできることと同じことをしたいのですが、リンクに示されているコンテキスト メニューを実行できます: http://blogs.mathworks.com/pick/2011/05/20/add-a-list- of-favorite-blocks-to-the-simulink-context-menu/
keyboard-shortcuts - Dymola でショートカットを作成してアクションを実行する
Dymola で何らかのアクションを実行するためのショートカット (キーボード) を作成したいと考えています。たとえば、キー (またはキーの組み合わせ) を押して、現在のモデルをシミュレートするか、決定されたオープン モデルをシミュレートしたいと考えています。
サブモデルで作業する場合、シミュレーションの前にメイン モデルを開く必要があるため、2 番目の可能性は完璧です。
さらに、Dymola ではキーボード ショートカットが非常に貧弱であり、ユーザー インターフェイスを改善したいと考えています。
ありがとう。
initialization - FMU 初期化の問題
最近、Dymola 2015 で FMU 2.0 モデルをエクスポートしましたが、初期化に問題がありました。
モデルをエクスポートする前に、正確な出力値を知っているいくつかの定数値に入力コネクタを接続して、モデルの有効性を確認しました。すべてが適切に見えることがわかりました。モデルは期待どおりに変換、初期化、およびシミュレートできます。
次に、モデルを ME FMU 2.0 RC としてエクスポートしました。C ではインスタンス化でき、初期化に入る前に fmiSetupExperiment が正常に呼び出されましたが、fmiEnterInitializationMode を呼び出した直後に初期化に失敗しました。
エラーは下の画像のようになります
Simulink での Dymola FMU の初期化の投稿に従って、妥当な入力値をモデルに割り当てようとしましたが、役に立ちませんでした。
その後、initial="approx" を持つ scalarVariables がいくつかあることがわかりましたが、Dymola でそれらの最終値を確認すると、初期近似値は最終値にかなり近くなっています。
だから私は次に何を試すべきかについてかなり混乱しています...ここにいる誰かが私を少し助けてくれるのだろうか.
ありがとう!