Simscapeモデルによる物理システムの表現
物理システムの表現
この節では,物理システムの数学表現の主要な特徴と,Simscape™ソフトウェアによるこうした表現の実装方法について説明します。この概要は,次のような場合に役立ます。
モデルの忠実度やシミュレ,ションのパフォ,マンスを改善するためにこうした表現の詳細が必要である。
Simscape言語を使用して独自のカスタムSimscapeコンポ,ネントを作成している。
Simscapeのモデル化やシミュレ,ションの失敗のトラブルシュ,ティングが必要である。
数学的表現は物理シミュレ,ションの基礎です。シミュレ,ションの詳細は,Simscapeでのシミュレ,ションの仕組みを参照してください。
微分システム,微分代数システム,代数システム
物理システムの数学表現には"常微分方程式"(ODE),"代数方程式"またはその両方が含まれます。
ODEは“システム変数”の変化率を決定し,システム変数の時間微分の一部またはすべてを含みます。
代数方程式はシステム変数間の機能的拘束を指定しますが,システム変数の時間微分は含みません。
代数拘束がない場合,システムは微分システム(ode)です。
颂がない場合,システムは代数システムです。
颂と代数拘束の両方がある場合,システムは複合の"微分代数"(dae)システムです。
システム変数は,システム方程式における時間微分の有無によって,微分的または代数的となります。
剛性
求める解はゆっくり変化しているのに,許容誤差の範囲内で急速に変動する他の解がある場合、数学的な問題は“スティッフ”です。スティッフなシステムには,大きさの非常に異なったいくかの固有の時間スケルがあります[1]。
スティッフな物理システムには通常の意味で”スティッフ”な動作をするコンポーネントが1つまたは複数あります(大きいバネ定数をもつバネなど)。数学的に等価なものとして,擬似非圧縮性の流体や低い電気。このようなシステムでは多くの場合,コンポ,ネントやモ,ドの一部で高周波の振動が発生します。
ベントとゼロクロッシング
イベントとは,たとえばバルブの開放や急停止など,時間の経過に伴うシステムの状態やダイナミクスの不連続な変化です。Simscape言語でベントがどのように表現されるかの詳細にいては,离散事件建模を参照してください。
“ゼロクロッシング”は特定の▪▪ベントタ▪▪プで,数学関数の値の符号変化により表されます。可変ステップソルバ,では,ゼロクロッシング,ベントが検出されると,ステップが小さくなります。ステップを小さくすると,ゼロクロッシングを引き起こすダイナミクスを正確に捉えるのに役立ちますが,シミュレーション速度は著しく低下します。ゼロクロッシングの検出と解析のさまざまな手法は,シミュレーションの速度と精度の適切なバランスをとるのに役立ちます。詳細にいては,Simscapeモデルでのゼロクロッシングの管理を参照してください。
Simscapeの表現の取り扱い
Simscapeモデルは1つまたは複数の物理システムを物理ネットワークとして表す一連の方程式に相当します。
最初に,物理ネットワ,クがdaeシステム,すなわ微分および代数方程式と変数の混成であると仮定します。
物理ネットワ,クによっては,odeだけで表されるものもあります。
物理ネットワ,クにはスティッフな微分方程式が含まれる場合があります。
シミュレ,ション中に不連続に変化する可能性がある離散コンポ,ネントと連続コンポ,ネントを確認します。
Simscapeモデルでのゼロクロッシングの管理
モデルには,次のような複数のソ,スから生ずるゼロクロッシング条件が含まれます。
それぞれのブロックラ▪▪ブラリからコピ▪▪されたSimscapeブロックとSi万博1manbetxmulink®ブロック
Simscape言語でプログラムされたカスタムブロック
万博1manbetx仿真软件ソフトウェアには,ゼロクロッシングイベントを管理するグローバルな手法があります。詳細にいては,ゼロクロッシング検出を参照してください。
ゼロクロッシング検出はブロック単位で無効にすることも,モデル全体でグローバルに無効にすることもできます。ゼロクロッシング検出を行うと、多くの場合シミュレーションの精度は改善しますが、シミュレーションの速度が低下する場合があります。
ヒント
ゼロクロッシングの正確な回数がモデルにおいて重要な場合は,ゼロクロッシング検出を有効のままにします。無効にした場合,シミュレ,ションの精度が大幅に低下する場合があります。
Simscapeモデルでのゼロクロッシングの検出と最小化
汎用的な仿万博1manbetx真软件の手法に加え,Simscapeソフトウェアにはモデルのゼロクロッシングを検出し管理することができる固有のツールがあります。
シミュレーション前には,統計ビューアーを使用してモデル内で発生する可能性のあるゼロクロッシング信号を特定できます。通常これらの信号は,不連続点を含む演算子や関数(比較演算子,関数
腹肌
、関数√6
など)から生成されます。シミュレ,ション中には、これらの信号でゼロクロッシング イベントが生成されないこともあれば、1 つまたは複数の信号によって複数のゼロクロッシング イベントが生成されることもあります。詳細については、モデル統計の表示を参照してください。モデルのシミュレ,ションデ,タのログを記録しているときには,[シミュレ,ション統計のログ記録]オプションを選択できます。これにより,デ,タログにシミュレ,ション中の実際のゼロクロッシングデ,タが含められます。詳細にいては,シミュレ,ション統計のログ作成を参照してください。
Simscape結果エクスプローラーを使用すると,シミュレーション中に記録されたゼロクロッシングデータにアクセスし,解析することができます。詳細にいては,Simscape結果エクスプロラにいてを参照してください。
関数
sscprintzcs
は,シミュレーション中に検出されたゼロクロッシングに関する情報を,記録されたシミュレーションデータに基づいて出力します。この関数を呼び出すには,シミュレーション統計データを含むシミュレーションログ変数が現在のワークスペースになければなりません。詳細と例にいては,sscprintzcs
を参照してください。
ゼロクロッシングの管理は,モデルをリアルタイムシミュレーション用に準備する場合に特に重要になります。このワ,クフロ,の詳細な例は,ゼロクロッシングの削減を参照してください。
Simscape言語でのゼロクロッシング条件の有効化と無効化
Simscape言語を使用して独自のカスタムブロックのコードを記述する場合,不連続条件式の実装を切り替えることにより,モデルでのゼロクロッシング条件を作成するか,あるいは回避することができます。以下の方法があります。
関係演算子を使用すると,ゼロクロッシング条件が作成されます。たとえば,演算子による関係式
A < b
をプログラムすると,ゼロクロッシング条件が作成されます。関係演算子の関数を使用すると,ゼロクロッシング条件は作成されません。たとえば,関係演算子の関数
lt (a, b)
をプログラムした場合,ゼロクロッシング条件は作成されません。特定の関数がSimscape言語で使用されたときに不連続点が発生するかどうかの詳細にいては,方程
を参照してください。
メモ
ベントの叙述にlt (a, b)
のような関係関数を使用すると,必ずゼロクロッシング条件が作成されます。化学键ベントの叙述の詳細に化学键いては,离散事件建模を参照してください。
参考文献
[1] Moler, C. B., MATLAB数值计算,费城,工业与应用数学学会,2004,第7章
[2]霍洛维茨,P.和希尔,W.,《电子艺术》,第二版,剑桥,剑桥大学出版社,1989年,第2章
[3]布罗根,W. L.,现代控制理论,第二版,恩格尔伍德悬崖,新泽西州,普伦蒂斯-霍尔,1985年