• 検索結果がありません。

Microsoft PowerPoint - 講習会2.ppt

N/A
N/A
Protected

Academic year: 2021

シェア "Microsoft PowerPoint - 講習会2.ppt"

Copied!
110
0
0

読み込み中.... (全文を見る)

全文

(1)

MATLAB/Simulinkによる

フィードバック制御系設計

第2部

平成22年度ものづくり人材育成・確保講座

大分大学工学部福祉環境工学科メカトロニクスコース 松尾孝美

(2)

制御工学とは

MATLAB/Slmulinkの使い方

古典制御系設計 伝達関数とブロック線図 LTIオブジェクト ステップ応答,インパルス応答,周波数応答,ボード線図 システムの結合と安定性 Simulinkによる時間応答シミュレーション PIDコントローラ

現代制御系設計

状態方程式と非線形システムの線形化 状態フィードバック オブザーバ 最適レギュレータ その他 カルマンフィルタ,LQG,ロバスト制御,適応制御 ハードウェア(計測と制御) scilab/scicos

(3)

制御工学とは MATLAB/Slmulinkの使い方 古典制御系設計 伝達関数とブロック線図 LTIオブジェクト ステップ応答,インパルス応答,周波数応答,ボード線図 システムの結合と安定性 Simulinkによる時間応答シミュレーション PIDコントローラ 現代制御系設計

状態方程式と非線形システムの線形化

状態フィードバック オブザーバ 最適レギュレータ その他 カルマンフィルタ,LQG,ロバスト制御,適応制御 ハードウェア(計測と制御) scilab/scicos

(4)

状態方程式と非線形システムの線形化(1)

m

n

R

t

R

t

)

,

(

)

(

u

x

)

(

)

(

)

(

t

A

x

t

B

u

t

x

&

=

+

線形化(p.34-35)

状態方程式

例)天井から吊り下げられている1リンクアーム (1対のリンクとジョイントで構成される)

)

(t

y

)

(t

u

リンク長 質量

m

2

l

2 2 2 0

3

4

2

l

r

dr

ml

m

J

l

=

=

)

(

)

(

sin

)

(

)

(

2 2

t

u

t

y

mlg

t

y

dt

d

D

t

y

dt

d

J

+

+

=

非線形項

(5)

状態方程式と非線形システムの線形化(2)

線形化(p.34-35) 近似線形化法

y

(

t

)

=

y

(

)

+

Δ

y

(

t

)

)

(

)

(

)

(

cos

)

(

sin

)

(

sin

)

(

cos

)

(

cos

)

(

sin

))

(

)

(

sin(

)

(

sin

2 1

M

y

t

M

t

y

y

y

t

y

y

t

y

y

t

y

y

t

y

Δ

+

=

Δ

+

Δ

+

Δ

=

Δ

+

=

)

(t

y

Δ

は十分小さい

d

t

u

t

y

mlgM

dt

t

y

d

D

dt

t

y

d

J

Δ

2

(

)

+

Δ

(

)

+

2

Δ

(

)

=

(

)

2 1

mlgM

d

=

(6)

状態方程式と非線形システムの線形化(3)

))

(

)

