35
システム工学実験 パラメータ推定手順 2019年度 大木 健太郎 20191223日 修正/加筆

システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

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

2019年度大木健太郎

2019年12月23日修正/加筆

Page 2: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

アウトライン

1. 線形システムと周波数情報2. パラメータ推定3. 実際の手順

2

Page 3: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

線形時不変システムと伝達関数 3

入力と出力の関係が線形な定係数微分方程式で与えられるとき,この方程式を線形時不変システムという

Laplace 変換:

等価な表現

Page 4: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

周波数領域での入出力表現 4

伝達関数 初期値応答

入力 出力

ü 入出力関係は,伝達関数で記述されるü 出力は,伝達関数と入力信号の積で決まる

Page 5: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

伝達関数から分かる情報 5

•安定性: (有理)伝達関数の極の実部が負ならば,安定ü入力がない場合,任意の初期値に対して出力がゼロになる

•周波数情報(安定な場合)

-50

-40

-30

-20

-10

0

10

ゲイ

ン (

dB)

10-2

10-1

100

101

102

103

-90

-45

0

位相

(de

g)

ボード線図

周波数 (rad/s)

Bode 線図(ゲインと位相の対数グラフ)

ゲイン

位相:

高周波数では入力信号が抑制されている

高周波数では位相が遅れる

num=[5];den=[1 2];G=tf(num,den);w=10.^[-2:0.1:3];bode(G,omega)

Page 6: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

線形システムの特徴

•入出力関係の周波数は同じ

•線形システムは重ね合わせの原理が成り立つ

•安定な線形システムならば,周波数情報からシステムが推定できる

6

【安定な場合】

Page 7: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

アウトライン

1. 線形システムと周波数情報2. パラメータ推定3. 実際の手順

7

Page 8: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

-50

-40

-30

-20

-10

0

10

ゲイ

ン (

dB)

10-2

10-1

100

101

102

103

-90

-45

0

位相

(de

g)

ボード線図

周波数 (rad/s)

周波数情報から線形システムの復元 8

周波数応答から線形システムを作る

入出力関係の周波数情報は,安定なシステムでなければ適切な情報が得られない

Page 9: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

制御対象の伝達関数 9

P (s) =b1s2 + b2

s(s3 + a1s2 + a2s+ a3)<latexit sha1_base64="P2HXGDm4D2pW8pTQfFsfUwMsZl4=">AAADfnicnZFBTxNBFMffsopYFIpeSLxMaCAlYJ1tGwUTE6IXjgUskLSlmR2ndcN2d7OzbYKTiXe/AAdOmhBjTPRDcOELcOAjGI+YePHg22nRGCKkvM3OvPnP+733ZsaNfE8mlJ5aI/aNm6O3xm5nxu/cnZjMTt3blGE35qLKQz+Mt10mhe8Fopp4iS+2o1iwjuuLLXf3Rbq/1ROx9MLgZbIXiUaHtQOv5XGWoNScsqYreTlPnpF6K2ZcqbpJWYvbbkM5BWpskRac8rJTctDpK9ptKkdruaOKmiyQIaii1loRmSfIloZh2bUqMlNRDkeUtCbzupnNnYvkonOeIQcDq4TZj1CHVxAChy50QEAACfo+MJD41cABChFqDVCoxeh5Zl+AhgyyXYwSGMFQ3cWxjavaQA1wneaUhuZYxcc/RpLALD2hn+gZPaaf6Tf667+5lMmR9rKHs9tnRdScfDe98fNKqoNzAq//Upf2nEALlkyvHvYeGSU9Be/zvTf7ZxtP12fVHP1Av2P/7+kpPcITBL0f/HBNrB9AxjzAcmqP/1z3RWezWHBKhfJaObfyfPAUY/AAZiCP9/0EVmAVKlAFbr21Dq0v1lcb7Dn7of2oHzpiDZj78I/ZS78BLuLaeQ==</latexit>

叩いても発散しないが,初期位置はずれる→安定限界

a1a2 � a3 > 0<latexit sha1_base64="2uu2tJ7wf0t9ILE7ZnbeqjLZ3Z4=">AAACenichVHLSsNAFD2N7/poVQTBTWipKGK51eJrIaIbl1ptFVRKEkcNpklI0oKG/oA/4MKVgoj6GW78ARd+grhUcOPCmzQoIuoNmXvmzD13zsyotqG7HtFjTGpqbmlta++Id3Z19ySSvX0l16o6mihqlmE5m6riCkM3RdHTPUNs2o5QKqohNtTDpWB9oyYcV7fMde/IFjsVZd/U93RN8ZgqJweUsp+r8zBRl8dlzpN1eZ7KyTRlKQz5J8hFII0oVqzkFbaxCwsaqqhAwITH2IACl78t5ECwmduBz5zDSA/XBeqIs7bKVYIrFGYPedzn2VbEmjwPerqhWuNdDP4dVsrI0ANd0wvd0y090fuvvfywR+DliLPa0Aq7nDgZXHv7V1Xh7OHgS/WnZw97mAm96uzdDpngFFpDXzs+fVmbK2T8YbqgZ/Z/To90xycwa6/a5aoonCEePsBsEFOf1/0TlCayuclsfjWfXliMnqIdQ0hhhO97GgtYxgqKvK+Pc9zgNvYupaRRaaxRKsUiTT++hZT/AE/hkWo=</latexit>

発散しないので,Routh の安定判別法より

未知パラメータ(正の値)

Page 10: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

安定限界,不安定なシステムの挙動 10

安定限界: 外部入力がない場合に,初期値応答でゼロにならない方程式不安定 : 外部入力がない場合に,初期値が厳密にゼロでないかぎり発散する

説明(定義は講義(線形制御論など)を参照)

外部入力をゼロにする

外部入力をゼロにする

解:

解:

初期値を振幅として振動

初期値から指数関数的に発散

安定限界

不安定

Page 11: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

周波数応答 11

安定限界なシステムなので,未知の初期値応答が出力に含まれる

Page 12: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

パラメータ推定 12

制御しながらシステムのパラメータを推定する

安定でなければ,安定にすればよい

r(t)<latexit sha1_base64="MmAj0s8XCmRXKyvgH5vk8Dv8uPA=">AAACZ3ichVHLSgMxFD0d3/XRqiAFN2qp1E1JVXytRDcuW7UP0CIzY6rB6cwwkxa0+AMu3Cq4UhARP8ONP+DCTyguK7hx4Z3poEhRb0hycnLPzUmi2YZwJWMvIaWjs6u7p7cv3D8wOBSJDo/kXavq6DynW4blFDXV5YYweU4KafCi7XC1ohm8oB2te/uFGndcYZnb8tjmpYp6YIqy0FXpUU5SzuxF4yzF/JhoB+kAxBFExoreYRf7sKCjigo4TEjCBlS41HaQBoNNXAl14hxCwt/nOEWYtFXK4pShEntE4wGtdgLWpLVX0/XVOp1iUHdIOYEEe2b3rMme2ANrsI9fa9X9Gp6XY5q1lpbbe5Gz2Nb7v6oKzRKH36o/PUuUseR7FeTd9hnvFnpLXzu5aG6tbCbq0+yGvZL/a/bCHukGZu1Nv83yzSuE/Q9Y9mLh67nbQX42lZ5LzWfn46trwVf0YhxTSNJ7L2IVG8ggR+ce4hwXuAw1lIgypsRaqUoo0IziRyiTn//Eiw0=</latexit>

