Advanced Automation†
[lecture #1] 2013.9.5 outline of the lecture, review of classical and modern control theory (1/3)†
- outline of this lecture
- syllabus
- map
- evaluation
- mini report #1 ... 10%
- mini exam #1 ... 10%
- mini report #2 ... 10%
- mini exam #2 ... 10%
- final report ... 60%
... missed (derivation of G(s) = 1/(ms^2+cs+k) by Laplace transformation from given equation of motion)
[lecture #2] 2013.9.12 CACSD introduction with review of classical and modern control theory (2/3)†
- introduction of Matlab and Simulink
- How to define open-loop system
- TF
s = tf('s');
G1 = 1 / (s+1);
G2 = 1 / (s^2 + 0.1*s + 1);
- SSR
A = [-0.3, -1; 1, 0];
B = [1; 0];
C = [0, 1];
D = 0;
G3 = ss(A, B, C, D);
- Bode plot
bode(G1, 'b-', G2, 'g', G3, 'r--');
grid on;
- open-loop stability can be checked by
- poles of TF
roots(G2.den{:})
- eigenvalues of A-matrix in SSR
eig(G3.a)
- also by simulation
- closed-loop stability
L = 1/(s^3+1.5*s^2+1.5*s+1); % example of open-loop system
roots(L.den{:}) % confirm the open-loop system is stable
- graphical test by Nyquist stability criterion and Bode plot with GM(gain margin) and PM(phase margin)
nyquist(L)
bode(L)
- numerical test by closed-loop system
clp_den = L.den{:} + L.num{:};
roots(clp_den)
- simulation
a = 1
ver
t = [1 2 3]
pwd
ls
foo
pwd
bar
s = tf('s')
G1 = 1 / (s+1);
G2 = 1 / (s^2 + 0.1*s + 1);
G1
G2
A = [-0.3, -1; 1, 0];
B = [1; 0];
C = [0, 1];
D = 0;
G3 = ss(A, B, C, D);
G3
bode(G1, 'b-', G2, 'g', G3, 'r--');
grid on;
G2
G2.den
G2.den{:}
roots(G2.den{:})
G3.a
eig(G3.a)
mod0912_1
L = 1/(s^3+1.5*s^2+1.5*s+1); % example of open-loop system
roots(L.den{:}) % confirm the open-loop system is stable
nyquist(L)
nyquist(L*1.25)
nyquist(L)
clp_den = L.den{:} + L.num{:};
roots(clp_den)
ex0912_2
mod0912_2
L = 1.5*L
[lecture #3] 2013.9.19 CACSD introduction with review of classical and modern control theory (3/3)†
- LQR problem
- ARE and quadratic equation
- (semi)-positive definiteness
- example
mod0919
A = [1, 2, 3; 4, 5, 6; 7, 8, 9]
eig(A)
B = [1; 1; 1]
Uc = ctrb(A, B)
det(Uc)
B = [1; 0; 0]
Uc = ctrb(A, B)
det(Uc)
help are
P = are(A, B/R*B', Q)
Q = eye(3)
R = 1
P = are(A, B/R*B', Q)
P = are(A, B*inv(R)*B', Q)
P - P'
eig(P)
x(0)
x0 = [1; 1; 1]
x0'*P*x0
F = R\B'*P
C = eye(3)
D = [0; 0; 0]
J
[lecture #4] 2013.9.26 Intro. to robust control theory (H infinity control theory) 1/3†
- Typical design problems
- robust stabilization
- performance optimization
- robust performance problem (robust stability and performance optimization are simultaneously considered)
- H infinity norm
- H infinity control problem
- definition
- application example : reference tracking problem
- relation to the sensitivity function S(s) (S(s) -> 0 is desired but impossible)
- given control system
- controller design with H infinity control theory
s = tf('s')
G = 1/(s+1)
norm(G, 'inf')
G = s/(s+1)
norm(G, 'inf')
G = 1/(s^2+0.1*s+1)
bodemag(G)
norm(G, 'inf')
bodemag(G, 'b', ss(10.0125), 'r--')
G = 1/(s^2+0.5*s+1)
norm(G, 'inf')
bodemag(G, 'b', ss(2.0656), 'r--')
ex0926_1
ex0926_2
eig(K_hinf)
[lecture #5] 2013.10.3 Intro. to Robust Control Theory (H infinity control theory) 2/3 cancelled†
[lecture #5] 2013.10.10 Intro. to Robust Control Theory (H infinity control theory) 2/3†
- Typical design problems
- robust stabilization
- performance optimization
- robust performance problem (robust stability and performance optimization are simultaneously considered)
- connection between [H infinity control problem] and [robust stabilization problem]
- small gain theorem
- normalized uncertainty \Delta
- sketch proof ... Nyquist stability criterion
- How to design robust stabilizing controller with H infinity control problem ?
- practical example : unstable plant with perturbation
- how to use uncertainty model (multiplicative uncertainty model)
- how to set generalized plant G ?
- simulation
ex1010_1
ex1010_2
WT]
WT
P0
P0_jw
ex1010_3
mod1010
[lecture #6] 2013.10.17 Intro. to robust control theory (H infinity control theory) (3/3)†
- review
- robust stabilization ... (1) ||WT T||_inf < 1 (for multiplicative uncertainty)
- performance optimization ... (2) ||WS S||_inf < gamma -> min
- mixed sensitivity problem ... simultaneous consideration of stability and performance
- a sufficient condition for (1) and (2) ... (*) property of maximum singular value
- definition of singular value
- mini report #1
- meaning of singular value ... singular value decomposition (SVD)
- proof of (*)
- example
j
A = [1, j; 0, 2]
A'
eig(A'*A)
sqrt(ans)
3+sqrt(5)
sqrt(3+sqrt(5))
sqrt(3-sqrt(5))
A
[U,S,V] = svd(A)
U'*U
U*U'
help svd
ex1017
... sorry for missing to take photo ... mini report #1: write by hand; submit at the beginning of the next lecture; You will have a mini exam #1 related to this report on 31st Oct.
[lecture #7] 2013.10.24 review of SVD, motivation of robust performance (robust performance problem 1/3), state space representation of generalized plant†
- review of SVD
- motivation of robust performance
... SSR of generalized plant
ex1024_1
ex1024_2
ex1024_3
ex1024_4
[lecture #8] 2013.10.31 Robust performance problem (2/3)†
- review of mini report #1
- review of the limitation of mixed sensitivity problem
- a solution of conservative design
- example based on the one given in the last lecture
- a check of the conservativeness
- mini exam #1
%-- 10/31/2013 1:02 PM --%
A = [j, 0; -j, 0]
A = [j, 0; -j, 1]
svd(A)
sqrt((3+sqrt(5))/2)
sqrt((3-sqrt(5))/2)
ex1024_2
ex1024_3
ex1024_4
ex1031_1
[lecture #9] 2013.11.14 Robust performance problem (3/3)†
- map
- review of #8
- Q1 and Q2
- ex1031_2.m
- scaled H infinity control problem
- mini report #2
ex1024_2
ex1024_3
ex1024_4
ex1024_5
ex1031_1
gam
ex1024_3
gam
ex1031_2
help lft
ex1031_2
ex1031_1
ex1031_2
[lecture #10] 2013.11.21 Robust performance problem (1/3) (cont.)†
- effect of scaling
- mini report #2
- practical design procedure
- derivation of generalized plant in SSR for mixed sensitivity problem
ex1024_2
ex1024_3
gam
ex1024_4
ex1031_1
gam
ex1031_2
ex1114_1
gam
[lecture #11] 2013.11.28 Robust stabilization of inverted pendulum†
- plant model for perturbed unstable poles
- LFT(Linear Fractional Transformation)
- a simple example
- inverted pendulum (pendan.m)
- design example
- references:
#################### the remaining page is under construction ###################
[lecture #13] 2012.12.6 Robust control design for a practical system (1/3) : Active vibration control of a pendulum using linear motor (loudspeaker) some mistakes fixed on 2012.12.13 [#w0e25ce2]†
- linear motor : FOSTEX FW-208N (corn, edge, and damper are partially removed to decrease damping)
- PSD(Position Sensitive Detector) : Hamamatsu Photonics Corp. C3683-01
- Potentio meter : Midori Precisions Model QP-2H
- PC : Dell Dimension 2400 (Intel Celeron 2.4G, Linux 2.4.22, RTlinux-3.2pre3)
- D/A : CONTEC DA12-4 (PCI) 12bit, 10us
- A/D : CONTEC AD12-16 (PCI) 12bit, 10us
- He-Ne Laser : NEC GLG5230
- Objective for control system design
- to attenuate vibration due to pendulum oscillation
- robust stability against modelling error due to non-linear dinamics etc.
- Modelling
- frequency response experiment results:
#ref(): File not found: "frdata_amp005.dat" at page "授業/制御工学特論2013"
#ref(): File not found: "frdata_amp010.dat" at page "授業/制御工学特論2013"
#ref(): File not found: "frdata_amp020.dat" at page "授業/制御工学特論2013"
due to some change on experimental apparatus, please use following data as frequency response experimental results (2012.12.13)
#ref(): File not found: "frdata_amp005_1st.dat" at page "授業/制御工学特論2013"
#ref(): File not found: "frdata_amp010_1st.dat" at page "授業/制御工学特論2013"
#ref(): File not found: "frdata_amp020_1st.dat" at page "授業/制御工学特論2013"
#ref(): File not found: "frdata_amp005_2nd.dat" at page "授業/制御工学特論2013"
#ref(): File not found: "frdata_amp005_3rd.dat" at page "授業/制御工学特論2013"
#ref(): File not found: "frdata_amp005_4th.dat" at page "授業/制御工学特論2013"
- example of m-files (the following files have been replaced by modified ones (2012.12.13)
#ref(): File not found: "nominal.m" at page "授業/制御工学特論2013"
#ref(): File not found: "weight.m" at page "授業/制御工学特論2013"
>> freqresp
>> nominal
>> weight
- Controller design (robust performance problem)
- example of m-file
#ref(): File not found: "cont.m" at page "授業/制御工学特論2013"
>> cont
- design example
#ref(): File not found: "cont.dat" at page "授業/制御工学特論2013"
#ref(): File not found: "cont_order.dat" at page "授業/制御工学特論2013"
#ref(): File not found: "cont.mat" at page "授業/制御工学特論2013"
#ref(): File not found: "result.dat" at page "授業/制御工学特論2013"
#ref(): File not found: "result_no.dat" at page "授業/制御工学特論2013"
- example of m-file to compare designed controllers
- design your controller(s) so that the system performance is improved compared with the given 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 closed-loop systems
- time response of control experiment
- Why is the performance of your system improved(or unfortunately decreased)?
- due date: 27th(Thu) Dec 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
21th(Fri) 25th(Tue) Dec
- program sources for frequency response experiment
- format of frdata.dat file
- 1st column: frequency (Hz)
- 2nd column: gain
- 3rd column: phase (deg)
- 4th column: gain
- 5th column: phase (deg)
- program sources for control experiment
- format of result.dat file
- 1st column: time (s)
- 2nd column: PSD output (V)
- 3rd column: Potentio meter output (V)
- 4th column: control input (V)
- 5th column: input disturbance (V)
- configuration of control experiment
freqresp
nominal
help n4sid
load result.dat
load result_no.dat
plot(result(:,1),result(:,3),'r',result_no(:,1),result_no(:,2),'g')
plot(result(:,1),result(:,3),'r',result_no(:,1),result_no(:,3),'g')
#ref(): File not found: "2012.12.06-1.jpg" at page "授業/制御工学特論2013"
#ref(): File not found: "2012.12.06-2.jpg" at page "授業/制御工学特論2013"
... please use the potentio meter output as the measured output instead the PSD output (2012.12.13)
#ref(): File not found: "2012.12.06-3.jpg" at page "授業/制御工学特論2013"
#ref(): File not found: "2012.12.06-4.jpg" at page "授業/制御工学特論2013"
[lecture #14] 2012.12.13 Robust control design for a practical system (2/3)†
IMPOTANT:due to some change on experimental apparatus, please use the potentio meter output as the measured output instead of the PSD output. Moreover, some files have been re-uploaded due to this change. See previous links.
- explanation of design example (cont. from the previous lecture)
- preparation of your own controller(s)
%-- 12/13/2012 12:59 PM --%
freqresp
pwd
freqresp
nominal
P0
weight
cont
compare
load result.dat
plot(result(:,1),result(:,3));
load result_no.dat
plot(result_no(:,1),result_no(:,3),'b',result(:,1),result(:,3),'r');
plot(result_no(:,1),result_no(:,2),'b',result(:,1),result(:,2),'r');
plot(result_no(:,1),result_no(:,4),'b',result(:,1),result(:,4),'r');
#ref(): File not found: "2012.12.13-1.jpg" at page "授業/制御工学特論2013"
[lecture #15] 2012.12.20 Robust control design for a practical system (3/3)†
- preparation of your own controller(s)
#ref(): File not found: "load_frdata.m" at page "授業/制御工学特論2013"
participant list2012
related links†