[[授業]]

*Advanced Automation [#w9399f71]

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

- 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% 
-- [[schedule2016]] (tentative)
-- map
#ref(授業/制御工学特論2015/map_v1.0_review.pdf);

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

 %-- 2016/09/01 14:26 --%
 s = tf('s')
 k = 2
 alpha = -1
 Tyr = k/(s+alpha+k)
 step(Tyr, 'b')
 k = 100
 Tyr2 = k/(s+alpha+k)
 step(Tyr, 'b', Try2, 'r--')
 step(Tyr, 'b', Tyr2, 'r--')

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


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

+ 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 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(ex0908_1.m); &ref(mod0908_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(ex0908_2.m); &ref(mod0908_2.mdl);
--- Gain Margin(GM); Phase Margin(PM)

 %-- 2016/09/08 13:08 --%
 a = 1
 a
 pwd
 ls
 ex0908_1
 sqrt(m/k)/(2*pi)
 sqrt(k/m)/(2*pi)

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


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

+ 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(授業/制御工学特論2015/lqr.pdf); ≒ &ref(授業/制御工学特論2015/proof4.pdf); (from B3「動的システムの解析と制御」)
+ example
&ref(mod0915.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

 %-- 2016/09/15 14:18 --%
 mod0915
 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
 x0
 J
 x0'*P*x0
 plot(t, J)

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

-Q: 各行列の意味がよくわからなかった。
-A: Matlab で入力した行列のことと仮定して回答します(そうでない場合はまた聞いてください)。

 A = [1, 2; 0, -1]; % unstable plant
 B = [0; 1];
は、制御対象の例として与えました。何でも良いですが、ここでは不安定な方が分かり易いかと思い、不安定な制御対象としました。

 Uc = ctrb(A,B);
 det(Uc) % should be nonzero
は、可制御性を確認している部分です。(A,B)の可制御性行列を Uc として作り、det で行列式を表示しています。

 C = eye(2); % dummy
 D = zeros(2,1); % dummy
おそらくこの部分を全く説明しなかったので混乱していると思います(すみません)が、
この C と D を y = Cx + Du に代入すると、y = x となります。つまり、出力に状態をそのまま取り出すための設定です。これで、Simulink の制御対象のブロックの出力が、状態ベクトル x となります。

 F = [0, 0]; % without control
フィードバック制御無しの設定です。ここまで入力して一度、シミュレーションスタートするべきでした(不安定な、信号が発散する様子が確認できます)。が、時間なくスキップしたと思います。すみません。

 x0 = [1; 1]; % initial state
初期値ベクトルを適当に与えています。

 Q = eye(2);
 R = 1;
評価関数の重み行列(という呼び方で説明しなかったと思いますが、そう呼ばれます)の設定です。制御系の設計者が与えるものです。

 P = are(A, B/R*B', Q);
リカッチ方程式の正定解Pを計算します。この結果を実際にリカッチ方程式に代入すると0となるところも見せるべきでした。やってみてください。

 eig(P) % should be positive
全て正の実数となることから、実際に正定となっていることを確認します。

 F = R\B'*P;
状態フィードバックゲインFを計算しています。

 x0'*P*x0
評価関数Jの最小値を表示します。スカラの簡単な場合について、求めた最適解fをJの式に代入しても、この同じ式になる、ということも確認できるのですが、時間なくスキップしました。やってみてください。


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

- 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 condition x(0) = 0, 
find a state-feedback controller
\[ u = -f x \]
such that 
\begin{eqnarray}
(i) &&\quad \mbox{closed loop is stable} \\
(ii) &&\quad 
\left\{\begin{array}{l} \| z \|_2 \rightarrow \mbox{min for } w(t) = \delta(t) \quad \mbox{(LQR)} \\
\| T_{zw} \|_\infty \rightarrow \mbox{min} \quad \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 and L2 norm of z
++ impulse disturbance resp. with zero initial condition and initial condition resp. with zero disturbance
+ 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(ex0929.m);

 %-- 2016/09/29 13:46 --%
 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')
 format long e
 norm(P2, 'inf')
 grid on
 ex0929

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

-Q: H∞ノルムが何を表しているのか
-A: 簡単に言うと安定なシステムの最大ゲインです。


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

+ complete the table in simple example
+ confirm the cost function J for both controllers by simulation &ref(mod1006.mdl);
-- block diagram in the simulink model
-- how to approximate impulse disturbance
-- 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 (common mdl file is available)
-- review: steady-state response (see whiteboard#4 @ lec. #2)
-- H infinity norm = L2 induced norm
-- 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(授業/制御工学特論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 

 %-- 2016/10/06 13:09 --%
 1/sqrt(2)
 sqrt(2+sqrt(2))
 sqrt(2-sqrt(2))
 mod1006
 ex0929
 A
 B
 C
 D
 h
 h = 0.01
 x0 = 0
 f
 f = -1+sqrt(2)
 zz
 zz(end)
 h = 0.0001
 zz(end)
 x0
 x0 = 1
 zz(end)
 f
 f = 1
 x0
 x0 = 0
 zz(end)
 x0
 h
 h = 10
 zz(end)/ww(end)
 sqrt(zz(end)/ww(end))
 f
 h = 100
 sqrt(zz(end)/ww(end))
 f
 f = -1+sqrt(2)
 sqrt(zz(end)/ww(end))

&ref(2016.10.06-1.jpg,left,noimg,whiteboard #1); ... sorry for the missing picture in which A, B1, B2, C1, and D12 were additionally written in red color.
#ref(2016.10.06-2.jpg,left,noimg,whiteboard #2);
#ref(2016.10.06-3.jpg,left,noimg,whiteboard #3);

-Q: Some things can not be described clearly.
-A: Can you ask me in detail ?

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

+ review: LQR and H infinity
+ outline: &ref(授業/制御工学特論2015/map_v1.0_intro1.pdf); ; [[schedule2016]] 
+ H infinity control problem (general case)
+ reference tracking problem
+ weighting function for sensitivity function
+ design example &ref(ex1013_1.m); &ref(ex1013_2.m);
+ the small gain theorem
-- proof: Nyquist stability criterion
+ from performance optimization to robust stabilization

 %-- 2016/10/13 13:58 --%
 ex1013_1
 P
 pole(P)
 ex1013_2
 K
 K_hinf
 eig(K_hinf.a)

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


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

+ review &ref(授業/制御工学特論2015/map_v1.0_intro2.pdf); and outline
+ an equivalent problem of robust stabilization for reference tracking problem
+ uncertainty model and normalized uncertainty Delta
+ how to determine P0 and WT
-- example: frequency response of plant with perturbation &ref(ex1020_1.m);
-- frequency response based procedure for P0 and WT &ref(ex1020_2.m);
+ robust stabilization problem and equivalent problem 
-- design example and simulation &ref(ex1020_3.m); &ref(mod1020.mdl);

 %-- 2016/10/20 13:36 --%
 ex1020_1
 ex1020_2
 ex1020_3
 mod1020
 c

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

-Q: Δは、何を表しているのか忘れてしまったので、もう一度説明お願いします。
-A: 安定で、H∞ノルムが1以下の1入出力系です(最大ゲインが1以下の安定な伝達関数、でも良いです)。


** &color(green){[lecture #8]}; 2016.10.27 Mixed sensitivity problem 3/3 [#kc328087]
- review: &ref(授業/制御工学特論2015/map_v1.0_intro2.pdf); (1)robust stabilization and (2)performance optimization
- outline:
++ how to design controllers considering both conditions in (1) and (2)
++ gap between nominal performance and robust performance 
+ mixed sensitivity problem ---> (1) and (2) : proof
+ generalized plant for mixed senstivity problem
+ design example &ref(ex1027_1.m); minimize gamma by hand
+ gamma iteration by bisection method &ref(ex1027_2.m);
+ nominal performance and robust performance &ref(ex1027_3.m); 
+ introduction of robust performance problem

 %-- 2016/10/27 13:46 --%
 ex1027_1
 K
 ex1027_2
 ex1027_3

#ref(2016.10.27-1.jpg,left,noimg,whiteboard #1);
#ref(2016.10.27-2.jpg,left,noimg,whiteboard #2);
... sorry for the mistake in the left-upper inequality, please correct it as pointed out by a student as below
#ref(2016.10.27-3.jpg,left,noimg,whiteboard #3);

-Q:
\[\left[\begin{array}{cc} \overline{m_1(j\omega)} & \overline{m_2(j\omega)} \end{array} \right] \left[\begin{array}{c} m_1(j\omega) \\ m_2(j\omega) \end{array} \right] = |m_1(j\omega)|^2 + |m_2(j\omega)|^2 \]
とならないでしょうか?
-A: ごめんなさい、その通りです。できれば授業中に訂正してもらえると助かります。

** &color(green){[]}; 2016.11.10 canceled [#b7a3b275]


** &color(green){[lecture #9]}; 2016.11.17 robust performance problem 1/3 [#mdb6d7fe]
-- [[schedule2016]] &color(blue){(modified)}; mini report and exam
+ review
-- mixed sensitivity problem
 ex1027_1
 ex1027_2
 ex1027_3
-- robust performance problem
c.f. the last whiteboard
+ an equivalent robust stability problem
+ definition of H infinity norm for general case (MIMO)
-- definition of singular values and the maximum singular value
 M = [1/sqrt(2), 1/sqrt(2); j, -j]
 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(ex1117_1.m);
-- robust performance is achieved but large gap
-- non structured uncertainty is considered ... the design problem is too conservative

 %-- 2016/11/17 13:05 --%
 ex1027_1
 ex1027_2
 ex1027_3
 M = [1/sqrt(2), 1/sqrt(2); j, -j]
 M'
 eig(M'*M)
 svd(M)
 ex1117_1

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

-Q: 特異値は何を意味しているのか?
-Q: 特異点(値:小林註)は何を表していますか?(最大特異点(値)\[ \bar \sigma \] も)
-A: 次回、特異値分解(singular value decomposition)と共に説明します。


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

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

 %-- 2016/11/24 13:04 --%
 ex1027_2
 ex1117_1
 M = [1/sqrt(2), 0; 1/sqrt(2), 0]
 svd(M)
 M
 [U, S, V] = svd(M)
 [U, S, V] = svd(M);
 U
 V
 U*S*V'
 U*S*V' - M
 S
 U'*'
 U'*U
 V'*V
 help norm
 ex1124_1

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

-Q: ホワイトボード◯6の a=v1 の v1 が V* の成分だった理由が分かりませんでした。
-A: 説明が悪かったと思いますが、m×m行列 V の第一列を列ベクトル v1 と決めた、というだけです。この結果、V* の第一行は行ベクトル v1* となります。わからなければまた聞いてください。


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

+ review: conservative design with Delta tilde 
+ scaled H infinity control problem
+ how to determine structure of scaling matrix
+ design example &ref(ex1201_1.m);
 ex1027_2
 ex1117_1
 gam_opt0 = gam_opt
 K_opt0 = K_opt;
 ex1201_1
 gam_opt
+ mini exam #1

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

 %-- 2016/12/01 13:59 --%
 ex1027_2
 ex1117_1
 gam_opt
 gam_opt0 = gam_opt
 K_opt0 = K_opt;
 ex1201_1
 gam_opt
 gam_opt0
 d_opt


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

+ return of mini exam #1;
+ review of the scaled H infinity control problem
+ effect of scaling &ref(ex1208_1.m);
 ex1027_2
 ex1117_1
 gam_opt0 = gam_opt
 K_opt0 = K_opt;
 ex1201_1
 gam_opt
 ex1208_1
+ mini report #2 %%&ref(report2.pdf);%% &color(red){&size(20){please use modified file &ref(report2_fixed.pdf);};}; ... You will have a mini exam #2 related to this report
+ introduction of a practical system: active noise control in duct
-- experimental setup
#ref(授業/制御工学特論2015/exp_apparatus1.jpg,left,noimg);
#ref(授業/制御工学特論2015/exp_apparatus2.jpg,left,noimg);
-- objective of control system: to drive control loudspeaker by generating proper driving signal u using reference microphone output y such that the error microphone's output z is attenuated against the disturbance input w
-- frequency response experiment
#ref(ex1208_2.m);
#ref(spk1.dat);
#ref(spk2.dat);

 %-- 2016/12/08 13:25 --%
 ex1027_2
 ex1117_1
 gam_opt0 = gam_opt
 K_opt0 = K_opt;
 ex1201_1
 gam_opt
 ex1208_1
 ex1208_1
 format long
 ex1208_1
 M = [0, 0.5; sqrt(2), 0]
 W = mdiag(1/sqrt(3), 0)
 W = mdiag(1/sqrt(3), 1)
 svd(M)
 Mhat = inv(W)*M*W
 Mhat = W\M*W
 svd(Mhat)
 ex1208_2

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


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

+ return of mini report #2
-- mini exam #2
-- [[schedule2016]] Dec.20(added)
+ 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
-- how to handle modeling error of G ?
+ design example
-- determination of plant model(nominal plant and additive uncertainty weight)&br;
&ref(nominal.m);&br; &ref(subspace.m); ... replacement of n4sid in System Identification Toolbox (not provided in IPC)&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;
&ref(result.dat);&br; &ref(compare_result.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 and frequency spectrum (PSD) of control experiment
++Why is the performance of your system improved(or unfortunately deteriorated)?
--&size(30){&color(red){due date: 6th(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 35
--submit your &size(25){&color(red){controller.dat, controller_order.dat, and controller.mat};}; &color(magenta){&size(30){at this page:[[participant list2016>/:~exp/seigyokougakutokuron_2016]](download is also possible)};}; &size(30){&color(red){not later than 28th(Wed) Dec};};
--Your login password will be e-mailed on Dec 16.  
--You can send up to 5 controllers
--&size(25){&color(red){[[control experimental results will be uploaded here>/:~exp/seigyokougakutokuron_2016/exp]]};};
--freqresp ... frequency response will be measured and uploaded everyday
+ how to improve the performance ?
-- order of the nominal plant
-- weighting for robust stability
//+ detailed explanation of m-files in the previous lecture
+ specifications of the experimental system
++ experimental equipments
-- loudspeakers: AURA SOUND NSW2-326-8A (2inch, 15W)
-- pressure sensors: NAGANO KEIKI KP15
-- A/D, D/A converters: CONTEC AD12-16(PCI), DA12-4(PCI)
-- PC: Dell Dimension 1100
-- OS: Linux kernel 2.4.22 / Real Time Linux 3.2-pre3
++ program sources for frequency response experiment
-- [[freqresp.h>/:~exp/seigyokougakutokuron_2016/freqresp.h]]
-- [[freqresp_module.c>/:~exp/seigyokougakutokuron_2016/freqresp_module.c]]
-- [[freqresp_app.c>/:~exp/seigyokougakutokuron_2016/freqresp_app.c]]
-- format of spk1.dat (u is used instead of w for spk2.dat) 
---1st column ... frequency (Hz)
---2nd column ... gain from w(V) to y(V) (signal's unit is voltage (V))
---3rd column ... phase from w to y
---4th column ... gain from w to z
---5th column ... phase from w to z
++ program sources for control experiment
-- [[hinf.h>/:~exp/seigyokougakutokuron_2016/hinf.h]]
-- [[hinf_module.c>/:~exp/seigyokougakutokuron_2016/hinf_module.c]]
-- [[hinf_app.c>/:~exp/seigyokougakutokuron_2016/hinf_app.c]]
-- format of result.dat
---1st column: time (s)
---2nd column: z (V)
---3rd column: y (V)
---4th column: u (V)
---5th column: w (V)
++ configuration of control experiment
-- disturbance signal w is specified as described in hinf.h and hinf_module.c:
 #define AMP 3.0 // amplitude for disturbance
 #define DIST_INTERVAL 5 // interval step for updating w
 
 count_dist++;
 if(count_dist >= DIST_INTERVAL){
   w = AMP * (2. * rand() / (RAND_MAX + 1.) - 1.); // uniform random number in [-AMP, AMP]
   count_dist = 0;
 }
 
 da_conv(V_OFFSET + w, 0); // D/A output to noise source
w is updated with 1ms period (sampling period 0.2ms times DIST_INTERVAL 5)
-- control signal u is limited to [-4, 4] as specified in hinf.h and hinf_module.c:
 #define U_MAX 4.00
 
 if(u > U_MAX) u = U_MAX;
 if(u < -U_MAX) u = -U_MAX;
u is set to 0 for t < 10(s). (controller is operated for 10 <= t < 15.)
-- a high pass filter with cut-off frequency are used to cut DC components in z and y as described in hinf.h and hinf_module.c
 // HPF(1 rad/s) to cut DC in z and y
 #define AF 9.9980001999866674e-01  
 #define BF 1.9998000133326669e-04
 #define CF -1.0000000000000000e+00
 #define DF 1.0000000000000000e+00
 
 ad_conv(&yz); // A/D input
 
 // HPFs
 yf = CF*xf_y + DF*yz[0];
 xf_y = AF*xf_y + BF*yz[0];
 zf = CF*xf_z + DF*yz[1];
 xf_z = AF*xf_z + BF*yz[1];
//
//%%[[experiment directory>/:~exp/seigyokougakutokuron_2015]]%%
//
//+ mini exam #2

//[[network camera>/:~exp/picture/image.jpg]]

 %-- 2016/12/15 13:18 --%
 ls
 nominal
 ls data
 nominal
 ctrlpre
 ctrlpref
 nominal
 345/3.6
 who
 G0
 size(G0.a)
 weight
 help n4sid
 eig(A)
 max(real(eig(A)))
 weight
 cont
 compare
 compare_result

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

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

- preparation of your own controller(s) by using the remote experiment system
but no explanation will be given (Kobayashi will not be in Nagaoka. I'm sorry)



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

- preparation of your own controller(s)
- mini exam #2
- questionnaires
-- to university
-- for web-based experimental environment

 %-- 2016/12/22 13:09 --%
 weight
 load result.dat
 pwd
 load data/result.dat;
 plot(result(:,1),result(:,4),'-');
 compare

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

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

 %-- 12/24/2015 1:11 PM --%
 compare
-Q:ミニ試験2の返却は行いますか?
-A:部屋まで来てもらえれば週明けに返します。

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


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