[[授業]] *Advanced Automation [#we2e9bed] ** &color(green){[]}; 2014.9.4 cancelled [#n7818221] ** &color(green){[lecture #1]}; 2014.9.11 outline of the lecture, review of classical and modern control theory (1/3) [#z238c276] - outline of this lecture -- syllabus -- evaluation --- mini report #1 ... 10% --- mini exam #1 ... 10% --- mini report #2 ... 10% --- mini exam #2 ... 10% --- final report ... 60% -- map #ref(map_v1.0_review.pdf); - review -- equation of motion -- transfer function -- state space representation -- eigenvalue and pole #ref(2014.09.11-1.jpg,left,noimg,whiteboard #1); #ref(2014.09.11-2.jpg,left,noimg,whiteboard #2); #ref(2014.09.11-3.jpg,left,noimg,whiteboard #3); #ref(2014.09.11-4.jpg,left,noimg,whiteboard #4); #ref(2014.09.11-5.jpg,left,noimg,whiteboard #5); #ref(2014.09.11-6.jpg,left,noimg,whiteboard #6); ** &color(green){[lecture #2]}; 2014.9.18 CACSD introduction with review of classical and modern control theory (2/3) [#b977e2f2] + introduction of Matlab and Simulink &ref(text_fixed.pdf); Basic usage of MATLAB and Simulink 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'); T1 = 1 / (s+1); T2 = 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; S3 = ss(A, B, C, D); -- Bode plot bode(T1, 'b-', T2, 'g', S3, 'r--'); grid on; // + open-loop stability can be checked by // ++ &color(black,cyan){poles of TF}; roots(T2.den{:}) ++ &color(black,lightgreen){eigenvalues of A-matrix in SSR}; eig(S3.a) ++ also by simulation #ref(mod0918_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(mod0918_2.mdl); %-- 9/18/2014 1:06 PM --% t = [1 2 3] u = [1;2;3] V = [1 2 3; 4 5 6; 7 8 9] t' t'*t who k=0:0.1:10: k=0:0.1:10; y = sin(k); whos plot(x,y) plot(k,y) foo print -djpeg sin.jpg s = tf('s'); T1 = 1/(s+1) T2 = 1/(s^2+0.1*s+1); A = [-0.3, -1; 1, 0]; B = [1; 0]; C = [0, 1]; D = 0; S3 = ss(A, B, C, D); A B S3 bode(T1, 'b-', T2, 'g', S3, 'r--'); grid on; T2 T3 = tf(S3); T3 T2 T2.num T2.num{:} T2.den{:} roots(T2.den{:}) S3 S3.a eig(S3.a) mod0918_1 bode(T1, 'b-', T2, 'g', S3, 'r--'); grid on; roots(L.den{:}) L L = 1/(s^3+1.5*s^2+1.5*s+1); L roots(L.den{:}) nyquist(L) bode(L) grid on nyquist(L) L clp_den = L.den{:} + L.num{:}; clp_den roots(clp_den) mod0918_2 #ref(2014.09.18-1.jpg,left,noimg,whiteboard #1); #ref(2014.09.18-2.jpg,left,noimg,whiteboard #2); ** &color(green){[lecture #3]}; 2014.9.25 CACSD introduction with review of classical and modern control theory (3/3) [#u1cf67cc] + LQR problem -- controllability -- cost function J >= 0 -- (semi)-positive definiteness + solution of LQR problem -- ARE and quadratic equation -- closed loop stability ... Lyapunov criterion -- Jmin &ref(proof4.pdf); (from B%%4%%3「動的システムの解析と制御」) + example &ref(mod0925.mdl); A = [1, 2; 0, -1]; % unstable plant B = [0; 1]; Uc = ctrb(A,B); det(Uc) % should be nonzero C = eye(2); % dummy D = zeros(2,1); % dummy F = [0, 0]; % without control x0 = [1; 1]; % initial state Q = eye(2); R = 1; P = are(A, B/R*B', Q); P-P' % should be zero eig(P) % should be positive F = R\B'*P; #ref(2014.09.25-1.jpg,left,noimg,whiteboard #1); #ref(2014.09.25-2.jpg,left,noimg,whiteboard #2); #ref(2014.09.25-3.jpg,left,noimg,whiteboard #3); #ref(2014.09.25-4.jpg,left,noimg,whiteboard #4); //■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ &color(black,red){&size(20){!!! the remaining page is under construction (the contents below are from 2013) !!!};}; ** &color(green){[lecture #4]}; 2013.9.26 Intro. to robust control theory (H infinity control theory) 1/3 [#d73502ce] + 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};}; [#oab0d61b] ** &color(green){[lecture #5]}; 2013.10.10 Intro. to Robust Control Theory (H infinity control theory) 2/3 [#pbd554d4] + 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) [#g6834f91] + 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%%}; [#k55a1a25] - 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) [#z50bb5a3] + 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) [#y1331d96] - 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.) [#uecb44ef] - 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 [#t3354ab0] - 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) [#q3906ee1] - 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) [#z228b373] - 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(green){[lecture #14]}; 2013.12.19 Robust control design for a practical system : Active vibration control of a pendulum using linear motor (3/3) [#m1b0f9d2] - 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.) [#r11f7b48] -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]]