[[授業]]

*Advanced Automation 2020 [#ja23d818]

//[[latest lecture>#j156dee6]]

** &color(green){[lecture #1]}; 2020.9.3 outline of the lecture, review of classical and modern control theory (1/3) [#k1f20901]

- outline of this lecture 
-- syllabus([https://vos-lc-web01.nagaokaut.ac.jp/])
-- evaluation
--- mini report #1 ... 10%
--- mini exam #1 ... 10%
--- mini report #2 ... 10%
--- mini exam #2 ... 10%
--- final report ... 60% 
-- [[schedule2020]] (tentative)
-- map &ref(授業/制御工学特論2017/map_v1.1.pdf); for review &ref(授業/制御工学特論2017/map_v1.1_review.pdf);

- review : stabilization of SISO unstable plant by classical and modern control theory 
-- transfer functions / differential equations
-- poles / eigenvalues
-- impulse response / initial value response
-- ...

 s = tf('s')
 P = 1/(s-1)
 pole(P)
 impulse(P)
 k = 2
 Tyr = feedback(P*k, 1)
 step(Tyr)
 k = 10
 Tyr = feedback(P*k, 1)
 step(Tyr)
 k = 0.5
 Tyr = feedback(P*k, 1)
 step(Tyr)

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


** &color(green){[lecture #2]}; 2020.9.10 review of classical and modern control theory (2/3) with introduction of Matlab/Simulink [#x9c8259b]

+ minute paper
+ introduction of Matlab and Simulink
&ref(授業/制御工学特論2015/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 definition)
-- m file
//-- example: stabilization of inverted pendulum (sorry in Japanese) 
//--- [[derivation of equation of motion>http://c.nagaokaut.ac.jp/~kobayasi/i/Matlab/ex/text.pdf]]
//--- [[stabilization of 1-link pendulum>http://c.nagaokaut.ac.jp/~kobayasi/i/Matlab/ex/1link.html]]
//--- [[stabilization of 2-link pendulum>http://c.nagaokaut.ac.jp/~kobayasi/i/Matlab/ex/2link.html]]
//
//
+ system representation: Transfer Function(TF) / State-Space Representation (SSR)
//
-- example: mass-spring-damper system
-- definition 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)

 %-- 20/09/10 12:48 --%
 a = 1
 b = 2
 a + b
 ex0910_1
 P
 ctrlpref
 ex0910_1
 P
 P.num
 P.num{:}
 P.den{:}
 ex0910_2
 roots(P.den{:})
 roots(L.den{:})
 ex0910_2
 K
 ex0910_2

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

-Q: マトラボの使いかたが分かるオススメの本やサイトが知りたいです
-A: この授業では基本的な使い方ができれば十分のため、まずは今日示したpdfファイルを見てもらえればと思います。


** &color(green){[lecture #3]}; 2020.9.17 review of classical and modern control theory (3/3) [#fa6c0b51]

+ LQR problem
-- controllability
-- cost function J >= 0
-- positive (semi-)definite matrices
-- solution of LQR problem
-- example &ref(ex0917_1.m); &ref(mod0917_1.mdl);
+ ARE and quadratic equation
-- scalar case (solve by hand)
//-- closed loop stability ... Lyapunov criterion
//-- Jmin
-- matrix case &ref(授業/制御工学特論2015/lqr.pdf); ≒ &ref(授業/制御工学特論2015/proof4.pdf); (from B3「動的システムの解析と制御」)

//■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
&color(black,red){&size(20){!!! the remaining page is under construction (the contents below are from last year) !!!};};
//

 %-- 2019/09/19 13:16 --%
 ex0919_1
 A
 B
 P
 A
 A'*P+P*A+Q-P*B*inv(R)*B'*P
 P
 Q
 R
 J
 plot(t, J)
 Jmin

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

-Q: --- 一つ、質問かどうか判断できないものがあり、質問の場合はまた聞いてください。---

-Q: recommend text books for review ?
-A: the followings are only for example,  
-- for the classical control theory: @book{BCKuo:Book,
author = "Benjamin C. Kuo", 
title = "Automatic Control Systems",
edition = "7",
publisher = "Prentice Hall", 
year = "1995"
}
-- for the modern control theory: 
@book{Noton:Book,
author = "Maxwell Noton",
title = "Modern Control Engineering",
publisher = "Pergamon Press Inc.",
year = "1972"
}


** &color(green){[lecture #4]}; 2019.9.26 relation between LQR and H infinity control problem (1/2) [#n5336e05]

- GOAL: to learn difference in concepts between LQR problem and H infinity control problem
//- review of LQR problem and the simple example
+ a simple example relating LQR and H infinity control problems
-- For given plant G
\[
G = \left[\begin{array}{c|c:c} a & 1 & b \\ \hline \sqrt{q} & 0 & 0 \\ 0 & 0 & \sqrt{r} \\ \hdashline 1 & 0 & 0 \end{array} \right]
= \left\{ \begin{array}{l} \dot x = ax + bu + w\\ z = \left[ \begin{array}{c} \sqrt{q} x \\ \sqrt{r} u \end{array}\right] \\ x = x \end{array}\right.
\]
with zero initial state value x(0) = 0, 
find a state-feedback controller
\[ u = -f x \]
such that 
\begin{eqnarray}
(i) &&\quad \mbox{closed loop is stable} \\
(ii) &&\quad \mbox{minimize}
\left\{\begin{array}{l} \| z \|_2 \mbox{ for } w(t) = \delta(t) \quad \mbox{(LQR)} \\
\| T_{zw} \|_\infty \mbox{($H_\infty$ control problem)}\end{array}\right.
\end{eqnarray}
-- comparison of norms in (ii) (for a = -1, b = 1, q = 1, r = 1)
\[
\begin{array}{|c||c|c|}\hline
& \mbox{LQR}: f=-1+\sqrt{2} & \quad \quad H_\infty: f=1\quad\quad \\ \hline\hline
J=\|z\|_2^2 & & \\ \hline
\|T_{zw}\|_\infty & & \\ \hline
\end{array}
\]
+ an alternative description to LQR problem
++ J = (L2 norm of z)^2
++ impulse resp. with zero initial value = initial value resp. with zero disturbance
+ definition of H infinity norm (SISO)
 s = tf('s');
 G1 = 1/(s+1);
 bode(G1);
 norm(G1, 'inf')
 G2 = 1/(s^2 + 0.1*s + 1);
 bode(G2);
 norm(G2, 'inf')
+ definition of H infinity norm (SIMO)
+ solve the problem by hand
+ solve the problem by tool(hinfsyn)
&ref(ex0926_1.m);

 %-- 2019/09/26 13:55 --%
 s = tf('s')
 G1 = 1/(s+1);
 bode(G1);
 norm(G1, inf)
 help norm
 G2 = 1/(s^2+0.1*s+1)
 bode(G2)
 ctrlpref
 bode(G2)
 grid on
 norm(G2, inf)
 format long e
 norm(G2, inf)

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


** &color(green){[lecture #5]}; 2019.10.03 relation between LQR and H infinity control problem (2/2) [#r1ec1147]

+ complete the table in simple example
+ confirm the cost function J for both controllers by simulation &ref(mod1003.mdl);
-- block diagram in the simulink model
-- how to approximate impulse disturbance with a step function
-- impulse disturbance resp. with zero initial condition = initial condition resp. with zero disturbance
+ confirm the closed-loop H infinity norm for both controllers by simulation
-- H infinity norm = L2 induced norm
-- review: steady-state response; the worst-case disturbance w(t) which maximizes L2 norm of z(t) ?
-- how to make the worst-case disturbance w(t)? w(t) for the simple example ?  
+ general state-feedback case: &ref(授業/制御工学特論2015/hinf.pdf);
-- includes the simple example as a special case
-- LQR &ref(授業/制御工学特論2015/lqr.pdf); is included as a special case in which gamma -> infinity, w(t) = 0, B2 -> B, and non-zero x(0) are considered 

 %-- 2019/10/03 13:20 --%
 ex0926_1
 K
 bode(K)
 sqrt(2)/2
 sqrt(2-sqrt(2))
 mod1003
 h
 h = 0.01
 x0
 x0 = 0
 f = -1+sqrt(2)
 zz
 zz(end)
 h
 h = 0.00001
 zz(end)
 f = 1
 zz(end)
 x0
 x0 = 1
 f
 zz(end)
 f = -1+sqrt(2)
 zz(end)
 h
 h = 100
 x0
 x0 = 0
 zz(end)
 sqrt(zz(end)/ww(end))
 h
 h = 10000
 sqrt(zz(end)/ww(end))
 sqrt(2-sqrt(2)) 

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


** &color(green){[lecture #6]}; 2019.10.10 Mixed sensitivity problem 1/3 [#je22d5a0]

+ outline: &ref(授業/制御工学特論2017/map_v1.1_mixedsens1.pdf);
-- sensitivity function S and complementary sensitivity function T
+ H infinity control problem (general case)
-- with generalized plant G
-- including the state-feedback case
+ reference tracking problem
-- how to translate the condition (ii) into one with H infinity norm ?
-- corresponding generalized plant G ?
-- introduction of weighting function for sensitivity function in (ii)
+ design example &ref(ex1010_1.m); &ref(ex1010_2.m);
+ the small gain theorem
-- proof: Nyquist stability criterion
//+ from performance optimization to robust stabilization

 %-- 2019/10/10 12:58 --%
 ex1010_1
 P
 pole(P)
 eig(P)
 ex1010_2
 K_hinf
 K_hinf.a
 eig(K_hinf.a)
 ex1010_2

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

-Q: スモールゲインの定理と、極配置の実部が負となることの関係はどうなっているのか。
-A: ナイキストの安定判別と開ループ系の安定性の関係についての質問と思って回答します。そうでない場合、すみませんがまた聞いてください。
開ループ系が安定な場合、ナイキストの安定判別は簡単になり、ナイキスト軌跡が(-1,0)を囲むことが閉ループ系が安定となるための必要十分条件です。一方、開ループ系が不安定な場合には、その不安定極の数に応じて、ナイキスト軌跡が(-1,0)を囲むことが閉ループ系が安定となるための必要十分条件となります(復習してみてください)。

-Q: WSの決め方はプラントの感度に依存しますか?
-A: 感度関数も相補感度関数もプラント単独ではなくコントローラにも依存するため、
「プラントの感度」は「プラントのゲイン」の意味だと思って回答します。そうでない場合はすみませんがまた聞いてください。
結論から言えば、プラントのゲインに依存します。
十分な目標値追従性能を達成したい周波数帯域でWSのゲインを大きく、逆に性能を諦めて良い周波数帯域でゲインを小さく選びますが、プラントのゲインがそもそも低い周波数帯域では十分な性能は期待できないため、プラントのゲインがそこそこある帯域(プラントの周波数帯域)でなおかつ十分な制御性能を得たい帯域でWSのゲインが大きくなるようにWSを決めることが多いです。


** &color(green){[lecture #7]}; 2019.10.17 Mixed sensitivity problem 2/3 [#x430237d]

+ outline: from point to set &ref(授業/制御工学特論2017/map_v1.1_mixedsens2.pdf); 
+ review: the small gain theorem ... robust stability = H infinity norm condition
+ normalized uncertainty Delta
+ uncertainty model 
+ how to determine P0 and WT
-- example: frequency response of plant with perturbation &ref(ex1017_1.m);
-- frequency response based procedure for P0 and WT &ref(ex1017_2.m);
+ robust stabilization problem and equivalent problem 
-- design example and simulation &ref(ex1017_3.m); &ref(mod1017.mdl);

 %-- 2019/10/17 13:00 --%
 ex1017_1
 ex1017_2
 ex1017_1
 ex1017_2
 ex1017_3
 mod1017
 c
 c = 0.8
 c = 2

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


** &color(green){[lecture #8]}; 2019.10.24 Mixed sensitivity problem 3/3 [#ibb4d1da]
//- schedule (no lecture will be given on Nov.31)
- review: &ref(授業/制御工学特論2017/map_v1.1_mixedsens2.pdf); (1)robust stabilization and (2)performance optimization
- outline:
++ how to design controllers considering both conditions in (1) and (2)
++ gap between NP(nominal performance) and RP(robust performance) 
+ mixed sensitivity problem => (1) and (2) : proof
+ generalized plant for mixed senstivity problem
+ design example &ref(ex1024_1.m); minimize gamma by hand
+ gamma iteration by bisection method &ref(ex1024_2.m);
+ intro. to RP(problem of NP) &ref(ex1024_3.m); 

 %-- 2019/10/24 13:00 --%
 ex1024_1
 K
 ex1024_1
 ex1024_2
 ex1024_3

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


** &color(green){[lecture #9]}; 2019.10.31 robust performance problem 1/3 [#nb63de12]
-- [[schedule2019]] mini report #1; exam #1; lec. on Nov. 7th will be canceled
+ review
-- mixed sensitivity problem : N.P. but not R.P.
-- robust performance problem (R.P.) c.f. the last whiteboard, but can not be solved by tool
-- the small gain theorem
+ an equivalent robust stability (R.S.) problem to R.P.
-- (i) introduction of a fictitious uncertainty Delta_p (for performance)
-- (ii) for 2-by-2 uncertainty block Delta hat which includes Delta and Delta_p 
+ definition of H infinity norm for general case (MIMO)
-- definition of singular values and the maximum singular value
 M = [1, 1i/sqrt(2); 1, -1i/sqrt(2)]
 M'
 eig(M'*M)
 svd(M)
-- mini report #1 &ref(report1.pdf); ... You will have a mini exam #1 related to this report
+ proof of ||Delta hat||_inf <= 1
+ design example: &ref(ex1031_1.m);
-- robust performance is achieved but large gap
-- non structured uncertainty is considered ... the design problem is too conservative

 %-- 2019/10/31 14:07 --%
 M = [1, 1i/sqrt(2); 1, -1i/sqrt(2)]
 M'
 eig(M'*M)
 svd(M)
 ex1031
 ex1031_1

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

** &color(green){[lecture --]}; 2019.11.7 canceled [#jf73e7c5]

** &color(green){[lecture #10]}; 2019.11.14 Robust performance problem (2/3) [#i7f1f228]

+ return of mini report #1
//+ review
//-- robust performance but too conservative
// ex1108_1
//-- robust stability problem for Delta hat and its equivalent problem(?) with Delta tilde
//-- structured unertainty Delta hat and unstructured uncertainty Delta tilde
+ SVD: singular value decomposition
-- definition
-- meaning of the largest singular value (a property and proof)
-- 2-norm of vectors (Euclidean norm)
-- SVD for 2-by-2 real matrix &ref(ex1114_1.m);

 %-- 2019/11/14 13:17 --%
 M = [1/sqrt(2), 1i; 1/sqrt(2), -1i]
 [U, Sigma, V] = svd(M)
 svd(M)
 [U, Sigma, V] = svd(M)
 U'*U
 V'*V
 U*Sigma*V'
 U*Sigma*V'-M
 ex1114_1

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


** &color(green){[lecture #11]}; 2019.11.21 Robust performance problem (3/3) [#z07ce024]

+ review: R.S. prob. for Delta hat and Delta tilde 
+ scaled H infinity control problem
+ relation between three problems
+ how to determine structure of scaling matrix
+ design example &ref(ex1121_1.m);
 ex1031_1
 gam2 = gam_opt
 K2 = K_opt;
 ex1121_1
 gam_opt
+ %%mini report #2 &ref(report2.pdf);%%
+ mini exam #1 (10 min.)

 %-- 2019/11/21 13:50 --%
 ex1031_1
 pwd
 ex1031_1
 gam2 = gam_opt
 K2 = K_opt
 gam2 = gam_opt
 ex1121_1
 gam_opt
 d_opt

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


** &color(green){[lecture #12]}; 2019.11.28 Robust performance problem (3/3) (cont.), Control system design for practical system (1/3) [#ba15e52c]

+ return of mini exam #1
+ review of scaling &ref(ex1128_1.m);
+ mini report #2 &ref(report2.pdf);
+ introduction of a practical system: Speed control of two inertia system with servo motor
-- experimental setup &br;
&ref(setup_fixed.pdf); &br;
&ref(photo.jpg,left,noimg);
-- objective of control system = disturbance attenuation control problem: to drive the drive-side servomotor by generating proper driving signal u (T_M) using drive-side speed y (\omega_M) such that the driven-side speed z (\omega_L) is maintained at constant against the disturbance torque input w (T_L)
-- frequency response experiment and physical model of speed control system
#ref(ex1128_2.m);
&ref(servo1.dat); &ref(servo2.dat); ... old data(the resonance freq. around 50Hz has been lowered in the current system) 
-- room 374 @ Dept. Mech. Bldg. 2

 %-- 2019/11/28 12:59 --%
 ex1128_1
 gam2
 gam3
 format long e
 norm(M3_d, 'inf')
 ex1128_2

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


** &color(green){[lecture #13]}; 2019.12.5 Control system design for practical system (2/3) [#rfc936a0]

+ return of mini report #2;  ... You will have a mini exam #2 related to this report next week
-- [[schedule2019]]
+ review of the experimental system
-- closed-loop system of 2-by-2 plant G and controller K
-- closed-loop gain is desired to be minimized for constant speed operation
-- frequency response data of G can be used; how to handle modeling error of G ?
+ design example (modeling error for Gyu is only considered for simplicity)
-- frequency response experiment data&br;
[[servo1.dat>/:~exp/seigyokougakutokuron_2019/exp/freqresp/1/servo1.dat]]&br;
[[servo2.dat>/:~exp/seigyokougakutokuron_2019/exp/freqresp/1/servo2.dat]]&br;
-- determination of plant model(nominal plant and additive uncertainty weight)&br;
&ref(nominal.m);&br;
&ref(weight.m);
-- configuration of generalized plant and controller design by scaled H infinity control problem using one-dimensional search on the scaling d&br;
&ref(cont.m);
-- comparison of closed-loop gain characteristics with and without control&br; 
&ref(compare.m);
-- result of control experiment&br;
[[result.dat>/:~exp/seigyokougakutokuron_2019/exp/design_example/1/result.dat]]&br;
&ref(perf.m);
//+ room 157 @ Dept. Mech. Bldg.2
+ final report and remote experimental system
++design your controller(s) so that the system performance is improved compared with the design example
++Draw the following figures and explain the difference between two control systems &color(red){(your controller and the design example)};:
+++bode diagram of controllers
+++gain characteristic of closed-loop system from w to z
+++time response of control experiment
++Why is the performance of your system improved(or unfortunately deteriorated)?
--&size(30){&color(red){due date: 6th(Mon) 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){controller.dat, controller_order.dat, and controller.mat};}; &color(black){&size(30){at this page:[[participant list2019>/:~exp/seigyokougakutokuron_2019]](download is also possible)};}; &size(30){&color(red){not later than 25th(Wed) Dec};};
//--Your login password will be e-mailed on Dec 16.  
--the system will be started until next lecture
--You can send up to 10 controllers
--&size(30){&color(black){[[control experimental results will be uploaded here>/:~exp/seigyokougakutokuron_2019/exp]]};};
--freqresp ... frequency response will be measured and uploaded everyday
+ how to improve the performance ?
-- accuracy of the nominal(physical) model
-- weighting for robust stability
//+ detailed explanation of m-files in the previous lecture
+ specifications of the experimental system
++ program sources for frequency response experiment
--- [[freqresp.h>/:~exp/seigyokougakutokuron_2019/freqresp.h]]
--- [[freqresp_module.c>/:~exp/seigyokougakutokuron_2019/freqresp_module.c]]
--- [[freqresp_app.c>/:~exp/seigyokougakutokuron_2019/freqresp_app.c]]
--- format of servo1.dat (w is used instead of u for servo2.dat) 
 1st column ... frequency (Hz)
 2nd column ... gain from u(Nm) to y(rad/s)
 3rd column ... phase (deg) from u to y
 4th column ... gain from u to z
 5th column ... phase (deg) from u to z
++ program sources for control experiment
--- [[hinf.h>/:~exp/seigyokougakutokuron_2019/hinf.h]]
--- [[hinf_module.c>/:~exp/seigyokougakutokuron_2019/hinf_module.c]]
--- [[hinf_app.c>/:~exp/seigyokougakutokuron_2019/hinf_app.c]]
--- format of result.dat
 1st column: time (s)
 2nd column: y (rad/s)
 3rd column: z (rad/s)
 4th column: u (Nm)
 5th column: w (Nm)
++ configuration of control experiment
--- disturbance signal w is specified as described in hinf.h and hinf_module.c:
 w = 0; // disturbance torque for driven motor                       
 if((t > 2)&&(t < 3)){
   w = RATED_TORQ * -0.15;
 }
 if((t > 4)&&(t < 5)){
   w = RATED_TORQ * -0.1 * sin(2*M_PI*5.0 * (t-4.0));
 }
 da_conv(torq_volt_conv_1(w), 1);
--- control signal u is limited as specified in hinf.h and hinf_module.c:
 #define U_MAX (RATED_TORQ / 3.0)
 
 if(u > U_MAX) u = U_MAX;
 if(u < -U_MAX) u = -U_MAX;
u is generated by PI control for t < 1(s). Your designed controller is started at t = 1(s).
++ 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[0] = (double)read_theta(0) / (double)Pn212 * 2.0 * M_PI;
 theta_rad[1] = (double)read_theta(1) / (double)Pn212 * 2.0 * M_PI;
 y = (theta_rad[0] - theta_rad_before[0]) / msg->sampling_period;
 z = (theta_rad[1] - theta_rad_before[1]) / msg->sampling_period;
 theta_rad_before[0] = theta_rad[0];
 theta_rad_before[1] = theta_rad[1];
where the sampling period is given as 0.25 ms.

 %-- 2019/12/05 13:03 --%
 pwd
 nominal
 weight
 cont
 compare
 ctrlpref
 compare
 perf

-Q: 実機パラメータのイナーシャはどうやって試験をして導出しているか。
-A: 周波数応答実験の結果に物理モデルが近くなるように調整しました。

-Q: C_S, C_L はダンパなのか。C_S はどこの部分のダンパというかたちになるのか。
-A: C_S は軸の捩りに伴う減衰係数です(これが0の場合、二つの慣性の捩り振動は減衰することなく永久に持続する)。C_L は従動側慣性の回転に伴う減衰係数です(これが0の場合、二慣性系全体は与えられた初速に応じて永久に回転し続ける)。

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


** &color(green){[lecture #14]}; 2019.12.12 Control system design for practical system (3/3) [#s88e0e8f]

- review & supplemental explanations 
-- final report
--- control objective is to suppress speed fluctuation of the driven-side motor not the drive-side motor (a large vibration at the drive-side motor is allowed)
--- unstable controller is admitted
--- no strict control objective is given ( there is a freedom to define what is good performance; a frequency dependent weighting function can be introduced to evaluate the performance ) 
--- c2d() is used to discretize the resultant continuous-time controller
-- web based remote experiment system
--- now you can login after registration
--- room temperature is displayed and stored in temp.txt (Bosch Sensortec BME280 is used)  
//--- the system will be unavailable from %%21(Fri)%% &color(red){7:30 on 22(Sat)}; to &color(red){19:00 on}; 22(Sat) due to electrical construction scheduled on 22(sat)
- preparation of your own controller(s) by using the remote experiment system
- mini exam #2 (14:00〜)

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


//#ref(nominal_ave.m);
//#ref(sub.m);


** &color(green){[lecture #15]}; 2019.12.19 Control system design for practical system (cont.) [#h01bfc0b]

- return of mini exam #2
- preparation of your own controller(s)
-- use [[design example #3>/:~exp/seigyokougakutokuron_2019/exp/design_example/3/]] for comparison with your design
-- discuss relationship between the required figures (a), (b), and (c)
-- driving and driven torque are set to zero when driven-motor speed z or driving-motor speed y exceeds a limit as in [[hinf.h>/:~exp/seigyokougakutokuron_2019/hinf.h]]:
 #define SPEED_MAX 60.0 // driving torque becomes zero when rotational speed is out of range from -60.0 rad/s to 60.0 rad/s in order to avoid shutting down the driving motor by the maximum speed excess alarm (2018.12.19)
and [[hinf_module.c>/:~exp/seigyokougakutokuron_2018/hinf_module.c]]:
        int flag_speed_excess = 0; // 2018.12.19
 
 	    if(flag_speed_excess == 1) w = 0; // 2018.12.20
 	    da_conv(torq_volt_conv_1(w), 1);
 
 	    if((fabs(z) > SPEED_MAX) || (fabs(y) > SPEED_MAX)) flag_speed_excess = 1; // 2018.12.20 further modified after today's lecture

 		if(flag_speed_excess == 1) u = 0; // 2018.12.19
                 
 #ifndef NO_CONTROL
                 da_conv(torq_volt_conv_0(u), 0);
 #endif
//-- the system will be unavailable 7:30 -- 19:00 on 22(Sat)

- questionnaires
-- to university
-- for web-based experimental environment

 %-- 2019/12/19 13:31 --%
 nominal
 weight
 cont
 compare
 perf
 nominal
 weight
 cont
 compare
 perf
 weight

//■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
//&color(black,red){&size(20){!!! the remaining page is under construction (the contents below are from 2017) !!!};};
//

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

//- 2018.12.20 19:00
//&size(30){&color(red){due to unexpected alert occurred at 17:33, hinf_module.c is further modified at 18:40 as follows (drive-side speed is additionally evaluated to prevent the alert):};};

//**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]]

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS