システム工学実験 パラメータ推定手順

Similar documents
Microsoft PowerPoint - H22制御工学I-2回.ppt

航空機の運動方程式

Microsoft PowerPoint - H22制御工学I-10回.ppt

航空機の運動方程式

例 e 指数関数的に減衰する信号を h( a < + a a すると, それらのラプラス変換は, H ( ) { e } e インパルス応答が h( a < ( ただし a >, U( ) { } となるシステムにステップ信号 ( y( のラプラス変換 Y () は, Y ( ) H ( ) X (

PowerPoint プレゼンテーション

RLC 共振回路 概要 RLC 回路は, ラジオや通信工学, 発信器などに広く使われる. この回路の目的は, 特定の周波数のときに大きな電流を得ることである. 使い方には, 周波数を設定し外へ発する, 外部からの周波数に合わせて同調する, がある. このように, 周波数を扱うことから, 交流を考える

Introduction to System Identification

Microsoft PowerPoint - ce07-13b.ppt

第 4 週コンボリューションその 2, 正弦波による分解 教科書 p. 16~ 目標コンボリューションの演習. 正弦波による信号の分解の考え方の理解. 正弦波の複素表現を学ぶ. 演習問題 問 1. 以下の図にならって,1 と 2 の δ 関数を図示せよ δ (t) 2

Microsoft PowerPoint - ce07-09b.ppt

Microsoft Word - 第9章 PID制御.doc

Clipboard

PowerPoint プレゼンテーション

Microsoft PowerPoint - spe1_handout10.ppt

フィードバック ~ 様々な電子回路の性質 ~ 実験 (1) 目的実験 (1) では 非反転増幅器の増幅率や位相差が 回路を構成する抵抗値や入力信号の周波数によってどのように変わるのかを調べる 実験方法 図 1 のような自由振動回路を組み オペアンプの + 入力端子を接地したときの出力電圧 が 0 と

スライド 1

Microsoft PowerPoint - ip02_01.ppt [互換モード]

DVIOUT

Microsoft Word - ClassicalControl_Matlab.doc

Microsoft PowerPoint - chap8.ppt

Microsoft PowerPoint - 6.PID制御.pptx

Microsoft PowerPoint - mp11-06.pptx

微分方程式による現象記述と解きかた

航空機の運動方程式

(Microsoft Word - PLL\203f\203\202\216\221\227\277-2-\203T\203\223\203v\203\213.doc)

SAP11_03

第6章 実験モード解析

PowerPoint プレゼンテーション

Microsoft PowerPoint - ce07-04e.ppt

1. 線形シフト不変システムと z 変換 ここで言う システム とは? 入力数列 T[ ] 出力数列 一意変換 ( 演算子 ) 概念的には,, x 2, x 1, x 0, x 1, x 2, を入力すると, y 2, y 1, y 0, y 1, y 2, が出力される. 線形システム : 線形シ

Microsoft PowerPoint - spe1_handout11.ppt

第 11 回 R, C, L で構成される回路その 3 + SPICE 演習 目標 : SPICE シミュレーションを使ってみる LR 回路の特性 C と L の両方を含む回路 共振回路 今回は講義中に SPICE シミュレーションの演習を併せて行う これまでの RC,CR 回路に加え,L と R

2012 September 21, 2012, Rev.2.2

Microsoft Word - Matlab使用法

Microsoft Word - 知能機械実験・実習プリント_ docx

Microsoft PowerPoint - comprog11.pptx

Microsoft PowerPoint - qcomp.ppt [互換モード]

2018 年 5 月 31 日版 知能機械実験 実習 Ⅳ Ⅳ-1. 制御工学実験 1. 実験概要と目的 ロボットをはじめとするメカトロニクス機器において 高度な動作を実現している背景には 制御技術がある 制御とは 物体の運動を意図した位置や速度で動かす技術である 精度の高い制御を行うためには 正しく

Microsoft Word - 実験テキスト2005.doc

Microsoft PowerPoint pptx

0.0 Excelファイルの読み取り専用での立ち上げ手順 1) 開示 Excelファイルの知的所有権について開示する数値解析の説明用の Excel ファイルには 改変ができないようにパスワードが設定してあります しかし 読者の方には読み取り用のパスワードを開示しますので Excel ファイルを読み取

4 月 東京都立蔵前工業高等学校平成 30 年度教科 ( 工業 ) 科目 ( プログラミング技術 ) 年間授業計画 教科 :( 工業 ) 科目 :( プログラミング技術 ) 単位数 : 2 単位 対象学年組 :( 第 3 学年電気科 ) 教科担当者 :( 高橋寛 三枝明夫 ) 使用教科書 :( プロ

喨微勃挹稉弑

Microsoft PowerPoint - ca ppt [互換モード]

講義「○○○○」

ToDo: 今回のタイトル

3 数値解の特性 3.1 CFL 条件 を 前の章では 波動方程式 f x= x0 = f x= x0 t f c x f =0 [1] c f 0 x= x 0 x 0 f x= x0 x 2 x 2 t [2] のように差分化して数値解を求めた ここでは このようにして得られた数値解の性質を 考

s とは何か 2011 年 2 月 5 日目次へ戻る 1 正弦波の微分 y=v m sin ωt を時間 t で微分します V m は正弦波の最大値です 合成関数の微分法を用い y=v m sin u u=ωt と置きますと dy dt dy du du dt d du V m sin u d dt

Microsoft PowerPoint - aep_1.ppt [互換モード]

Microsoft PowerPoint - mp13-07.pptx

Microsoft PowerPoint - DigitalMedia2_3b.pptx

PowerPoint プレゼンテーション

音情報処理I

eq2:=m[g]*diff(x[g](t),t$2)=-s*sin(th eq3:=m[g]*diff(z[g](t),t$2)=m[g]*g-s* 負荷の座標は 以下の通りです eq4:=x[g](t)=x[k](t)+r*sin(theta(t)) eq5:=z[g](t)=r*cos(the

学習指導要領

多次元レーザー分光で探る凝縮分子系の超高速動力学

Microsoft PowerPoint - ce07-12c.ppt

The open source platform for numerical computation

() ): (1) f(x) g(x) x = x 0 f(x) + g(x) x = x 0 lim f(x) = f(x 0 ), lim g(x) = g(x 0 ) x x 0 x x0 lim {f(x) + g(x)} = f(x 0 ) + g(x 0 ) x x0 lim x x 0

If(A) Vx(V) 1 最小 2 乗法で実験式のパラメータが導出できる測定で得られたデータをよく近似する式を実験式という. その利点は (M1) 多量のデータの特徴を一つの式で簡潔に表現できること. また (M2) y = f ( x ) の関係から, 任意の x のときの y が求まるので,

スライド 1

情報処理Ⅰ

インターリーブADCでのタイミングスキュー影響のデジタル補正技術

<4D F736F F D2094F795AA95FB92F68EAE82CC89F082AB95FB E646F63>

解析力学B - 第11回: 正準変換

FEM原理講座 (サンプルテキスト)

画像処理工学

0 21 カラー反射率 slope aspect 図 2.9: 復元結果例 2.4 画像生成技術としての計算フォトグラフィ 3 次元情報を復元することにより, 画像生成 ( レンダリング ) に応用することが可能である. 近年, コンピュータにより, カメラで直接得られない画像を生成する技術分野が生

Microsoft Word - H26mse-bese-exp_no1.docx

Microsoft Word - ModernControl_Matlab.doc

スライド 1

untitled

アルゴリズムとデータ構造

Microsoft PowerPoint - dm1_5.pptx

Microsoft PowerPoint - dm1_6.pptx

Microsoft PowerPoint - H21生物計算化学2.ppt

オペアンプの容量負荷による発振について

Chap2

関数の定義域を制限する 関数のコマンドを入力バーに打つことにより 関数の定義域を制限することが出来ます Function[ < 関数 >, <x の開始値 >, <x の終了値 > ] 例えば f(x) = x 2 2x + 1 ( 1 < x < 4) のグラフを描くには Function[ x^

以下 変数の上のドットは時間に関する微分を表わしている (ex. 2 dx d x x, x 2 dt dt ) 付録 E 非線形微分方程式の平衡点の安定性解析 E-1) 非線形方程式の線形近似特に言及してこなかったが これまでは線形微分方程式 ( x や x, x などがすべて 1 次で なおかつ

Microsoft PowerPoint - NA03-09black.ppt

スペクトルに対応する英語はスペクトラム(spectrum)です

ファイナンスのための数学基礎 第1回 オリエンテーション、ベクトル

ディジタル信号処理

カイ二乗フィット検定、パラメータの誤差

Microsoft PowerPoint - 物情数学C(2012)(フーリエ前半)_up

Microsoft PowerPoint - 第3回2.ppt

学習指導要領

Microsoft PowerPoint - 【最終提出版】 MATLAB_EXPO2014講演資料_ルネサス菅原.pptx

最小二乗法とロバスト推定

学習指導要領

スライド タイトルなし

横浜市環境科学研究所

Microsoft PowerPoint - LectureB1handout.ppt [互換モード]

Microsoft Word - 201hyouka-tangen-1.doc

DVIOUT

DVIOUT-SS_Ma

計算機シミュレーション

学習指導要領

Transcription:

システム工学実験パラメータ推定手順 大木健太郎 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 1

アウトライン 1. 線形システムと周波数情報 2. パラメータ推定 3. 実際の手順 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 2

線形時不変システムと伝達関数 入力と出力の関係が線形な定係数微分方程式で与えられるとき, この方程式を線形時不変システムという Laplace 変換 : 等価な表現 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 3

周波数領域での入出力表現 伝達関数 初期値応答 入力 出力 入出力関係は, 伝達関数で記述される 出力は, 伝達関数と入力信号の積で決まる 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 4

伝達関数から分かる情報 安定性 : ( 有理 ) 伝達関数の極の実部が負ならば, 安定 入力がない場合, 任意の初期値に対して出力がゼロになる 周波数情報 ( 安定な場合 ) 10 0 Bode 線図 ( ゲインと位相の対数グラフ ) ボード線図 位相 : ゲイン 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 5 ゲイン (db) 位相 (deg) -10-20 -30-40 -50 0-45 高周波数では入力信号が抑制されている 高周波数では位相が遅れる -90 10-2 10-1 10 0 10 1 10 2 10 3 周波数 (rad/s) num=[5]; den=[1 2]; G=tf(num,den); w=10.^[-2:0.1:3]; bode(g,omega)

線形システムの特徴 入出力関係の周波数は同じ 線形システムは重ね合わせの原理が成り立つ 安定な場合 安定な線形システムならば, 周波数情報からシステムが推定できる 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 6

アウトライン 1. 線形システムと周波数情報 2. パラメータ推定 3. 実際の手順 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 7

周波数情報から線形システムの復元 周波数応答から線形システムを作る 10 ボード線図 0-10 ゲイン (db) -20-30 -40-50 0? 位相 (deg) -45-90 10-2 10-1 10 0 10 1 10 2 10 入出力関係の周波数情報は, 安定なシステムでなければならない 3 周波数 (rad/s) 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 8

安定限界, 不安定なシステムの挙動 説明 ( 定義は講義 ( 線形制御論など ) を参照 ) 安定限界 : 外部入力がない場合に, 初期値応答でゼロにならない方程式不安定 : 外部入力がない場合に, 初期値が厳密にゼロでないかぎり発散する 外部入力をゼロにする 1 0.8 0.6 0.4 0.2 0 解 : -0.2-0.4-0.6-0.8 初期値を振幅として振動 -1 0 1 2 3 4 5 6 7 8 9 10 外部入力をゼロにする 2.5 x 104 2 1.5 解 : 1 0.5 0 0 1 2 3 4 5 6 7 8 9 10 初期値から指数関数的に発散 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 9

周波数応答 安定限界なシステムなので, 未知の初期値応答が出力に含まれる 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 10

パラメータ推定 安定でなければ, 安定にすればよい 制御しながらシステムのパラメータを推定する 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 11

閉ループ系と伝達関数 が分かれば,P(s) も分かる 実験から求める 設計するので既知 閉ループ系の周波数情報を求めればよい 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 12

閉ループ系の実験データ 制御器を試行錯誤で作成し, データを取る! 10 2 Bode gain 1.5 Nyquist 10 0 1 10-2 0.5 10-4 0 10-6 10-2 10 0 10 2 10 4-0.5-1.5-1 -0.5 0 0.5 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 13

アウトライン 1. 線形システムと周波数情報 2. パラメータ推定 3. 実際の手順 1. データの前処理 2. パラメータ推定 : 分子多項式係数 3. パラメータ推定 : 分母多項式係数 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 14

閉ループ系の伝達関数 未知パラメータを推定する 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 15

伝達関数から分かること 入力に正弦波を入れたときの出力の性質 ゼロ点 : で出力がゼロになる 高周波数領域 : ゲインが 実験データ 他のパラメータは最適化問題として解く ( 後述 ) 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 16

データの前処理 1. まずは, データの理解 実験から得なければならないのは, 閉ループ系の伝達関数 実際に得られるのは入出力データの時系列 信号処理で伝達関数のデータへ変換したものをデータ保存 2. 使えるデータの整理 雑音や非線形摩擦の項が強いデータは避ける 周波数情報をうまく使う ( 関数の正則性など ) 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 17

データの理解 実験で得るデータは, 入出力データではない 入出力データを集めると, 計算機のメモリが足りなくなる 他のデータを収集する 出力の整理 を求めればよい 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 18

制御器と実験データ の下で, 次のデータを得る 10 2 Bode gain 1.5 Nyquist 10 0 1 10-2 0.5 10-4 0 10-6 10-2 10 0 10 2 10 4-0.5-1.5-1 -0.5 0 0.5 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 19

ゲインと位相の注意 arctan は,sin と cos の符号まで考えれば,360 度分 Bode 位相線図は描けない Nyquist 線図は描ける 位相の特徴は,Nyquist 線図で確認する 10 2 Bode gain 1.5 Nyquist 10 0 1 10-2 0.5 10-4 -0.5 10-2 10 0 10 2 10 4-1.5-1 -0.5 0 0.5 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 20 10-6 共に滑らかなので, よいデータ 0

使えるデータの整理 データは多い方がよい (40 個前後のデータは少ない ) データには信頼性の低いものも得られてしまう データを整理する 周波数情報 (Bode 線図,Nyquist 線図を見る ) 10 2 Bode gain 全体的にもデータを増やしたい 1.5 Nyquist 10 0 1 10-2 0.5 10-4 0-0.5 10-2 10 0 10 2 10 4-1.5-1 -0.5 0 0.5 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 21 10-6 変化の激しい箇所の情報が欲しい

別の実験データ ゲインは合っているように見えるが, 位相が怪しい Bode gain Nyquist 10 2 1.4 10 0 10-2 10-4 10-6 周波数を変えて実験 ( 角周波数を 10^[-1:3] の間をランダムに 41 点 ) 10-2 10 0 10 2 10 4 1.2 1 0.8 0.6 0.4 0.2 まあまあ良さそうなデータ 0-0.2-1.5-1 -0.5 0 0.5 データ整理 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 22

プログラム例 load('data_struct20141003p1i1.mat');% ランダムに選んだ周波数点 P2=data_struct.P; omega2=data_struct.omega; clear data_struct for k=1:length(omega2) gain2(k) = sqrt(p2(2*k)^2 + P2(2*k-1)^2); phase2(k) = atan2(p2(2*k), P2(2*k-1)); end Gcl=gain2.*exp(1i*phase2); figure subplot(1,2,1) loglog(omega2,gain2,'b+'); title('bode gain','fontsize',16) subplot(1,2,2) plot(real(gcl),imag(gcl),'b*'); title('nyquist','fontsize',16) 10 2 Bode gain 10 0 10-2 10-4 10-6 10-2 10 0 10 2 10 4 これでデータを確認 -0.2-1.5-1 -0.5 0 0.5 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 23 1.4 1.2 1 0.8 0.6 0.4 0.2 0 Nyquist

プログラム例 前のページに続けて書く ( 不要な部分以外のデータ抽出 ) Ns = find(gain<0.5);% gain が 0.5 以上のデータがあやしいので, それ以外を用意 figure subplot(1,2,1) loglog(omega2(ns),gain2(ns),'b+'); title('bode gain2, fontsize,16) 10 0 Bode gain 10-1 0.01 0 Nyquist subplot(1,2,2) plot(real(gcl(ns)),imag(gcl(ns)),'b*'); title('nyquist','fontsize',16) 10-2 10-3 -0.01-0.02-0.03 10-4 -0.04 10-5 10 0 10 1 10 2 10 3-0.05-0.4-0.3-0.2-0.1 0 0.1 気になるならば, この辺りも削除する. 桁は小さいので, ここでは気にしない. 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 24

ゼロ点付近のデータ ゼロ点付近を細かく実験 ( 角周波数を 10^[-1:3] の間をランダムに 41 点 ) 最小値付近の 2 点の中間くらいの角周波数を選ぶ 最小値の角周波数を選ばない 10-1 Bode gain 0.02 0.01 0 Nyquist 10-2 -0.01-0.02 10-3 10 1.1 10 1.3 10 1.5-0.03-0.04-0.06-0.04-0.02 0 微妙だが, 大きく外れてないので今回は使う 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 25

データをマージする for k=1:length(omega1) gain1(k) = sqrt(p1(2*k)^2 + P1(2*k-1)^2); phase1(k) = atan2(p1(2*k), P1(2*k-1)); end for k=1:length(omega2) gain2(k) = sqrt(p2(2*k)^2 + P2(2*k-1)^2); phase2(k) = atan2(p2(2*k), P2(2*k-1)); end Ns = find(gain2<0.5);% gain が 0.5 以上のデータがあやしいので, それ以外を用意 for k=1:length(omega3) gain3(k) = sqrt(p3(2*k)^2 + P3(2*k-1)^2); phase3(k) = atan2(p3(2*k), P3(2*k-1)); end 10 1 Bode gain 10 0 10-1 10-2 10-3 10-4 10-5 10-1 10 0 10 1 10 2 10 3 % データのマージ gain=[gain1, gain2(ns), gain3]; phase=[phase1, phase2(ns), phase3]; omega = [omega1, omega2(ns), omega3]; % 図で確認 figure subplot(2,1,1) loglog(omega,gain,'b+'); title('bode gain','fontsize',16) subplot(2,1,2) plot(real(gcl),imag(gcl),'b*'); title('nyquist','fontsize',16) data = struct('omega',omega,'gain',gain,'phase',phase); save data_selected data % data_selected.mat というファイルを作成 周波数, ゲイン, 位相のデータをそろえる -0.2-1.5-1 -0.5 0 0.5 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 26 1.4 1.2 1 0.8 0.6 0.4 0.2 0 Nyquist

アウトライン 1. 線形システムと周波数情報 2. パラメータ推定 3. 実際の手順 1. データの前処理 2. パラメータ推定 : 分子多項式係数 3. パラメータ推定 : 分母多項式係数 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 27

高周波数領域 得られているデータは, 高周波数領域では信頼できそう 10 1 Bode gain 10 0 10-1 高周波数領域のデータから線形回帰でパラメータを求める 高周波数領域は目視で決める 10-2 10-3 10-4 Nf= find(omega>10^1.4) b2=10^(mean(log10((omega(nf).^2).*gain(nf)))) 10-5 10-1 10 0 10 1 10 2 10 3 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 28

得られたパラメータの妥当性 線形回帰問題は最適化問題なので, 得られたパラメータは最小二乗誤差の意味で最適. ただ, 問題設定 ( 高周波領域の設定やデータの選別 ) が悪いと, 意味がない. 10 1 Bode gain 10 0 figure loglog(omega,gain,'b+'); title('bode gain','fontsize',16) hold on 10-1 10-2 Nf= find(omega>10^(1.4)) b2=10^(mean(log10((omega(nf).^2).*gain(nf)))) omega0=21.135; b1=(omega0^2) * b2; loglog(omega(nf),(b2./(omega(nf).^2)),'r+'); 10-3 ほとんど重なっているので,OK! 10-4 10-5 10-1 10 0 10 1 10 2 10 3 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 29

アウトライン 1. 線形システムと周波数情報 2. パラメータ推定 3. 実際の手順 1. データの前処理 2. パラメータ推定 : 分子多項式係数 3. パラメータ推定 : 分母多項式係数 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 30

分母多項式のパラメータ推定 非線形最適化問題になるので, 要注意 求めるアルゴリズムは何でもよいが, 得られる閉ループ伝達関数は安定でなければならない. 不安定な極が出る場合はペナルティを課す データは 1 組の制御ゲイン (Kp,Ki) = (1,1) だが, 実際には他のゲインの組でも安定化できる ペナルティとして利用できる 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 31

コスト関数 これを最小化する function Y = cost_function(x,b1,b2,omega,g_data,kp,ki) a1=x(1); a2=x(2); a3=x(3); G = tf([kp*b2, Ki*b2, Kp*b1, Ki*b1],[1, a3, (a2 + Kp*b2), (a1 + Ki*b2), Kp*b1, Ki*b1]); [gain_est,phase_est] = bode(g,omega); gain_est = squeeze(gain_est)'; phase_est = squeeze(phase_est) /180*pi;% rad に変換 G_est=gain_est.*exp(1i*phase_est); Y1 = norm(log( abs(g_data - G_est) + 1 ) );% 近さ pole_max = max(real(pole(g)));% 極の実部の最大値が負でなければならない Kp = 10; Ki=10; % 別のゲインでも極の実部の最大値が負でなければならない G = tf([kp*b2, Ki*b2, Kp*b1, Ki*b1],[1, a3, (a2 + Kp*b2), (a1 + Ki*b2), Kp*b1, Ki*b1]); pole_max2 = max(real(pole(g))); if (pole_max >= 0) (pole_max2 >= 0) Y = Y1 + 10^10; else Y=Y1; end Nyquist 平面における近さを考える ゲインと位相を両方評価 log で測っているので, 引数が 1 のとき最小 rad ではなく,deg なので注意 コスト関数は色々工夫してみる ゲインを最大にする ステップ応答に合うようにする 不安定になったらペナルティ 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 32

プログラム例 最小化は Matlab のツールボックスを利用 ( 自分で作ってもよいが最適化の授業ではないので...) 局所最適値になることを避けるため, 初期値を色々変えて行う プログラム例 : 下記リンク参照 http://www.bode.amp.i.kyotou.ac.jp/member/ohki/lec/system_experiment/documents/parameter_estimation_example.pdf 2014/11/14 2014 年度システム工学実験 : フレキシブルリンク 33