特定の構造を持つシス​テムのパラメータを推​定するにはどうすれば​良いですか?

11 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2010 年 6 月 9 日
例えばボード線図から、下記のような特定の構造を持つ伝達関数のパラメータ R1, R2, C1 の値を求めたいので、方法を教えてください。
G(s) = (C1*R1*R2*s + R1+R2)/(C1*R1*s+1)

採用された回答

MathWorks Support Team
MathWorks Support Team 2010 年 6 月 9 日
特定の構造を持つ場合、一般には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 件)

カテゴリ

Help Center および File Exchangeプロセス モデル についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!