*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.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 %-- 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 #8]}; 2012.11.1 Robust performance problem [#lb8c8214] - 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); %-- 11/1/2012 1:37 PM --% ex1101_1 ex1101_2 K ex1101_2 ex1101_3 #ref(2012.11.01-1.jpg,left,noimg,whiteboard #1); #ref(2012.11.01-2.jpg,left,noimg,whiteboard #2); ** &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(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_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 (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.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: 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 21th(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: PSD output (V) --- 3rd column: Potentio meter output (V) --- 4th column: control input (V) --- 5th column: input disturbance (V) - configuration of control experiment -- input disturbance is given as described in hinf_module.c: if(t < 0.1){ w = DIST_AMP; }else{ w = 0; } da_conv(V_OFFSET + w, 0); // D/A output for linear motor 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(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 #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) %-- 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(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) #ref(load_frdata.m) [[participant list2012]] **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]]