*Advanced Automation [#i4b9e296]

** &color(green){[lecture #1]}; 2012.9.6 review of classical control theory [#b72a34f6]
#ref(2012.09.06-1.jpg,left,noimg,whiteboard #1);
#ref(2012.09.06-2.jpg,left,noimg,whiteboard #2);
#ref(2012.09.06-3.jpg,left,noimg,whiteboard #3);
#ref(2012.09.06-4.jpg,left,noimg,whiteboard #4);

** &color(green){[lecture #2]}; 2012.9.20 given by Prof. Kimura [#wec7619c]

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

+ 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
//
+ relationship between &color(black,cyan){TF}; and &color(black,lightgreen){SSR}; 
#ref(ex0927_1.m)
//
+ open-loop stability can be checked by &color(black,cyan){poles of TF}; and &color(black,lightgreen){eigenvalues of A-matrix in SSR};  
#ref(ex0927_2.m)
#ref(mod0927_2.mdl)
//
+ closed-loop stability
-- 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)
#ref(ex0927_3.m)
#ref(mod0927_3.mdl)
-- numerical test by &color(black,cyan){poles of closed-loop TF}; and &color(black,lightgreen){eigenvalues of A-matrix in closed-loop SSR}; 
#ref(ex0927_4.m)
-- example: stabilization of unstable system
#ref(ex0927_5.m)
#ref(mod0927_5.mdl)

 %-- 9/27/2012 1:07 PM --%
 a = 1
 pwd
 G1 = 1/(s+1)
 ex0927_1
 G1 = 1/(s+1)
 A
 ex0927_2
 G2_tf
 G2_tf.den
 G2_tf.den{:}
 G2_tf.num{:}
 eig(G2_tf)
 G2_ss.a
 eig(G2_ss.a)
 G2_ss
 G2_ss.a
 G2_ss.b
 ex0927_3
 nyquist(1.5*G3_tf)
 nyquist(-1.5*G3_tf)
 bode(-1.5*G3_tf)
 bode(1.5*G3_tf)
 K
 K = 1
 ex0927_4
 ex0927_5
 A
 eig(A)
 K = 0
 K=1
 ex0927_5 

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



** &color(green){[lecture #4]}; 2012.10.4 Intro. to robust control theory (H infinity control theory) [#i454d1b8]
+ 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(ex1004_1.m)
please change the line `K = 1' to `K = ss(1)'

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

 %-- 10/4/2012 1:11 PM --%
 s = tf('s')
 G = 1/(s+1)
 norm(G, 'inf')
 help norm
 ex1004_1
 ex1004_2
 K
 K_hinf
 size(K_hinf.a)

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



** &color(green){[lecture #5]}; 2012.10.11 Introduction to Robust Control (cont.) [#s63abef0]
+ Typical design problems
++ &color(black,yellow){robust stabilization}; ... &color(red){plant is given as class};
++ performance optimization; ... &color(red){plant has no variation};
++ robust performance problem (robust stability and performance optimization are simultaneously considered)
//
+ connection between H infinity control problem and robust stabilization
-- normalized uncertainty \Delta
-- small gain theorem
-- sketch proof ... Nyquist stability criterion
+ How to design robust stabilizing controller with H infinity control problem ?
-- connection between \Delta and plant ?
-- generalized plant G ?
-- practical example of robust stabilization problem
--- unstable plant with perturbation
#ref(ex1011_1.m)
--- multiplicative uncertainty model 
#ref(ex1011_2.m)
--- H infinity controller design
#ref(ex1011_3.m)
#ref(mod1011.mdl)


 %-- 10/11/2012 12:56 PM --%
 ex1011_1
 ex1011_2
 ex1011_3
 mod1011
 ex1011_1
 P
 ex1011_2
 1i
 j
 j = 2
 1i = 2
 ex1011_3
 mod1011
 c = 0.8
 c = 1.2
 c = 1.3
 c = 2

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


** &color(green){[lecture #6]}; 2012.10.18 Introduction to Robust Control (cont.) [#s63abef0]
+ review
-- robust stabilization ... ||WT T||_inf < 1 (for multiplicative uncertainty)
-- performance optimization ... ||WS S||_inf < gamma -> min
-- mixed sensitivity problem gives &color(red){a sufficient condition}; such that both conditions hold ... nominal (not robust) performance problem
//
+ proof of small gain theorem ... Nyquist stability criterion
+ mixed sensitivity problem
-- the sufficient condition
-- exercise
#ref(ex1018_1.m);
#ref(ex1018_1_ans.m);
#ref(mod1018.mdl);

 %-- 10/18/2012 12:56 PM --%
 mod1018
 ex1018_1
 input_to_P0
 WT
 WSgam
 systemnames
 ex1018_1
 G
 ex1018_1

//#ref(2012.10.11-1.jpg,left,noimg,whiteboard #1);
//#ref(2012.10.11-2.jpg,left,noimg,whiteboard #2);
//#ref(2012.10.11-3.jpg,left,noimg,whiteboard #3);
#ref(2012.10.18-1.jpg,left,noimg,whiteboard #1);
#ref(2012.10.18-2.jpg,left,noimg,whiteboard #2);
#ref(2012.10.18-3.jpg,left,noimg,whiteboard #3);

** &color(green){[lecture #7]}; 2012.10.25 singular value decomposition(SVD) [#e348afb0]
- review of mixed sensitivity problem
- definition of SVD and maximum singular value

&color(black,red){!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! the followings are under construction !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!};
 %-- 10/25/2012 1:27 PM --%
 A = [1, 2, 3; 4, 5, 6]
 [U, Sigma, V] = svd(A)
 U*U'
 U'*U
 V'*V
 [U, Sigma, V] = svd(A')
 A = [1, 2, 3; 4, 5, 1i]
 [U, Sigma, V] = svd(A)

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

** &color(green){[lecture #6]}; 2011.10.27 norm (vector space, normed linear space), singular value, mixed sensitivity problem [#e348afb0]
- H infinity &color(red){norm}; ... {robust stabilization, performance improvement}
- norm
#ref(norm.pdf);
-- size of {number, signal, system}
-- defined on &color(red){vector space (linear space)};
--- ---> normed linear space
--- ... optimization 
- H infinity norm : scalar (SISO) ---> matrix (MIMO)
-- absolute value ---> maximum &color(red){singular value};
#ref(norm2.pdf);
-- &color(black,yellow){robust stabilization or performance optimization problem ---> mixed sensitivity problem};
- reference
-- Feedback control theory / John C. Doyle, Bruce A. Francis and Allen R. Tannenbaum
#ref(feedback_control_theory.jpg);
--- 2. Norms for signals and systems
--- 3. Basic concepts
--- 4. Uncertainty and robustness ... p.62 Eq.(4.10) H infinity norm condition in mixed sensitivity problem
-- Robust and optimal control / Kemin Zhou, John C. Doyle and Keith Glover
#ref(robust_and_optimal_control.jpg); 
--- 2. Linear algebra (2.7 Vector norms and matrix norms, 2.8 Singular value decomposition)
--- 4. Performance specifications (4.1 Normed spaces, 4.3 Hardy spaces H_2 and H_infinity)
--- 9. Model uncertainty and robustness
--- 16. H infinity control: simple case
--- 17. H infinity control: general case

#ref(2011.10.27-1.jpg,left,noimg,whiteboard #1);
#ref(2011.10.27-2.jpg,left,noimg,whiteboard #2);
#ref(2011.10.27-3.jpg,left,noimg,whiteboard #3);
#ref(2011.10.27-4.jpg,left,noimg,whiteboard #4);
#ref(2011.10.27-5.jpg,left,noimg,whiteboard #5);
** &color(green){[lecture #8]}; 2012.11.1 Robust performance problem [#lb8c8214]

** &color(green){[lecture #8]}; 2011.11.10 state space representation of connected system, state space representation of generalized plant for various control problem, mixed sensitivity problem (by Prof. Kimura) [#r16c7bea]
- review of the proof
- nominal and robust performance (motivation of robust performance problem)
-- setting for P0 and WT
#ref(ex1101_1.m);
-- controller design with mixed sensitivity problem
#ref(ex1101_2.m);
-- robust performance is not satisfied
#ref(ex1101_3.m);
- %%how to tackle with the robust performance problem (a conservative design with H infinity control problem)%%
//#ref(ex1101_4.m);
- %%less conservative design with scaled H infinity control problem%%
//#ref(ex1101_5.m);

see [[Prof. Kimura's page>http://mcweb.nagaokaut.ac.jp/~rescue-eng]]
 %-- 11/1/2012 1:37 PM --%
 ex1101_1
 ex1101_2
 K
 ex1101_2
 ex1101_3

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

** &color(green){[lecture #9]}; 2011.12.1 robust control design example: Robust Control System Synthesis for Pneumatic Systems (given by Prof. Kimura) [#w3a2ed09]

** &color(green){[lecture #10]}; 2011.12.8 Speed control of two inertia system with servo motor (1/3) [#we798596]
** &color(green){[lecture #9]}; 2012.11.8 Robust performance problem (cont.) [#p502d4f3]

- review: mixed sensitivity problem = robust stability + nominal performance(not robust performance)
- how to tackle with the robust performance problem
++ introduction of a fictitious uncertainty
++ the maximum singular value of block diagonal matrices is less than or equal to 1 ---> a conservative design with H infinity control problem
#ref(ex1101_4.m);
++ intruduction of scalling matrix ---> less conservative design with scaled H infinity control problem
#ref(ex1101_5.m);

 %-- 11/8/2012 1:29 PM --%
 ex1101_4
 ex1101_1
 ex1101_2
 ex1101_3
 ex1101_4
 ex1101_5

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



** &color(green){[lecture #10]}; 2012.11.15 Robust performance problem (cont.) [#p502d4f3]

- review of scaled H infinity control problem
++ ex1101_4.m, ex1101_5.m ... What does the designed result mean ?
++ How was the class of scaling determined ?
++ effect of scaling on closed-loop H infinity norm ... motivation of scaling 

 %-- 11/15/2012 1:08 PM --%
 ex1101_1
 ex1101_2
 ex1101_3
 ex1101_4
 ex1101_5
 -13/20
 10**-0.65
 10^-0.65
 ex1101_4
 K
 ex1101_4
 ex1101_5
 gam
 K
 d
 gam
 K
 sigma(mdiag(1,1/gam)*lft(G,K))
 sigma(mdiag(1/d,1/gam)*lft(G,K)*mdiag(d,1),'r')
 sigma(mdiag(1,1/gam)*lft(G,K))
 hold on
 sigma(mdiag(1/d,1/gam)*lft(G,K)*mdiag(d,1),'r')

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

** &color(green){[lecture #11]}; 2012.11.22 will be given by Prof. Kimura [#s9293d0c]

** &color(green){[lecture #12]}; 2012.11.29 will be given by Prof. Kimura [#o1540c22]

** &color(green){[lecture #13]}; 2012.12.6 Robust control design for a practical system (1/3) : Active vibration control of a pendulum using linear motor (loudspeaker) [#ucd0105e] &color(red){some mistakes fixed on 2012.12.13}; [#k776c145]

- Experimental setup
#ref(apparatus.ppt);
#ref(setup.pdf)
-- Objective for control system design
++ speed tracking
++ robust against inertia-load variation
#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 : FOSTEX &color(red){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(frdata_small_offset0.dat)
#ref(frdata_small_offset5.dat)
#ref(frdata_small_offset10.dat)
#ref(frdata_large_offset0.dat)
#ref(frdata_large_offset5.dat)
#ref(frdata_large_offset10.dat)
-- example of m-file
#ref(frdata_amp005.dat);
#ref(frdata_amp010.dat);
#ref(frdata_amp020.dat);
&color(red){due to some change on experimental apparatus, please use following data as frequency response experimental results (2012.12.13)};
#ref(frdata_amp005_1st.dat);
#ref(frdata_amp010_1st.dat);
#ref(frdata_amp020_1st.dat);
#ref(frdata_amp005_2nd.dat);
#ref(frdata_amp005_3rd.dat);
#ref(frdata_amp005_4th.dat);

-- example of m-files &color(red){(the following files have been replaced by modified ones (2012.12.13)};
#ref(freqresp.m)
#ref(nominal.m)
#ref(weight.m);
 >> freqresp
 >> nominal
 >> weight
- Controller design (mixed sensitivity problem)
- Controller design (robust performance problem)
-- example of m-file
#ref(cont.m)
 >> cont
-- design example
#ref(cont.dat)
#ref(cont_order.dat)
#ref(cont.mat)
#ref(result_small.dat)
#ref(result_large.dat)
//-- example of m-file to compare designed controllers
//#ref(compare.m)
#ref(result.dat)
#ref(result_no.dat)

-- example of m-file to compare designed controllers
#ref(compare.m)

- report
+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 &color(red){(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)?
--&size(30){&color(red){due date: 28th(Wed) Dec 17:00};};
--&size(30){&color(red){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 &size(30){&color(red){not later than 23th(Fri) Dec};};
--submit your cont.dat, cont_order.dat, and cont.mat to kobayasi@nagaokaut.ac.jp &size(30){&color(red){not later than %%21th(Fri)%% 25th(Tue) 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)
--- 4th column: gain
--- 5th 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: motor speed (rad/s)
--- 3rd column: motor torque (Nm)
--- 4th column: reference speed (rad/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
-- reference signal is generated as described in hinf_module.c: 
 if((t > 3)&&(t < 7)){
   r = 10.0;
-- input disturbance is given as described in hinf_module.c: 
 if(t < 0.1){
    w = DIST_AMP;
 }else{
   r = 5;
    w = 0;
 }
-- two inertia-load discs (small and large) are used 
 da_conv(V_OFFSET + w, 0); // D/A output for linear motor

- Difficulties of our plant: 
As motor speed is approximately calculated by using difference for one sampling period in hinf_module.c like
 thetaM_rad = (double)read_theta(0) / (double)Pn212 * 2 * M_PI;
 speedM_rad = (thetaM_rad - thetaM_rad_before) / msg->sampling_period;
 thetaM_rad_before = thetaM_rad
sampling period should not become too small.
On the other hand, sampling period should be chosen as small as possible so that desiged continuous-time controller could be closely implemented by its descretized version. 
Therefore, we have a dilemma to control our plant.
The sampling period 0.25 msec was chosen by traial and error so that noise in measured speed is not too large. 
The gain in high frequency range of continuous-time controller should be small enough for discretization.  

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

 %-- 12/8/2011 1:22 PM --%
 freqresp
 nominal
 weight
 load result_small.dat
 result_small
 plot(result_small(:,1),result_small(:,2))
 plot(result_small(:,1),result_small(:,2), 'b', result_small(:,1),result_small (:,4),'r')
 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(2012.12.06-1.jpg,left,noimg,whiteboard #1);
#ref(2012.12.06-2.jpg,left,noimg,whiteboard #2);
&color(red){... please use the potentio meter output as the measured output instead the PSD output (2012.12.13)};
#ref(2012.12.06-3.jpg,left,noimg,whiteboard #3);
#ref(2012.12.06-4.jpg,left,noimg,whiteboard #4);


** &color(green){[lecture #11]}; 2011.12.15 Speed control of two inertia system with servo motor (2/3) [#c62f648b]
** &color(green){[lecture #14]}; 2012.12.13 Robust control design for a practical system (2/3) [#g991f11e]

&size(20){&color(red){IMPOTANT};:due to some change on experimental apparatus, &color(red){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)

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

 %-- 12/15/2011 1:06 PM --%
 %-- 12/13/2012 12:59 PM --%
 freqresp
 pwd
 freqresp
 nominal
 P0
 weight
 cont
 help hinfsyn
 K
 Ktf = tf(K)
 bode(K, 'r', Ktf, 'b')
 legend('ss', 'tf')
 help fitsys
 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');

** &color(green){[lecture #12]}; 2011.12.22 Speed control of two inertia system with servo motor (3/3) [#qa449cc8]
#ref(2012.12.13-1.jpg,left,noimg,whiteboard #3);

** &color(green){[lecture #15]}; 2012.12.20 Robust control design for a practical system (3/3) [#tb057499]

-preparation of your own controller(s)

[[participant list2011]]
#ref(load_frdata.m)

** &color(red){supplementary lectures will be given by Prof. Kimura.}; [#df0d2bf7]
[[participant list2012]]

-example for changing ws = 2 pi 0.1 -> 2 pi 0.01
#ref(cont_ws.m, cont.m);

-example to compare time responces
#ref(compare_result.m);

 %-- 12/22/2011 1:20 PM --%
 nominal
 ctrlpref
 nominal
 weight
 cont
 ks
 cont
 compare_result


**related links [#y9f6a832]
//-東ティモール工学部復興支援/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