(

(

1

)

(

2 2

U

s

D

s

mlgM

Ds

Js

s

Y

+

+

=

Δ

[

]

=

+

+

=

y

y

y

t

d

t

u

y

y

D

mlgM

y

y

&

&

&&

&

0

1

)

(

1

0

)

(

1

0

1

0

2 伝達関数: 状態方程式: 線形化(p.34-35)

で有効

1

)

(

<<

Δ t

y

(7)

状態方程式と非線形システムの線形化(4)

厳密線形化法 線形化(p.34-35) 制御対象の動作範囲が大きい場合には,制御入力を用 いて非線形項を打ち消して,線形化を行います.

)

(

)

(

sin

)

(

t

mlg

y

t

v

t

u

=

+

)

(

)

(

)

(

2 2

t

v

t

y

dt

d

D

t

y

dt

d

J

+

=

v

J

x

x

J

D

x

x

dt

d

+

=

1

0

0

1

0

2 1 2 1 状態方程式: 入力を打ち消すだけでは線形化できないシステムも状態変数を非線形関数により

(8)

状態方程式と非線形システムの線形化(5)

線形システムの応答解析(p.35)

線形化した式を用いて,入力にいろいろな信号を入れたときの応答波形を確認します.

(1) 制御系を線形化した式をラプラス変換して伝達関数を求めます.

(9)

状態方程式と非線形システムの線形化(6)

線形システムを制御対象とし,いろいろなコントローラを装備したフィードバック制御 系を構成します. (3) 閉ループ伝達関数を計算します. (4) 閉ループ系が安定になるコントローラの条件を求めます. (5) 目標値へ追従するようなコントローラのパラメータを求めます. なるべく速く目標値に到達するようなコントローラのパラメータを求めます. (6)外乱や制御対象の誤差などに安定性や目標値追従特性が影響を受けにく いコントローラを求めます.これらの性能をロバスト性(robustness)といいます. 外乱や制御対象の誤差に安定性が影響を受けにくいとき,ロバスト安定 (robustly stable)といい,目標値追従特性が影響を受けにくいとき,ロバスト性

能がよい(good robust performance)といいます. 線形システムの制御系設計(P.35-36)

(10)

制御工学とは MATLAB/Slmulinkの使い方 古典制御系設計 伝達関数とブロック線図 LTIオブジェクト ステップ応答,インパルス応答,周波数応答,ボード線図 システムの結合と安定性 Simulinkによる時間応答シミュレーション PIDコントローラ 現代制御系設計 状態方程式と非線形システムの線形化

状態フィードバック

オブザーバ 最適レギュレータ その他 カルマンフィルタ,LQG,ロバスト制御,適応制御 ハードウェア(計測と制御) scilab/scicos

(11)

状態フィードバック(1)

2次振動系の場合(p.36-38)

m

2

m

1 壁 y2 バネ バネ u(力) y1 バネ定数をk1,k2 粘性摩擦係数をc1,c2 2 2 1 2 1 2 2 1 2 1 2 2 2 1 1 2 1 1 1 1

)

(

)

(

)

(

)

(

y

c

y

y

c

y

k

y

y

k

y

m

u

y

y

k

y

y

c

y

m

&

&

&

&&

&

&

&&

=

+

=

u

y

y

k

k

k

k

k

y

y

c

c

c

c

c

y

y

m

m

=

+

+

+

+

0

1

0

0

1 1 1 1 1 1 1 1

&

&

&&

&&

(12)

状態フィードバック(2)

2次振動系の場合(p.36-38) 状態変数

[

y

y

y

y

]

T 2 1 2 1

&

&

=

x

[

]

u

y

y

y

y

x

y

y

x

y

u

y

y

y

+

=

=

=

=

=

+

+

− − −

E

M

C

M

K

M

I

y

y

E

K

C

M

T 1 1 1 2 1

0

0

,

&

&&

&

&

&

&

&&

(13)

状態フィードバック(3)

2次振動系の場合(p.36-38)

u

x

x

&

=

A

+

B

Fx

u

=

状態フィードバック 閉ループ系

x

&

=

A

x

BF

x

=

(

A

BF

)

x

0

)

(

lim

=

x

t

t

行列(A-BF)が安定行列,つまり,(A-BF)の固有値の実部がすべて負

極配置

:(A,B)が可制御である場合,(A-BF)の固有値を指 定の値にするような状態フィードバックゲインFが存在します.

(14)

状態フィードバック(4)

2次振動系の場合(p.36-38) %ファイル名 param_sp.m % two-degree-of-freedom system m1=1; m2=0.01; k1=100; k2=100; c1=0.001; c2=0.00001; M=[m1 0; 0 m2]; K=[k1 –k1; -k1 k1+k2]; C=[c1 –c1; -c1 c1+c2]; E=[1; 0]; inM=inv(M); %

A=[zeros(2,2) eye(2); -inM*K -inM*C]; B=[0; 0; inM*E];

% 出力 mass 1 & 2 position y = C*x + D*u C=[1 0 0 0; 0 1 0 0];

(15)

状態フィードバック(5)

2次振動系の場合(p.36-38) % Pole placement(極配置プログラム) % ファイル名pole_sp.m clear param_sp % param.mの呼び出し i=sqrt(-1)

P=[-10+100*i -10-100*i -15+15*i -15-15*i];

% place.mが閉ループ制御系の極を望まれる値にするMファイル F=place(A,B,P);

eig(A-B*F) F

(16)

状態フィードバック(6)

2次振動系の場合(p.36-38) %(応答計算プログラム) % ファイル名 res_sp.m clf clear place_sp % place_sp.mの呼び出し [y1,x1,T1]=impulse(A,B,C,D,1); [y2,x2,T2]=impulse(A-B*F,B,C,D,1); figure(1) plot(T1,y1,'-',T2,y2(:,1),':')

legend('no control','feedback gain f1',0); xlabel('Time [s]')

(17)

状態フィードバック(7)

(18)

状態フィードバック(8)

(19)

制御工学とは MATLAB/Slmulinkの使い方 古典制御系設計 伝達関数とブロック線図 LTIオブジェクト ステップ応答,インパルス応答,周波数応答,ボード線図 システムの結合と安定性 Simulinkによる時間応答シミュレーション PIDコントローラ 現代制御系設計 状態方程式と非線形システムの線形化 状態フィードバック

オブザーバ

最適レギュレータ その他 カルマンフィルタ,LQG,ロバスト制御,適応制御 ハードウェア(計測と制御) scilab/scicos

(20)

オブザーバ(1)

オブザーバ(p.38-39)

)

(

)

(

),

(

)

(

)

(

t

A

x

t

B

u

t

y

t

C

x

t

x

&

=

+

=

状態がすべて観測できるとは限らず,その一部,つまり出力しか観測できない 状態方程式 オブザーバ:観測できる出力から状態を推定する機構

)

(

)

(

)

(

ˆ

)

(

))