Page 13: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

G(s) =P (s)

1 + P (s)C(s)<latexit sha1_base64="/9Pc4RD9SX6CImTttIBGvk7o60s=">AAACg3ichVFNS8NAEH2NVmv9aNWLIEixVCpC2dbiFwiiBz22alWoUpK4raFpEpK0UIM3T/4BD54URNSj/gMv/gEP/gTxqODFg5M0KCLqLLvz5u282dldyVAVy2bsMSC0tQc7OkNd4e6e3r5ItH9gw9LrpswLsq7q5pYkWlxVNF6wFVvlW4bJxZqk8k2puuTubza4aSm6tm43Db5TEyuaUlZk0SaqFB1ZTlrjsfnYdtkUZSdHwYGTnnD9kotL0ThLMc9iP0HaB3H4ltOjF9jGLnTIqKMGDg02YRUiLBpFpMFgELcDhziTkOLtcxwgTNo6ZXHKEImt0lqhqOizGsVuTctTy3SKStMkZQwJ9sAu2Qu7Z9fsib3/Wsvxari9NMlLLS03SpGjobW3f1U18jb2vlR/9myjjBmvV4V6NzzGvYXc0jf2j1/W5lYTzhg7Y8/U/yl7ZHd0A63xKp/n+eoJwt4HzLo29fncP8FGJpWeTGXz2fjCov8VIQxjFEl672ksYAU5FOjcQ1zhBrdCUJgQMkK2lSoEfM0gvpkw/wE3YJMH</latexit>

閉ループ系と伝達関数 13

が分かれば,P(s)も分かる

閉ループ系の周波数情報を求めればよい

実験から求める設計するので既知

r(t)<latexit sha1_base64="MmAj0s8XCmRXKyvgH5vk8Dv8uPA=">AAACZ3ichVHLSgMxFD0d3/XRqiAFN2qp1E1JVXytRDcuW7UP0CIzY6rB6cwwkxa0+AMu3Cq4UhARP8ONP+DCTyguK7hx4Z3poEhRb0hycnLPzUmi2YZwJWMvIaWjs6u7p7cv3D8wOBSJDo/kXavq6DynW4blFDXV5YYweU4KafCi7XC1ohm8oB2te/uFGndcYZnb8tjmpYp6YIqy0FXpUU5SzuxF4yzF/JhoB+kAxBFExoreYRf7sKCjigo4TEjCBlS41HaQBoNNXAl14hxCwt/nOEWYtFXK4pShEntE4wGtdgLWpLVX0/XVOp1iUHdIOYEEe2b3rMme2ANrsI9fa9X9Gp6XY5q1lpbbe5Gz2Nb7v6oKzRKH36o/PUuUseR7FeTd9hnvFnpLXzu5aG6tbCbq0+yGvZL/a/bCHukGZu1Nv83yzSuE/Q9Y9mLh67nbQX42lZ5LzWfn46trwVf0YhxTSNJ7L2IVG8ggR+ce4hwXuAw1lIgypsRaqUoo0IziRyiTn//Eiw0=</latexit>

P (s) =G(s)

1�G(s)C(s)<latexit sha1_base64="P35UYe+w2/tsoCjuJysAu/W2iPE=">AAACg3ichVHLSsNAFD2N7/po1Y0gSLEoilimWnxBodiFLlu1KqiUJE5raJqEJC3U0J0rf8CFKwURdal/4MYfcNFPEJcKblx4kwZFRL3DzD33zD137sxIhqpYNmONgNDS2tbe0dkV7O7p7QuF+wc2Lb1iyjwn66pubkuixVVF4zlbsVW+bZhcLEsq35JKaXd/q8pNS9G1Dbtm8L2yWNSUgiKLNlH58EhmwpqMJCO7BVOUnRUK6k582vVpF+fDURZjnkV+grgPovAto4cvsYt96JBRQRkcGmzCKkRYNHYQB4NB3B4c4kxCirfPUUeQtBXK4pQhEluitUjRjs9qFLs1LU8t0ykqTZOUEYyxR3bFXtgDu2FP7P3XWo5Xw+2lRl5qarmRDx0Prb/9qyqTt3HwpfqzZxsFLHi9KtS74THuLeSmvnp48rK+tDbmjLNz9kz9n7EGu6cbaNVX+SLL104R9D5g0bW5z+f+CTZnYvHZWCKbiKaW/a/oxDBGMUHvPY8UVpFBjs49wjVucSe0CVPCjJBopgoBXzOIbyYkPwApn5MA</latexit>

Page 14: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

閉ループ系の実験データ 14

10-2

100

102

104

10-6

10-4

10-2

100

102

Bode gain

-1.5 -1 -0.5 0 0.5-0.5

0

0.5

1

1.5Nyquist

制御器を試行錯誤で作成し,データを取る!

r(t)<latexit sha1_base64="MmAj0s8XCmRXKyvgH5vk8Dv8uPA=">AAACZ3ichVHLSgMxFD0d3/XRqiAFN2qp1E1JVXytRDcuW7UP0CIzY6rB6cwwkxa0+AMu3Cq4UhARP8ONP+DCTyguK7hx4Z3poEhRb0hycnLPzUmi2YZwJWMvIaWjs6u7p7cv3D8wOBSJDo/kXavq6DynW4blFDXV5YYweU4KafCi7XC1ohm8oB2te/uFGndcYZnb8tjmpYp6YIqy0FXpUU5SzuxF4yzF/JhoB+kAxBFExoreYRf7sKCjigo4TEjCBlS41HaQBoNNXAl14hxCwt/nOEWYtFXK4pShEntE4wGtdgLWpLVX0/XVOp1iUHdIOYEEe2b3rMme2ANrsI9fa9X9Gp6XY5q1lpbbe5Gz2Nb7v6oKzRKH36o/PUuUseR7FeTd9hnvFnpLXzu5aG6tbCbq0+yGvZL/a/bCHukGZu1Nv83yzSuE/Q9Y9mLh67nbQX42lZ5LzWfn46trwVf0YhxTSNJ7L2IVG8ggR+ce4hwXuAw1lIgypsRaqUoo0IziRyiTn//Eiw0=</latexit>

Page 15: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

アウトライン

1. 線形システムと周波数情報2. パラメータ推定3. 実際の手順

1. データの前処理2. パラメータ推定:分子多項式係数3. パラメータ推定:分母多項式係数

15

Page 16: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

G(s) =P (s)

1 + P (s)C(s)

=s(b1s2 + b2)

