問題タブ [modelica]
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 - Modelicaでのシミュレーション中に前の時間ステップから値を決定する方法は?
Modelicaでのシミュレーション中に前の時間ステップから値を決定するにはどうすればよいですか? 私はそれから値をQ=m*c*(Ts2-Ts1-Tr)抽出する必要がある方程式を持っています。 Ts2Ts1
Ts2- は時間ステップ 2 からの値ですTs1- 前の時間ステップからの値ですTsは入力信号であり、時間内に変動があります。各ステップには異なる値があります。私の場合、タイム ステップは 1 秒です。その他の値は固定です。
式変数に設定できますtimeか? 例えば:
それとも、このモデル内に入力する必要がありますか?
よろしくティモフィー
modelica - 商用流通向けの Modelica キネマティクス シミュレーション環境
かなり単純なマルチボディ キネマティクス シミュレーションを実行し、力などの出力をプロットするツールの開発を検討しています。このツールは、サードパーティ企業による商用配布を目的としており、シミュレートするマシンをセットアップするための計算機として機能します。
ツールを Modelica に基づいて作成することを検討しています。使用料なしで配布できるシミュレーション プラットフォームはありますか? そうでない場合、Modelica のより良い代替手段はありますか?
boolean - Modelicaでブール信号を遅らせる方法は?
遅延ブロックは実際の入出力のみを受け入れるようです。ブール遅延で何も見つかりません。または、ブール値から実数への変換を行う必要がありますか?
私は Modelica に非常に慣れていませんが、これは私にとって明らかな組み込みブロックのように思えます...
ありがとう!
controls - Dymola を使用したコントロールの実装
Modelica/Dymola でビルトイン コントロール アルゴリズム (LQR) を実装する際に問題が発生しています。私が抱えていた問題を示す、より単純なモデルを作成しました。
基本的に、LQR を外部で呼び出し、タイム ステップごとに変化するエントリ (Ctest という名前) を含む行列を渡します。この Ctest は、findC という名前の外部関数によっても検出されます。
面白いことに、Ctest = 0 にすると Dymola は問題なく動作しますが、if ループで Ctest = 0 にすると、次のような多くのエラーが表示されます。 .dare 変数 AT は次元 ":" で宣言されました。これは dsmodel.c ではまだサポートされておらず、モデルで呼び出された場合、関数は失敗します。
たとえば、次のコードで 3 つの異なるケースを実行しました。2.代わりに、C が 0 のままの if ループを作成すると、モデルはシミュレートされません。以下の if ループをコピーしてコメントアウトしました。3. ケース 1 のように findC を保持し、「Real tether_l = 151.61;」のコメントを外すだけで、ケース 2 と同じエラーが発生します。
どんな助けでも大歓迎です!
関数 findK
関数 findC
どうもありがとう!:)
sample - Modelica で配列への信号をサンプリングする
私は Modelica を初めて使用し、連続した実際の入力信号を配列にサンプリングしようとして問題を抱えています。「when sample」を使用してみましたが、機能しません。以下のコードの問題は、すべてのx[i]がdt秒ごとにサンプリングされたpの同一バージョンであることです。私が望むのは、x[1]が最初のサンプル、x[2]が 2 番目のサンプルなどです。
どんな助けでも大歓迎です!
前もって感謝します!