(

ˆ

)

(

(

)

(

)

(

ˆ

)

(

ˆ

t

A

x

t

B

u

t

G

y

t

C

x

t

A

GC

x

t

G

y

t

B

u

t

x

&

=

+

+

=

+

+

オブザーバゲイン

G

)

(

)

(

ˆ

)

(

t

x

t

x

t

e

=

推定誤差 を安定行列になるように選ぶ

)

(

A

GC

0

)

(

lim

=

t

t

e

(21)

オブザーバ(2)

(22)

オブザーバ(3)

(23)

オブザーバ(4)

(24)

オブザーバ(5)

疑似状態フィードバック(p.38-40)

Cx

y

Bu

Ax

x

=

+

=

&

Gy

z

GC

BF

A

LCz

Gy

BFz

Az

Cz

y

G

Bu

Az

z

Fz

u

+

=

+

=

+

+

=

=

)

(

)

(

&

=

e

x

GC

A

BF

BF

A

e

x

0

&

&

状態方程式 疑似状態フィードバック コントローラ (動的安定化補償器) 閉ループ系 2つの行列(A-GC)と(A-BF)の両方とも安定行列であるならば,閉ループ系は漸近安定

lim

t→∞

x(t) = 0, lim

t→∞

e(t) = 0

(25)

オブザーバ(6)

(26)

オブザーバ(7)

(27)

制御工学とは MATLAB/Slmulinkの使い方 古典制御系設計 伝達関数とブロック線図 LTIオブジェクト ステップ応答,インパルス応答,周波数応答,ボード線図 システムの結合と安定性 Simulinkによる時間応答シミュレーション PIDコントローラ 現代制御系設計 状態方程式と非線形システムの線形化 状態フィードバック オブザーバ

最適レギュレータ

その他 カルマンフィルタ,LQG,ロバスト制御,適応制御 ハードウェア(計測と制御) scilab/scicos

(28)

最適レギュレータ(1)

u

x

x

&

=

A

+

B

最適レギュレータ(P.41-43)

(

)

正定対称行列

準正定対称行列, :

:

0

R

Q

dt

R

Q

J

=

x

T

x

+

u

T

u

x

u

=

K

0

:

0

1 1

=

+

+

>

=

− −

Q

P

B

PBR

PA

P

A

P

P

B

R

K

T T T Riccati方程式 状態方程式 評価関数 LQコントローラ

(29)

最適レギュレータ(2)

最適レギュレータ(P.41-43)

MATLABコマンド [K,P,E] = LQR(A,B,Q,R)

K:フィードバックゲイン P:Riccati方程式の正定解 E:行列A-BKの固有値 K = 10.0000 8.4223 2.1812 P = 104.2225 51.8117 10.0000 51.8117 37.9995 8.4223 10.0000 8.4223 2.1812 E = -2.6878 -1.2467 + 1.4718i -1.2467 - 1.4718i

(30)

最適レギュレータ(3)

最適レギュレータ(P.41-43)

v

x

x

v

x

u

u

x

x

&

=

A

+

B

,

=

K

+

&

=

(

A

BK

)

+

B

新規入力に対する応答計算 % system A = [ 0 1 0 0 0 1 0 -2 -3]; B = [0 0 1]; [n,r] = size(B); % weighting matrix Q = [ 100 0 0 0 1 0 0 0 1]; R = 0.01; % feedback gain [K,P,E] = lqr(A,B,Q,R) % K = lqr(A,B,Q,R) AA = A-B*K; BB = B; CC = eye(n); DD = zeros(n,r); x0 = [1 0 0]; % initial values t = 0:0.05:5; % case: v = 0 v = zeros(1,length(t)); lsim(AA,BB,CC,DD,v,t,x0) pause % case: v = sin(t) v = sin(t); lsim(AA,BB,CC,DD,v,t,x0) pause

% case: step response v = 1 v = ones(1,length(t));

x0 = [0 0 0];

lsim(AA,BB,CC,DD,v,t,x0) pause

(31)

最適レギュレータ(4)

(32)

最適レギュレータ(5)

最適レギュレータ(P.41-43)

(33)

制御工学とは

MATLAB/Slmulinkの使い方

古典制御系設計

伝達関数とブロック線図

LTIオブジェクト

ステップ応答,インパルス応答,周波数応答,

ボード線図

システムの結合と安定性

Simulinkによる時間応答シミュレーション

PIDコントローラ

現代制御系設計

(34)

2010/8/3 MATLAB・フィードバック制御系設計 34

制御工学とは

MATLAB/Slmulinkの使い方

古典制御系設計

伝達関数とブロック線図

LTIオブジェクト

ステップ応答,インパルス応答,周波数応答,

ボード線図

システムの結合と安定性

Simulinkによる時間応答シミュレーション

PIDコントローラ

現代制御系設計

状態方程式と非線形システムの線形化

(35)

カルマンフィルタ(1)

カルマンフィルタ:制御対象の入出力から,出力と状態の推定値z (オブザーバの一種:確率的ノイズが入る)

u

z

x

y

u

z

y

u

z

z

+

=

+

+

=

0

ˆ

ˆ

)

(

D

I

C

D

C

L

B

A

&

v

u

x

y

w

u

x

x

+

+

=

+

+

=

D

C

G

B

A

&

ノイズの共分散 制御対象 n T n T n T

N

E

R

E

Q

E

{

ww

}

=

,

{

vv

}

=

,

{

wv

}

=

(36)

カルマンフィルタ(2)

共分散 共分散を最小にするゲインL

}

)