s5 + a1s4 + (a2 +Kpb1)s3 + (a3 +KIb1)s2 +Kpb2s+KIa3<latexit sha1_base64="7jrB6HbRDbOyxIiu+fZs2Ywuqvg=">AAAEpniclVHNbtNAEJ4aA8X8NIULEpcVUaNUQdE6SYEiVYroARASSlvSVIoT1zab1KpjW14nUrH2BXgBDpxAQhXiMbhw4Qioj4A4FokLB8Y/AaEKiMfy7sy3+818M2v6js1DSo/mpFPy6TNn588p5y9cvLRQWLy8zb1xYLG25TlesGManDm2y9qhHTpsxw+YMTId1jH31+PzzoQF3Pbcx+GBz3ojY+jaA9syQoT0Ral5r8yXyRopEW0QGFbUwlBEaiXeyXocEEXTlLVSeszLkZZU7QZDsxepVZrYDVpVG6tqXUUnRYSpR6oQvB/VBKmQHKyaEKiA91dy0IysWAM5MyvMkRw1icpDPfJnJqXtL/N+nSgVZWZNWKsu4oFhsQciz9jSaqhUSci5lGJ7fFozp1KhF4pTjJx0pgmKkFnLKxyCBk/AAwvGMAIGLoToO2AAx68LKlDwEetBhFiAnp2cMxCgIHeMtxjeMBDdx3WIUTdDXYzjnDxhW1jFwT9AJoEl+pG+ocf0PX1Lv9Aff80VJTliLQe4mymX+frCs6tb3//LGuEewt5v1j81hzCA24lWG7X7CRJ3YaX8ydPnx1t3NpeiEn1Fv6L+l/SIvsMO3Mk36/UG23wBSvIAq7Hd/DXuk852rarWq42NRrF5N3uKebgG16GM874FTbgPLWiDJR1KH6RP0me5LD+S23InvSrNZZwr8IfJuz8BFX4wGA==</latexit>

閉ループ系の伝達関数 16

未知パラメータを推定する

r(t)<latexit sha1_base64="MmAj0s8XCmRXKyvgH5vk8Dv8uPA=">AAACZ3ichVHLSgMxFD0d3/XRqiAFN2qp1E1JVXytRDcuW7UP0CIzY6rB6cwwkxa0+AMu3Cq4UhARP8ONP+DCTyguK7hx4Z3poEhRb0hycnLPzUmi2YZwJWMvIaWjs6u7p7cv3D8wOBSJDo/kXavq6DynW4blFDXV5YYweU4KafCi7XC1ohm8oB2te/uFGndcYZnb8tjmpYp6YIqy0FXpUU5SzuxF4yzF/JhoB+kAxBFExoreYRf7sKCjigo4TEjCBlS41HaQBoNNXAl14hxCwt/nOEWYtFXK4pShEntE4wGtdgLWpLVX0/XVOp1iUHdIOYEEe2b3rMme2ANrsI9fa9X9Gp6XY5q1lpbbe5Gz2Nb7v6oKzRKH36o/PUuUseR7FeTd9hnvFnpLXzu5aG6tbCbq0+yGvZL/a/bCHukGZu1Nv83yzSuE/Q9Y9mLh67nbQX42lZ5LzWfn46trwVf0YhxTSNJ7L2IVG8ggR+ce4hwXuAw1lIgypsRaqUoo0IziRyiTn//Eiw0=</latexit>

C(s) =Kp +KI

s<latexit sha1_base64="4FWE7oTG0Z4m6S8wzMRjIZC9kjk=">AAAChnichVHLSsNAFD3GV62PVt0IbqJFUYQy9a0gFN0obnxVC62UJE41mCYhSQsashb8AReuFERE3OoHuPEHXPgJ4lLBjQtv0qBIUW/IzLln7rlzZkY2NdV2GHuqE+obGpuaIy3R1rb2jli8s2vTNsqWwjOKoRlWVpZsrqk6zziqo/GsaXGpJGt8S95f8Ne3KtyyVUPfcA5Mvl2SdnW1qCqSQ1Qh3rcwZA+Lc+KguFxwTU8cEfNFS1JcypY8z7U9sRBPsCQLQqwFqRAkEMaKEb9EHjswoKCMEjh0OIQ1SLDpyyEFBpO4bbjEWYTUYJ3DQ5S0ZariVCERu0/jLmW5kNUp93vagVqhXTT6LVKKGGCP7Iq9sgd2zZ7Zx6+93KCH7+WAZrmq5WYhdtyz/v6vqkSzg71v1Z+eHRQxHXhVybsZMP4plKq+cnjyuj67NuAOsnP2Qv7P2BO7pxPolTflYpWvnSIaPMCMH5Nf110LNkeTqbHk+Op4Ij0fPkUEvejHEN33FNJYxAoytO8RbnCLOyEiJIUJYapaKtSFmm78CCH9CSKKlNc=</latexit>

制御器は下記に固定

Page 17: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

伝達関数から分かること

•ゼロ点: で出力がゼロ

•高周波数領域:

17

入力に正弦波を入れたときの出力の性質

実験データ 他のパラメータは最適化問題として解く(後述)

G(s) =s(b1s2 + b2)

s5 + a1s4 + (a2 +Kpb1)s3 + (a3 +KIb1)s2 +Kpb2s+KIa3<latexit sha1_base64="5NRrnQemKXi4l//i8uGNXRkGQfE=">AAAEhniclVHNbtNAEJ4aA6kpNC0XJC4WUatEQdY6SVuKVCmCAyAu/SFtpfxYtrsJVh3b8jqRymrPSLwAB04gIYQQV3gALrwAhz4C4likXjgw/gkIVUA8lndnv51v5ptZK3AdFhFyPCOdk89fuFiYVS7NXb4yX1xY3GX+KLRpy/ZdP9y3TEZdx6OtyIlcuh+E1BxaLt2zDu/G93tjGjLH9x5FRwHtDs2B5/Qd24wQMhYk9V6ZVVRlY7nTD02bszLvJFnb4cDqcl0jid0kmt5Y1+s6OikiLIPrQrAerwm1quZg1YSoCM56KzloZlasgZypFeZIjppE9aHBg6lJafsV1qurSlWZWhPWqot4YFjsgcgztrQaKlUSci6l2B6b1MypVBjF0gRTzzqTBCXIbNMvvoEOHIAPNoxgCBQ8iNB3wQSGXxt0IBAg1gWOWIiek9xTEKAgd4RRFCNMRA9xHeCpnaEenuOcLGHbWMXFP0SmCkvkC3lLTshn8o58JT/+mosnOWItR7hbKZcGxvyzazun/2UNcY/g8W/WPzVH0IdbiVYHtQcJEndhp/zxk+cnO7e3l/gyeUW+of6X5Jh8wg688Xf79RbdfgFK8gDrsa3+GvdZZ7em6XWtsdUoNe9kT1GA63ADyjjvNWjCfdiEFtjSU+m99EH6KBdkTV6R19JQaSbjXIU/TG7+BAwgJcA=</latexit>

G(j!) =

����j!(�b1!2 + b2)

j!5 + a1!4 � (a2 +Kpb1)j!3 � (a3 +KIb1)!2 +Kpb2j! +KIa3

���� e\G(j!)

