授業
Advanced Automation 2023†
latest lecture
[lecture #1] 2023.9.7 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
- ...
%-- 2023/09/07 13:21 --%
s = tf('s')
P = 1/(s-1)
pole(P)
impulse(P)
pole(P)
K = 2
help step
Tyr = K/(s-1+K)
step(Tyr)
[lecture #2] 2023.9.14 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 ex0914_1.m mod0914_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 ex0914_2.m mod0914_2.mdl
- Gain Margin(GM); Phase Margin(PM)
%-- 2023/09/14 13:06 --%
a = 1
u=[1;2;3]
ex0914_1.m
ex0914_1
sqrt(k/m)
sqrt(k/m)/(2*pi)
[lecture #3] 2023.9.21 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 ex0921_1.m mod0921_1.mdl
- ARE and quadratic equation
%-- 2023/09/21 13:42 --%
ex0921_1
A
eig(A)
Uc
B
A*B
ex0921_1
help are
P
eig(P)
G
F
F = [0, 0]
J
ex0921_1
F
J
J(end)
Jmin
[lecture #4] 2023.9.28 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)
ex0928_1.m
%-- 2023/09/28 13:41 --%
s = tf('s');
G1 = 1/(s+1);
bode(G1);
norm(G1, 'inf')
format e
format long e
norm(G1, 'inf')
G3 = s/(s+1);
bode(G3);
norm(G3, 'inf')
G2 = 1/(s^2 + 0.1*s + 1);
bode(G2);
norm(G2, 'inf')
grid
ctrlpref
bode(G2);
grid
[lecture #5] 2023.10.05 relation between LQR and H infinity control problem (2/2)†
- cont.
- solve the problem by hand
- solve the problem by tool(hinfsyn) ex0928_1.m
- complete the table in simple example
- confirm the cost function J for both controllers by simulation mod1005.mdl
- block diagram in the simulink model
- how to approximate impulse disturbance with a step function
- (unit) impulse disturbance resp. with zero initial condition = (unit) 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 for sinusoidal input signal; how to choose the frequency such that the output amplitude is maximized ?
- the worst-case disturbance 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
%-- 2023/10/05 13:06 --%
ex0928_1
K
help sigma
clp0
norm(clp, 'inf')
norm(clp0, 'inf')
sqrt(2-sqrt(2))
mod1005
f = -1+sqrt(2)
h = 0.01
x0 = 0
plot(t, x)
zz
zz(end)
x0
x0 = 1
zz
f
f = 1
zz
x0 = 0
zz
h
x0
h = 100
f
zz
sqrt(zz(end)/ww(end))
f = -1+sqrt(2)
sqrt(zz(end)/ww(end))
[lecture #6] 2023.10.12 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 ex1012_1.m ex1012_2.m
- the small gain theorem
- proof: Nyquist stability criterion
%-- 2023/10/12 13:43 --%
ex1012_1
P
eig(P)
ctrlpref
ex1012_1
ex1012_2
K_hinf
eig(K_hinf)
[lecture #7] 2023.10.19 Mixed sensitivity problem 2/3†
- outline: from point to set map_v1.1_mixedsens2.pdf
- the small gain theorem ... robust stability = H infinity norm condition
- normalized uncertainty Delta
- uncertainty model
- simple example of plant set
- given plant P tilde
- frequency response of plant with perturbation ex1019_1.m
- how to determine P0 and WT ?
- frequency response based procedure for P0 and WT ex1019_2.m
- robust stabilization problem and equivalent problem
%-- 2023/10/19 13:26 --%
ex1019_1
ex1019_3
ex1019_2
ex1019_3
mod1019
c
c = 0.8
c = 2
c = 1.5
[lecture #8] 2023.10.26 Mixed sensitivity problem 3/3†
- review: map_v1.1_mixedsens2.pdf (1)performance optimization and (2)robust stabilization
- 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 ex1026_1.m minimize gamma by hand
- gamma iteration by bisection method ex1026_2.m tradeoff between model robust stability and performance
- intro. to RP: weak point of mixed sensitivity problem(problem of NP) ex1026_3.m
%-- 2023/10/26 13:36 --%
pwd
ex1026_1
K
ex1026_1
ex1026_2
gam
ex1026_2
gam
ex1026_2
gam
ex1026_2
gam
ex1026_3
ex1026_2
ex1026_3
[lecture #9] 2023.11.2 robust performance problem 1/3†
- review
- mixed sensitivity problem : N.P. but not R.P.
- robust performance problem (R.P.), but can not be solved by tool
- 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: ex1102_1.m
- robust performance is achieved but large gap
- non structured uncertainty is considered ... the design problem is too conservative
%-- 2023/11/02 13:54 --%
M = [1, 1; 1i/sqrt(2), -1i/sqrt(2)]
M'
eig(M'*M)
svd(M)
pwd
ex1102_1
[lecture #10] 2023.11.9 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 ex1109_1.m
%-- 2023/11/09 13:26 --%
M = [1, 1; 1i/sqrt(2), -1i/sqrt(2)]
[U, S, V] = svd(M)
U'*U
format long e
U'*U
U*U'
V'*V
U*S*V'
U*S*V'- M
format short
U*S*V'- M
ex1109_1
rand(1,1)
rand(1,3)
[lecture #11] 2023.11.16 Robust performance problem (3/3)†
- review : 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 ex1116_1.m
ex1102_1
gam2 = gam_opt
ex1116_1
gam_opt
- mini exam #1 (10 min.)
%-- 2023/11/16 13:03 --%
ex1102_1
gam_opt
format long
gam_opt
gam2 = gam_opt
ex1116_1
gam_opt
gam2
opts = hinfsynOptions
opts.AutoScale = 'off'
ex1116_1
[lecture #12] 2023.11.23 Robust performance problem (3/3) (cont.), Control system design for practical system (1/3)†
- return of mini exam #1
- review of scaling ex1123_1.m
- mini report #2 report2.pdf
- introduction of a practical system: Speed control of two inertia system with servo motors
- experimental setup
setup_fixed.pdf
photo.jpg
- objective of control system = reference speed tracking control problem: to drive the drive-side servomotor by generating proper driving signal u (T_M) using drive-side speed y (\omega_M) such that y tracks the reference speed command r
- frequency response experiment and physical model of speed control system
servo1.dat servo2.dat
- room 374 @ Dept. Mech. Bldg. 2
%-- 2023/11/23 13:09 --%
ex1123_1
format long
eig(clp2.a)
ex1123_2
[lecture #13] 2023.11.30 [CANCELLED]†
Due to a hardware problem in our experimental environment, today's lecture is cancelled. I'm sorry for the inconvenience.
Please check the modified schedule at schedule2023
[lecture #13] 2023.12.7 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
- the same robust performance problem setup given in lecture can be used to design controllers
- design example
- frequency response experiment data
servo1.dat
- determination of plant model(nominal plant and multiplicative uncertainty weight)
nominal.m
weight.m
weight_2.m ... loose weight was further used to prevent high-frequency oscillation
- configuration of generalized plant and controller design by scaled H infinity control problem using one-dimensional search on the scaling d
cont.m
cont_2.m ... for loose weight design
- result of control experiment and evaluation
result.dat
result_2.dat; ... for loose weight design
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 sensitivity function
- time response of control experiment
- Why is the performance of your system improved(or unfortunately deteriorated)?
- due date: 4th(Thu) Jan 17:00
- submit your report(pdf file) 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 list2023(download is also possible) not later than 26th(Tue) 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 ?
- performance and sensitivity gain
- accuracy of the nominal(physical) model, weighting for robust stability
- caution: measurement noise in high frequency range due to rotational speed calculation
- specifications of the experimental system
- program sources for frequency response experiment
- program sources for control experiment
- configuration of control experiment
- reference signal r is specified as described in hinf.h and hinf_module.c:
r = (double)COM_ROT_SPEED;;
if(t > 2){
t1 = t - 2;
t1 -= ((int)(t1 / REF_PERIOD))*REF_PERIOD;
t1 /= 0.2;
if(t1 < 1){
r += REF_AMP * t1;
}else if(t1 < 4){
r += REF_AMP;
}else if(t1 < 6){
r += REF_AMP * (5 - t1);
}else if(t1 < 9){
r -= REF_AMP;
}else if(t1 < 10){
r -= REF_AMP * (10 - t1);
}
}
- 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
%-- 2023/12/07 13:33 --%
pwd
cd ..
nominal
weight
cont
perf
axis([9.9, 10, -10, 50])
axis([9.99, 10, -10, 50])
weight_2
pwd
weight_2
cont_2
perf
cd ..
perf
[lecture #14] 2023.12.14 Control system design for practical system (3/3)†
- web based remote experiment system
- usage; how to upload controller's
- powered by prof. Takebe, National Institute of Technology, Nagaoka College
- supplemental explanations
- room temperature is displayed and stored in temp.txt (Bosch Sensortec BME280 is used)
- 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)
- no strict control objective is given ( there is a freedom to define what is good performance )
- preparation of your own controller(s) by using the remote experiment system
- mini exam #2
%-- 2023/12/14 13:50 --%
load result.dat
plot(result(:,1), result(:,2))
axis([9, 10, 10, 25])
load result2.dat
plot(result(:,1), result(:,2))
plot(result2(:,1), result2(:,2))
axis([9, 10, -10, 50])
axis([9.9, 10, -10, 50])
plot(result2(:,1), result2(:,2), '.-')
axis([9.9, 10, -10, 50])
nominal
weight
weight2
weight_2
[lecture #15] 2023.12.21 Control system design for practical system (cont.)†
return of mini exam #2
- preparation of your own controller(s) by using the remote experiment system