主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

モデル線形化器での線形化結果のトラブルシューティング

この例では,モデル線形化器で線形化アドバイザーを使用して,振子モデルの線形化をデバッグする方法を説明します。

モデルの設定

金宝app仿真软件モデルを開きます。

mdl =“scdpendulum”;open_system (mdl)

振子角度の初期条件は,垂直の不安定な平衡状態0度から反時計回りに90度です。振子角速度の初期条件は0度/ sです。この状態を維持するための定格トルクは-49.05 N mです。この構成はモデルの初期条件として保存されています。

モデル線形化器を開いてモデルを線形化する

モデル線形化器を開くには,金宝app仿真软件モデルウィンドウの[アプリ]タブで[モデル線形化器)をクリックします。

モデルの初期条件でモデルを線形化するには,モデル線形化器[線形解析]タブで[ボード線図]をクリックします。

モデルが線形化され,その周波数応答がプロットされます。

ボード線図からわかるように,システムはゼロに線形化されており,トルクは角度や角速度に影響を与えません。その理由を調べるには,線形化アドバイザーを使用することができます。

アドバイザーを有効にした状態でのモデルの線形化

モデルを再度線形化してアドバイザーを生成するには,[線形化アドバイザー]を選択してから[ボード線図1]をクリックします。

モデルが線形化されてlinsys2_advisorドキュメントが作成され,[アドバイザー]タブが開きます。

線形化パスの強調表示

現在の線形化の線形化パスを表示するには,[アドバイザー]タブで[線形化パスの強調表示)をクリックします。[線形化パス]ダイアログボックスではブロックが次のように強調表示されています。

  • 青はモデルの線形化に数値的な影響を与えます。

  • 赤は線形化パス上にありますが,現在の操作点とブロックパラメーターではモデルの線形化に影響しません。

便宜上,振子サブシステムの下にあるブロックのみが表示されています。

この場合はモデルがゼロに線形化されているため,線形化に寄与するブロックはありません。

アドバイザーを使用した問題が生じる可能性のあるブロックの調査

linsys2_advisorドキュメントには,線形化で問題が生じる可能性のあるブロックの一覧表が含まれています。

特定のブロック線形化に関する詳細を表示するには,表の対応する行の[ブロック情報]をクリックします。

この場合1つの饱和ブロックと2つの三角函数ブロックの合計3つのブロックがアドバイザーによって報告されています。診断されている饱和ブロックを最初に調べます。そのためには,表の最初の行にある[ブロック情報]をクリックします。

饱和ブロックには2つの診断メッセージがあります。最初のメッセージは,入力操作点が-49.05なので,ブロックがその飽和の下限-49年の外で線形化されていることを示します。このメッセージには,ブロックをゲインとして線形化できることも述べられています。こうすると入力操作点に関係なく,ブロックは1として線形化されます。これを行うには,まず[ブロックをゲインとして線形化)をクリックして,ブロックダイアログボックスの対応するパラメーターを強調表示します。その後,[線形化時にゲインとして扱う)パラメーターを選択します。

2番目のメッセージは,このブロックの線形化によってモデルがゼロに線形化されることを示しています。[線形化]セクションからわかるように,ブロックはゼロに線形化されます。したがって,ブロックの線形化の変更は、非ゼロのモデル線形化を取得するための最初のステップとして良い方法です。

モデルの再線形化

饱和ブロックをゲインとして扱うよう設定した後,モデルを再度線形化します。ここでは 2 つの Trigonometric Function ブロックに関する診断は無視することにします。

モデルを再線形化するには,[線形解析]タブで[ボード線図1]をクリックします。[ボード線図1]ドキュメントが更新されて,linsys3の非ゼロの応答が表示されます。

対応するlinsys_advisor3ドキュメントには饱和ブロックがリストされなくなります。ただし2つの三角函数ブロックは引き続き表示されています。

線形化パスを強調表示します。

この時点では,リストされた三角函数ブロックを通過するパスを除いて,大半のブロックがモデルの線形化に寄与しています。

