授業
Advanced Automation 2021†
[lecture #1] 2021.9.2 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
- ...
%-- 21/09/02 13:43 --%
s = tf('s')
P = 1/(s-1)
pole(P)
impulse(P)
k = 2
P
help step
Tyr = k/(s-1+k)
step(Tyr)
k = 10
Tyr = k/(s-1+k)
step(Tyr)
[lecture #2] 2021.9.9 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 definition)
- m file
- system representation: Transfer Function(TF) / State-Space Representation (SSR)
- example: mass-spring-damper system
- definition 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 ex0909_1.m mod0909_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 ex0909_2.m mod0909_2.mdl
- Gain Margin(GM); Phase Margin(PM)
%-- 21/09/09 13:05 --%
a = 1
a +2
a + 2
a +2
a
a + 2
ex0909_1
P
sqrt(k/m)
sqrt(k/m)/(2*pi)
ex0909_2
L
ex0909_2
ex0909_1
[lecture #3] 2021.9.23 review of classical and modern control theory (3/3)†
- LQR problem
- controllability
- cost function J >= 0
- positive (semi-)definite matrices
- solution of LQR problem
- example ex0923_1.m mod0923_1.mdl
- ARE and quadratic equation
Matlabのコマンド履歴の保存に失敗しました。すみません。
- Q: 最後の2枚目のホワイトの式と対応をとるとこがよくわからなかった
- A: □7のホワイトボードで、fに関する2次方程式とPに関するリカッチ方程式は、fとPの関係式の下で対応します。分からなければまた聞いてください。
[lecture #4] 2021.9.30 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)
ex0930_1.m
%-- 2021/09/30 12:51 --%
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')
- Q: ホワイトボード前の照明が消えており、多少見ずらかったです。
- A: ウェブカメラで白く反射しないよう消してました。次回、ウェブカメラの方を改善します。
!!! the remaining page is under construction (the contents below are from 2017) !!!
[lecture #5] 2020.10.08 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: "mod1008.mdl" at page "授業/制御工学特論2021";
- 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
%-- 20/10/08 12:36 --%
ex0924_1
mod1008
f
f = -1+sqrt(2)
x0
x0 = 0
h
h = 0.01
f
zz
zz(end)
sqrt(2)-1
h = 0.001
zz(end)
f
f = 1
zz(end)
h
x0
x0 = 1
zz(end)
x0
h
h = 0.00001
zz(end)
x0 = 0
zz(end)
format long e
zz(end)
x0
f
h
h = 10
zz(end)
sqrt(zz(end)/ww(end))
format short
sqrt(zz(end)/ww(end))
h
h = 100
sqrt(zz(end)/ww(end))
f
f = -1+sqrt(2)
sqrt(zz(end)/ww(end))
#ref(): File not found: "2020.10.08-1.jpg" at page "授業/制御工学特論2021"
#ref(): File not found: "2020.10.08-2.jpg" at page "授業/制御工学特論2021"
[lecture #6] 2020.10.15 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: "ex1015_1.m" at page "授業/制御工学特論2021"; &ref(): File not found: "ex1015_2.m" at page "授業/制御工学特論2021";
- the small gain theorem
- proof: Nyquist stability criterion
%-- 20/10/15 12:54 --%
ex1015_1
P
eig(P)
K
help step
ex1015_2
who
K_hinf
eig(K.a)
eig(K_hinf.a)
help hinfsyn
ex1015_2
P
#ref(): File not found: "2020.10.15-1.jpg" at page "授業/制御工学特論2021"
#ref(): File not found: "2020.10.15-2.jpg" at page "授業/制御工学特論2021"
#ref(): File not found: "2020.10.15-3.jpg" at page "授業/制御工学特論2021"
[lecture #7] 2020.10.22 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: "ex1022_1.m" at page "授業/制御工学特論2021";
- frequency response based procedure for P0 and WT &ref(): File not found: "ex1022_2.m" at page "授業/制御工学特論2021";
- robust stabilization problem and equivalent problem
- design example and simulation &ref(): File not found: "ex1022_3.m" at page "授業/制御工学特論2021"; &ref(): File not found: "mod1022.mdl" at page "授業/制御工学特論2021";
%-- 20/10/22 12:55 --%
ex1022_1
ex1022_2
ex1022_3
mod1022
c
c = 0.8
c = 2
#ref(): File not found: "2020.10.22-1.jpg" at page "授業/制御工学特論2021"
#ref(): File not found: "2020.10.22-2.jpg" at page "授業/制御工学特論2021"
#ref(): File not found: "2020.10.22-3.jpg" at page "授業/制御工学特論2021"
#ref(): File not found: "2020.10.22-4.jpg" at page "授業/制御工学特論2021"
[lecture #8] 2020.10.29 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: "ex1029_1.m" at page "授業/制御工学特論2021"; minimize gamma by hand
- gamma iteration by bisection method &ref(): File not found: "ex1029_2.m" at page "授業/制御工学特論2021";
- intro. to RP(problem of NP) &ref(): File not found: "ex1029_3.m" at page "授業/制御工学特論2021";
%-- 20/10/29 13:00 --%
ex1029_1
ex1029_2
ex1029_3
#ref(): File not found: "2020.10.29-1.jpg" at page "授業/制御工学特論2021"
#ref(): File not found: "2020.10.29-2.jpg" at page "授業/制御工学特論2021"
[lecture #9] 2020.11.5 robust performance problem 1/3†
- 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: "ex1105_1.m" at page "授業/制御工学特論2021";
- robust performance is achieved but large gap
- non structured uncertainty is considered ... the design problem is too conservative
%-- 20/11/05 13:59 --%
M = [1/sqrt(2); 1i; 1/sqrt(2), -1i]
M'
eig(M'*M)
svd(M)
M = [1/sqrt(2), 1i; 1/sqrt(2), -1i]
M'
M'*M
eig(M'*M)
svd(M)
max(svd(M))
ex1105_1
#ref(): File not found: "2020.11.05-1.jpg" at page "授業/制御工学特論2021"
#ref(): File not found: "2020.11.05-2.jpg" at page "授業/制御工学特論2021"
#ref(): File not found: "2020.11.05-3.jpg" at page "授業/制御工学特論2021"
[lecture #10] 2020.11.12 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: "ex1112_1.m" at page "授業/制御工学特論2021";
%-- 20/11/12 13:18 --%
M = [sqrt(2), -1i/sqrt(2); sqrt(2), 1i/sqrt(2)]
help svd
X
svd(M)
[U,Sigma,V] = svd(M);
Sigma
U
U'*U
V'*V
V*V'
ex1112_1
svd(M)
ex1112_1
help rand
ex1112_1
svd(M)
#ref(): File not found: "2020.11.12-1.jpg" at page "授業/制御工学特論2021"
#ref(): File not found: "2020.11.12-2.jpg" at page "授業/制御工学特論2021"
[lecture #11] 2020.11.19 Robust performance problem (3/3)†
- review
- H infinity norm (MIMO case)
- R.S. problems for structured and unstructured uncertainty
- scaled H infinity control problem
- relation between three problems
- how to determine structure of scaling matrix
- design example &ref(): File not found: "ex1119_1.m" at page "授業/制御工学特論2021";
ex1105_1
gam2 = gam_opt
K2 = K_opt;
ex1119_1
gam_opt
- mini exam #1 (10 min.)
%-- 20/11/19 12:51 --%
ex1105_1
#ref(): File not found: "2020.11.19-1.jpg" at page "授業/制御工学特論2021"
#ref(): File not found: "2020.11.19-2.jpg" at page "授業/制御工学特論2021"
[lecture #12] 2020.11.26 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: "ex1126_1.m" at page "授業/制御工学特論2021";
- mini report #2 report2.pdf
- introduction of a practical system: active noise control in duct
- experimental setup
#ref(): File not found: "photo1.jpg" at page "授業/制御工学特論2021"
#ref(): File not found: "photo2.jpg" at page "授業/制御工学特論2021"
- objective of control system: to drive control loudspeaker by generating proper driving signal u using reference microphone output y such that the error microphone's output z is attenuated against the disturbance input w
- frequency response experiment
#ref(): File not found: "ex1126_2.m" at page "授業/制御工学特論2021"
&ref(): File not found: "spk1.dat" at page "授業/制御工学特論2021"; &ref(): File not found: "spk2.dat" at page "授業/制御工学特論2021";
room 157 @ Dept. Mech. Bldg. 2
%-- 20/11/26 13:09 --%
ex1105_1
gam2 = gam_opt
K2 = K_opt;
ex1119_1
gam_opt
gam2
ex1126_1
gam2
gam3
close all
clear all
clf
ex1105_1; %
gam2 = gam_opt
K2 = K_opt;
ex1119_1
gam3 = gam_opt
K3 = K_opt;
Delta_tilde = [0, 1/sqrt(2); 0, -1/sqrt(2)]; % example of non-structured
uncertainty
fprintf('***1st check for singular values of Delta_tilde:');
svd(Delta_tilde) % less than or equal to 1
fprintf('***2nd check for closed-loop stability of M2(Ghat(gamma2) and K2) and
Delta_tilde:');
M2 = lft(mdiag(1,1/gam2,1)*Ghat, K2, 1, 1);
clp2 = lft(Delta_tilde, M2, 2, 2);
real(eig(clp2.a)) % closed-loop stability regardless the structure of
uncertainty block
clp2
clp2.a
max(eig(clp2.a))
fprintf('***3rd check for closed-loop stability of M3(Ghat(gamma3) and K3) and
Delta_tilde:');
M3 = lft(mdiag(1,1/gam3,1)*Ghat, K3, 1, 1);
clp3 = lft(Delta_tilde, M3, 2, 2);
real(eig(clp3.a)) % closed-loop instability by the non-structured uncertainty
block
fprintf('***4th check for closed-loop H infinity norm of M3:');
norm(M3, 'inf') % larger than 1
fprintf('***5th check for closed-loop H infinity norm of M3 with scaling:');
W = mdiag(d_opt,1);
M3_d = W\M3*W;
norm(M3_d, 'inf') % less than 1
d_opt
ex1126_2
ctrlpref
ex1126_2
346/(4*1.62)
#ref(): File not found: "2020.11.26-1.jpg" at page "授業/制御工学特論2021"
#ref(): File not found: "2020.11.26-2.jpg" at page "授業/制御工学特論2021"
#ref(): File not found: "2020.11.26-3.jpg" at page "授業/制御工学特論2021"
[lecture #13] 2020.12.3 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
- 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
spk1.dat
spk2.dat
- determination of plant model(nominal plant and additive uncertainty weight)
nominal.m
&ref(): File not found: "subspace.m" at page "授業/制御工学特論2021"; ... replacement of n4sid in System Identification Toolbox (not provided in IPC)
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(Wed) Jan 17:00
- submit your report(pdf file) by e-mail to kobayasi@nagaokaut.ac.jp
- You can use Japanese
- maximum controller order is 35
- submit your controller.dat, controller_order.dat, and controller.mat at this page:participant list2020(download is also possible) not later than 25th(Fri) Dec
- the system will be started until next lecture
- You can send up to
5 10 controllers
- control experimental results will be uploaded here
- freqresp ... frequency response will be measured and uploaded everyday
- how to improve the performance ?
- order of the nominal plant
- weighting for robust stability
- specifications of the experimental system
- experimental equipments
- loudspeakers: FOSTEX
FE-87FE87E(10W)
- A/D, D/A converters: CONTEC AD12-16(PCI), DA12-4(PCI)
- PC: Dell Dimension 1100
- OS: Linux kernel 2.4.22 / Real Time Linux 3.2-pre3
- 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:
#define AMP 0.5 // amplitude for disturbance
w = AMP * (2. * rand() / (RAND_MAX + 1.) - 1.); // uniform random number in [-AMP, AMP]
da_conv(V_OFFSET + w, 0); // D/A output to noise source
- control signal u is limited to [-4, 4] as specified in hinf.h and hinf_module.c:
#define U_MAX 3.00
if(u > U_MAX) u = U_MAX;
if(u < -U_MAX) u = -U_MAX;
u is set to 0 for t < 5(s). (controller is operated for 5 <= t < 10)
%-- 20/12/03 12:59 --%
nominal
weight
cont
compare
plot(result(:,1),result(:,2))
load result.dat;
plot(result(:,1),result(:,2))
plot(result(:,1),result(:,4))
K_opt
size(K_opt.a)
plot(result(:,1),result(:,2))
plot(result(:,1),result(:,5))
#ref(): File not found: "2020.12.03-1.jpg" at page "授業/制御工学特論2021"
[lecture #14] 2020.12.10 Control system design for practical system (3/3)†
- web based remote experiment system
- usage; how to upload controller's
- your password were sent by e-mail
- mini exam #2
- preparation of your own controller(s) by using the remote experiment system
[lecture #15] 2020.12.17 Control system design for practical system (cont.)†
- return of mini exam #2
- schedule2020 no lecture will be given next week
- review & supplemental explanations
- final report
- controller design procedure in the design example
- generating wav file filter.c (txt2wav.c is used to convert the text file to wav file)
- perf.m (sampling period is fixed to 0.2ms (don't change this in cont.m))
- c2d() is used to discretize the resultant continuous-time controller in cont.m
- You can send up to 10 controllers (don't fall into trial and error; think always about the reason)
- discuss relationship between the required figures (a), (b), and (c)
- 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 )
- web based remote experiment system
- powered by prof. Takebe, National Institute of Technology, Nagaoka College
- 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