[[授業]] *Advanced Automation [#ye2d4ebb] ** &color(green){[lecture #1]}; 2015.9.3 outline of the lecture, review of classical and modern control theory (1/3) [#bdb8b1f6] - 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% -- [[schedule2015]] (tentative) -- map #ref(map_v1.0_review.pdf); - review : stabilization of 1st-order unstable plant by classical and modern control theory -- transfer function -- differential equation -- eigenvalue and pole -- ... %-- 9/3/2015 2:09 PM --% s = tf('s') Ptf = 1/(s+1) pole(Ptf) impulse(Ptf) Pss = ss(Ptf) initial(Pss, 1) initial(Pss, 2) #ref(2015.09.03-1.jpg,left,noimg,whiteboard #1); #ref(2015.09.03-2.jpg,left,noimg,whiteboard #2); #ref(2015.09.03-3.jpg,left,noimg,whiteboard #3); #ref(2015.09.03-4.jpg,left,noimg,whiteboard #4); &ref(ex0902.m); ** &color(green){[lecture #2]}; 2015.9.10 review of classical and modern control theory (2/3) with introduction of Matlab/Simulink [#x66b415e] + 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 -- interactive system (no compilation, no variable difinition) -- m file // + system representation: Transfer Function(TF) / State-Space Representation (SSR) // -- example: mass-spring-damper system -- difinition of SSR -- from SSR to TF -- from TF to SSR: controllable canonical form + open-loop characteristic -- open-loop stability: poles and eigenvalues -- Bode plot and frequency response &ref(ex0910_1.m); &ref(mod0910_1.mdl); --- cut off frequency; DC gain; -40dB/dec; variation of c --- relation between P(jw) and steady-state response + closed-loop stability -- Nyquist stability criterion (for L(s):stable) -- Nyquist plot &ref(ex0910_2.m); &ref(mod0910_2.mdl); --- Gain Margin(GM); Phase Margin(PM) %-- 9/10/2015 1:55 PM --% ex0910_1 P P.den P.den{:} P.num{:} ex0910_1 ex0910_2 #ref(2015.09.10-1.jpg,left,noimg,whiteboard #1); #ref(2015.09.10-2.jpg,left,noimg,whiteboard #2); #ref(2015.09.10-3.jpg,left,noimg,whiteboard #3); #ref(2015.09.10-4.jpg,left,noimg,whiteboard #4); ** &color(green){[]}; 2015.9.17 cancelled [#w7af2c97] ** &color(green){[]}; 2015.9.25 no lecture (lectures for Monday are given) [#ne6e400c] ** &color(green){[lecture #3]}; 2015.10.1 review of classical and modern control theory (3/3) [#b83a9a65] + 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(lqr.pdf); ≒ &ref(proof4.pdf); (from B3「動的システムの解析と制御」) + example &ref(mod1001.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); eig(P) % should be positive F = R\B'*P; x0'*P*x0 %-- 10/1/2015 2:08 PM --% mod1001 A = [1, 2; 0, -1]; % unstable plant B = [0; 1]; Uc = ctrb(A,B); A B Uc det(Uc) C = eye(2); % dummy D = zeros(2,1); % dummy F = [0, 0]; % without control x0 = [1; 1]; % initial state Q = eye(2); R = 1; F P = are(A, B/R*B', Q); P eig(P) F = R\B'*P; F J x0 x0'*P*x0 A-B*F eig(A-B*F) #ref(2015.10.01-1.jpg,left,noimg,whiteboard #1); #ref(2015.10.01-2.jpg,left,noimg,whiteboard #2); #ref(2015.10.01-3.jpg,left,noimg,whiteboard #3); ... I'm sorry but all of equations are in the pdf file. #ref(2015.10.01-4.jpg,left,noimg,whiteboard #4); #ref(2015.10.01-5.jpg,left,noimg,whiteboard #5); ** &color(green){[lecture #4]}; 2015.10.8 relation between LQR and H infinity control problem (1/2) [#d821c8a6] - GOAL: to learn difference in concepts between LQR problem and H infinity control problem - review of LQR problem and the simple example + an equivalent problem + a simple example of state-feedback H infinity control problem + definition of H infinity norm (SISO) s = tf('s'); P1 = 1/(s+1); bode(P1); norm(P1, 'inf') P2 = 1/(s^2 + 0.1*s + 1); bode(P2); norm(P2, 'inf') + definition of H infinity norm (SIMO) + solve the problem by hand + solve the problem by tool(hinfsyn) &ref(ex1008.m); %-- 10/8/2015 1:48 PM --% s = tf('s'); P1 = 1/(s+1); bode(P1); norm(P1, 'inf') P2 = 1/(s^2 + 0.1*s + 1); bode(P2); norm(P2, 'inf') ex1008 #ref(2015.10.08-1.jpg,left,noimg,whiteboard #1); #ref(2015.10.08-2.jpg,left,noimg,whiteboard #2); #ref(2015.10.08-3.jpg,left,noimg,whiteboard #3); #ref(2015.10.08-4.jpg,left,noimg,whiteboard #4); #ref(2015.10.08-5.jpg,left,noimg,whiteboard #5); -Q: 最後にfを求めてどうするのか分からなかった。 -A: 閉ループ系のH∞ノルムを最小化するfを求め、LQRの最適解と比較する予定でしたが、最後まで説明できずすみません。 -Q: |Tzw|∞ は感度関数になる? -A: Tzw が感度関数になるか?という意味と思いますが、一般化プラントの設定次第でそうなります(例えば目標値信号を w、偏差を z に選ぶ場合など)。次々回、その場合を扱います。 ** &color(green){[lecture #5]}; 2015.10.15 relation between LQR and H infinity control problem (2/2) [#w4c0811d] + complete the table in simple example + behavior of hinfsyn in &ref(ex1008.m); + confirm the cost function J for both controllers by simulation &ref(mod1015.mdl); + confirm the closed-loop H infinity norm for both controllers by simulation (common mdl file is available) -- review: steady-state response (see photo 8 @ lec. #2) -- how to construct the worst-case disturbance w(t) which maximizes L2 norm of z(t) ? -- what is the worst-case disturbance in the simple example ? + general case: &ref(hinf.pdf); includes the simple example as a special case -- LQR &ref(lqr.pdf); is included as a special case where gamma -> infinity, non-zero x(0), and B2 -> B %-- 10/15/2015 1:14 PM --% ex1008 K dcgain(K) gopt ex1008 mod1015 f f = 1 x0 = 0 h = 0.1 zz zz(end) h = 1e-6 zz(end) f = -1+sqrt(2) h zz(end) x0 = 1 zz(end) f h h = 10 zz(end)/ww(end) x0 x0 = 0 zz(end)/ww(end) sqrt(zz(end)/ww(end)) h h = 100 sqrt(zz(end)/ww(end)) #ref(2015.10.15-1.jpg,left,noimg,whiteboard #1); #ref(2015.10.15-2.jpg,left,noimg,whiteboard #2); ** &color(green){[lecture #6]}; 2015.10.22 Mixed sensitivity problem 1/3 [#tfbf02f5] + review &ref(map_v1.0_intro1.pdf); and outline + H infinity control problem (general form) + reference tracking problem + weighting function for sensitivity function + design example &ref(ex1022_1.m); &ref(ex1022_2.m); + the small gain theorem -- proof: Nyquist stability criterion + from performance optimization to robust stabilization %-- 10/22/2015 2:06 PM --% ex1022_1 eig(P) ex1022_2 #ref(2015.10.22-1.jpg,left,noimg,whiteboard #1); #ref(2015.10.22-2.jpg,left,noimg,whiteboard #2); #ref(2015.10.22-3.jpg,left,noimg,whiteboard #3); ** &color(green){[lecture #7]}; 2015.10.29 Mixed sensitivity problem 2/3 [#dd1fc284] + review &ref(map_v1.0_intro2.pdf); and outline + an equivalent problem of robust stabilization for reference tracking problem + uncertainty model and normalized uncertainty Delta + robust stabilization problem and an equivalent problem + practical example of plant with perturbation &ref(ex1029_1.m); + how to determine the model &ref(ex1029_2.m); + design example and simulation &ref(ex1029_3.m); &ref(mod1029.mdl); %-- 10/29/2015 1:52 PM --% ex1029_1 ex1029_2 ex1029_3 mod1029 c c = 0.8 #ref(2015.10.29-1.jpg,left,noimg,whiteboard #1); #ref(2015.10.29-2.jpg,left,noimg,whiteboard #2); #ref(2015.10.29-3.jpg,left,noimg,whiteboard #3); //■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ &color(black,red){&size(20){!!! the remaining page is under construction (the contents below are from 2014) !!!};}; // ** &color(green){[lecture #6]}; 2014.10.16 Intro. to robust control theory (H infinity control theory) (3/3) [#t81c8893] + 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 -- write by hand -- submit at the beginning of next lecture on 23 Oct. -- check if your answer is correct or not before submission by using Matlab -- You will have a mini exam #1 related to this report on 30 Oct. + meaning of singular value ... singular value decomposition (SVD) + proof of (*) + example #ref(ex1016.m); %-- 10/16/2014 1:00 PM --% M = [j, 0; -j, 1] M svd(M) sqrt((3+sqrt(5))/2) M' M'*M ex1016 #ref(2014.10.16-1.jpg,left,noimg,whiteboard #1); #ref(2014.10.16-2.jpg,left,noimg,whiteboard #2); #ref(2014.10.16-3.jpg,left,noimg,whiteboard #3); #ref(2014.10.16-4.jpg,left,noimg,whiteboard #4); #ref(2014.10.16-5.jpg,left,noimg,whiteboard #5); #ref(2014.10.16-6.jpg,left,noimg,whiteboard #6); ** &color(green){[lecture #7]}; 2014.10.23 review of SVD, robust performance problem 1/3 (motivation of robust performance) [#m1b1601e] - submission of mini report #1 - review of SVD : graphical image and rotation matrix for 2-by-2 real matrix case #ref(ex1023_1.m); - motivation of robust performance : nominal performance to robust performance #ref(ex1023_2.m); #ref(ex1023_3.m); %-- 10/23/2014 12:58 PM --% ex1023_1 A S V V'*V V'*V(:,1) ex1009_1 ex1009_2 ex1023_2 ex1023_3 #ref(2014.10.23-1.jpg,left,noimg,whiteboard #1); #ref(2014.10.23-2.jpg,left,noimg,whiteboard #2); #ref(2014.10.23-3.jpg,left,noimg,whiteboard #3); -Q1: Is H infinity control theory available for discrete-time system ? -A1: The answer is yes. You can use the same tool hinfsyn in Matlab to design discrete-time controller. If the question is to ask how to implement digital (discrete-time) controller for given continuous-time plant, there are 3 ways to do this: (i) continuous-time H infinity control based design (continuous-time controller is designed, then it is discretized); (ii) discretized H infinity control design (continuous-time plant is discretized first, then discrete-time controller is designed); (iii) sampled-data H infinity control design (discrete-time controller is directly designed for continuous-time plant) ** &color(green){[lecture #8]}; 2014.10.30 Robust performance problem (2/3) [#la4839f6] + return of mini report #1 + review of the limitation of mixed sensitivity problem + diffinition of robust performance (R.P.) problem (cf. nominal performance problem on white board #6 in photo #4 of lecture #4) ... S is changed to S~ + review of robust stability (R.S.) problem on white board #5 in photo #5 of lecture #3 ... robust stability against Delta <=> closed-loop system without Delta has less-than-or-equal-to-one H infinity norm (by small gain theorem) + equivalent R.P. problem with structured uncertainty Delta_hat + a conservative problem to R.P. with 2-by-2 unstructured uncertainty Delta_tilde -- example based on the one given in the last lecture #ref(ex1030_1.m); -- a check of the conservativeness #ref(ex1030_2.m); + Delta_tilde is larger set than Delta_hat ... conservativeness + mini exam #1 &ref(exam1.pdf); %-- 10/30/2014 1:10 PM --% ex1023_2 ex1023_3 gam_opt ex1030_1 gam_opt #ref(2014.10.30-1.jpg,left,noimg,whiteboard #1); #ref(2014.10.30-2.jpg,left,noimg,whiteboard #2); #ref(2014.10.30-3.jpg,left,noimg,whiteboard #3); #ref(2014.10.30-4.jpg,left,noimg,whiteboard #4); ** &color(green){[lecture #9]}; 2014.11.13 Robust performance problem (3/3) [#d50833d3] - return of mini exam #1 - review - inclusion relation of two uncertain set (structured and non-structured) - scaled H infinity control problem - effect of scaling matrix - how to determine structure of scaling matrix - example #ref(ex1113_1.m); #ref(ex1113_2.m); - %%mini report #2%% %-- 11/13/2014 12:58 PM --% ex1023_2 gam_opt ex1023_3 ex1030_1 gam_opt ex1113 ex1113_1 gam_opt ex1113_2 #ref(2014.11.13-1.jpg,left,noimg,whiteboard #1); #ref(2014.11.13-2.jpg,left,noimg,whiteboard #2); #ref(2014.11.13-3.jpg,left,noimg,whiteboard #3); #ref(2014.11.13-4.jpg,left,noimg,whiteboard #4); ** &color(green){[lecture #10]}; 2014.11.20 Robust performance problem (1/3) (cont.) [#k0c92c66] - review - effect of scaling - mini report #2 -- write by hand -- submit at the beginning of next lecture on 27 Nov. -- check if your answer is correct or not before submission by using Matlab -- You will have a mini exam #2 related to this report on 4 Dec. - how to obtain generalized plant by hand - %%example: H infinity controller design by hand%% %-- 11/20/2014 1:11 PM --% ex1023_2 ex1023_3 ex1030_1 ex1030_2 k ex1113_1 ex1113_2 k Delta_hat #ref(2014.11.20-1.jpg,left,noimg,whiteboard #1); #ref(2014.11.20-2.jpg,left,noimg,whiteboard #2); #ref(2014.11.20-3.jpg,left,noimg,whiteboard #3); #ref(2014.11.20-4.jpg,left,noimg,whiteboard #4); ** &color(green){[lecture #12]}; 2014.12.4 relation between H infinity control and modern control theory (cont.); %%Speed control of two inertia system with servo motor (1/4)%% [#p666d14d] - return of mini report #2 - contents for the last lecture - %%speed control of two inertia system with servo motor%%&br; %%&ref(setup.pdf);%% - %%frequency response experiment and physical model of speed control system%%&br; %%&ref(ex1204_1.m);%%&br; %%&ref(ex1204_2.dat);%% - mini exam #2 %-- 12/4/2014 1:28 PM --% ex1127 mod1127 x0 = 0 h = 1 f = 1 ww zz h = 10 ww zz h = 50 zz h zz #ref(2014.12.4-1.jpg,left,noimg,whiteboard #1); #ref(2014.12.4-2.jpg,left,noimg,whiteboard #2); ** &color(green){[lecture #13]}; 2014.12.11 Robust control design for a practical system : Speed control of two inertia system with servo motor (1/3) [#x7c8c11b] - return of mini exam #2 - introduction of experimental setup #ref(setup.pdf); #ref(photo1.jpg,left,noimg); - objective of control system ++ to reduce the tracking error of the driving motor against disturbance torque ++ robust stabilization against plant variation due to aging degradation - frequency response experiment and physical model of speed control system #ref(ex1211_1.m); #ref(ex1211_2.dat); #ref(ex1211_3.dat); #ref(ex1211_4.dat); - %%determination of nominal plant%%&br; %%&ref(ex1211_5.m);%% - %%determination of weighting function%%&br; %%&ref(ex1211_6.m);%% %-- 12/11/2014 1:24 PM --% ex1211_1 frdata frdata(:,1) P1_jw P1_g ex1211_1 #ref(2014.12.11-1.jpg,left,noimg,whiteboard #1); -Q: What is the inertia moment of the load disk ? -A: It is about 0.0002 (kg m^2) (60mm in diameter, 16mm in inner diameter, 20mm in thick, made by SS400) -Q: 周波数応答実験について、定常応答になるのにどのくらい待っているか?音が大きくなるのはゲインが高いから?周波数変化のきざみは? -A: 待ち時間は3秒です。音の発生源はよくわかりませんし、騒音計などで計測したこともありませんが、大きな音が聞こえるのは共振周波数付近です。周波数変化の刻みは常用対数で0.01です。以下に掲載するプログラムソースの freqresp.h 中で指定しています。 ** &color(green){[lecture #14]}; 2014.12.18 Robust control design for a practical system : Speed control of two inertia system with servo motor (2/3) [#yac6fbae] - design example //-- modeling based on frequency response experiment //- design example 1 : PI control //-- control experiment //#ref(cont_PI.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 -- m-files #ref(freqresp.m); #ref(nominal.m); #ref(weight.m); #ref(cont.m); #ref(perf.m); >> freqresp >> nominal >> weight >> cont >> perf -- control experiment ... see [[participant list2014]] - report +design your controller(s) so that the system performance is improved compared with the design 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 sensitivity function ++time response of control experiment +Why is the performance of your system improved(or unfortunately deteriorated)? --&size(30){&color(red){due date: 9th(Fri) Jan 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(Fri) Dec};}; - program sources for frequency response experiment #ref(freqresp.h) #ref(freqresp_module.c) #ref(freqresp_app.c) -- format of datafile --- 1st column ... frequency (Hz) --- 2nd column ... gain from T_M to omega_M --- 3rd column ... phase from T_M to omega_M --- 4th column ... gain from T_M to omega_L --- 5th column ... phase from T_M to omega_L - 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: omega_M (rad/s) --- 3rd column: T_M (Nm) --- 4th column: reference speed (rad/s) --- 5th column: T_L (Nm) - configuration of control experiment -- reference signal is generated as described in hinf_module.c: if((t > 1)&&(t < 4)){ r = 20.0; }else{ r = 10; } -- disturbance torque is specified as described in hinf_module.c: if((t > 2)&&(t < 3)){ d = -0.1; }else{ d = 0; } - calculation of rotational speed The rotational speed is approximately calculated by using difference for one sampling period in hinf_module.c and freqresp_module.c like: theta_rad = (double)read_theta(0) / (double)Pn212 * 2 * M_PI; speed_rad = (theta_rad - theta_rad_before) / msg->sampling_period; theta_rad_before = theta_rad where the sampling period is given as 0.25 ms. [[participant list2014]] %-- 12/18/2014 1:01 PM --% freqresp nominal help fitfrd weight cont help c2d perf #ref(2014.12.18-1.jpg,left,noimg,whiteboard #1); #ref(2014.12.18-2.jpg,left,noimg,whiteboard #2); ** &color(green){[lecture #15]}; 2014.12.25 Robust control design for a practical system : Speed control of two inertia system with servo motor (3/3) [#f5d0b7b4] -preparation of your own controller(s) %-- 12/25/2014 12:58 PM --% load cont.mat who K_opt who Kd who Ghat load result.dat plot(result(:,1), result(:,2)) plot(result(:,1), result(:,3)) who bode(K_opt) bode(Kd) Kd1 = Kd K_opt1 = K_opt load cont.mat bode(K_opt1, 'b', K_opt, 'r') bode(Kd1, 'b', Kd, 'r') Kd_tmp = c2d(K_opt1, 0.000001); bode(Kd1, 'b', Kd, 'r', Kd_tmp, 'm') clear all load cont.mat who bode(K_opt) K_example = K_opt; load cont.mat bode(K_example, 'b', K_opt, 'r') #ref(2014.12.25-1.jpg,left,noimg,whiteboard #1); #ref(2014.12.25-2.jpg,left,noimg,whiteboard #2); //**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]]