[[授業]]

*Advanced Automation [#dd75618d]

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


- 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% 
-- [[schedule2017]] (tentative)
-- map &ref(map_v1.1.pdf); for review &ref(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
-- ...

 %-- 2017/09/07 13:29 --%
 s = tf('s')
 P = 1/(s-1)
 pole(P)
 impulse(P)
 Tyr = feedback(P*k, 1)
 k = 2
 Tyr = feedback(P*k, 1)
 P
 Tyr = feedback(P*k, 1)
 step(Tyr)
 k = 0.5
 Tyr = feedback(P*k, 1)
 step(Tyr)
 k = 10
 Tyr = feedback(P*k, 1)
 step(Tyr)

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

-Q: I don't know how to use the MATLAB.
-Q: マトラボの使い方が分かりません。
-A: A brief explanation of MATLAB and Simulink will be given in the next lecture by using simple examples. 
-A: 次週、MATLAB(とSimulink)の使い方について説明します。

-Q: 個人的には倒立振子のようなモデルから制御系の説明が最初にあると制御工学のイメージがつきやすい
-A: 確かに、不安定=倒れる、という分かり易さは魅力なのですが、1次系で表すことができません。今回は数式の取扱いの容易さから1次系を選びました。
倒立振子については、次回、別の演習で用いていたシミュレーションモデルを紹介したいと思います。

-Q: when you conduct please speak slowly.
-A: Thank you for the sugestion. I will improve my speaking. 


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

+ 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
-- 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
-- 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(ex0914_1.m); &ref(mod0914_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(ex0914_2.m); &ref(mod0914_2.mdl);
--- Gain Margin(GM); Phase Margin(PM)

 %-- 2017/09/14 13:05 --%
 a = 1
 who
 a + 2
 demo
 lookfor demo
 demo toolbox
 demo toolbox]
 demo toolbox
 t = [1, 2, 3]
 t = [1 2 3]
 u = [1; 2; 3]
 t
 t'
 penddemo
 help penddemo
 penddemo
 ls
 ex0914_1
 who
 P

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

-Q: ○7について、
\[
\frac{b_1 s + b_0}{s^2 + a_1 s + a_0} + d
\]
とした時、対応するSSRは、
\[
\left[\begin{array}{cc|c} 0 & 1 & 0 \\ -a_0 & -a_1 & 1 \\ \hline b_0 & b_1 & 0 \end{array}\right]
\]
となるという理解で良いでしょうか。(ホワイトボードの説明では、
\[
\left[\begin{array}{cc|c} 0 & 1 & 0 \\ -a_1 & -a_2 & 1 \\ \hline b_1 & b_2 & 0 \end{array}\right]
\]
に見える為)
-A: その理解で正しいです。赤枠で囲んだ際に添え字が一つずれていることに気付いていませんでした。申し訳ありません。

-Q: I didn't understand the usefulness of SSR.
-A: LQR problem is formulated and solved by using SSR, which will be explain in the next lecture.

-Q: TF から SSR への変換の過程がよくわからなかった。
-A: 与えられた TF に対応する SSR は、状態ベクトルの取り方によって一意に決まらない(無限に存在する)ため、代表的な SSR の型を利用します。
今日扱ったのは controllable canonical form (可制御正準形)で、伝達関数の分母・分子多項式及び直達項をA,C,D行列の特定の場所に当てはめることで、TFからSSRの変換を行ったことになります。この双対の可観測正準形も同様です。他に、今日は紹介しませんでしたが、共振モード毎のブロック対角構造がA行列に表れる型などもあり、目的に応じて使い分けられます。


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

+ 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(ex0921_1.m); &ref(mod0921_1.mdl);

 %-- 2017/09/21 13:17 --%
 ex0921_1
 B
 A
 A*B
 P
 eig(P)
 F
 J
 x0
 x0'*P*x0

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

-Q: MATLABの使い方が所々わからない。
-A: 今日のように時間の余ったときにでも聞いてください。

-Q: QとRの値は何で決まるのですか?
-A: 設計者が決めます。大雑把に言うと、Qを大きく(Rを小さく)すると、状態xの収束性が上がるが大きな制御入力が必要となり、Qを小さく(Rを大きく)すると、状態xの収束性が犠牲になるが小さな制御入力で済む、というトレードオフがあるので、それを考慮して決めます。

-Q: f = b/r P と出来る理由が分からなくなってしまった
-Q: ホワイトボード○5のfとPの関係がどこから出てきたのか分からなかった
-A: LQR問題の解において、状態フィードバックゲインFは代数リカッチ方程式の解Pを用いて与えられます。この関係式(スカラの例題の場合は f = b/r p)を使うと、(リカッチ方程式とは無関係に導出した)f に関する二次方程式が、Pに関する代数リカッチ方程式と同一であることが示されます。わからなければまた聞いてください。

-Q: In m-file, line 13
F = R\B'"P
what is this (Yen mark) operator? the same process this?
inv(R)\B'

-A: Yen mark means `\'. X\Y and Y/X respectively mean
\[ X^{-1} Y, \quad Y X^{-1}. \] 

-Q: LQR:L→ 非線形は扱えない?その影響は偏差?時間?パラメータ変動になる?
-A: 先週紹介した状態空間実現は、状態ベクトルに関する一階の線形微分方程式です。よって、非線形特性を直接表現することはできず、平衡点回りで線形化するのが典型的な対処法です。一方、安定となるよう設計された制御系は通常、余裕を持ち、若干の非線形特性は許容されます。この意味で大きな安定余裕を持つように制御系を設計すれば、間接的に非線形特性を考慮できる場合もあります。

-Q: If it is possible, I want to practice more during the lecture, may I get more additional example materials to try on Matlab, for the each topics.
-A: 
-A: I think this is because a lack of detailed explanation on examples: The mass-spring-damper system given in the today's lecture was unstable one choosing the damping coefficient as a negative value. Please try to change those values; I completely forgot to explain physical meaning of Q and R and how to choose them. As in the Q&A above (sorry in Japanese), matrices Q and R are given by designer considering trade-off between performance and cost e.g. energy consumption. Please try with other values of Q and R, to confirm the trade-off; Therefore, I would like to recommend you to change numerical values in examples for better understandings. If this answer is not sufficient for you, please ask again.

-Q: 少しスピードを落としてほしい
-A: 
-A: 日本語の説明を少なくしたせいと思います。やはり同じ説明を日本語でもするようにします。

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



 %-- 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)


-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) [#j76be421]

- 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) [#t7b9b0d1]

+ 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 [#ba355624]

+ 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 [#i436a32d]

+ 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 [#ma21462e]
- 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 [#oc772f0a]


** &color(green){[lecture #9]}; 2016.11.17 robust performance problem 1/3 [#re9957f7]
-- [[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) [#u1420b6b]

+ 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) [#m73eb5a4]

+ 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) [#w2b0fa4e]

+ 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) [#m045e91f]

+ 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) [#zf2cf84f]

- 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.) [#m632cc7d]

- 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

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

-Q:ミニ試験2の返却は行いますか?
-A:部屋まで来てもらえれば週明けに返します。

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