<latexit sha1_base64="wCTkc+LqYfgm1lV3C+PPUET/Y5A=">AAAE5HiclVJbaxNBFD5NVq1btakXEHxZDC0ptWE2iZcKQtEHFV96MW0hm4TZdbJZuzd2N4E6jj9AfBPxQRAURMSf4Yt/wIf+AB/Exwq++ODZS4xS1O5ZdubMmfnO950zo/u2FUaE7E4UitKhw0cmj8pTx46fmC7NnNwIvUFgsKbh2V6wpdOQ2ZbLmpEV2WzLDxh1dJtt6ts34v3NIQtCy3PvRjs+azvUdK2eZdAIQ92ZwqOblfua5zCTzivytTlZs1kveihrvYAaPNupLHItoWoFpt7mapUkdoFU1caSWlfRSSNC73JViBTV4TWhLCg5oDUh5sWItHMxB5j+zttQ5EW5clBoDgrUJxbudLl/YFDaj/lRSfVcypCxLuIWIuVtkaeRMef4EuQkQy7RWGmmeUSfU7SQtcAy+/FLcmjUDxzORIdr1DVtpoyfnOiWyiOost8Z8ZQhsxWv9BY0uAceGDAABxi4EKFvA4UQvxaoQMDHWBs4xgL0rGSfgQAZsQM8xfAExeg2jiauWlnUxXWcM0zQBrLY+AeIVGCWfCLvyB75SN6TL+THX3PxJEesZQdnPcUyvzv9+Oz69/+iHJwj6I9R/9QcQQ+uJFot1O4nkbgKI8UPHzzfW7+6NsvnyGvyFfW/IrvkA1bgDr8Zb1bZ2guQkwtYiu3Sr3bvdzZqVbVebaw2ysvXs6uYhHNwHirY78uwDLdgBZpgFD4Xp4qni2eknvREeio9S48WJjLMKfjDpJc/AeM6SVk=</latexit>

log10 |G(j!)| ' log10 b1 � 2 log10 !<latexit sha1_base64="yKd8oyW5or0UWFiTV/Xy/7inAZE=">AAACqHichVFNSxxBEH2O0ZjV6BovAS9NFoMKLrUqRj1JPJjj+rGuwZVlZmzXjvPlzOyCrvsH8gdyyElBRPwZXnLzJLg/QTwq5JJDaj6IiCSppruqX9Wrft1teJYKQqJ2h9b5oqv7Zc+rTG/f6/6B7OCb9cCt+6Ysma7l+huGHkhLObIUqtCSG54vdduwZNnYW4zy5Yb0A+U6a+GBJ7dsveaoHWXqIUPV7GLFcmui2ixQSxwtjX6puLas6WLsSFQCZct9EeWTtMGuJSbE5COUVFezOcpTbOJ5UEiDHFIrutkzVLANFybqsCHhIOTYgo6AxyYKIHiMbaHJmM+RivMSLWSYW+cqyRU6o3u81ni3maIO76OeQcw2+RSLp89MgRG6pnO6px90Qbf066+9mnGPSMsBeyPhSq868PXt6s//smz2IXYfWf/UHGIHs7FWxdq9GIluYSb8xuG3+9X5lZHmezqhO9Z/TG265Bs4jQfzdFmufEcm/oC5yGb+PPfzYH0yX5jKTy9P5xY+pl/Rg2G8wyi/9wcs4BOKKPG557jCDdrauFbUytrnpFTrSDlDeGKa8Rt7taIo</latexit>

!0 =

rb2b1

<latexit sha1_base64="qqaUfD/kwQbHpQWfsaRYmyVyyDE=">AAACjXichVG7TtxAFD04CY8lYRdokGgsVkRUq7sbAiEChKAIJa8FJBZZtjO7sfAr9uxKYPkHKGgpqIgUoSgtbdLQ5AdS8AmIEiQaCq69VhBCgWt57pkz99w5M2P4thVKovMO5cXLV51d3T253tdv+vKF/oH10GsGpqianu0Fm4YeCttyRVVa0habfiB0x7DFhrGzkKxvtEQQWp67Jnd9se3oDdeqW6YumdIKYzXPEQ1d1SKK1Rm1Fn4NZFSrB7oZGVpUieMkleM41gpFKlEa6mNQzkARWSx5hRPU8BkeTDThQMCFZGxDR8jfFsog+MxtI2IuYGSl6wIxcqxtcpXgCp3ZHR4bPNvKWJfnSc8wVZu8i81/wEoVo/SXftAV/aGfdEG3/+0VpT0SL7ucjbZW+Fp+f2j15lmVw1niy73qSc8SdXxIvVrs3U+Z5BRmW9/aO7xa/bgyGr2lb3TJ/o/pnM74BG7r2vy+LFaOkEsfYCqJiX/X/RisV0rld6Xx5fHi3Hz2FN0YxgjG+L4nMYdFLKHK+x7gFL/wW8kr75VpZbZdqnRkmkE8COXTHSKrmdQ=</latexit>

Page 18: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

データの前処理

1. まずは,データの理解• 実験から得なければならないのは,閉ループ系の伝達関数• 実際に得られるのは入出力データの時系列⇒信号処理で伝達関数のデータへ変換したものをデータ保存

2. 使えるデータの整理• 雑音や非線形摩擦の項が強いデータは避ける

• 周波数情報をうまく使う

18

Page 19: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

データの理解

•実験で得るデータは,時系列の入出力データではない• 長時間の時系列データを集めると,計算機のメモリが足りなくなる⇒データを他の形に変換して収集する

19

y(t) =nX

i=1

|G(j!i)|fi sin(!it+ �i + \G(j!i))

=nX

i=1

|G(j!i)| cos(\G(j!i))| {z }=:si

fi sin(!it+ �i)

+ |G(j!i)| sin(\G(j!i))| {z }=:ci

fi cos(!it+ �i)

|G(j!i)| =q

s2i + c2i , \G(j!i) = arctan

✓cisi

出力の整理

を求めればよい

si, ci

実験時間に依存せず,周波数伝達関数を求めればよい 再帰的最小二乗法を利用

Page 20: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

制御器と実験データ 20

10-2

100

102

104

10-6

10-4

10-2

100

102

Bode gain

-1.5 -1 -0.5 0 0.5-0.5

0

0.5

1

1.5Nyquist

の下で,次のデータを得る

(Kp,KI) = (1.65, 0), (1, 1)<latexit sha1_base64="eVB8qzpF+3yJQm5k/LphBlN/ixk=">AAACh3icSyrIySwuMTC4ycjEzMLKxs7BycXNw8vHLyAoFFacX1qUnBqanJ+TXxSRlFicmpOZlxpaklmSkxpRUJSamJuUkxqelO0Mkg8vSy0qzszPCympLEiNzU1Mz8tMy0xOLAEKxQsoaXjHVxfU6gBJz1pNBVsFDUM9M1MdBQMFTZ0YIEfHUDNeQNlAzwAMFDAZhlCGMgMUBOQLLGeIYUhhyGdIZihlyGVIZchjKAGycxgSGYqBMJrBkMGAoQAoFstQDRQrArIywfKpDLUMXEC9pUBVqUAViUDRbCCZDuRFQ0XzgHyQmcVg3clAW3KAuAioU4FB1eCqwUqDzwYnDFYbvDT4g9OsarAZILdUAukkiN7Ugnj+Long7wR15QLpEoYMhC68bi5hSGOwALs1E+j2ArAIyBfJEP1lVdM/B1sFqVarGSwyeA10/0KDmwaHgT7IK/uSvDQwNWg2Axc4AixBwAwe3JiMMCM9Q2M9k0ATZQcnaFRwMEgzKDFoAMPbnMGBwYMhgCEUaG8HwzqG7Qw7mDiZ9JnMmCwgSpkYoXqEGVAAkyMAX66SaQ==</latexit>

