問題タブ [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.
modelica - Dymola での SBF による Navier-Stokes PDE の管理
Modelica で Navier Stokes 偏微分方程式 (PDE) を実装しようとした人はいますか? Dymola で処理できる常微分方程式 (ODE) を数値修正によって取得する空間基底関数 (SBF) の方法を見つけました。
よろしく、
ビクター
modelica - Modelica で単純な DCDC コンバータを構築する際の問題
DCDC コンバーターの非常に単純なモデルを書きたいと思います。何らかの理由で、Dymola は、「モデルのポーズが適切ではなく」、Real 要素に対して過大評価されていると私に言いました。
それは非常に単純な問題かもしれませんが、私には見えません!
これが私のコードです:
うまくいけば、誰かがここで私の問題を理解してくれるかもしれません。前もって感謝します!
編集:答えの後、ハイブリッド(エネルギー/電源)供給用のコンバーターが必要なので、モデルを少し変更することにしました。結果のコンバーターは、次のコードで与えられます。
2 つの単純な定電流源と 1 つの定電流負荷を使用してコンバーターをテストすると、再び特異点エラーが発生します。Dymola 2015 は、決定できない根拠がある可能性があることを教えてくれますが、そうであってはなりません。
コードは次のモデルになります。(定電流負荷は Modelica_EnergyStorages ライブラリからのものです)
あなたが何とかその問題で私を助けてくれることを願っています! 前もって感謝します!
modelica - Modelicaで時系列データファイルを読む方法
Modelica で、特にオープンな modelica コンパイラ (omc) を使用して、時系列データ (csv など) を読み取る必要があります。インターネット検索を行ったところ、ネット上でncReader ライブラリが見つかりました。dymola では動作しますが、オープンな modelica コンパイラでは動作しません。私のテストコードは次のようなものです:
開いているモデリカで実行しようとすると、次のエラーが発生します。
Translation 09:21:41 0:0-0:0 シミュレーターの構築中にエラーが発生しました。ビルド ログ: gcc -falign-functions -msse2 -mfpmath=sse -I"C:/OpenModelica1.9.0//include/omc" -I. -DOPENMODELICA_XML_FROM_FILE_AT_RUNTIME -c -o TimeSeries.NcTest.o TimeSeries.NcTest.c TimeSeries.NcTest.c:19:28: エラー: ncDataReaderEA.h: そのようなファイルまたはディレクトリはありません mingw32-make: *** [TimeSeries.NcTest.o ] エラー 1
dymola で動作する理由は、dymola が C コンパイラを使用しており、ライブラリの c ファイルをオンザフライでコンパイルしているためだと思います。残念ながら、open modelica を使用する必要があります。
オープンmodelicaコンパイラで使用するためにこのエラーを修正できるか、またはmodelica(オープンmodelicaコンパイラ)で時系列データファイルを読み取るための他の代替手段がある場合、誰でも助けてもらえますか?
前もって感謝します
modelica - 構成の開始値を持つ FluidPort コネクタ
多成分流体のプロセス シミュレーションに OpenModelica を使用しています。特定のインスタンスで初期化が失敗することに気付きました (合成ベクトル X が、方程式の初期非線形セットを解く際の初期推定値としてゼロの配列に設定されている場合)。それを避けるために、次のようにコネクタを宣言する必要がありました
注: 私の初期条件は一貫しており、十分です。私の問題は、非線形ソリューションの初期推定値です。
Modelica の FluidPort 接続定義には、適切な開始値を持つ推測値が自動的に含まれるべきではありませんか? (最新の Modelica 3.2.1 ライブラリを使用しています)
openmodelica - FMU FMI シミュレーション、初期化後に一部の方程式が評価されない
私の問題はこの前の質問に何らかの形で関連していると思いますが、彼らのアドバイスでは問題を解決できませんでした.
これは最小限の非動作例です。整流スイッチを備えた単純な電気回路があります(openModelicaで開発)。入力パラメーターの値に応じて、switch.controlの値を変更したいと考えています。そのために、私は次のものを持っています:
注:パラメータ、入力などの間で多くの組み合わせを試しました...
反復シミュレーションを行いたいです (たとえば、システムの 60 秒をシミュレートしますが、1 秒のシミュレーションを 60 回連続してシミュレートします)。これは、別の FMU シミュレーションに従って入力値 ( openclose )を変更できるようにするためです。
その結果、pyFMI からの入力の値を変更できます。(私がそれを読むと、変更が考慮されます)。ただし、「新しい値」は私の方程式でも考慮されていません。
これが私のpyfmiスクリプトです:
基本的には、50 単位の時間でシミュレートしてから、openclose
変数の値を変更してから、もう一度シミュレートし、もう一度切り替えて、再シミュレートします。その結果、私は得ました:
実際には、 への最初の呼び出しの前に作成されたセットのみが、model.simulate(...)
その値をシステムに伝達します。
ここannotation(Evaluate = false)
で提案されていることを理解しようとしましたが、うまくいきませんでした。実際に値を変更できるため、関連しているかどうかはわかりません。問題は、このパラメーターに基づく方程式が初期化中にのみ評価されるように見えることです:-/
どんなアイデア/助けも大歓迎です...
simulation - 二相Modelicaメディアの例
液体または蒸気になる単一の物質を持つ流れのシミュレーションを OpenModelica で開発しようとしています。Modelica.Media.Water モデルには 2 つのフェーズがありますが、非常に複雑で、まったく異なる物質で再現するのは非常に困難です。私が作業できる 2 相媒体の簡単な例を見つけたいと思います。部分パッケージ TemplateMedium と部分パッケージ PartialTwoPhaseMedium がありますが、2 つのフェーズのいずれかになる完全に新しいメディアを作成する方法の例は見当たりません。
誰かが簡単な例、または必要なプロパティと方程式の最小セットのリストを提供できれば、出発点として非常に役立ちます。
コメントの質問のいくつかに対処するには: 私はこのモデルを始めたばかりなので、Media モデルがどのように構築されているか、モデルに含まれているものと追加する必要があるものについての詳細を理解しようとしています。それぞれの新しいメディア。私はプロピレンを扱っているので、良いデータが利用可能です。これは CoolProp に含まれるメディアの 1 つなので、ExternalMedia と CoolProp を使用できると非常に便利ですが、多くのコメントやバグ レポートから、これらは OpenModelica ではまだ機能していないと思います。
modelica - 置換可能な関数と文字列からの関数呼び出し
次の 3 つの質問は 1 つにまとめられているため、長文になることをお許しください。
Dymola 2016 を使用しています。
モデル内で置換可能な関数呼び出しを使用すると、ユーザーがドロップダウン オプションを使用できるようになります。以下の例:
関数内で同じ置換可能な関数呼び出しを行うと、関数が呼び出された場合と同じドロップダウン機能が許可されないようです (つまり、パッケージブラウザーで関数を右クリックします。関数は通常、他の関数/モデル内で呼び出されるため、これは意図的なものだと思います。以下の例:
質問1。モデルと同じように、関数内で置換可能な関数呼び出しを使用することは可能ですか? もしそうなら、適切な構文は何ですか? 代替アプローチ?
別の方法として、モデル内で置換可能な関数呼び出しを実行し、その結果を別の関数に渡して適切な呼び出しを行うという方法もあります。以下に例を示します。
パラメータ x と関数ハンドル a を次のように渡します。
質問2。これはModelicaで許容されますか?もしそうなら、どのように? 代替アプローチ?
質問#3。文字列を定義して、それを関数の名前に変えることは可能ですか? 以下の例:
前もって感謝します!私は Modelica の使用を探求し続けているので、あなたのフィードバックに感謝します。