ˆ

)(

ˆ

{(

lim

T t

E

P

=

x

x

x

x

∞ →

0

)

(

)

(

:

0

1 1

=

+

+

+

+

>

=

− − T n T T n n n T T n T

G

GQ

G

N

CP

R

GN

PC

PA

AP

P

R

PC

L

[

]

[

]

v

w

u

x

y

w

u

x

x

+

+

=

+

=

0

D

C

G

B

A

&

[m,n] = size(C); [n1,r] = size(G);

sys = ss(A,[B G],C,[D zeros(m,r)]) [Kest,L,P] = kalman(sys,Qn,Rn,Nn)

(37)

制御工学とは

MATLAB/Slmulinkの使い方

古典制御系設計

伝達関数とブロック線図

LTIオブジェクト

ステップ応答,インパルス応答,周波数応答,

ボード線図

システムの結合と安定性

Simulinkによる時間応答シミュレーション

PIDコントローラ

現代制御系設計

(38)

LQG(1)

LQG(Linear QUadratic Gaussian)コントローラ:

コントローラを最適レギュレータとカルマンフィルタで構成

y

x

u

x

y

u

x

x

x

u

L

K

LD

B

LC

A

D

C

L

B

A

K

+

=

+

+

=

=

ˆ

]

)

(

[

)

ˆ

(

ˆ

ˆ

ˆ

&

Lgqcont = lqgreg(Kest,K)

(39)

LQG(2)

LQG例題)倒立振子の場合 0 cos sin ) ( sin cos ) ( 2 2 2 2 2 2 2 2 2 2 = + − + + = ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ − + + + dt x d ml mgl dt d c dt d ml J au dt d ml dt d ml dt dx F dt x d m M θ θ θ θ θ θ θ θ 数  : 軸の粘性摩擦係 の慣性モーメント  : 振子の重心周り  : 振子の質量 らの角度  : 振子の垂直軸か までの距離  : 軸から振子重心 らの入力電圧  : パワーアンプか 等価粘性摩擦係数   : 台車駆動系の  : 台車質量   : 台車位置 ] / [ ] [ ] [ ] [ ] [ ] [ ] / [ ] [ ] [ 2 2 s kgm c kgm J kg m rad m l V u s kg F kg M m x θ

(40)

LQG(3)

関数名)invpend.m 入力引数)input input(1) : u (入力電圧) input(2) : x (台車位置) input(3) : theta (振子の垂直軸からの角度) input(4) : xdot (台車速度) input(5) : thetadot (振子角速度) 出力引数)output output(1) : xdot (台車速度) output(2) : thetadot (振子角速度) output(3) : V(1) (台車角速度) output(4) : V(2) (振子角加速度) 動特性方程式のMATLAB function Mファイル化

(41)

LQG(4)

function [output] = invpend(input) % Parameters M = 1.038; a = 0.961; F = 15.11; J = 4.19e-4; l = 0.120; c = 1.22e-5; m = 0.035; g = 9.8; % u = input(1); x = input(2); theta = input(3); xdot = input(4); thetadot = input(5); output(1) = input(4); output(2) = input(5); % A11 = M+m; A12 = m*l*cos(theta); A21 = m*l*cos(theta); A22 = J+m*l*l;

A = [A11 A12; A21 A22];

B11 = -F*xdot+m*l*sin(theta)*thetadot*thetadot+a*u; B21 = -c*thetadot+m*g*l*sin(theta); B = [B11; B21]; V = inv(A)*(B); output(3) = V(1); output(4) = V(2);

(42)

LQG(5)

Simulinkモデルは,あとでlinmod関数を使って線形化できるように,入 力ポートと出力ポートを指定している. 入力ポート)u, 出力ポート)x, theta MATLAB関数は,先ほど作った関数Mファイルの名前,invpendを入れて いる.MATLAB関数の出力全部と入力の2番目から5番目を積分器で結 合することにより倒立振子の微分方程式が実現できる.初期条件は, 積分器をクリックして代入できる. nlpend_io.mdl

