Modelica のハイブリッド モデリング パラダイムに戸惑っています。イベントは便利な反面、避けなければならないものです。私の場合を説明しましょう:
1 年以上シミュレートされた近隣の複数の建物で構成される大規模なモデルがあります。最初、モデルの実行は非常に遅くなりました。できるだけ多くの if 条件の周りに noEvent() を追加すると、速度が大幅に向上しました。
開発が進むにつれて、モデルの制御がより複雑になり、非常に短い間隔で、多くのイベントが再び発生するようになりました。アイデアを与えるには:
Number of (model) time events : 28170
Number of (U) time events : 0
Number of state events : 22572
Number of step events : 0
これらのイベントは出力を爆発させ (正しい後処理のためにイベントで変数が必要です)、シミュレーションを遅くします。さらに、一部の noEvent(if...) が予期しない動作につながるような気がします。
特定の時間ステップでイベントを強制し、これらの時間ステップの間でそれらを禁止することは解決策になるのでしょうか? 理想的には、特定の条件に基づいてこれらの「強制イベント」をトリガーしたいと考えています。例: 日中は 15 分ごとに、毎分高い日射量で、夜間はイベントがまったく必要ありません。
これは良い考えですか?状態イベントの多くが時間イベントになるので、これはより高速になると思いますか? これは Modelica 3.2 (Dymola) でどのように行うことができますか?
すべての回答に感謝します。ロエル