[[授業]] *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(green){[lecture #8]}; 2015.11.5 Mixed sensitivity problem 3/3 [#oc5e65d6] + review : (1)robust stabilization and (2)performance optimization + mixed sensitivity problem : a sufficient condition for (1) and (2) -- proof by definition of H infinity norm + construction of the generalized plant + design example &ref(ex1105_1.m); + gamma iteration by bisection method &ref(ex1105_2.m); + a problem of the mixed sensitivity problem: nominal performance and robust performance &ref(ex1105_3.m); + introduction of robust performance problem %-- 11/5/2015 1:37 PM --% ex1105_1 ex1105_2 gam ex1105_2 WT ex1105_2 ex1105_3 ex1105_2 ex1105_3 #ref(2015.11.05-1.jpg,left,noimg,whiteboard #1); #ref(2015.11.05-2.jpg,left,noimg,whiteboard #2); #ref(2015.11.05-3.jpg,left,noimg,whiteboard #3); ** &color(green){[lecture #9]}; 2015.11.12 robust performance problem 1/3 [#tae1c2b9] -- [[schedule2015]] mini report and exam + review: robust performance problem + an equivalent robust stability problem + definition of H infinity norm for general case (MIMO) + definition of (maximum) singular value M = [j, 0; -j, 1] M' eig(M'*M) svd(M) + mini report #1 &ref(report1.pdf); -- write by hand -- due date and place of submission -> see [[schedule2015]] -- check if your answer is correct or not before submission by using Matlab -- You will have a mini exam #1 related to this report + SVD: singular value decomposition -- definition [U,S,V] = svd(M) M = [j, 0; -j, 1; 2, 3] -- unitary matrix and 2 norm of vectors -- a property of SVD: input-output interpretation -- illustrative example: rotation matrix &ref(ex1112_1.m); + H infinity norm of Delta hat %-- 11/12/2015 1:01 PM --% M = [j, 0; -j, 1] M' eig(M'*M) svd(M) M = [j, 0; -j, 1] M' eig(M'*M) svd(M) (3+sqrt(5))/2 sqrt((3+sqrt(5))/2) help svd [U,S,V] = svd(M) U'*U M = [j, 0; -j, 1; 2, 3] [U,S,V] = svd(M) V'*V ex1112_1 #ref(2015.11.12-1.jpg,left,noimg,whiteboard #1); #ref(2015.11.12-2.jpg,left,noimg,whiteboard #2); #ref(2015.11.12-3.jpg,left,noimg,whiteboard #3); #ref(2015.11.12-4.jpg,left,noimg,whiteboard #4); -Q: Σでノルムが決まる?→固有値で -A: 与えられた行列Mを、入力をベクトル a、出力をベクトル b とする入出力システム \[ b = M a \] とみなすと、出力の2ノルムの最大値は、入力の2ノルムの \[ \bar \sigma(M) \] 倍となります(それを超えるような a はない)。 質問の意図と違っている場合はまた聞いてください。 -Q: it was too fast -A: This might be caused by my less explanation in Japanese. I will improve this in the next lecture. ** &color(green){[lecture #10]}; 2015.11.19 Robust performance problem (2/3) [#la4839f6] + return of mini report #1 + review and outline: robust stability problem for Delta hat and its equivalent problem(?) + signal vector's size is not restricted in H infinity control problem and small gain theorem + H infinity norm of Delta hat + design example: robust performance is achieved &ref(ex1119_1.m); + non structured uncertainty is considered ... the design problem is too conservative //■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ &color(black,red){&size(20){!!! the remaining page is under construction (the contents below are from 2014) !!!};}; // #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]]