授業
Advanced Automation 2020†
[lecture #1] 2020.9.3 outline of the lecture, review of classical and modern control theory (1/3)†
- review : stabilization of SISO unstable plant by classical and modern control theory
- transfer functions / differential equations
- poles / eigenvalues
- impulse response / initial value response
- ...
s = tf('s')
P = 1/(s-1)
pole(P)
impulse(P)
k = 2
Tyr = feedback(P*k, 1)
step(Tyr)
k = 10
Tyr = feedback(P*k, 1)
step(Tyr)
k = 0.5
Tyr = feedback(P*k, 1)
step(Tyr)
!!! the remaining page is under construction (the contents below are from last year) !!!
#ref(): File not found: "2019.09.05-1.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.09.05-2.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.09.05-3.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.09.05-4.jpg" at page "授業/制御工学特論2020"
- Q: MATLAB は使いこなせないと後になると大変ですか?
- Q: MATLAB は使いなれていないと授業はきびしいのか。
- A: 使いこなせなくても大丈夫です。多くの場合、mファイル(来週説明します)の template を渡すので、そこに記載されているパラメータを変更してもらいます。むしろ、パラメータをどう調整すべきか?を考えてもらうことが重要です。
- Q: レポートおよびテストは日本語か英語か
- A: mini report、mini exam は、課題は英語で書かれていますが、日本語で回答してOKです。final report も日本語で書いてもらってOKです(もちろん、英語でも良いです)。
- Q: ブロック線図を左から右に描いて欲しい。
- A: 式との対応が良いので、右から左に描いています。たとえば、定数行列(Mとします)は入出力システムの特別な場合ですが、対応 y = M x をブロック線図で表したとき(ただし、x, y はそれぞれ入力、出力ベクトルとします)、ブロック線図を左から右に描くと、図では左側が x, 右側が y となってしまい、式と並べたときの対応が良くありません(左右が逆になってしまう。まあ、それだけの理由ですが)。
[lecture #2] 2019.9.12 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 &ref(): File not found: "ex0912_1.m" at page "授業/制御工学特論2020"; &ref(): File not found: "mod0912_1.mdl" at page "授業/制御工学特論2020";
- 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 &ref(): File not found: "ex0912_2.m" at page "授業/制御工学特論2020"; &ref(): File not found: "mod0912_2.mdl" at page "授業/制御工学特論2020";
- Gain Margin(GM); Phase Margin(PM)
%-- 2019/09/12 13:04 --%
a = 1
t = [1 2 3]
u = [4; 5; 6]
t'
who
b = u
who
ex0912_1
P
P.num
P.num{:}
P.den{:}
ex0912_2
#ref(): File not found: "2019.09.12-1.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.09.12-2.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.09.12-3.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.09.12-4.jpg" at page "授業/制御工学特論2020"
[lecture #3] 2019.9.19 review of classical and modern control theory (3/3)†
- LQR problem
- controllability
- cost function J >= 0
- (semi)-positive definiteness
- solution of LQR problem
- example &ref(): File not found: "ex0919_1.m" at page "授業/制御工学特論2020"; &ref(): File not found: "mod0919_1.mdl" at page "授業/制御工学特論2020";
- ARE and quadratic equation
%-- 2019/09/19 13:16 --%
ex0919_1
A
B
P
A
A'*P+P*A+Q-P*B*inv(R)*B'*P
P
Q
R
J
plot(t, J)
Jmin
#ref(): File not found: "2019.09.19-1.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.09.19-2.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.09.19-3.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.09.19-4.jpg" at page "授業/制御工学特論2020"
- Q: --- 一つ、質問かどうか判断できないものがあり、質問の場合はまた聞いてください。---
- Q: recommend text books for review ?
- A: the followings are only for example,
- for the classical control theory: @book{BCKuo:Book,
author = "Benjamin C. Kuo",
title = "Automatic Control Systems",
edition = "7",
publisher = "Prentice Hall",
year = "1995"
}
- for the modern control theory:
@book{Noton:Book,
author = "Maxwell Noton",
title = "Modern Control Engineering",
publisher = "Pergamon Press Inc.",
year = "1972"
}
[lecture #4] 2019.9.26 relation between LQR and H infinity control problem (1/2)†
- GOAL: to learn difference in concepts between LQR problem and H infinity control problem
- a simple example relating LQR and H infinity control problems
- For given plant G
\[
G = \left[\begin{array}{c|c:c} a & 1 & b \\ \hline \sqrt{q} & 0 & 0 \\ 0 & 0 & \sqrt{r} \\ \hdashline 1 & 0 & 0 \end{array} \right]
= \left\{ \begin{array}{l} \dot x = ax + bu + w\\ z = \left[ \begin{array}{c} \sqrt{q} x \\ \sqrt{r} u \end{array}\right] \\ x = x \end{array}\right.
\]
with zero initial state value x(0) = 0,
find a state-feedback controller
\[ u = -f x \]
such that
\begin{eqnarray}
(i) &&\quad \mbox{closed loop is stable} \\
(ii) &&\quad \mbox{minimize}
\left\{\begin{array}{l} \| z \|_2 \mbox{ for } w(t) = \delta(t) \quad \mbox{(LQR)} \\
\| T_{zw} \|_\infty \mbox{($H_\infty$ control problem)}\end{array}\right.
\end{eqnarray}
- comparison of norms in (ii) (for a = -1, b = 1, q = 1, r = 1)
\[
\begin{array}{|c||c|c|}\hline
& \mbox{LQR}: f=-1+\sqrt{2} & \quad \quad H_\infty: f=1\quad\quad \\ \hline\hline
J=\|z\|_2^2 & & \\ \hline
\|T_{zw}\|_\infty & & \\ \hline
\end{array}
\]
- an alternative description to LQR problem
- J = (L2 norm of z)^2
- impulse resp. with zero initial value = initial value resp. with zero disturbance
- definition of H infinity norm (SISO)
s = tf('s');
G1 = 1/(s+1);
bode(G1);
norm(G1, 'inf')
G2 = 1/(s^2 + 0.1*s + 1);
bode(G2);
norm(G2, 'inf')
- definition of H infinity norm (SIMO)
- solve the problem by hand
- solve the problem by tool(hinfsyn)
&ref(): File not found: "ex0926_1.m" at page "授業/制御工学特論2020";
%-- 2019/09/26 13:55 --%
s = tf('s')
G1 = 1/(s+1);
bode(G1);
norm(G1, inf)
help norm
G2 = 1/(s^2+0.1*s+1)
bode(G2)
ctrlpref
bode(G2)
grid on
norm(G2, inf)
format long e
norm(G2, inf)
#ref(): File not found: "2019.09.26-1.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.09.26-2.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.09.26-3.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.09.26-4.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.09.26-5.jpg" at page "授業/制御工学特論2020"
[lecture #5] 2019.10.03 relation between LQR and H infinity control problem (2/2)†
- complete the table in simple example
- confirm the cost function J for both controllers by simulation &ref(): File not found: "mod1003.mdl" at page "授業/制御工学特論2020";
- block diagram in the simulink model
- how to approximate impulse disturbance with a step function
- impulse disturbance resp. with zero initial condition = initial condition resp. with zero disturbance
- confirm the closed-loop H infinity norm for both controllers by simulation
- H infinity norm = L2 induced norm
- review: steady-state response; the worst-case disturbance w(t) which maximizes L2 norm of z(t) ?
- how to make the worst-case disturbance w(t)? w(t) for the simple example ?
- general state-feedback case: hinf.pdf
- includes the simple example as a special case
- LQR lqr.pdf is included as a special case in which gamma -> infinity, w(t) = 0, B2 -> B, and non-zero x(0) are considered
%-- 2019/10/03 13:20 --%
ex0926_1
K
bode(K)
sqrt(2)/2
sqrt(2-sqrt(2))
mod1003
h
h = 0.01
x0
x0 = 0
f = -1+sqrt(2)
zz
zz(end)
h
h = 0.00001
zz(end)
f = 1
zz(end)
x0
x0 = 1
f
zz(end)
f = -1+sqrt(2)
zz(end)
h
h = 100
x0
x0 = 0
zz(end)
sqrt(zz(end)/ww(end))
h
h = 10000
sqrt(zz(end)/ww(end))
sqrt(2-sqrt(2))
#ref(): File not found: "2019.10.03-1.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.10.03-2.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.10.03-3.jpg" at page "授業/制御工学特論2020"
[lecture #6] 2019.10.10 Mixed sensitivity problem 1/3†
- outline: map_v1.1_mixedsens1.pdf
- sensitivity function S and complementary sensitivity function T
- H infinity control problem (general case)
- with generalized plant G
- including the state-feedback case
- reference tracking problem
- how to translate the condition (ii) into one with H infinity norm ?
- corresponding generalized plant G ?
- introduction of weighting function for sensitivity function in (ii)
- design example &ref(): File not found: "ex1010_1.m" at page "授業/制御工学特論2020"; &ref(): File not found: "ex1010_2.m" at page "授業/制御工学特論2020";
- the small gain theorem
- proof: Nyquist stability criterion
%-- 2019/10/10 12:58 --%
ex1010_1
P
pole(P)
eig(P)
ex1010_2
K_hinf
K_hinf.a
eig(K_hinf.a)
ex1010_2
#ref(): File not found: "2019.10.10-1.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.10.10-2.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.10.10-3.jpg" at page "授業/制御工学特論2020"
- Q: スモールゲインの定理と、極配置の実部が負となることの関係はどうなっているのか。
- A: ナイキストの安定判別と開ループ系の安定性の関係についての質問と思って回答します。そうでない場合、すみませんがまた聞いてください。
開ループ系が安定な場合、ナイキストの安定判別は簡単になり、ナイキスト軌跡が(-1,0)を囲むことが閉ループ系が安定となるための必要十分条件です。一方、開ループ系が不安定な場合には、その不安定極の数に応じて、ナイキスト軌跡が(-1,0)を囲むことが閉ループ系が安定となるための必要十分条件となります(復習してみてください)。
- Q: WSの決め方はプラントの感度に依存しますか?
- A: 感度関数も相補感度関数もプラント単独ではなくコントローラにも依存するため、
「プラントの感度」は「プラントのゲイン」の意味だと思って回答します。そうでない場合はすみませんがまた聞いてください。
結論から言えば、プラントのゲインに依存します。
十分な目標値追従性能を達成したい周波数帯域でWSのゲインを大きく、逆に性能を諦めて良い周波数帯域でゲインを小さく選びますが、プラントのゲインがそもそも低い周波数帯域では十分な性能は期待できないため、プラントのゲインがそこそこある帯域(プラントの周波数帯域)でなおかつ十分な制御性能を得たい帯域でWSのゲインが大きくなるようにWSを決めることが多いです。
[lecture #7] 2019.10.17 Mixed sensitivity problem 2/3†
- outline: from point to set map_v1.1_mixedsens2.pdf
- review: the small gain theorem ... robust stability = H infinity norm condition
- normalized uncertainty Delta
- uncertainty model
- how to determine P0 and WT
- example: frequency response of plant with perturbation &ref(): File not found: "ex1017_1.m" at page "授業/制御工学特論2020";
- frequency response based procedure for P0 and WT &ref(): File not found: "ex1017_2.m" at page "授業/制御工学特論2020";
- robust stabilization problem and equivalent problem
- design example and simulation &ref(): File not found: "ex1017_3.m" at page "授業/制御工学特論2020"; &ref(): File not found: "mod1017.mdl" at page "授業/制御工学特論2020";
%-- 2019/10/17 13:00 --%
ex1017_1
ex1017_2
ex1017_1
ex1017_2
ex1017_3
mod1017
c
c = 0.8
c = 2
#ref(): File not found: "2019.10.17-1.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.10.17-2.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.10.17-3.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.10.17-4.jpg" at page "授業/制御工学特論2020"
[lecture #8] 2019.10.24 Mixed sensitivity problem 3/3†
- review: map_v1.1_mixedsens2.pdf (1)robust stabilization and (2)performance optimization
- outline:
- how to design controllers considering both conditions in (1) and (2)
- gap between NP(nominal performance) and RP(robust performance)
- mixed sensitivity problem => (1) and (2) : proof
- generalized plant for mixed senstivity problem
- design example &ref(): File not found: "ex1024_1.m" at page "授業/制御工学特論2020"; minimize gamma by hand
- gamma iteration by bisection method &ref(): File not found: "ex1024_2.m" at page "授業/制御工学特論2020";
- intro. to RP(problem of NP) &ref(): File not found: "ex1024_3.m" at page "授業/制御工学特論2020";
%-- 2019/10/24 13:00 --%
ex1024_1
K
ex1024_1
ex1024_2
ex1024_3
#ref(): File not found: "2019.10.24-1.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.10.24-2.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.10.24-3.jpg" at page "授業/制御工学特論2020"
[lecture #9] 2019.10.31 robust performance problem 1/3†
- schedule2019 mini report #1; exam #1; lec. on Nov. 7th will be canceled
- review
- mixed sensitivity problem : N.P. but not R.P.
- robust performance problem (R.P.) c.f. the last whiteboard, but can not be solved by tool
- the small gain theorem
- an equivalent robust stability (R.S.) problem to R.P.
- (i) introduction of a fictitious uncertainty Delta_p (for performance)
- (ii) for 2-by-2 uncertainty block Delta hat which includes Delta and Delta_p
- definition of H infinity norm for general case (MIMO)
- proof of ||Delta hat||_inf <= 1
- design example: &ref(): File not found: "ex1031_1.m" at page "授業/制御工学特論2020";
- robust performance is achieved but large gap
- non structured uncertainty is considered ... the design problem is too conservative
%-- 2019/10/31 14:07 --%
M = [1, 1i/sqrt(2); 1, -1i/sqrt(2)]
M'
eig(M'*M)
svd(M)
ex1031
ex1031_1
#ref(): File not found: "2019.10.31-1.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.10.31-2.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.10.31-3.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.10.31-4.jpg" at page "授業/制御工学特論2020"
[lecture --] 2019.11.7 canceled†
[lecture #10] 2019.11.14 Robust performance problem (2/3)†
- return of mini report #1
- SVD: singular value decomposition
- definition
- meaning of the largest singular value (a property and proof)
- 2-norm of vectors (Euclidean norm)
- SVD for 2-by-2 real matrix &ref(): File not found: "ex1114_1.m" at page "授業/制御工学特論2020";
%-- 2019/11/14 13:17 --%
M = [1/sqrt(2), 1i; 1/sqrt(2), -1i]
[U, Sigma, V] = svd(M)
svd(M)
[U, Sigma, V] = svd(M)
U'*U
V'*V
U*Sigma*V'
U*Sigma*V'-M
ex1114_1
#ref(): File not found: "2019.11.14-1.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.11.14-2.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.11.14-3.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.11.14-4.jpg" at page "授業/制御工学特論2020"
[lecture #11] 2019.11.21 Robust performance problem (3/3)†
- review: R.S. prob. for Delta hat and Delta tilde
- scaled H infinity control problem
- relation between three problems
- how to determine structure of scaling matrix
- design example &ref(): File not found: "ex1121_1.m" at page "授業/制御工学特論2020";
ex1031_1
gam2 = gam_opt
K2 = K_opt;
ex1121_1
gam_opt
mini report #2 report2.pdf
- mini exam #1 (10 min.)
%-- 2019/11/21 13:50 --%
ex1031_1
pwd
ex1031_1
gam2 = gam_opt
K2 = K_opt
gam2 = gam_opt
ex1121_1
gam_opt
d_opt
#ref(): File not found: "2019.11.21-1.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.11.21-2.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.11.21-3.jpg" at page "授業/制御工学特論2020"
[lecture #12] 2019.11.28 Robust performance problem (3/3) (cont.), Control system design for practical system (1/3)†
- return of mini exam #1
- review of scaling &ref(): File not found: "ex1128_1.m" at page "授業/制御工学特論2020";
- mini report #2 report2.pdf
- introduction of a practical system: Speed control of two inertia system with servo motor
%-- 2019/11/28 12:59 --%
ex1128_1
gam2
gam3
format long e
norm(M3_d, 'inf')
ex1128_2
#ref(): File not found: "2019.11.28-1.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.11.28-2.jpg" at page "授業/制御工学特論2020"
#ref(): File not found: "2019.11.28-3.jpg" at page "授業/制御工学特論2020"
[lecture #13] 2019.12.5 Control system design for practical system (2/3)†
- return of mini report #2; ... You will have a mini exam #2 related to this report next week
- review of the experimental system
- closed-loop system of 2-by-2 plant G and controller K
- closed-loop gain is desired to be minimized for constant speed operation
- frequency response data of G can be used; how to handle modeling error of G ?
- design example (modeling error for Gyu is only considered for simplicity)
- frequency response experiment data
servo1.dat
servo2.dat
- determination of plant model(nominal plant and additive uncertainty weight)
nominal.m
weight.m
- configuration of generalized plant and controller design by scaled H infinity control problem using one-dimensional search on the scaling d
cont.m
- comparison of closed-loop gain characteristics with and without control
compare.m
- result of control experiment
result.dat
perf.m
- final report and remote experimental system
- design your controller(s) so that the system performance is improved compared with the design example
- Draw the following figures and explain the difference between two control systems (your controller and the design example):
- bode diagram of controllers
- gain characteristic of closed-loop system from w to z
- time response of control experiment
- Why is the performance of your system improved(or unfortunately deteriorated)?
- due date: 6th(Mon) 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 controller.dat, controller_order.dat, and controller.mat at this page:participant list2019(download is also possible) not later than 25th(Wed) Dec
- the system will be started until next lecture
- You can send up to 10 controllers
- control experimental results will be uploaded here
- freqresp ... frequency response will be measured and uploaded everyday
- how to improve the performance ?
- accuracy of the nominal(physical) model
- weighting for robust stability
- specifications of the experimental system
- program sources for frequency response experiment
- program sources for control experiment
- configuration of control experiment
- disturbance signal w is specified as described in hinf.h and hinf_module.c:
w = 0; // disturbance torque for driven motor
if((t > 2)&&(t < 3)){
w = RATED_TORQ * -0.15;
}
if((t > 4)&&(t < 5)){
w = RATED_TORQ * -0.1 * sin(2*M_PI*5.0 * (t-4.0));
}
da_conv(torq_volt_conv_1(w), 1);
- control signal u is limited as specified in hinf.h and hinf_module.c:
#define U_MAX (RATED_TORQ / 3.0)
if(u > U_MAX) u = U_MAX;
if(u < -U_MAX) u = -U_MAX;
u is generated by PI control for t < 1(s). Your designed controller is started at t = 1(s).
- calculation of rotational speed
%-- 2019/12/05 13:03 --%
pwd
nominal
weight
cont
compare
ctrlpref
compare
perf
- Q: 実機パラメータのイナーシャはどうやって試験をして導出しているか。
- A: 周波数応答実験の結果に物理モデルが近くなるように調整しました。
- Q: C_S, C_L はダンパなのか。C_S はどこの部分のダンパというかたちになるのか。
- A: C_S は軸の捩りに伴う減衰係数です(これが0の場合、二つの慣性の捩り振動は減衰することなく永久に持続する)。C_L は従動側慣性の回転に伴う減衰係数です(これが0の場合、二慣性系全体は与えられた初速に応じて永久に回転し続ける)。
#ref(): File not found: "2019.12.05-1.jpg" at page "授業/制御工学特論2020"
[lecture #14] 2019.12.12 Control system design for practical system (3/3)†
- review & supplemental explanations
- final report
- control objective is to suppress speed fluctuation of the driven-side motor not the drive-side motor (a large vibration at the drive-side motor is allowed)
- unstable controller is admitted
- no strict control objective is given ( there is a freedom to define what is good performance; a frequency dependent weighting function can be introduced to evaluate the performance )
- c2d() is used to discretize the resultant continuous-time controller
- web based remote experiment system
- now you can login after registration
- room temperature is displayed and stored in temp.txt (Bosch Sensortec BME280 is used)
- preparation of your own controller(s) by using the remote experiment system
- mini exam #2 (14:00〜)
#ref(): File not found: "2019.12.12-1.jpg" at page "授業/制御工学特論2020"
[lecture #15] 2019.12.19 Control system design for practical system (cont.)†
- return of mini exam #2
- preparation of your own controller(s)
- use design example #3 for comparison with your design
- discuss relationship between the required figures (a), (b), and (c)
- driving and driven torque are set to zero when driven-motor speed z or driving-motor speed y exceeds a limit as in hinf.h:
#define SPEED_MAX 60.0 // driving torque becomes zero when rotational speed is out of range from -60.0 rad/s to 60.0 rad/s in order to avoid shutting down the driving motor by the maximum speed excess alarm (2018.12.19)
and hinf_module.c:
int flag_speed_excess = 0; // 2018.12.19
if(flag_speed_excess == 1) w = 0; // 2018.12.20
da_conv(torq_volt_conv_1(w), 1);
if((fabs(z) > SPEED_MAX) || (fabs(y) > SPEED_MAX)) flag_speed_excess = 1; // 2018.12.20 further modified after today's lecture
if(flag_speed_excess == 1) u = 0; // 2018.12.19
#ifndef NO_CONTROL
da_conv(torq_volt_conv_0(u), 0);
#endif
- questionnaires
- to university
- for web-based experimental environment
%-- 2019/12/19 13:31 --%
nominal
weight
cont
compare
perf
nominal
weight
cont
compare
perf
weight
#ref(): File not found: "2019.12.19-1.jpg" at page "授業/制御工学特論2020"