r(t)<latexit sha1_base64="MmAj0s8XCmRXKyvgH5vk8Dv8uPA=">AAACZ3ichVHLSgMxFD0d3/XRqiAFN2qp1E1JVXytRDcuW7UP0CIzY6rB6cwwkxa0+AMu3Cq4UhARP8ONP+DCTyguK7hx4Z3poEhRb0hycnLPzUmi2YZwJWMvIaWjs6u7p7cv3D8wOBSJDo/kXavq6DynW4blFDXV5YYweU4KafCi7XC1ohm8oB2te/uFGndcYZnb8tjmpYp6YIqy0FXpUU5SzuxF4yzF/JhoB+kAxBFExoreYRf7sKCjigo4TEjCBlS41HaQBoNNXAl14hxCwt/nOEWYtFXK4pShEntE4wGtdgLWpLVX0/XVOp1iUHdIOYEEe2b3rMme2ANrsI9fa9X9Gp6XY5q1lpbbe5Gz2Nb7v6oKzRKH36o/PUuUseR7FeTd9hnvFnpLXzu5aG6tbCbq0+yGvZL/a/bCHukGZu1Nv83yzSuE/Q9Y9mLh67nbQX42lZ5LzWfn46trwVf0YhxTSNJ7L2IVG8ggR+ce4hwXuAw1lIgypsRaqUoo0IziRyiTn//Eiw0=</latexit>

Page 21: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

ゲインと位相の注意 21

• arctanは,sin と cos の符号まで考えれば,360度分⇒ Bode 位相線図は描けない• Nyquist線図は描ける⇒位相の特徴は,Nyquist線図で確認する

10-2

100

102

104

10-6

10-4

10-2

100

102

Bode gain

-1.5 -1 -0.5 0 0.5-0.5

0

0.5

1

1.5Nyquist

共に滑らかなので,よいデータ

Page 22: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

使えるデータの整理

• データは多い方がよい(40個前後のデータは少ない)• データには信頼性の低いものも得られてしまう⇒データを整理する

•周波数情報(Bode線図,Nyquist線図を見る)

22

10-2

100

102

104

10-6

10-4

10-2

100

102

Bode gain

-1.5 -1 -0.5 0 0.5-0.5

0

0.5

1

1.5Nyquist

変化の激しい箇所の情報が欲しい

全体的にもデータを増やしたい

Page 23: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

別の実験データ 23

10-2

100

102

104

10-6

10-4

10-2

100

102

Bode gain

-1.5 -1 -0.5 0 0.5-0.2

0

0.2

0.4

0.6

0.8

1

1.2

1.4Nyquist

周波数を変えて実験(角周波数を 10^[-1:3] の間をランダムに41点)

ゲインは合っているように見えるが,位相が怪しい

まあまあ良さそうなデータ

データ整理

Page 24: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

プログラム例 24

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);

figuresubplot(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

100

102

104

10-6

10-4

10-2

100

102

Bode gain

-1.5 -1 -0.5 0 0.5-0.2

0

0.2

0.4

0.6

0.8

1

1.2

1.4Nyquist

これでデータを確認

Page 25: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

プログラム例 25

Ns = find(gain<0.5);% gain が 0.5以上のデータがあやしいので,それ以外を用意

figuresubplot(1,2,1)loglog(omega2(Ns),gain2(Ns),'b+');title('Bode gain2’,’fontsize’,16)

subplot(1,2,2)plot(real(Gcl(Ns)),imag(Gcl(Ns)),'b*');title('Nyquist','fontsize',16)

前のページに続けて書く(不要な部分以外のデータ抽出)

100

101

102

103

10-5

10-4

10-3

10-2

10-1

100

Bode gain

-0.4 -0.3 -0.2 -0.1 0 0.1-0.05

-0.04

-0.03

-0.02

-0.01

0

0.01Nyquist

気になるならば,この辺りも削除する.桁は小さいので,ここでは気にしない.

Page 26: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

ゼロ点付近のデータ 26

101.1

101.3

101.5

10-3

10-2

10-1

Bode gain

-0.06 -0.04 -0.02 0-0.04

-0.03

-0.02

-0.01

0

0.01

0.02Nyquist

ゼロ点付近を細かく実験(角周波数を 10^[-1:3] の間をランダムに41点)

微妙だが,大きく外れてないので今回は使う

最小値付近の2点の中間くらいの角周波数を選ぶ※最小値の角周波数を選ばない

!0 =

rb2b1

' 21.135<latexit sha1_base64="lKwV5Aj7jJPRprecD/lnU+DnoPE=">AAACm3ichVFNSxxBEH1OEjVrdDfJJRACg4vB01KzGvMBAYkXCTn4tSq4MsyMvWvjfDnTu2CG+QP5AzkklwgiwX9hLoJePfgTQo4KueSQmtkhQUStYbpev6pXXd1lh66MFdFZn3bn7r3+gcH7paEHwyPlysNHy3HQiRzRcAI3iFZtKxau9EVDSeWK1TASlme7YsXemsniK10RxTLwl9ROKNY9q+3LlnQsxZRZmWoGnmhbuplQqr/Vm/F2pJJmK7KcxDaTeppmzkjTlEPSE9t63agZEy/MSpVqlJt+FRgFqKKwuaCyjyY2EMBBBx4EfCjGLizE/K3BACFkbh0JcxEjmccFUpRY2+EswRkWs1u8tnm3VrA+77Oaca52+BSX/4iVOsbolL7TOR3RAf2kP9fWSvIaWS877O2eVoRm+dOTxd+3qjz2Cpv/VTf2rNDCq7xXyb2HOZPdwunpux8/ny++WRhLntMu/eL+v9EZ/eAb+N0LZ29eLHxBKR/A68ym/j33VbBc52HVJucnq9PvilEM4ilGMc7v/RLTmMUcGnzuVxziGCfaM21Ge6996KVqfYXmMS6Z1vgL81GeRQ==</latexit>

Page 27: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

データをマージする 27

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));

endNs = 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

% データのマージ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 というファイルを作成

10-1

100

101

102

103

10-5

10-4

10-3

10-2

10-1

100

101

Bode gain

-1.5 -1 -0.5 0 0.5-0.2

0

0.2

0.4

0.6

0.8

1

1.2

1.4Nyquist

周波数,ゲイン,位相のデータをそろえる

Page 28: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

アウトライン

1. 線形システムと周波数情報2. パラメータ推定3. 実際の手順

1. データの前処理2. パラメータ推定:分子多項式係数3. パラメータ推定:分母多項式係数

28

Page 29: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

高周波数領域

•得られているデータは,高周波数領域では信頼できそう

29

10-1

100

101

102

103

10-5

10-4