(43)

LQG(6)

近似線形化モデルの導出 不安定平衡点

(

x

,

θ

)

=

(

0

,

0

)

]

[

1 rad

<<

θ

sin

θ

θ

,

cos

θ

1

,

θ

&

2

0

近似線形化

u

a

x

mgl

x

c

F

x

ml

J

ml

ml

m

M

+

+

=

+

+

0

0

0

0

0

0

2

θ

θ

&

θ

&

&&

&&

=

θ

θ

&

&x

x

x

Bu

A

+

= x

x

&

x

y

=

0

0

1

0

0

0

0

1

(44)

LQG(7)

線形状態方程式を直接計算するMファイル M = 1.038; a = 0.961; F = 15.11; J = 4.19e-4; l = 0.120; c = 1.22e-5; m = 0.035; g = 9.8; alpha0 = (M+m)*J + M*m*l*l; a32 = -m*m*l*l*g/alpha0; a33 = -F*(J+m*l*l)/alpha0; a34 = m*l*c/alpha0; a42 = (M+m)*m*g*l/alpha0; a43 = m*l*F/alpha0; a44 = -c*(M+m)/alpha0; b3 = (J+m*l*l)*a/alpha0; b4 = -m*l*a/alpha0; A = [ 0 0 1 0 0 0 0 1

0 a32 a33 a34 0 a42 a43 a44 ] B = [ 0 0 b3 b4 ] C = [ 1 0 0 0 0 1 0 0 ]; D = [ 0 0 ];

(45)

LQG(8)

線形状態方程式をlinmodから計算するMファイル M = 1.038; a = 0.961; F = 15.11; J = 4.19e-4; l = 0.120; c = 1.22e-5; m = 0.035; g = 9.8;

% derivation of linearized model via linmod.m function [A,B,C,D]=linmod('nlpend_io')

(46)

2010/8/3 MATLAB・フィードバック制御系設計 46

LQG(9)

状態FBコントローラとLQGコントローラを求めるMファイル

x

K

u

=

y

z

y

z

z

)

(

)

(

)

(

)