これらのブロックが線形化に寄与しない理由を調べるため,linsys3_advisorドキュメントからこれらのブロックに移動します。たとえば,表の2行目にある[ブロック情報]をクリックします。

この三角函数ブロックでは線形化がゼロであり,入力操作点は\π/ 2 = 1.5708美元です。

入力について関数の1次導関数を取ることにより,ブロックの線形化を解析的に求めることができます。

假设$ sin(u) = cos(u)$,则$ sin(u) = cos(u)$

したがって,u = \π/ 2美元で評価される場合のブロックの線形化はゼロになります。入力のソースは2次積分器の最初の出力で,これは状態θに依存します。よって,このブロックは$\theta = /2 + k $の場合にゼロに線形化します。ここでk美元は整数です。angle_wrapサブシステムのもう片方の三角函数にも同じ条件が適用されます。

これらのブロックでゼロ線形化が予想されていなければ,操作点の状態θを変更して,モデルを再線形化することができます。

プリビルドのアドバイザークエリの実行

線形化アドバイザーにはブロック診断をフィルター処理する一連のプリビルドクエリが用意されています。たとえば,[線形化のアドバイス]クエリは,アドバイザーの最初の作成時にパス上に次のようなブロックを含む場合に実行される既定のクエリです。

  • ブロック線形化に関する診断メッセージがある。

  • ゼロに線形化する。

  • 代替の線形化をもつ。

他のプリビルドクエリを実行するには,[アドバイザー]タブの[クエリ]ギャラリーにあるクエリをクリックします。たとえば,[パス上の零点とI / Oのペア]をクリックします。

このクエリは,いずれの入力チャネルからも到達できない出力チャネルがあるか,またはいずれの出力チャネルにも影響しない入力チャネルがある線形化をもつブロックを返します。たとえば,表の2番目のブロックは量化として構成されている三角函数ブロックです。このブロックの最初の入力は,唯一の出力に到達できません。

カスタムクエリの作成と実行

線形化アドバイザーにはカスタムのクエリを作成するためのクエリビルダーも用意されています。これらのクエリは,モデルで特定の条件に一致するブロックを検出するために使用できます。たとえば,数値的に摂動されたすべての SISO ブロックを見つけるには、まずクエリ ビルダーを開きます。これを行うには、[アドバイザー]タブで(新しいクエリ]をクリックします。

[クエリビルダー]ダイアログボックスで次を行います。

  1. [クエリ名)sisopertに指定します。

  2. ドロップダウンリストで有“纽约“输出”を選択し,[出力]ボックスで1を指定します。

  3. クエリに別のコンポーネントを追加するには,[クエリに追加)をクリックします。

  4. 2番目のドロップダウンリストで有“ν”输入“を選択し,[入力]ボックスで1を指定します。

  5. [クエリに追加)をクリックします。

  6. 3番目のドロップダウンリストで摄动を選択します。

[クエリの実行)をクリックします。

指定のクエリ条件に一致するブロックがlinsys3_advisorドキュメントに表示され,sisopertクエリが[クエリ]ギャラリーに追加されます。

sisopertクエリを削除するには,[アドバイザー]タブで[クエリの削除)をクリックして,(sisopert)を選択します。

アドバイザーのエクスポートとMATLABスクリプトの生成

線形化アドバイザーのコマンドライン関数を使用してモデルの線形化をデバッグすることもできます。アドバイザーオブジェクトをMATLABワークスペースにエクスポートするには,[エクスポート]をクリックします。次に[アドバイザーのエクスポート]ダイアログボックスで,エクスポートするアドバイザーを1つ以上選択します。たとえば,linsys3_advisorを選択します。

[エクスポート]をクリックします。

あるいは,線形化,アドバイザーの抽出,カスタムクエリの生成,およびクエリの実行を自動化するMATLABスクリプトを生成することもできます。このスクリプトを生成するには,[エクスポート]分割ボタンをクリックしてから,[スクリプトの生成)を選択します。

bdclose (mdl)

参考

アプリ

関連するトピック