10-3

10-2

10-1

100

101

Bode gain

高周波数領域のデータから線形回帰でパラメータを求める

※高周波数領域は目視で決める

Nf= find(omega>10^1.4)b2=10^(mean(log10((omega(Nf).^2).*gain(Nf))))

(注) 2013 年まで利用した実験機の例

Page 30: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

得られたパラメータの妥当性 30

10-1

100

101

102

103

10-5

10-4

10-3

10-2

10-1

100

101

Bode gainfigureloglog(omega,gain,'b+');title('Bode gain','fontsize',16)hold on

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+');

ほとんど重なっているので,OK!

線形回帰問題は最適化問題なので,得られたパラメータは最小二乗誤差の意味で最適.ただ,問題設定(高周波領域の設定やデータの選別)が悪いと,意味がない.

Page 31: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

アウトライン

1. 線形システムと周波数情報2. パラメータ推定3. 実際の手順

1. データの前処理2. パラメータ推定:分子多項式係数3. パラメータ推定:分母多項式係数

31

Page 32: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

分母多項式のパラメータ推定例• 与えられているデータや手に入る情報と求めなければならないパラメータを整理し,解くべき問題を定式化

• 求めるアルゴリズムは何でもよいが,得られる閉ループ伝達関数は安定でなければならない.• 不安定な極が出る場合はペナルティを課す• データは1組の制御ゲイン(Kp,KI) = (1,1) だが,実際には他のゲインの組でも安定化できる ⇒ペナルティとして利用できる

32

Gest(s) :=s(b1s2 + b2)

s5 + a1s4 + (a2 +Kpb1)s3 + (a3 +KIb1)s2 +Kpb2s+KIb2

=⌘(s)

✓> (s) + �(s)

<latexit sha1_base64="e6100EXhIqhAjQitgXOYJAw8GLw=">AAAD5HiclVFLa9RQFD4z8VFTtVMfILgJDi0zjAw3mdipRaHgQsVNH05baKYhiXemoXmRe2egXq4/QNyJuBAEBRHxZ7jxD7joD3AhLiu4ceFJJqNo8dEbknvul/N95zvnukngM07IXqmsHDl67PjECXXy5KnTU5XpM2ssHqQe7XhxEKcbrsNo4Ee0w30e0I0kpU7oBnTd3bmR/V8f0pT5cXSX7ya0Gzr9yO/5nsMRsqdLD27awkpDjTIutRrT6gvXZ1WrlzqeYDXXFrpkW8KQWkPDA+51KVRErmSIsHIDm2nf7QrSvDo/Z5hzl0mTkLZu6FlgtM2WKZ1MJtMxpaY2tNoheIbMCt2xRSJzM3UNZVpSbaiHUWmNVW4XKqOeUGWsbEg2zhg1qkrVstQfs7Aod3A82P3/lrX4NnKktiUsHidSsxLmZwpYxuo7YTiSsyvVjJot7WCgF0EVirUUV16DBfcgBg8GEAKFCDjGATjA8NkEHQgkiHVBIJZi5Of/KUhQkTvALIoZDqI7+O3jabNAIzxnmixne1glwDdFpgYz5AN5Q/bJe/KWfCLf/qglco3Myy7u7ohLE3vq4YXVr/9khbhz2P7J+qtnDj2Yz7366D3JkawLb8Qf3n+6v7qwMiNmyUvyGf2/IHvkHXYQDb94r5bpyjNQ8QL038d9MFgzmrrZbC2b1cVrxVVMwEW4BDWcdxsW4RYsQQe80sfyZPlc+bzSUx4pj5Uno9RyqeCchV+W8vw7FXb+cg==</latexit>

素朴な最適化問題(非凸) 等価な最適化問題(凸)

✓ :=⇥a1, a2, a3

⇤> 2 R3

<latexit sha1_base64="XG28wRGRPpPVRCOQFBVSoQvrK9c=">AAACvnichVFNaxQxGH46ftXxo6teBC+DS0sPsmR2C0pRWOjFY7t120qnXZJpdjd0JjPMZJfWYf5A/0APPSmIiD/Cgxf/gIf+gB6KoIcKXjz47uxoqUV9Q5InT97nzZNExIFKDWOHE9aFi5cuX5m8al+7fuPmVOXW7ZU0GiS+bPtRECVrgqcyUFq2jTKBXIsTyUMRyFWxvTDaXx3KJFWRfmZ2Y7kR8p5WXeVzQ1Sn8twzfWm4M//E8YTsKZ2JkJtE7eQ272Ru/sCZcQjUf4FGbntSb/3O2sw8E8W54ynteMT1hchaxDbyTqXKaqwI5zxwS1BFGYtR5Q08bCGCjwFCSGgYwgE4UmrrcMEQE7eBjLiEkCr2JXLYpB1QlqQMTuw2jT1arZespvWoZlqofToloJ6Q0sE0+8TeshP2kb1jx+zHX2tlRY2Rl12axVgr487U3t3l7/9VhTQb9E9V//Rs0MWjwqsi73HBjG7hj/XDF/sny/Ot6WyGvWKfyf9Ldsg+0A308Jv/ekm2DmDTB7h/Pvd5sFKvuXO1xtJctfm4/IpJ3MN9zNJ7P0QTT7GINp37Hkf4gq9W0+paoRWNU62JUnMHZ8La+QnP5Kwo</latexit>

min✓2R3

nX

i=1

|G(j!i)�Gest(j!i)|2

s.t. a1, a2, a3 > 0, a1a2 > a3

<latexit sha1_base64="v2jQKJLndVuBEOlYjbENzQmIa+w=">AAAEiXiclVFLTxRBEC7WVXFQAb2YeOm4GbIE3PTMroBECAkHNF54yCOhYTMzNMvIvJzuJeLQf4A/4MGTJsYYL1716sU/4IGfYDxi4sWD1TO7MWJ80DPTU/1VfV9VV7lJ4AtJ6VFP6Uz57LnzvReMvouXLvcPDF5ZEXE79fiyFwdxuuY6ggd+xJelLwO+lqTcCd2Ar7q7s9q/usdT4cfRA7mf8I3QaUX+tu85EqHmYKnCQj8izYzJHS4dwvDAQkfuuG62qDazulKMDBEm2iEG+VMWYpEiB2Su+pDFIW85GlZkmNwkZA5l0pBwIRU54T4gm5mtDMYMFrrx40zUZE0RLe00M0uN4m7ne12RaTrKHrWdrcKVe6Zzj2EaJttOHS8TVVf7hBYlI8TVMWRYZYaJ0C0NZSxvznracjcyWrs9MWY3xkZpjdJxy7a0YY836g2V59BCDUUMc4RUT0G0lc50v5klKi9nmIjNvMwRwzyNTr2rc6+jU9wr1+mq20p0Y4rrGia+2E9zaqjbFaYnWBXYh/9NXkxd4XCYjBMcSCJ8rYCpWMsJw0KuOVDRVL3I74bVMSrQWfPxwCtgsAUxeNCGEDhEINEOwAGBzzpYQCFBbAMyxFK0/NzPQYGB3DZGcYxwEN3FvYWn9Q4a4VlripztYZYAvxSZBEz6ib6mx/QjfUM/0+9/1MpyDV3LPv7dgsuTZv/htaVv/2SF+Jew85P115olbMNEXquPtSc5om/hFfy9J0+PlyYXzWyIvqBfsP7n9Ih+wBtEe1+9lwt88RkYOADrZLt/N1bsmtWo1RcalZk7nVH0wnW4AVXs9zjMwF2Yh2XwSoelt6V3pfflvrJVnihPFqGlng7nKvyyyrM/AEI/ND8=</latexit>

