特定の構造を持つシステムのパラメータを推定するにはどうすれば良いですか?
9 views (last 30 days)
Show older comments
例えばボード線図から、下記のような特定の構造を持つ伝達関数のパラメータ R1, R2, C1 の値を求めたいので、方法を教えてください。
G(s) = (C1*R1*R2*s + R1+R2)/(C1*R1*s+1)
Accepted Answer
MathWorks Support Team
on 9 Jun 2010
特定の構造を持つ場合、一般にはSystem Identification Toolbox のグレーボックスモデル(idgrey モデル)を用いることでパラメータ推定が行えます。なお、上記のシステムの場合は、プロセスモデル(idproc モデル)を用いることでもパラメータ推定が行えます。下記に、それぞれの方法について説明します。
1. グレーボックスモデルを用いてパラメータ推定する場合
idgrey モデルへ適応するには、状態方程式で表現する必要があります。下記の手順をおこないます。
1-1) システムの構造を状態空間表現
1-2) IDGREY 関数でシステムを定義
1-3) 推定用のデータオブジェクトを作成
1-4) システムの推定
1-5) 得られたシステムから推定するパラメータを再計算
1-1) システムの構造を状態空間表現
まず、伝達関数を状態空間表現へ変換します。
.
x = -1 /C1 /R1 *x + 1/C1 /R1 *u
y = R1 *x + R2 *u
上記の式を元に、構造を記述する関数MATLAB-ファイルを作成します。
function [ A,B,C,D,K,x0 ] = mymodel( par,T,aux )
% par(1)-> R1, par(2)-> C1, par(3)-> R2
A = -1/par(1)/par(2);
B = 1/par(1)/par(2);
C = par(1);
D = par(3);
K = 0; x0 =0;
end
なお、推定パラメータは、M-ファイルの中で共通の変数(par)で定義する必要があります。
1-2) モデルを定義
IDGREY 関数でモデルを定義します。
m = idgrey('mymodel',par,'c',aux);
1-3) 推定用のデータオブジェクトを作成
データオブジェクトを作成します。周波数応答に関するデータオブジェクトを作成するには、IDFRD 関数を使用します。
data = idfrd(zfr,w,0); % w: 周波数ベクトル, zfr: 複素周波数応答
1-4) システムの推定
PEM 関数で推定します。
EST=pem(data,m);
1-5) 得られたシステムからパラメータを計算
関連ドキュメントからダウンロードできるest_param_idgrey.mに、実際のプログラム例が確認できます。なお、このプログラムの動作の確認を行うには、下記の関連ドキュメントからest_param_idgrey.m, mymodel.m, freq_magphase.mat をダウンロードして同じディレクトリに置き、est_param_idgrey.mを実行します。MAT-ファイルにはC1=1, R1=10, R2=5のパラメータで作成したボード線図のデータが入っており、est_param_idgrey.mではこれをロードしてパラメータ推定しています。
2. プロセスモデルを用いてパラメータ推定する場合
2-1) IDPROC 関数でシステムを定義
2-2) 推定用のデータオブジェクトを作成
2-3) システムの推定
2-4) 得られたシステムから推定するパラメータを再計算
2-1) IDPROC 関数でシステムを定義
上記の伝達関数は極が1つ、零点が1つあるシステムなので、'P1Z'の形のシステムを定義します。
m = idproc('P1Z');
2-2) 推定用のデータオブジェクトを作成
データオブジェクトを作成します。周波数応答に関するデータオブジェクトを作成するには、IDFRD 関数を使用します。
data = idfrd(zfr,w,0.01); % w: 周波数ベクトル, zfr: 複素周波数応答
2-3) システムの推定
PEM関数を用いて推定します。
EST=pem(data,m)
2-4) 得られたシステムから推定するパラメータを再計算
関連ドキュメントからダウンロードできるest_param_idproc.mにて、実際のプログラム例が確認できます。なお、動作の確認を行うには、下記の関連ドキュメントから、est_param_proc.mとfreq_magphase.matをダウンロードして同じディレクトリに置き、est_param_proc.mを実行します。MAT-ファイルにはC1=1, R1=10, R2=5のパラメータで作成したボード線図のデータが入っており、これをロードしてパラメータ推定しています。
0 Comments
More Answers (0)
See Also
Categories
Find more on プロセス モデル in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!