(

dc

cc

u

bc

ac

+

=

+

=

&

M = 1.038; a = 0.961; F = 15.11; J = 4.19e-4; l = 0.120; c = 1.22e-5; m = 0.035; g = 9.8; % linearized model [A,B,C,D]=linmod('nlpend_io') % G = [ 1 1 1 1 ]; % weights of LQ regulator Q = [ 1000 0 0 0 0 1000 0 0 0 0 1 0 0 0 0 1 ]; R = 5; N = [ 0.01 0 0 0 ]; [K,S,e] = lqr(A,B,Q,R,N)

% covariance matrices of noise Qn = 1; Rn = [ 1 0 0 0.1]; Nn = [ 0 0 ]; [m,n] = size(C); [n1,r] = size(G);

sys = ss(A,[B G],C,[D zeros(m,r)]) [Kest,L,P] = kalman(sys,Qn,Rn,Nn) %LQG controller Lqgcont = lqgreg(Kest,K) [ac,bc,cc,dc]=ssdata(Lqgcont) x0 = [1 1 0 0]; xc0 = [0 0 0 0]; %

(47)

LQG(10)

応答シミュレーション

線形モデルに対するLQコントローラの性能評価

ノイズ付加 ノイズなし

(48)

LQG(11)

応答シミュレーション 非線形モデルに対するLQコントローラの性能評価 lqrcon_nse5.mdl 初期条件:小 初期条件:大 不安定

(49)

LQG(12)

応答シミュレーション

(50)

LQG(13)

応答シミュレーション

非線形モデルに対するLQGコントローラの性能評価

初期条件:小

(51)

LQG(14)

function [output] = nlcontroller(input)

% parameters % Parameters M = 1.038; a = 0.961; F = 15.11; J = 4.19e-4; l = 0.120; c = 1.22e-5; m = 0.035; g = 9.8; alpha = F/(M+m); beta = a/(M+m); % feedback gain k1 = 20.8255; k2 = 9.3331; k3 = -3.1623; k4 = -23.9471; % x = input(1); theta = input(2); xdot = input(3); thetadot = input(4); % xi1 = g*sin(theta)+k1*theta-g*theta+k2*thetadot; xi = xi1/(cos(theta)+0.01*sign(cos(theta)));

output = -k3*x - k4*xdot + xi/beta;

非線形状態フィードバックコントローラ nlcontroller.m

(52)

LQG(15)

(53)

LQG(16)

非線形状態フィードバックコントローラ

初期条件

[

π

0

0

0

]

(54)

2010/8/3 MATLAB・フィードバック制御系設計 54

制御工学とは

MATLAB/Slmulinkの使い方

古典制御系設計

伝達関数とブロック線図

LTIオブジェクト

ステップ応答,インパルス応答,周波数応答,

ボード線図

システムの結合と安定性

Simulinkによる時間応答シミュレーション

PIDコントローラ

現代制御系設計

状態方程式と非線形システムの線形化

(55)

ロバスト制御,適応制御

(1)カルマンフィルタおよびLQGコントローラ http://matlab0.hwe.oita-u.ac.jp/~matsuo/lqgexam.pdf http://matlab0.hwe.oita-u.ac.jp/~matsuo/ivpend2.doc (2)ロバスト制御 http://matlab0.hwe.oita-u.ac.jp/~matsuo/rob_txt.pdf http://matlab0.hwe.oita-u.ac.jp/~matsuo/pidq_txt.pdf (3)適応制御 http://matlab0.hwe.oita-u.ac.jp/~matsuo/adaptsv.pdf http://matlab0.hwe.oita-u.ac.jp/~matsuo/ada_ident.pdf P.44

(56)

制御工学とは MATLAB/Slmulinkの使い方 古典制御系設計 伝達関数とブロック線図 LTIオブジェクト ステップ応答,インパルス応答,周波数応答,ボード線図 システムの結合と安定性 Simulinkによる時間応答シミュレーション PIDコントローラ 現代制御系設計 状態方程式と非線形システムの線形化 状態フィードバック オブザーバ 最適レギュレータ その他 カルマンフィルタ,LQG,ロバスト制御,適応制御

ハードウェア(計測と制御)

,GUI scilab/scicos

(57)

ハードウェア制御(1)

ARM11コア搭載Linuxコンピュータ:AD7011-EVA 計測や制御に必要なA/D、D/Aコンバータの他、 多彩なI/O を搭載したLinuxコンピュータです。制御プログラムはThe Mathworks社のMATLAB/SimulinkもしくはEclipse(標準付 属)を用いたC言語で構築でき、GUIや画面作成は当社製 AD- VirtualConsole(標準付属)を使ってドラッグアンドド ロップの操作で作成できます。これら一連の作業は WindowsPC上で行いビルド後 AD7011-EVAに転送します。 各I/OのS-Function及びドライバーソフトは標準で付属して いますのですぐに使用可能です。 またAD7011-EVAは近 年注目を集めているモデルベース開発ツールの一つである MATLAB/Simulinkのターゲットマシーンとしてアプリ ケー ションの実機検証、制御が行える機器としては大変リーズ ナブルな製品です。 プロセッサーにはARM1136コア搭載 http://www.aandd.co.jp/adhome/products/sbc/ad7011-eva-arm.html

(58)

ハードウェア制御(2)

(59)

ハードウェア制御(3)

MATLAB/Simulinkにて制御プログラムを作成 ホスト側PC(Windows PC)にインストールされた MATLAB/Simulinkにてモデルベースの制御プログ ラムを作成することができます. * 必要なソフト:MATLAB 2007bシリーズ ・MATLAB・Simulink・Real-Time Workshop http://www.aandd.co.jp/adhome/products/sbc/ad7011-eva-arm.html

(60)

ハードウェア制御(4)

ラピッドプロトタイピング:

製品開発において、試作品(prototype)を高速に(rapid)製造する技術. (例)機械分野では,3次元CADにより設計した機械部品のデータから直接に 製造可能な積層造形法(粉体、樹脂、板、紙などの材料を薄い膜状に積層し て機械部品を製造する技術 )についてそう呼ばれることが多い。 金型等を 製造せずに部品を直接製造できるために,従来の製造手法と比較して時間 の短縮が可能で、コンカレントエンジニアリング等の高速製品開発に必須の 技術と考えられている。 http://designer.mse.kyutech.ac.jp/techInfo/rp-j.html

制御系設計の場合には,コントローラの性能を制御対象により検証する際に,

工程の後戻りや実機試験環境でのトライアンドエラーをなるべく減らす目的で,

制御対象を実機,コントローラを机上の数式とする方法をいいます.

(61)

ハードウェア制御(5)

ラピッドプロトタイピング::モータの場合(Mathworks資料より) pdf資料は,「MATLAB環境におけるリアルタイムシミュレーション」で検索してください.

xPCターゲット:

SimulinkやStateflowモデルを実機のシステムと接続し,PC互換ハードウェア上 リアルタイムのシミュレーションモデル(Real-Time Application)実行を可能にします. xPCターゲットは,制御システムのラピッドプロトタイピングや

HILS (Hardware-in-the-loop Simulation)の機能を持っています.

xPCターゲットにより,シミュレーションモデルにI/Oインタフェースブロックを追加し, Real-Time WorkshopやStateflow Coderを使用して,自動Cコード生成を行い,

(62)

ハードウェア制御(6)

(63)

ハードウェア制御(7)

ラピッドプロトタイピング::モータの場合(Mathworks資料より)

(64)

ハードウェア制御(8)

(65)

ハードウェア制御(9)

(66)

ハードウェア制御(10)

(67)

ハードウェア制御(11)

(68)

ハードウェア制御(12)

MATLABによるリアルタイム制御入門 : xPC Targetを使ったモデル・ベース開発 大川善邦著,CQ出版 MATLABをリアルタイム制御に利用する 手法の基礎を解説しました。MATLABと、 Simulink、Real‐Time Workshop、xPC Targetの4本のソフトウェアをを使い、ブ ロック線図によってシミュレーションを繰 り返し、その結果として生成したプログラ ムをターゲットのパソコン へ送り込み、 パソコンをリアルタイム制御に利用しま す。

(69)

制御工学とは MATLAB/Slmulinkの使い方 古典制御系設計 伝達関数とブロック線図 LTIオブジェクト ステップ応答,インパルス応答,周波数応答,ボード線図 システムの結合と安定性 Simulinkによる時間応答シミュレーション PIDコントローラ 現代制御系設計 状態方程式と非線形システムの線形化 状態フィードバック オブザーバ 最適レギュレータ その他 カルマンフィルタ,LQG,ロバスト制御,適応制御

ハードウェア(計測と制御),

GUI

scilab/scicos

(70)

GUI(1)

MATLAB GUIの特徴

(1) MATLABの知識なくても作成したアプリケーションを利用可能.

(2) イベントドリブンのプログラミング

(3) MATLAB関数のコールバック,Simulinkとの連携が可能

(4) MATLAB Compilerの利用によるStand Alone Applicationが作成可能

GUIDEの起動

(71)

GUI(2)

>>

guide

レイアウトエディタ 他のGUIDEツールへのアクセス 他のGUIDEツール (1) オブイジェクト整列ツール (2) プロパティインスペクタ:オブジェクトのプロパティ値を編集 (3) オブジェクトブラウザ:レイアウト上にあるオブジェクトの一覧表示 (4) メニューエディタ:メニューバー,ポップアップメニューの作成

(72)

GUI(3)

GUIDEにより作成されるファイル構成:

Figファイル

:オブジェクトのレイアウトやプロパティ値の記述

Mファイル

:GUIアプリケーションの実行時に必要な関数

メイン関数,コールバック関数,サブ関数

GUI構築手順:

(1) オブジェクトの配置

(2) 各オブジェクトのプロパティ値の編集

(3) コールバック関数の編集

(4) アプリケーションの実行

(73)

GUI(4)

GUIで使用できるオブジェクト:

オブジェクトをグループ化

frame

選択肢から1つまたは複数項目選択

listbox

他のオブジェクトのラベル

text

範囲内の値を指定

slider

状態の切替

checkbox

数値,文字列の入力

edit

選択肢から1項目選択

popupmenu

選択肢(ラジオボタン群)から1項目を選択

radiobutton

状態の切替スイッチ

togglebutton

アクションを実行するボタン

pushbutton

(74)

GUI(5)

(75)

GUI(6)

(76)

GUI(7)

例題)axesとpushbuttonを用いて,図を表示するGUI 1 2 3 ex_guide.figで保存