min✓2R3

nX

i=1

|(✓> (j!) + �(j!))G(j!i)� ⌘(j!i)|2

s.t. a1, a2, a3 > 0, a1a2 > a3

<latexit sha1_base64="IvAN4QmmuHHYAKZe4ToSltu52dw=">AAAEuHiclVFLTxRBEC7GVXF8AHox8dKRDNkNuOmZXQGJEBIParzAIo+EhnVmaJaRnYfTs0Qc+g/4Bzx40sQY4y/w7MU/4IGTV4lHTLx4sHpmVhHig56Znuqv6vuqusqJ2p5IKN3t0U6UTp463XtGP3vu/IW+/oGLCyLsxC6fd8N2GC85tuBtL+DziZe0+VIUc9t32nzR2byl/ItbPBZeGNxPtiO+4tutwFv3XDtBqDmgNZjvBaSZsmSDJzZheGC+nWw4TtqQq2lNSkaGCBMdH4O8SROxQBJ9h5QLxipSw0gSFgmPlB+y0Octm1TIMGEt2/ftA1iF3P55QDGJUdcIYUrlEL6DspbUGdOZ74SPU1FNqpgCK7GbqSlHcLeyvSbJFB1hjzr2Wu7KPFOZRzd0g63HtpuKsqN8QoliYY6KIRWZ6gZC1xWUsqyXy3HLWUlp9cb4qFUfHaFVSsdMy1SGNVav1WWWQwnVsQnGMCkfg2hJleleM41kVk6FiNWszGHdOI5Oratzt9DJ75XpdNUtKbox+XV1A1/spzE51O1K3niBffjf5PnI5aGZi4PDRrlm/6CiqkWOGmZhDEKxZsL+18BgDUJwoQM+cAggQbsNNgh8lsEEChFiK5AiFqPlZX4OEnTkdjCKY4SN6CbuLTwtF2iAZ6UpMraLWdr4xcgkYNCP9A3dpx/oW7pHv/9RK800VC3b+HdyLo+afU8vz337J8vHfwIbv1h/rTmBdRjPavWw9ihD1C3cnL/15Nn+3ETDSIfoS/oF639Bd+l7vEGw9dV9Ncsbz0HHAZiH233UWLCqZr1am60PTt8sRtELV+AqlLHfYzANd2AG5sHV3mmftM/aXmmi9KDUKnl5qNZTcC7Bb6sU/wBru0TK</latexit>

Page 33: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

A :=nX

i=1

|G(j!i)|2 (j!i) (j!i)>

b :=nX

i=1

Re⇣ (j!i)G(j!i){⌘(j!i)� �(j!i)G(j!i)}

<latexit sha1_base64="zKihuBtp+00OQQgG2v32cwsg6aY=">AAADiHichVFNT9RAGH5L/cD6wYIXEy8TNpDl4GaKJAiRBPWAR1hcIGHYTVtmuyOdtmlnN8GhP0D/gAdPmhhjPHjVsxf/gAd+gvGIiRcPvu1uwkdRp+nMO8/7PO/7zIwbByJVlB4aI+aFi5cuj16xrl67fmOsMj6xkUa9xONNLwqiZMt1Uh6IkDeVUAHfihPuSDfgm+7eozy/2edJKqLwidqP+Y50/FB0hOcohNrjxuSDxSUyzdKeJG0tluyspcOMHKzUnrJIct/J0WzmoKVnM8IiLJV30ixOBTlNwXQZbGmmojgjFmOWe14ji0lHdROpGzxjAe+omnVOGXLGDsr0STdcOSU3d04SfEfKMuWYsFLKEcIylgi/q2balSqt02KQcmAPgyoMx2pUeQcMdiECD3oggUMICuMAHEjx2wYbKMSI7YBGLMFIFHkOGVio7SGLI8NBdA9nH3fbQzTEfV4zLdQedgnwT1BJYIp+o+/pEf1KP9Dv9Pdfa+miRu5lH1d3oOVxe+zFrfVf/1VJXBV0j1X/9KygA/cKrwK9xwWSn8Ib6PvPXh6tLzam9DR9Q3+g/9f0kH7BE4T9n97bNd54BRY+gH32usvBxmzdnqvfXZurLt8fPsUo3IZJqOF9z8MyPIZVaIJnPDc+Gp+Mz6ZlUnPeXBhQR4yh5iacGubDP2gD8Ic=</latexit>

制約付き最小二乗誤差推定 33

min✓2Rn

nX

i=1

|(✓> (j!) + �(j!))G(j!i)� ⌘(j!i)|2

s.t. a1, a2, a3 > 0, a1a2 > a3

<latexit sha1_base64="9/XjzyGWSqOLP0JczeZxjXmuq04=">AAAEuHiclVFLTxRBEC7GVXF8AHox8dKRDNkNuOmZXQGJEBIParzAIo+EhnVmaJaRnYfTs0Qc+g/4Bzx40sQY4y/w7MU/4IGTV4lHTLx4sHpmVhHig56Znuqv6vuqusqJ2p5IKN3t0U6UTp463XtGP3vu/IW+/oGLCyLsxC6fd8N2GC85tuBtL+DziZe0+VIUc9t32nzR2byl/ItbPBZeGNxPtiO+4tutwFv3XDtBqDmgNZjvBaSZsmSDJzZheGC+nWw4TtqQq2kgJSNDhImOj0HepJlhRN8h5YKxitQwkoRFwiPlhyz0ecsmFTJMWMv2ffsAViG3fx5QTGLUNUKYUjmE76CsJXXGdOY74eNUVJMqpsBK7GZqyhHcrWyvSTJFR9ijjr2WuzLPVObRDd1g67HtpqLsKJ9QoliYo2JIRaa6gdB1BaUs6+Vy3HJWUlq9MT5q1UdHaJXSMdMylWGN1Wt1meVQQnVsgjFMyscgWlJlutdMI5mVUyGoo8oc1o3j6NS6OncLnfxemU5X3ZKiG5NfVzfwxX4ak0PdruSNF9iH/02ej1wemrk4OGyUa/YPKqpa5KhhFsYgFGsm7H8NDNYgBBc64AOHABK022CDwGcZTKAQIbYCKWIxWl7m5yBBR24HozhG2Ihu4t7C03KBBnhWmiJju5iljV+MTAIG/Ujf0H36gb6le/T7H7XSTEPVso1/J+fyqNn39PLct3+yfPwnsPGL9deaE1iH8axWD2uPMkTdws35W0+e7c9NNIx0iL6kX7D+F3SXvscbBFtf3VezvPEcdByAebjdR40Fq2rWq7XZ+uD0zWIUvXAFrkIZ+z0G03AHZmAeXO2d9kn7rO2VJkoPSq2Sl4dqPQXnEvy2SvEPY4tFBQ==</latexit>

