*Advanced Automation [#zc0d6c13]

** &color(green){[lecture #1]}; 2013.9.5 outline of the lecture, review of classical and modern control theory (1/3) [#we254b0e]

- outline of this lecture
-- syllabus
-- map
#ref(map_v1.0.pdf);
-- evaluation
--- mini report #1 ... 10%
--- mini exam #1 ... 10%
--- mini report #2 ... 10%
--- mini exam #2 ... 10%
--- final report ... 60% 

- review

#ref(2013.09.05-1.jpg,left,noimg,whiteboard #1);
#ref(2013.09.05-2.jpg,left,noimg,whiteboard #2);
... missed (derivation of G(s) = 1/(ms^2+cs+k) by Laplace transformation from given equation of motion) 
#ref(2013.09.05-3.jpg,left,noimg,whiteboard #3);
#ref(2013.09.05-4.jpg,left,noimg,whiteboard #4);


** &color(green){[lecture #2]}; 2013.9.12 CACSD introduction with review of classical and modern control theory (2/3) [#wb3e6bee]

+ introduction of Matlab and Simulink
--[[Basic usage of MATLAB and Simulink>/:~kobayasi/easttimor/2009/text/text_fixed.pdf]]
used for 情報処理演習及び考究II/Consideration and Practice of Information Processing II: Advanced Course of MATLAB
//
+ How to define open-loop system
//
++ &color(black,cyan){TF}; 
 s = tf('s');
 G1 = 1 / (s+1);
 G2 = 1 / (s^2 + 0.1*s + 1);
++ &color(black,lightgreen){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
//
++ &color(black,cyan){poles of TF};
 roots(G2.den{:})
++ &color(black,lightgreen){eigenvalues of A-matrix in SSR};
 eig(G3.a)
++ also by simulation
#ref(mod0912_1.mdl);
//
+ 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 &color(black,yellow){Nyquist stability criterion}; and &color(black,yellow){Bode plot}; with &color(black,yellow){GM};(gain margin) and &color(black,yellow){PM};(phase margin)
 nyquist(L)
//
 bode(L)
++ numerical test by closed-loop system
 clp_den = L.den{:} + L.num{:};
 roots(clp_den)
++ simulation
#ref(mod0912_2.mdl);

 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 

#ref(2013.09.12-1.jpg,left,noimg,whiteboard #1);
#ref(2013.09.12-2.jpg,left,noimg,whiteboard #2);

** &color(green){[lecture #3]}; 2013.9.19 CACSD introduction with review of classical and modern control theory (3/3) [#ubfee4e1]

+ LQR problem
+ ARE and quadratic equation
#ref(J.pdf);
+ (semi)-positive definiteness
+ example
#ref(mod0919.mdl);

 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

#ref(2013.09.19-1.jpg,left,noimg,whiteboard #1);
#ref(2013.09.19-2.jpg,left,noimg,whiteboard #2);
#ref(2013.09.19-3.jpg,left,noimg,whiteboard #3);
#ref(2013.09.19-4.jpg,left,noimg,whiteboard #4);


** &color(green){[lecture #4]}; 2013.9.26 Intro. to robust control theory (H infinity control theory) 1/3 [#edb9111a]
+ Typical design problems
++ robust stabilization
++ &color(black,yellow){performance optimization};
++ robust performance problem (robust stability and performance optimization are simultaneously considered)
//
+ H infinity norm
-- definition
-- example
//
+ 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
#ref(ex0926_1.m)

--- controller design with H infinity control theory
#ref(ex0926_2.m)

 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)

#ref(2013.09.26-1.jpg,left,noimg,whiteboard #1);
#ref(2013.09.26-2.jpg,left,noimg,whiteboard #2);
#ref(2013.09.26-3.jpg,left,noimg,whiteboard #3);
#ref(2013.09.26-4.jpg,left,noimg,whiteboard #4);

** &color(green){[lecture #5]}; %% 2013.10.3 Intro. to Robust Control Theory (H infinity control theory) 2/3 %% &color(red){&size(20){cancelled};}; [#r0a1de6e]

** &color(green){[lecture #5]}; 2013.10.10 Intro. to Robust Control Theory (H infinity control theory) 2/3 [#cf0799b9]
+ Typical design problems
++ &color(black,yellow){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
#ref(ex1010_1.m)
-- how to use uncertainty model (multiplicative uncertainty model)
#ref(ex1010_2.m)
-- how to set generalized plant G ?
#ref(ex1010_3.m)
-- simulation
#ref(mod1010.mdl)

 ex1010_1
 ex1010_2
 WT]
 WT
 P0
 P0_jw
 ex1010_3
 mod1010

#ref(2013.10.10-1.jpg,left,noimg,whiteboard #1);
#ref(2013.10.10-2.jpg,left,noimg,whiteboard #2);
#ref(2013.10.10-3.jpg,left,noimg,whiteboard #3);
#ref(2013.10.10-4.jpg,left,noimg,whiteboard #4);

** &color(green){[lecture #6]}; 2013.10.17 Intro. to robust control theory (H infinity control theory) (3/3) [#kfa23202]
+ review
-- robust stabilization ... (1) ||WT T||_inf < 1 (for multiplicative uncertainty)
-- performance optimization ... (2) ||WS S||_inf < gamma -> min
-- &color(black,yellow){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
#ref(ex1017.m);
//#ref(mod1017.mdl);

 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

#ref(2013.10.17-1.jpg,left,noimg,whiteboard #1);
#ref(2013.10.17-2.jpg,left,noimg,whiteboard #2);
#ref(2013.10.17-3.jpg,left,noimg,whiteboard #3);
... sorry for missing to take photo ... &color(red){&size(20){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.};};
#ref(2013.10.17-4.jpg,left,noimg,whiteboard #4);
#ref(2013.10.17-5.jpg,left,noimg,whiteboard #5);
#ref(2013.10.17-6.jpg,left,noimg,whiteboard #6);

** &color(green){[lecture #7]}; 2013.10.24 review of SVD, motivation of robust performance &color(red){(robust performance problem 1/3), %%state space representation of generalized plant%%}; [#v3874954]
- review of SVD
#ref(ex1024_1.m);
- motivation of robust performance
#ref(ex1024_2.m);
#ref(ex1024_3.m);
... SSR of generalized plant
#ref(ex1024_4.m);

 ex1024_1
 ex1024_2
 ex1024_3
 ex1024_4

#ref(2013.10.24-1.jpg,left,noimg,whiteboard #1);
#ref(2013.10.24-2.jpg,left,noimg,whiteboard #2);
#ref(2013.10.24-3.jpg,left,noimg,whiteboard #3);
#ref(2013.10.24-4.jpg,left,noimg,whiteboard #4);

** &color(green){[lecture #8]}; 2013.10.31 Robust performance problem (2/3) [#e4893dbc]

+ 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
#ref(ex1031_1.m);
-- a check of the conservativeness
#ref(ex1031_2.m);
+ mini exam #1 
#ref(exam1.pdf);

 %-- 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

#ref(2013.10.31-1.jpg,left,noimg,whiteboard #1);
#ref(2013.10.31-2.jpg,left,noimg,whiteboard #2);
#ref(2013.10.31-3.jpg,left,noimg,whiteboard #3);

** &color(green){[lecture #9]}; 2013.11.14 Robust performance problem (3/3) [#w1002562]

- map
- review of #8
- Q1 and Q2
- ex1031_2.m
- scaled H infinity control problem
#ref(ex1114_1.m);
- 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

#ref(2013.11.14-1.jpg,left,noimg,whiteboard #1);
#ref(2013.11.14-2.jpg,left,noimg,whiteboard #2);
#ref(2013.11.14-3.jpg,left,noimg,whiteboard #3);
#ref(2013.11.14-4.jpg,left,noimg,whiteboard #4);
#ref(2013.11.14-5.jpg,left,noimg,whiteboard #5);

** &color(green){[lecture #10]}; 2013.11.21 Robust performance problem (1/3) (cont.) [#d51591df]

- 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

#ref(2013.11.21-1.jpg,left,noimg,whiteboard #1);
#ref(2013.11.21-2.jpg,left,noimg,whiteboard #2);
#ref(2013.11.21-3.jpg,left,noimg,whiteboard #3);
#ref(2013.11.21-4.jpg,left,noimg,whiteboard #4);
#ref(2013.11.21-5.jpg,left,noimg,whiteboard #5);


** &color(green){[lecture #11]}; 2013.11.28 Robust stabilization of inverted pendulum [#qa2b64c0]
- plant model for perturbed unstable poles
- LFT(Linear Fractional Transformation) 
- a simple example
- inverted pendulum (penddemo.m)
- design example
- references:
--[[How to control objects>/:~kobayasi/easttimor/2009/index.html]] to design, to simulate and to experiment control system by using MATLAB/Simulink with an application of Inverted Pendulum
---[[stabilization of 1-link inverted pendulum>/:~kobayasi/easttimor/2009/ex/1link.html]]
--[[情報処理演習および考究 II MATLAB コース ホームページ (2005)>/:~kobayasi/i/Matlab/ex/index.html]] (in Japanese)
---[[倒立振子の安定化>/:~kobayasi/i/Matlab/ex/1link.html]] (in Japanese)

#ref(ex1128_1.m);
#ref(mod1128_1.mdl);

#ref(2013.11.28-1.jpg,left,noimg,whiteboard #1);
#ref(2013.11.28-2.jpg,left,noimg,whiteboard #2);
#ref(2013.11.28-3.jpg,left,noimg,whiteboard #3);
#ref(2013.11.28-4.jpg,left,noimg,whiteboard #4);

//#ref(ex_penddemo.m);
//#ref(mod_penddemo.mdl);

** &color(green){[lecture #12]}; 2013.12.5 Robust control design for a practical system : Active vibration control of a pendulum using linear motor (1/3) [#g60eadfe]

- review of report #2
- introduction of experimental setup

#ref(photo1.jpg,left,noimg,photo1);
#ref(photo2.jpg,left,noimg,photo2);
#ref(photo3.jpg,left,noimg,photo3);
#ref(photo4.jpg,left,noimg,photo4);
#ref(photo5.jpg,left,noimg,photo5);

-- linear motor : Oriental motor EZC4D005M-A / stepping motor, 0.01mm = 1pulse, stroke 50mm (= 5000 pulse), thrust 70N, speed(max)600mm/s (but used as 400mm/s max with pulse_module.c which generates a pulse every 25us)  
-- Potentio meter : Midori Precisions Model QP-2H / input:5V, output:0-4.17V for 90 deg (experimentally measured)

-- PC : Dell PowerEdge840 (RTAI3.6.1/Linux kernel 2.6.20.21)
-- Parallel input and output board : CONTEC PIO-32/32T(PCI) / 32bit 200ns (connected to linear motor)
-- A/D : CONTEC AD12-16 (PCI) 12bit, 10us

- Objective of control system
++ to attenuate vibration due to pendulum oscillation
++ robust stability against modelling error due to plant variation and non-linear dynamics etc.

- physical model
- frequency response experiment
#ref(freqresp.m);
#ref(frdata_0_2.dat);
#ref(frdata_0_3.dat);
#ref(frdata_0_4.dat);

#ref(2013.12.5-1.jpg,left,noimg,whiteboard #1);
#ref(2013.12.5-2.jpg,left,noimg,whiteboard #2);
#ref(2013.12.5-3.jpg,left,noimg,whiteboard #3);

** &color(green){[lecture #13]}; 2013.12.12 Robust control design for a practical system : Active vibration control of a pendulum using linear motor (2/3) [#b6f2d69a]

- mini exam #2
- pendulum No.2 ... l = 8.5cm
#ref(pendulum2.jpg,left,noimg);
due to the difficulty of the inverted and short pendulum, the control target has been changed to an non-inverted and longer pendulum (I'm sorry)

- modelling based on frequency response experiment 
#ref(frdata_0.5mm.dat);
#ref(freqresp_fixed.m);

- control objective
- design example 1 : proportional control
-- negative feedback always stabilizes the closed loop theoretically
#ref(check_pcont.m);
-- control experiment
#ref(cont_P.dat,,,`cont.dat' file for P control);
#ref(cont_P_order.dat,,,`cont_order.dat' file for P control);
#ref(result_P.dat);
#ref(result_openloop.dat);
#ref(openloop.mp4);
#ref(ex1.mp4);

- design example 2 : H infinity control (nominal performance, physical model is used as nominal plant)
-- m-files
#ref(weight_ex2.m);
#ref(cont_ex2.m);
 >> weight_ex2
 >> cont_ex2
-- control experiment
#ref(cont_ex2.dat,,,`cont.dat' file for ex2);
#ref(cont_ex2_order.dat,,,`cont_order.dat' file for ex2);
#ref(cont_ex2.mat,,,`cont.mat' file for ex2);
#ref(result_ex2.dat);

- design example 3 : H infinity control (nominal performance, nominal plant is derived from freq. resp. exp.)
-- m-files
#ref(nominal_ex3.m);
... &size(25){&color(red){n4sid is not available IPC! (19 Dec.)};};
#ref(weight_ex3.m);
#ref(cont_ex3.m);
 >> nominal_ex3
 >> weight_ex3
 >> cont_ex3
-- control experiment
#ref(cont_ex3.dat,,,`cont.dat' file for ex3);
#ref(cont_ex3_order.dat,,,`cont_order.dat' file for ex3);
#ref(cont_ex3.mat,,,`cont.mat' file for ex3);
#ref(result_ex3.dat);
#ref(ex3.mp4);

- design example 4 : H infinity control (robust performance)
-- m-files
#ref(weight_ex4.m);
#ref(cont_ex4.m);
 >> weight_ex4
 >> cont_ex4
-- control experiment
#ref(cont_ex4.dat,,,`cont.dat' file for ex4);
#ref(cont_ex4_order.dat,,,`cont_order.dat' file for ex4);
#ref(cont_ex4.mat,,,`cont.mat' file for ex4);
#ref(result_ex4.dat);
#ref(ex4.mp4);

- summary of design examples : comparison of designed controllers
#ref(compare.m)

- report
+design your controller(s) so that the system performance is improved compared with the design &size(25){%% example 3 (ex3) %% &color(red){example 2 (ex2)};};
+Draw the following figures and explain the difference between two control systems &color(red){(your controller and &size(25){%%ex3%% ex2};)};:
++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)?
--&size(30){&color(red){due date: 31th(Tue) 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 &size(25){&color(red){cont.dat, cont_order.dat, and cont.mat};}; to kobayasi@nagaokaut.ac.jp &size(30){&color(red){not later than 26th(Thu) Dec};};

- program sources for frequency response experiment
#ref(freqresp.h)
#ref(freqresp_module.c)
#ref(freqresp_app.c)
-- format of frdata.dat file
--- 1st column: frequency (Hz)
--- 2nd column: gain
--- 3rd column: phase (deg)
- program sources for control experiment
#ref(hinf.h)
#ref(hinf_module.c)
#ref(hinf_app.c)
-- format of result.dat file
--- 1st column: time (s)
--- 2nd column: potentio meter's output (V)
--- 3rd column: theta (rad)
--- 4th column: x (m)
--- 5th column: reference position for linear motor (number of pulse)
-program sources for generating linear motor's pulse
#ref(pulse.h);
#ref(pulse_module.c);
-common header
#ref(common.h);

#ref(2013.12.12-1.jpg,left,noimg,whiteboard #1);
#ref(2013.12.12-2.jpg,left,noimg,whiteboard #2);
#ref(2013.12.12-3.jpg,left,noimg,whiteboard #3);


// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
// &color(black,red){&size(20){#################### the remaining page is under construction ###################};};


** &color(green){[lecture #14]}; 2013.12.19 Robust control design for a practical system : Active vibration control of a pendulum using linear motor (3/3) [#n066ab5d]

- review of the design examples

&color(red){&size(25){[IMPORTANT] Due to unavailability of n4sid in IPC which is used in cont_ex3.m, please compare your controller and example 2 (not 3) in your report.}; The explanation of the report has been modified due to this change. See above.};

- preparation of your own controller(s)

[[participant list2013]]

 freqresp_fixed
 frdata
 check_pcont
 weight_ex2
 freqresp_fixed
 weight_ex2
 cont_ex2
 nominal_ex3
 weight_ex4
 cont_ex4
 compare

#ref(2013.12.19-1.jpg,left,noimg,whiteboard #1);
#ref(2013.12.19-2.jpg,left,noimg,whiteboard #2);

** &color(green){[lecture #15]}; 2013.12.26 Robust control design for a practical system : Active vibration control of a pendulum using linear motor (cont.) [#sfeed31c]

-preparation of your own controller(s)

//**related links [#g1a68a2b]
//-東ティモール工学部復興支援/support of rehabilitation for faculty of eng. National University of Timor-Leste
//--[[How to control objects>/:~kobayasi/easttimor/2009/index.html]] to design, to simulate and to experiment control system by using MATLAB/Simulink with an application of Inverted Pendulum
//--[[Prof. Kimura's page>http://sessyu.nagaokaut.ac.jp/~kimuralab/index.php?%C0%A9%B8%E6%B9%A9%B3%D8%C6%C3%CF%C0]]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS