• 検索結果がありません。

( R2008a 以降対応):

ドキュメント内 Simulinkモデルの高速化手法 (ページ 34-42)

適応ゼロクロッシングアルゴリズムを使います

シミュレーションが固まらなくなります

ステップサイズが設定値を下回るか、ゼロクロッシングの 連続発生回数が設定値を超えると、検出を「あきらめて」

次のタイムステップに移ります

ステップサイズ、連続発生回数の

設定で計算精度をコントロールできます

この対処法が おすすめです

このケースから得られた教訓

ゼロクロッシングは本来、計算精度向上のメカニズムです。

シミュレーション速度を低下させることがありますが、問題にならな い程度なら常に使用するようにしておくことが望ましいでしょう。

しかし、ゼロクロッシングが「連続で」検出されると、上限回数を超え たところでエラー停止します。

シミュレーション速度・結果に問題があれば、

2

つの対処法 を試してみましょう。

ゼロクロッシングの有効/無効設定適応ゼロクロッシング設定

アジェンダ

まずはここから

今すぐ簡単に試せる高速化手法

本質を探ろう!

– 3

つのケースから得られる教訓 (その③)

まだある高速化手法

アドバンストトピックス・関連情報

まとめ

カテゴリ Tips トラブルシュート

想定レベル 初級 中級 上級

対象ソルバー 連続 離散

可変ステップ 固定ステップ

ケース 3

こんな状況に遭遇したことはありませんか?

シミュレーションを実行すると警告メッセージが

代数ループを構成するモデルの典型例です

フィードバックされた出力が 同じタイミングで自身の入力に 戻っています

数学的には、代数ループの 入出力関係は代数方程式で 記述されます

常微分方程式のソルバーとは 別に、代数ループソルバーが 機能します

代数ループ

代数ループの困りごとは

計算コストが増大します

代数ループソルバーは数値 探索解法です

毎時間ステップで代数解の 探索が実行されます

解が得られなければエラーで 停止します

コード生成することができません

代数ループを含むモデルからは コード生成を行うことができません(アクセラレータモードの使用は

可能です(R2011b以降))

代数ループのないモデルが理想です

一見、分かりにくいですが、

こんな代数ループもあります

問題の無さそうなディジタルローパスフィルタですが

「直接フィードスルーあり」の ブロック出力が、同じタイミングで

入力に戻されていないか チェックしましょう!

積分手法:後退型オイラー

Discrete-Time Integrator ブロックのヘルプドキュメント

左記と等価なモデル

代数ループ

代数ループの発生箇所は このようにして確認できます

ソルバーの診断設定で、

「代数ループ」の診断レベルを

「エラー」に変更します

シミュレーションを実行すると エラーとともに代数ループの 発生箇所が赤色でハイライト 表示されます

2 つの回避方法を紹介します

ドキュメント内 Simulinkモデルの高速化手法 (ページ 34-42)

関連したドキュメント