システム同定を使用したモデルコンポ,ネントの線形化の指定
以下の例では,うまく線形化されないモデルコンポーネントの線形化を,系统辨识工具箱™を使用して同定された線形モデルを使って指定する方法を説明します。この例にはSimscape™Electrical™ソフトウェアが必要です。
ハドドラブモデルの線形化
ハドドラブ用のSimu金宝applink®モデルを開きます。
模型=“scdpwmharddrive”;open_system(模型)
このモデルでは,ハ,ドドラ,ブプラントは電流源で駆動されています。電流源は,出力がデューティ比で調整できるようパルス幅変調(PWM)信号で駆動される回路で実装されています。ハドドラブモデルの詳細にいては,ハドディスクドラブのデジタルサボ制御を参照してください。
PWM駆動の回路には通常,このモデル内のMOSFETトランジスタなどのように,平均的動作が十分に定義されていない高周波数スイッチングコンポーネントがあります。したがって,このタ。モデルをデュ,ティ比入力から位置誤差へ線形化すると,その結果はゼロになります。
このモデルのSimscapeソルバーはローカルソルバーモードで実行するように設定されています。モデルを線形化するときは,まずロ,カルソルバ,をオフにします。
SimscapeSolver =[模型/PWM驱动转换器/求解器配置];set_param (SimscapeSolver“UseLocalSolver”,“关闭”)
モデルを線形化します。
Io (1) = linio(“scdpwmharddrive /责任周期”, 1“输入”);Io (2) = linio('scdpwmharddrive/Hard Disk Model', 1“输出”);系统=线性化(模型,io)
sys = D =占空比位置err 0静态增益。
予想どおり,pwmコンポ,ネントが原因でシステムはゼロに線形化します。
シミュレ,ション用にロ,カルソルバ,を再びオンにします。
set_param (SimscapeSolver“UseLocalSolver”,“上”)
PWMコンポ,ネントの線形モデルの発見
PWM駆動の電流源の周波数応答を推定し,その結果を線形モデルの同定に使用できます。
電流の信号は1 e -
の離散サンプル時間をもます。したがって,サンプル時間が固定されたsinestream信号を推定の入力信号として使用する必要があります。2000 ~ 200000 rad/sの周波数をも信号を作成します。
idinput = frst . createfixedtssinestream (Ts,{2000,200000});idinput。振幅= 0.1;
PWM駆動回路の入力および出力ポイントを定義し,sinestreamの入力信号を使用して周波数応答の推定を実行します。
Pwm_io (1) = linio(“scdpwmharddrive /责任周期”, 1“输入”);Pwm_io (2) = linio(“scdpwm硬盘/PWM驱动转换器”, 1“openoutput”);Sysfrd = fresestimate (model,pwm_io,idinput);
周波数応答データを使って2次モデルを同定するために,系统辨识工具箱の関数特遣部队
を使用します。
Sysid = ss(tfest(idfrd(sysfrd),2));
特定したモデルを元の周波数応答デ,タと比較します。
波德(sysid sysfrd,的r *)
周波数応答の推定には,2000 ~ 200000 rad/sの周波数を使用しました。同定されたモデルは,2000 rad/s未満の周波数に対して平坦な振幅応答を見せます。しかし,これらの周波数は前の推定に含まれませんでした。
周波数応答が低周波数で平坦であるかどうかを検証するため,20 ~ 200 rad / sの周波数をもつsinestreamの入力信号を使用して応答を推定します。
Lowfreq = [20 200];inputlow = frest.createFixedTsSinestream(Ts,低频率)
正流输入信号:频率:[20 200](rad/s)振幅:1e-05 SamplesPerPeriod: [3141593 314159] NumPeriods: 4 RampPeriods: 0 FreqUnits (rad/s,Hz): rad/s SettlingPeriods: 1 applyfilteringestimestimate (on/off): on SimulationOrder (Sequential/OneAtATime): Sequential
1 e -
秒の高速なサンプル時間(10 MHzのサンプリング周波数)と低い周波数の組み合わせによって,入力信号に対して高いSamplesPerPeriod
値が生成されます。この場合,各周波数が4周期あることを考慮すると,周波数応答推定は約1400年万サンプルの出力データを記録することになります。
200 rad / sとrad / sの周波数の解析にそのような高いサンプリングレートは不要なため,サンプル時間を1的军医
に伸ばすことによってメモリの問題を回避できます。
Tslow = 1e-4;wslow = 2*pi/Tslow;inputlow = frst . createfixedtssinestream (Tslow,wslow./round(wslow./lowfreq));inputlow。振幅= 0.1;
モデルを小さいサンプル時間に対応させるには,以下の修正モデルのように,レート変換ブロックを使用して出力データポイントをリサンプリングします。
modellow =“scdpwmharddrive_lowfreq”;open_system (modellow)
次のコマンドを使用して低周波数の周波数応答を推定できます。
Sysfrdlow = fretimate (modellow,getlinio(modellow),inputlow);
周波数応答の推定には数分かかります。この例では,推定結果を読み込みます。
负载scdpwmharddrive_lowfreqresults
同定されたモデルの低周波数応答を検証するため,推定結果を同定されたモデルと比較します。
波德(sysid sysfrdlow,的r *)
低周波数モデルを閉じます。
bdclose (modellow)
PWMコンポ,ネントの線形化の指定
同定された検証済みのモデルを使用してPWM駆動コンポーネントの線形化を指定するには,PWM駆動コンバーターサブシステムの線形化を指定します。
これを行うには,最初にコンバ,タ,ブロックに対してブロックの線形化の指定を有効にします。
pwmblock =“scdpwm硬盘/PWM驱动转换器”;set_param (pwmblock“SCDEnableBlockLinearizationSpecification”,“上”);
Matlab®式を使用して,ブロックの線形化としてsysid
を指定します。
Rep = struct(“规范”,“sysid”,...“类型”,“表情”,...“ParameterNames”,”,...“ParameterValues”,”);set_param (pwmblock“SCDBlockLinearizationSpecification”,代表);
デュ,ティ比基準信号のサンプル時間をプラントのサンプル時間に設定します。
set_param (“scdpwmharddrive /责任周期”,“SampleTime”,“Ts_plant”);
モデルを線形化します。
set_param (SimscapeSolver“UseLocalSolver”,“关闭”) sys =线性化(模型,io);set_param (SimscapeSolver“UseLocalSolver”,“上”)
以下のコマンドで,周波数応答を推定して線形化結果全体を検証できます。
valinput = frst . sinestream (sys);Valinput = fselect(Valinput,3e3,1e5);valinput。振幅= 0.1;Sysval = fresestimate(模型,io,valinput);
周波数応答の推定には数分かかります。この例では,推定結果を読み込みます。
负载scdpwmharddrive_valfreqresultssysval bodemag (sys,的r *)
線形化の結果は正確であり,すべての共振がモデルの実際のダ。
モデルを閉じます。
bdclose (“scdpwmharddrive”)
参考
frestimate
|特遣部队
(系统识别工具箱)