授業
Advanced Automation†
[lecture #1] 2015.9.3 outline of the lecture, review of classical and modern control theory (1/3)†
- outline of this lecture
- syllabus
- evaluation
- mini report #1 ... 10%
- mini exam #1 ... 10%
- mini report #2 ... 10%
- mini exam #2 ... 10%
- final report ... 60%
- schedule2015 (tentative)
- map
- review : stabilization of 1st-order unstable plant by classical and modern control theory
- transfer function
- differential equation
- eigenvalue and pole
- ...
%-- 9/3/2015 2:09 PM --%
s = tf('s')
Ptf = 1/(s+1)
pole(Ptf)
impulse(Ptf)
Pss = ss(Ptf)
initial(Pss, 1)
initial(Pss, 2)
ex0902.m
[lecture #2] 2015.9.10 review of classical and modern control theory (2/3) with introduction of Matlab/Simulink†
- introduction of Matlab and Simulink
text_fixed.pdf Basic usage of MATLAB and Simulink used for 情報処理演習及び考究II/Consideration and Practice of Information Processing II: Advanced Course of MATLAB
- interactive system (no compilation, no variable difinition)
- m file
- system representation: Transfer Function(TF) / State-Space Representation (SSR)
- example: mass-spring-damper system
- difinition of SSR
- from SSR to TF
- from TF to SSR: controllable canonical form
- open-loop characteristic
- open-loop stability: poles and eigenvalues
- Bode plot and frequency response ex0910_1.m mod0910_1.mdl
- cut off frequency; DC gain; -40dB/dec; variation of c
- relation between P(jw) and steady-state response
- closed-loop stability
- Nyquist stability criterion (for L(s):stable)
- Nyquist plot ex0910_2.m mod0910_2.mdl
- Gain Margin(GM); Phase Margin(PM)
%-- 9/10/2015 1:55 PM --%
ex0910_1
P
P.den
P.den{:}
P.num{:}
ex0910_1
ex0910_2
[] 2015.9.17 cancelled†
[] 2015.9.25 no lecture (lectures for Monday are given)†
[lecture #3] 2015.10.1 review of classical and modern control theory (3/3)†
- LQR problem
- controllability
- cost function J >= 0
- (semi)-positive definiteness
- solution of LQR problem
- ARE and quadratic equation
- closed loop stability ... Lyapunov criterion
- Jmin
lqr.pdf ≒ proof4.pdf (from B3「動的システムの解析と制御」)
- example
mod1001.mdl
A = [1, 2; 0, -1]; % unstable plant
B = [0; 1];
Uc = ctrb(A,B);
det(Uc) % should be nonzero
C = eye(2); % dummy
D = zeros(2,1); % dummy
F = [0, 0]; % without control
x0 = [1; 1]; % initial state
Q = eye(2);
R = 1;
P = are(A, B/R*B', Q);
eig(P) % should be positive
F = R\B'*P;
x0'*P*x0
%-- 10/1/2015 2:08 PM --%
mod1001
A = [1, 2; 0, -1]; % unstable plant
B = [0; 1];
Uc = ctrb(A,B);
A
B
Uc
det(Uc)
C = eye(2); % dummy
D = zeros(2,1); % dummy
F = [0, 0]; % without control
x0 = [1; 1]; % initial state
Q = eye(2);
R = 1;
F
P = are(A, B/R*B', Q);
P
eig(P)
F = R\B'*P;
F
J
x0
x0'*P*x0
A-B*F
eig(A-B*F)
... I'm sorry but all of equations are in the pdf file.
[lecture #4] 2015.10.8 relation between LQR and H infinity control problem (1/2)†
- GOAL: to learn difference in concepts between LQR problem and H infinity control problem
- review of LQR problem and the simple example
- an equivalent problem
- a simple example of state-feedback H infinity control problem
- definition of H infinity norm (SISO)
s = tf('s');
P1 = 1/(s+1);
bode(P1);
norm(P1, 'inf')
P2 = 1/(s^2 + 0.1*s + 1);
bode(P2);
norm(P2, 'inf')
- definition of H infinity norm (SIMO)
- solve the problem by hand
- solve the problem by tool(hinfsyn)
ex1008.m
%-- 10/8/2015 1:48 PM --%
s = tf('s');
P1 = 1/(s+1);
bode(P1);
norm(P1, 'inf')
P2 = 1/(s^2 + 0.1*s + 1);
bode(P2);
norm(P2, 'inf')
ex1008
- Q: 最後にfを求めてどうするのか分からなかった。
- A: 閉ループ系のH∞ノルムを最小化するfを求め、LQRの最適解と比較する予定でしたが、最後まで説明できずすみません。
- Q: |Tzw|∞ は感度関数になる?
- A: Tzw が感度関数になるか?という意味と思いますが、一般化プラントの設定次第でそうなります(例えば目標値信号を w、偏差を z に選ぶ場合など)。次々回、その場合を扱います。
[lecture #5] 2015.10.15 relation between LQR and H infinity control problem (2/2)†
- complete the table in simple example
- behavior of hinfsyn in ex1008.m
- confirm the cost function J for both controllers by simulation mod1015.mdl
- confirm the closed-loop H infinity norm for both controllers by simulation (common mdl file is available)
- review: steady-state response (see photo 8 @ lec. #2)
- how to construct the worst-case disturbance w(t) which maximizes L2 norm of z(t) ?
- what is the worst-case disturbance in the simple example ?
- general case: hinf.pdf includes the simple example as a special case
- LQR lqr.pdf is included as a special case where gamma -> infinity, non-zero x(0), and B2 -> B
%-- 10/15/2015 1:14 PM --%
ex1008
K
dcgain(K)
gopt
ex1008
mod1015
f
f = 1
x0 = 0
h = 0.1
zz
zz(end)
h = 1e-6
zz(end)
f = -1+sqrt(2)
h
zz(end)
x0 = 1
zz(end)
f
h
h = 10
zz(end)/ww(end)
x0
x0 = 0
zz(end)/ww(end)
sqrt(zz(end)/ww(end))
h
h = 100
sqrt(zz(end)/ww(end))
[lecture #6] 2015.10.22 Mixed sensitivity problem 1/3†
- review map_v1.0_intro1.pdf and outline
- H infinity control problem (general form)
- reference tracking problem
- weighting function for sensitivity function
- design example ex1022_1.m ex1022_2.m
- the small gain theorem
- proof: Nyquist stability criterion
- from performance optimization to robust stabilization
%-- 10/22/2015 2:06 PM --%
ex1022_1
eig(P)
ex1022_2
[lecture #7] 2015.10.29 Mixed sensitivity problem 2/3†
- review map_v1.0_intro2.pdf and outline
- an equivalent problem of robust stabilization for reference tracking problem
- uncertainty model and normalized uncertainty Delta
- robust stabilization problem and an equivalent problem
- practical example of plant with perturbation ex1029_1.m
- how to determine the model ex1029_2.m
- design example and simulation ex1029_3.m mod1029.mdl
%-- 10/29/2015 1:52 PM --%
ex1029_1
ex1029_2
ex1029_3
mod1029
c
c = 0.8
[lecture #8] 2015.11.5 Mixed sensitivity problem 3/3†
- review : (1)robust stabilization and (2)performance optimization
- mixed sensitivity problem : a sufficient condition for (1) and (2)
- proof by definition of H infinity norm
- construction of the generalized plant
- design example ex1105_1.m
- gamma iteration by bisection method ex1105_2.m
- a problem of the mixed sensitivity problem: nominal performance and robust performance ex1105_3.m
- introduction of robust performance problem
%-- 11/5/2015 1:37 PM --%
ex1105_1
ex1105_2
gam
ex1105_2
WT
ex1105_2
ex1105_3
ex1105_2
ex1105_3
!!! the remaining page is under construction (the contents below are from 2014) !!!
%-- 10/16/2014 1:00 PM --%
M = [j, 0; -j, 1]
M
svd(M)
sqrt((3+sqrt(5))/2)
M'
M'*M
ex1016
#ref(): File not found: "2014.10.16-4.jpg" at page "授業/制御工学特論2015"
#ref(): File not found: "2014.10.16-5.jpg" at page "授業/制御工学特論2015"
#ref(): File not found: "2014.10.16-6.jpg" at page "授業/制御工学特論2015"
[lecture #7] 2014.10.23 review of SVD, robust performance problem 1/3 (motivation of robust performance)†
- submission of mini report #1
- review of SVD : graphical image and rotation matrix for 2-by-2 real matrix case
#ref(): File not found: "ex1023_1.m" at page "授業/制御工学特論2015"
- motivation of robust performance : nominal performance to robust performance
#ref(): File not found: "ex1023_2.m" at page "授業/制御工学特論2015"
#ref(): File not found: "ex1023_3.m" at page "授業/制御工学特論2015"
%-- 10/23/2014 12:58 PM --%
ex1023_1
A
S
V
V'*V
V'*V(:,1)
ex1009_1
ex1009_2
ex1023_2
ex1023_3
#ref(): File not found: "2014.10.23-1.jpg" at page "授業/制御工学特論2015"
#ref(): File not found: "2014.10.23-2.jpg" at page "授業/制御工学特論2015"
#ref(): File not found: "2014.10.23-3.jpg" at page "授業/制御工学特論2015"
- Q1: Is H infinity control theory available for discrete-time system ?
- A1: The answer is yes. You can use the same tool hinfsyn in Matlab to design discrete-time controller. If the question is to ask how to implement digital (discrete-time) controller for given continuous-time plant, there are 3 ways to do this: (i) continuous-time H infinity control based design (continuous-time controller is designed, then it is discretized); (ii) discretized H infinity control design (continuous-time plant is discretized first, then discrete-time controller is designed); (iii) sampled-data H infinity control design (discrete-time controller is directly designed for continuous-time plant)
[lecture #8] 2014.10.30 Robust performance problem (2/3)†
- return of mini report #1
- review of the limitation of mixed sensitivity problem
- definition of robust performance (R.P.) problem (cf. nominal performance problem on white board #6 in photo #4 of lecture #4) ... S is changed to S
- review of robust stability (R.S.) problem on white board #5 in photo #5 of lecture #3 ... robust stability against Delta <=> closed-loop system without Delta has less-than-or-equal-to-one H infinity norm (by small gain theorem)
- equivalent R.P. problem with structured uncertainty Delta_hat
- a conservative problem to R.P. with 2-by-2 unstructured uncertainty Delta_tilde
- Delta_tilde is larger set than Delta_hat ... conservativeness
- mini exam #1
&ref(): File not found: "exam1.pdf" at page "授業/制御工学特論2015";
%-- 10/30/2014 1:10 PM --%
ex1023_2
ex1023_3
gam_opt
ex1030_1
gam_opt
#ref(): File not found: "2014.10.30-1.jpg" at page "授業/制御工学特論2015"
#ref(): File not found: "2014.10.30-2.jpg" at page "授業/制御工学特論2015"
#ref(): File not found: "2014.10.30-3.jpg" at page "授業/制御工学特論2015"
#ref(): File not found: "2014.10.30-4.jpg" at page "授業/制御工学特論2015"
[lecture #9] 2014.11.13 Robust performance problem (3/3)†
%-- 11/13/2014 12:58 PM --%
ex1023_2
gam_opt
ex1023_3
ex1030_1
gam_opt
ex1113
ex1113_1
gam_opt
ex1113_2
#ref(): File not found: "2014.11.13-1.jpg" at page "授業/制御工学特論2015"
#ref(): File not found: "2014.11.13-2.jpg" at page "授業/制御工学特論2015"
#ref(): File not found: "2014.11.13-3.jpg" at page "授業/制御工学特論2015"
#ref(): File not found: "2014.11.13-4.jpg" at page "授業/制御工学特論2015"
[lecture #10] 2014.11.20 Robust performance problem (1/3) (cont.)†
- review - effect of scaling
- mini report #2
- write by hand
- submit at the beginning of next lecture on 27 Nov.
- check if your answer is correct or not before submission by using Matlab
- You will have a mini exam #2 related to this report on 4 Dec.
- how to obtain generalized plant by hand
example: H infinity controller design by hand
%-- 11/20/2014 1:11 PM --%
ex1023_2
ex1023_3
ex1030_1
ex1030_2
k
ex1113_1
ex1113_2
k
Delta_hat
#ref(): File not found: "2014.11.20-1.jpg" at page "授業/制御工学特論2015"
#ref(): File not found: "2014.11.20-2.jpg" at page "授業/制御工学特論2015"
#ref(): File not found: "2014.11.20-3.jpg" at page "授業/制御工学特論2015"
#ref(): File not found: "2014.11.20-4.jpg" at page "授業/制御工学特論2015"
[lecture #12] 2014.12.4 relation between H infinity control and modern control theory (cont.); Speed control of two inertia system with servo motor (1/4)†
- return of mini report #2
- contents for the last lecture
speed control of two inertia system with servo motor
&ref(): File not found: "setup.pdf" at page "授業/制御工学特論2015";
frequency response experiment and physical model of speed control system
&ref(): File not found: "ex1204_1.m" at page "授業/制御工学特論2015";
&ref(): File not found: "ex1204_2.dat" at page "授業/制御工学特論2015";
- mini exam #2
%-- 12/4/2014 1:28 PM --%
ex1127
mod1127
x0 = 0
h = 1
f = 1
ww
zz
h = 10
ww
zz
h = 50
zz
h
zz
#ref(): File not found: "2014.12.4-1.jpg" at page "授業/制御工学特論2015"
#ref(): File not found: "2014.12.4-2.jpg" at page "授業/制御工学特論2015"
[lecture #13] 2014.12.11 Robust control design for a practical system : Speed control of two inertia system with servo motor (1/3)†
- return of mini exam #2
- introduction of experimental setup
#ref(): File not found: "setup.pdf" at page "授業/制御工学特論2015"
#ref(): File not found: "photo1.jpg" at page "授業/制御工学特論2015"
- objective of control system
- to reduce the tracking error of the driving motor against disturbance torque
- robust stabilization against plant variation due to aging degradation
- frequency response experiment and physical model of speed control system
#ref(): File not found: "ex1211_1.m" at page "授業/制御工学特論2015"
#ref(): File not found: "ex1211_2.dat" at page "授業/制御工学特論2015"
#ref(): File not found: "ex1211_3.dat" at page "授業/制御工学特論2015"
#ref(): File not found: "ex1211_4.dat" at page "授業/制御工学特論2015"
determination of nominal plant
&ref(): File not found: "ex1211_5.m" at page "授業/制御工学特論2015";
determination of weighting function
&ref(): File not found: "ex1211_6.m" at page "授業/制御工学特論2015";
%-- 12/11/2014 1:24 PM --%
ex1211_1
frdata
frdata(:,1)
P1_jw
P1_g
ex1211_1
#ref(): File not found: "2014.12.11-1.jpg" at page "授業/制御工学特論2015"
- Q: What is the inertia moment of the load disk ?
- A: It is about 0.0002 (kg m^2) (60mm in diameter, 16mm in inner diameter, 20mm in thick, made by SS400)
- Q: 周波数応答実験について、定常応答になるのにどのくらい待っているか?音が大きくなるのはゲインが高いから?周波数変化のきざみは?
- A: 待ち時間は3秒です。音の発生源はよくわかりませんし、騒音計などで計測したこともありませんが、大きな音が聞こえるのは共振周波数付近です。周波数変化の刻みは常用対数で0.01です。以下に掲載するプログラムソースの freqresp.h 中で指定しています。
[lecture #14] 2014.12.18 Robust control design for a practical system : Speed control of two inertia system with servo motor (2/3)†
- design example
- m-files
#ref(): File not found: "freqresp.m" at page "授業/制御工学特論2015"
#ref(): File not found: "perf.m" at page "授業/制御工学特論2015"
>> freqresp
>> nominal
>> weight
>> cont
>> perf
- control experiment ... see participant list2014
- report
- design your controller(s) so that the system performance is improved compared with the design example above
- Draw the following figures and explain the difference between two control systems (your controller and the example above):
- bode diagram of controllers
- gain characteristic of sensitivity function
- time response of control experiment
- Why is the performance of your system improved(or unfortunately deteriorated)?
- due date: 9th(Fri) Jan 17:00
- submit your report(pdf or doc) by e-mail to kobayasi@nagaokaut.ac.jp
- You can use Japanese
- maximum controller order is 20
- submit your cont.dat, cont_order.dat, and cont.mat to kobayasi@nagaokaut.ac.jp not later than 26th(Fri) Dec
- program sources for frequency response experiment
#ref(): File not found: "freqresp.h" at page "授業/制御工学特論2015"
#ref(): File not found: "freqresp_module.c" at page "授業/制御工学特論2015"
#ref(): File not found: "freqresp_app.c" at page "授業/制御工学特論2015"
- format of datafile
- 1st column ... frequency (Hz)
- 2nd column ... gain from T_M to omega_M
- 3rd column ... phase from T_M to omega_M
- 4th column ... gain from T_M to omega_L
- 5th column ... phase from T_M to omega_L
- program sources for control experiment
#ref(): File not found: "hinf.h" at page "授業/制御工学特論2015"
#ref(): File not found: "hinf_module.c" at page "授業/制御工学特論2015"
#ref(): File not found: "hinf_app.c" at page "授業/制御工学特論2015"
- format of result.dat file
- 1st column: time (s)
- 2nd column: omega_M (rad/s)
- 3rd column: T_M (Nm)
- 4th column: reference speed (rad/s)
- 5th column: T_L (Nm)
- configuration of control experiment
- calculation of rotational speed
The rotational speed is approximately calculated by using difference for one sampling period in hinf_module.c and freqresp_module.c like:
theta_rad = (double)read_theta(0) / (double)Pn212 * 2 * M_PI;
speed_rad = (theta_rad - theta_rad_before) / msg->sampling_period;
theta_rad_before = theta_rad
where the sampling period is given as 0.25 ms.
participant list2014
%-- 12/18/2014 1:01 PM --%
freqresp
nominal
help fitfrd
weight
cont
help c2d
perf
#ref(): File not found: "2014.12.18-1.jpg" at page "授業/制御工学特論2015"
#ref(): File not found: "2014.12.18-2.jpg" at page "授業/制御工学特論2015"
[lecture #15] 2014.12.25 Robust control design for a practical system : Speed control of two inertia system with servo motor (3/3)†
- preparation of your own controller(s)
%-- 12/25/2014 12:58 PM --%
load cont.mat
who
K_opt
who
Kd
who
Ghat
load result.dat
plot(result(:,1), result(:,2))
plot(result(:,1), result(:,3))
who
bode(K_opt)
bode(Kd)
Kd1 = Kd
K_opt1 = K_opt
load cont.mat
bode(K_opt1, 'b', K_opt, 'r')
bode(Kd1, 'b', Kd, 'r')
Kd_tmp = c2d(K_opt1, 0.000001);
bode(Kd1, 'b', Kd, 'r', Kd_tmp, 'm')
clear all
load cont.mat
who
bode(K_opt)
K_example = K_opt;
load cont.mat
bode(K_example, 'b', K_opt, 'r')
#ref(): File not found: "2014.12.25-1.jpg" at page "授業/制御工学特論2015"
#ref(): File not found: "2014.12.25-2.jpg" at page "授業/制御工学特論2015"