(77)
(78)

GUI(9)

function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

num = 1; den = [1 1]; sys = tf(num,den); bode(sys);

(79)
(80)

GUI(11)

(81)

MATLAB EXPO 2010

───────── 【MATLAB EXPO 2010 開催概要】 ───────── ■日程: 2010年11月26日(金) 10:00~18:00 (9:30 受付開始)

■会場: 東京ミッドタウン ホール&カンファレンス ■主催: MathWorks Japan

(82)

制御工学とは MATLAB/Slmulinkの使い方 古典制御系設計 伝達関数とブロック線図 LTIオブジェクト ステップ応答,インパルス応答,周波数応答,ボード線図 システムの結合と安定性 Simulinkによる時間応答シミュレーション PIDコントローラ 現代制御系設計 状態方程式と非線形システムの線形化 状態フィードバック オブザーバ 最適レギュレータ その他 カルマンフィルタ,LQG,ロバスト制御,適応制御

ハードウェア(計測と制御),

GUI

scilab/scicos

(83)

Scilab(1)

Scilabとは :

http://www.scilab.org/

INRIA (フランス国立コンピュータ科学・制御研究所)で作成された高機

能な行列演算パッケージ.フリーソフト

(84)

Scilab(2)

Scilabのインストール

http://www.scilab.org/より,インストーラをダウンロード

Scilabの起動

アイコンをダブルクリック

コマンドライン(電卓的使い方)

-->

の後にキーボードから命令

を打ち込み,Enterキーを押すことに

より,命令が実行できる。

(85)

Scilab(3)

t

t

2

t

3

t

t

2

t

3

(86)
(87)

Scilab/Scicosによる計算:単振子(1)

=

=

=

=

=

=

)

(

)

(

)

(

)

(

)

(

)

(

)

(

sin

)

(

)

(

sin

)

(

)

(

)

