このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
pem
線形および非線形のモデルを改良するための予測誤差の最小化
説明
例
推定された状態空間モデルの改良
部分空間法を使用して離散時間状態空間モデルを推定します。その後、予測誤差を最小化して改良します。
部分空間法を適用する n4sid
を使用して、離散時間状態空間モデルを推定します。
load iddata7 z7; z7a = z7(1:300); opt = n4sidOptions('Focus','simulation'); init_sys = n4sid(z7a,4,opt);
init_sys
は推定データに 73.85% 適合します。
init_sys.Report.Fit.FitPercent
ans = 73.8490
pem
を使用して適合度を高めます。
sys = pem(z7a,init_sys);
結果を解析します。
compare(z7a,sys,init_sys);
sys
は推定データに 74.54% 適合します。
非線形グレーボックス モデルの推定
DC モーター データに適合する非線形グレーボックス モデルのパラメーターを推定します。
実験データを読み込み、開始時間や単位などの信号の属性を指定します。
load(fullfile(matlabroot,'toolbox','ident','iddemos','data','dcmotordata')); data = iddata(y, u, 0.1); data.Tstart = 0; data.TimeUnit = 's';
非線形グレーボックス モデル (idnlgrey
) のモデルを構成します。
この例では、dcmotor_m.m
ファイルを使用します。このファイルを表示するには、MATLAB® コマンド プロンプトで「edit dcmotor_m.m
」と入力します。
file_name = 'dcmotor_m'; order = [2 1 2]; parameters = [1;0.28]; initial_states = [0;0]; Ts = 0; init_sys = idnlgrey(file_name,order,parameters,initial_states,Ts); init_sys.TimeUnit = 's'; setinit(init_sys,'Fixed',{false false});
init_sys
は、dcmotor_m.m
で構造が記述された非線形グレーボックス モデルです。モデルには、order
の指定に従って、1 つの入力、2 つの出力、2 つの状態が含まれています。
setinit(init_sys,'Fixed',{false false})
で、init_sys
の初期状態を自由推定パラメーターにするように指定しています。
モデルのパラメーターと初期状態を推定します。
sys = pem(data,init_sys);
sys
は、推定されたパラメーターとその共分散がカプセル化された idnlgrey
モデルです。
推定結果を解析します。
compare(data,sys,init_sys);
sys
は推定データに 98.34% 適合します。
プロセス モデルを使用した推定の構成
プロセス モデル構造を作成し、そのパラメーター値を更新して予測誤差を最小化します。
プロセス モデルの係数を初期化します。
init_sys = idproc('P2UDZ');
init_sys.Kp = 10;
init_sys.Tw = 0.4;
init_sys.Zeta = 0.5;
init_sys.Td = 0.1;
init_sys.Tz = 0.01;
init_sys
の係数 Kp
、Tw
、Zeta
、Td
、および Tz
が初期推定で構成されます。
init_sys
を使用して、測定データを使用して予測誤差を最小化するモデルの推定を構成します。init_sys
は idproc
モデルであるため、procestOptions
を使用してオプション セットを作成します。
load iddata1 z1; opt = procestOptions('Display','on','SearchMethod','lm'); sys = pem(z1,init_sys,opt);
Process Model Identification Estimation data: Time domain data z1 Data has 1 outputs, 1 inputs and 300 samples. Model Type: {'P2DUZ'} Algorithm: Levenberg-Marquardt search <br> ------------------------------------------------------------------------------------------ <br> Norm of First-order Improvement (%) <br> Iteration Cost step optimality Expected Achieved Bisections <br>------------------------------------------------------------------------------------------ 0 21.2201 - 414 3.8 - - 1 19.4048 1.15 323 3.8 8.55 7 2 14.8743 2.48 814 4.41 23.3 0 3 6.84305 0.873 451 4.43 54 11 4 5.20355 0.977 1.49e+03 8.75 24 7 5 1.83911 0.973 473 13 64.7 0 6 1.67582 0.225 20.3 4.98 8.88 0 7 1.67335 0.062 6.57 0.0829 0.147 0 8 1.67334 0.00494 0.0555 0.000374 0.000648 0 ------------------------------------------------------------------------------------------ Termination condition: Near (local) minimum, (norm(g) < tol).. Number of iterations: 8, Number of function evaluations: 42 Status: Estimated using PEM Fit to estimation data: 70.63%, FPE: 1.73006
モデルの適合を調べます。
sys.Report.Fit.FitPercent
ans = 70.6330
sys
は測定データに 70.63% 適合します。
入力引数
init_sys
— sys
の初期パラメーター化を構成する同定されたモデル
線形モデル | 非線形モデル
sys
の初期パラメーター化を構成する同定されたモデル。線形または非線形のモデルとして指定します。init_sys
は、測定データを使用した推定を実行して取得することも、直接構築することもできます。
init_sys
のパラメーター値は有限でなければなりません。init_sys
の任意のパラメーターの推定について、初期推定を構成し、下限と上限、および固定にするか自由にするかを指定できます。
線形モデルの場合、
Structure
プロパティを使用します。詳細については、Imposing Constraints on Model Parameter Valuesを参照してください。非線形グレーボックス モデルの場合、
InitialStates
プロパティとParameters
プロパティを使用します。パラメーター制約は、非線形 ARX モデルと Hammerstein-Wiener モデルには指定できません。
opt
— 推定のオプション
オプション セット
アルゴリズムの設定、推定のフォーカスの処理、初期条件、データのオフセットを構成する推定オプション。オプション セットとして指定します。オプション セットの作成に使用するコマンドは初期モデルのタイプによって異なります。
出力引数
アルゴリズム
PEM は、数値最適化を使用して "コスト関数" を最小化します。これは予測誤差の重み付きノルムで、スカラー出力に対して次のように定義されます。
ここで、"e(t)" はモデルの測定出力と推定出力の差です。線形モデルの場合、誤差は次のように定義されます。
ここで、"e(t)" はベクトル、コスト関数 はスカラー値です。添字 "N" は、コスト関数がデータ サンプル数の関数であり、"N" の値が大きいほど精度が高くなることを示しています。多出力モデルの場合、上記の方程式がより複雑になります。詳細については、System Identification: Theory for the User, Second Edition, by Lennart Ljung, Prentice Hall PTR, 1999 の 7 章を参照してください。
代替機能
各種のモデル構造に対する専用の推定コマンドを使用して pem
と同じ結果が得られます。たとえば、状態空間モデルの推定には ssest(data,init_sys)
を使用します。
バージョン履歴
R2006a より前に導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)