min✓2Rn

(✓ �A�1b)>A(✓ �A�1b)

s.t. a1, a2, a3 > 0, a1a2 > a3

<latexit sha1_base64="qXE9Ou7g0+MUHChldcKbTirxSRc=">AAAE7HiclVFLT9RQFD7MjIr1AcjGRE1uJCUzASa3nRHQCIG4UOOGhzwSLkzachkqfdl2iFju1oVrExfEhSZqjD/DjX/ABT/BGFeYuHHhuW0HEeKD2/b23HPO953vnmMGjh3FlO52FIqlEydPdZ5Wzpw9d76ru+fCfOS3QovPWb7jh4umEXHH9vhcbMcOXwxCbrimwxfMjVsyvrDJw8j2vfvxVsCXXaPp2Wu2ZcToavQUnjDX9kgjYfE6jw3C8MBcI143zWRGrCSeEIz0E6Wcx8nQ5EoypAliksoKgvxAkElSJnk4j5oVRWVRy0Vee0xLaYiibpM2SxvJgsgm5QfMd3nTIBUyQFjTcF3jgK9Cbu8fkE1g1hAhTLIc8m8jrS4UxhTmmv6jJKrGVSyB6o1GoolB3PV0rwkyTgfZw5axmoXSyHgaUVRUvhYaVhKVTRmLJCkKM2UOqYhEUdF1TboSlvZ/KWyaywmtXh8d1uvDg7RK6Yima9LQR+q1ukhrSKK67MIAKR8DqAtZ6V4jCUQqp0KQR8ocUNTj8NTaPHdznuxeKU+bXRdROye7rqLii/1Ux/rbXckaH2Ef/rd4NnJxaObRwWEjXaO7T0LlIkcNLTf6IF9TfvdbYLAKPljQAhc4eBCj7YABET5LoAGFAH3LkKAvRMtO4xwEKIhtYRbHDAO9G7g38bSUez08S84oRVtYxcEvRCQBlX6i7+ge/Ujf08/0xx+5kpRDatnCv5lhedDoenpx9vs/US7+Y1j/hfqr5hjWYDTVaqP2IPXIW1gZfvPx873ZGzNq0k9f0S+o/yXdpR/wBt7mN+v1NJ/ZAQUHoB1u91FjXq9q9Wptut43cTMfRSdcgqtQxn6PwATcgSmYA6vwtdhbvFy8UvJKz0o7pRdZaqEjx/TCb6v05iffBFNC</latexit>

2

664

a1a2a31

3

775

> 2

664

0 1 0 01 0 0 00 0 0 �10 0 �1 0

3

775

2

664

a1a2a31

3

775 > 0

<latexit sha1_base64="MkkZo8in6zYn4qEtQrcQybRJM1k=">AAADRnicjVFLTxRBEP5m8IHjg0UvJl4mbiBe2NQAiYQYQuJBjzxcIGFwMzM0S4d5ZaZ3ASf7B/wDHjxpYozxZ3jhD3jg6NGYeEHDxYM1vSMCGx81qemvvq6vqrrbT0OZK6JDwxy6cPHS5eEr1tVr12+M1EZvruRJJwtEM0jCJFvzvVyEMhZNJVUo1tJMeJEfilV/52G5v9oVWS6T+InaT8VG5LVjuSUDTzHVqn1yfdGWceFHnsrkXs/yWoXTs13XZjD5C0xp4FiuiDdPUu2nhauStGedL0H2uO2wk/ZSeBJUBJ0iJpzTzITOPdtooMH/z2jNUatWpwZpsweBU4E6KltIam/hYhMJAnQQQSCGYhzCQ87fOhwQUuY2UDCXMZJ6X6AHi7UdzhKc4TG7w/82R+sVG3Nc1sy1OuAuIXvGShtj9JHe0REd0Hv6TD/+WKvQNcpZ9nn1+1qRtkae314+/qcq4lVh+7fqrzMrbGFGzyp59lQz5SmCvr777MXR8uzSWDFOr+kLz/+KDukDnyDufgveLIqll7D4AZzz1z0IViYbznRjanG6Pv+geoph3MFd3OP7vo95PMYCmgiMR0ZkdI1d88D8an43j/upplFpbuGMDeEn5AnQlg==</latexit>

最小化に関係ない項を省いて書き直すと

線形不等式制約 二次不等式制約:

取得したデータおよびその前処理を丁寧にやっているならば,この問題を解けばよい.

最小二乗誤差コストは,外れ値に非常に弱いため,データや前処理が不十分ならば別のコストや制約条件も考えること.

複素行列:

実ベクトル:

8x 2 Cm, x̄

<latexit sha1_base64="Pm21x8MXeIogfSdhffNQNo/yeNc=">AAACi3ichVFNSxtBGH7cfmjT2sR6KfSyNCgeJExUUKQHQQSPiTYf4MYwu06SIbMf7E6CdskfkN578KQgpfTWa3vrpX+gB39C6TGFXjz4ZrMgKrbvMDPPPPM+7zwzYwdKRpqxiwnjwcNHjyennmSePpt+ns3NvKhGfi90RMXxlR/WbR4JJT1R0VIrUQ9CwV1biZrd3Rzt1/oijKTvvdVHgWi4vO3JlnS4JqqZm7dafsiVMg9NS3qm5XLdse14c7Afu4NFy7RsHsaHg2YuzwosCfMuKKYgjzRKfu4jLBzAh4MeXAh40IQVOCJqeyiCISCugZi4kJBM9gUGyJC2R1mCMjixXRrbtNpLWY/Wo5pRonboFEU9JKWJOfaTfWJD9oN9Zr/Y5b214qTGyMsRzfZYK4Jm9vjl7t//qlyaNTrXqn961mhhLfEqyXuQMKNbOGN9/92H4e76zlw8z87Yb/J/yi7Yd7qB1//jnJfFzgky9AHF2899F1SXCsWVwnJ5Jb/xJv2KKbzCayzQe69iA9sooULnvscXfMU3Y9pYNtaNNNeYSDWzuBHG1hWLNJh8</latexit>

は要素ごとの複素共役

Page 34: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

コスト関数例 34

function Y = cost_function(x,b1,b2,omega,G_data,Kp,Ki)

a1=x(1);

a2=x(2);a3=x(3);G = mineral(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なので注意

Page 35: システム工学実験 パラメータ推定手順 - 京都大学...伝達関数から分かる情報 5 •安定性:(有理)伝達関数の極の実部が負ならば,安定

注意

•最小化はMatlabや Pythonのライブラリを利用してもよい(自分で作ってもよいが最適化の授業ではないので...)

• そもそもデータがおかしければ,最適化問題を解くことの意味がないので,前処理は丁寧に

•局所最適値になることを避けるため,初期値を色々変えて行う(多点スタート)

• プログラム例:下記リンク参照http://www.bode.amp.i.kyoto-u.ac.jp/member/ohki/lec/system_experiment/documents/parameter_estimation_example.pdf

35