(

2 1 2 1 2 2 2 2 2 2 2

g

t

z

t

z

t

t

z

t

t

z

t

l

g

dt

t

d

t

mgl

dt

t

d

ml

t

T

dt

t

d

I

とおくと,

θ

θ

θ

θ

θ

θ

θ

l

)

(t

θ

m

mg

)

(

sin

t

mg

θ

(88)

Scilab/Scicosによる計算:単振子(2)

-->

deff("[zdot]=f(t,z)","zdot(1)=z(2),zdot(2)=-9.8*sin(z(1));")

-->

z0=[3.0;0];t0=0;t=0:0.01:30;

-->

z=ode(z0,t0,t,f);

-->

plot(t,z)

(

0

)

3

[

rad

]

(

0

)

0

[

rad/sec

]

1

=

=

=

θ

θ

l

:角度

:角速度

(89)

Scilab/Scicosによる計算:単振子(3)

⎟⎟

⎜⎜

+

=

=

⎟⎟

⎜⎜

+

=

+

=

=

=

=

t t t t t t t t t t t

t

d

dt

dt

d

t

l

g

dt

dt

t

d

t

dt

dt

d

t

l

g

dt

dt

t

d

dt

d

t

l

g

dt

t

d

t

l

g

dt

d

dt

t

d

t

l

g

dt

dt

t

d

t

l

g

dt

t

d

0 0 0 0 0 0 0 0 0 0 2 2 2 2

)

(

)

0

(

)

(

sin

)

(

)

0

(

)

(

)

0

(

)

(

sin

)

(

)

0

(

)

(

sin

)

(

)

(

sin

)

0

(

)

(

)

(

sin

)

(

)

(

sin

)

(

θ

θ

θ

θ

θ

θ

θ

θ

θ

θ

θ

θ

θ

θ

θ

θ

θ

θ

θ

(90)

Scilab/Scicosによる計算:単振子(4)

ScicosはScilab科学技術計算ソフトウェアに含まれるグラ

フィカルな動的システムのシミュレータ(計算ツール)

Scilabからscicosを起動

- ->

scicos()

scicosのグラフィカルエディタ

(お絵かきエディタ)

(91)

Scilab/Scicosによる計算:単振子(5)

(92)

Scilab/Scicosによる計算:単振子(6)

(93)

Scilab/Scicosによる計算:単振子(7)

各々のメニューを選択すると,つぎのような道具箱が表示される。この道具箱 内のアイコンを選択して,グラフィカルエディタ内に,図を描くことができる。

(94)

Scilab/Scicosによる計算:単振子(8)

(95)

Scilab/Scicosによる計算:単振子(9)

Linear:微分,積分,定数倍,加算などのツール

(96)

Scilab/Scicosによる計算:単振子(10)

(97)

Scilab/Scicosによる計算:単振子(11)

単振子シミュレーション

(98)

Scilab/Scicosによる計算:単振子(12)

積分

積分

加減算

(99)

Scilab/Scicosによる計算:単振子(13)

(100)

Scilab/Scicosによる計算:単振子(14)

)

(t

θ

′′

)

(t

θ

)

(t

θ

(101)

Scilab/Scicosによる計算:単振子(15)

(102)

Scilab/Scicosによる計算:単振子(16)

f(t)=1

(103)

Scilab/Scicosによる計算:単振子(17)

(104)

Scilab/Scicosによる計算:単振子(18)

各々のアイコンの設定値を変えるには,

アイコンをクリックする.

(105)
(106)

Scilab/Scicosによる計算:単振子(20)

]

rad

[

3

)

0

(

sec],

/

rad

[

0

)

0

(

=

=

θ

θ

(107)
(108)

Scilab/Scicosによる計算:単振子(22)

計算のための設定:SimulateÆSetup

(109)

Scilab/Scicosによる計算:単振子(23)

(110)

参照

Outline

関連したドキュメント

キャンパスの軸線とな るよう設計した。時計台 は永きにわたり図書館 として使 用され、学 生 の勉学の場となってい たが、9 7 年の新 大

data-set-name BOOLEAN 参照 DataSet true(レポート内に収容). data-reference BOOLEAN データ項目情報

パルスno調によ るwo度モータ 装置は IGBT に最な用です。この用では、 Figure 1 、 Figure 2 に示すとおり、 IGBT

Should Buyer purchase or use SCILLC products for any such unintended or unauthorized application, Buyer shall indemnify and hold SCILLC and its officers, employees,

タンクタンクタンク モバイル型Sr 除去装置 吸着塔 スキッド 計装制御 スキッド 計装制御装置 ウルトラフィルタ スキッド SSフィルタ

・原子炉冷却材喪失 制御棒 及び 制御棒駆動系 MS-1

ⅰ.計装ラック室,地震計室(6 号炉) ,感震器室(7 号炉) ,制御

建屋水位・地下水位の監視と制御 特定原子力施設 (第23回)資料 監視・評価検討会 加筆.