[[授業]]

*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: 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: 日本語の説明を少なくしたせいと思います。やはり同じ説明を日本語でもするようにします。


** &color(green){[lecture #4]}; 2017.9.28 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 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, $H_2$ control)} \\
\| 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');
 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(ex0928.m);

 %-- 2017/09/28 13:40 --%
 s = tf('s');
 P1 = 1/(s+1);
 bode(P1);
 norm(P1, 'inf')
 P1
 norm(P1, 'inf')
 P2 = 1/(s^2 + 0.1*s + 1);
 bode(P2)
 grid on
 norm(P3, 'inf')
 norm(P2, 'inf')
 format long e
 norm(P2, 'inf')
 ex0928
 ex0929
 ex0928
 f
 K
 dcgain(K)
 gopt
 1/sqrt(29
 1/sqrt(2)
 gopt

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

-Q: H∞制御がまず、どのような設計で使われているなどの具体例があれば嬉しいと思いました
-A: 話が抽象的過ぎてピンとこないという指摘ですね。ただ、この制御対象ならばこの制御理論を使うべき、というルールは特に無く、設計者がどうしたいか、どんな制御系を良しとするかによって制御理論は選んで使われ(無ければ新たに開発され)ます。その意味で、H∞制御が使われる典型的な場面は、制御対象の平均的なモデルとその不確かさ(バラツキ具合、変動)がおおよそ分かっている場合に、それに対する安定性(と性能も)を保証するコントローラ(ロバストコントローラ)の設計です。古い例では小型自動着陸実験機ALFLEXが挙げられます([[大野他、ALFLEXのロバスト飛行制御則設計、計測自動制御学会論文集, 34(12):1905--1912(1998)>https://www.jstage.jst.go.jp/article/sicetr1965/34/12/34_12_1905/_article/-char/ja/]])。開発期間が限られており多くの試行錯誤が許されなかったことなどからH∞制御が採用されています。もう一つ、これも古い例ですが、レインボーブリッジや明石海峡橋など、建設中の主塔が強風で振動するのを抑制するためにH∞制御が採用されています([[B.F.Spencer Jr. and Michael K.Sain: Controlling Buildings: A New Frontier in Feedback, IEEE Control Systems, 17(6):19{35, 1997>http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.503.8440&rep=rep1&type=pdf]])。他にも自動車のサスペンションの制御など、数多くの応用事例があります。調べてみてください。

-Q: 具体的にどのようなシステムを制御する時にH∞、状態FBを使い分けるのか?
-A: 説明が悪かったと思いますが、H∞制御と状態フィードバックは無関係です。つまり、全状態が利用できる状況が状態フィードバック、状態は直接利用できず観測出力を利用する場合が出力フィードバックです。どちらもH∞制御との組み合わせがあります。今日は、手計算では状態フィードバックコントローラをH∞制御で求め、hinfsynでは出力フィードバックH∞コントローラを求めました。出力フィードバックと状態フィードバックをどう使い分けるかという質問に対しては、コストはかかるがセンサが十分設置できるなら制御対象の全状態を利用して性能の良い制御系となるのが状態フィードバックで、多少性能は犠牲になっても制御できれば良いならコストが比較的安い出力フィードバック、ということは言えます。ただ、無限次元系など、センサをいくら設置しても状態フィードバックは不可能な場合もありますが。

-Q: 授業ではふれませんでしたが sup と max の違いを教えていただけないでしょうか?
-A: sup = 最小上界、または上限、max = 最大値、です。1入出力システム P1, P2
\[ P_1(s) = \frac{1}{s+1}, \quad P_2(s) = \frac{s}{s+1} \]
を考えると、P1 については ω=0 のゲインがH∞ノルムを与えるので(今日言ったように)sup でも max でも同じですが、P2 については、ω→∞ の極限がH∞ノルム(1)を与えるので、max はとれません。ω=∞ という点がないためです。例えば、十分大きな正実数(10000000とか)をaとすると、
\[
\max_{\omega\in[0,a]} |P_2(j\omega)| = \max_{\omega\in[0,a]} \left|\frac{j\omega}{j\omega+1}\right| = \max_{\omega\in[0,a]} \frac{\omega}{\sqrt{\omega^2 + 1}} = \frac{a}{\sqrt{a^2 + 1}} < 1
\]
となって、maxをとる範囲(0からa)を広げればいくらでも真のH∞ノルム 1 に近い値が得られますが、決して1に一致させることはできません。supなら、できます。

-Q: Explanation of H∞ problem was not detailed enough
-A: The difference to LQR is (ii) the target to be minimized: In H infinity control problem, closed-loop H infinity norm is minimized instead of the cost function in LQR. The difference in their concept will be explained in the next lecture. If this answer is not sufficient for you, please ask again.  

-Q: What purpose to derive "Tzw" ?
-A: Because our task was to find optimal controller in terms of closed-loop H infinity norm by hand, the f-dependent closed-loop system, Tzw, was first derived. (Then, differentiate with respect to f ...)

-Q: 波形があると分かりやすい
-A: 今日の講義では波形が出ていなくてわかりにくかった、という指摘かと思って回答します:次回、H∞制御とLQRの違いを時間応答で説明します。それぞれで最適な場合として扱われる時間応答です。1回で終わらせられると内容的には区切りが良く分かり易いと思うのですが、分量的に無理のため、現状のような二部構成としています。


** &color(green){[lecture #5]}; 2017.10.5 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(mod1005.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
-- H infinity norm = L2 induced norm
-- review: steady-state response; the worst-case disturbance w(t) which maximizes L2 norm of z(t) ?
-- what is the worst-case disturbance in 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 

 %-- 2017/10/05 13:08 --%
 sqrt(2-sqrt(2))
 mod1005
 ex0928
 A
 B
 C
 D
 h = 0.01
 x0 = 0
 f = -1+sqrt(2)
 zz
 h = 0.0001
 zz
 f = 1
 zz
 x0 = 1
 zz
 h
 h = 1
 x0
 x0 = 0
 h
 zz
 sqrt(zz(end)/ww(end))
 f
 h = 100
 sqrt(zz(end)/ww(end))
 f = -1+sqrt(2)
 sqrt(zz(end)/ww(end))

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

-Q: H∞のときはノルムを最小としてやっていたが、Jのときは何を最小にしているか分からなかった(コスト関数の意味)
-A: コスト関数(評価関数)の定義は現代制御理論の復習で行ったように
\[
J = \int_0^\infty \left\{ x^T Q x + u^T R u \right\} dt
\]
です。おおざっぱに言えば、Jを最小化することは、x をより速く0に収束させることと、そのためのコスト(制御入力)を小さく済ませることを意味します。しかし通常、両者は相反する(xを速く0に収束させるためには大きなエネルギー(制御入力)が必要となる、または小さなエネルギーで済ませるとxの収束性は悪くなる)ため、そのトレードオフをQとRの調整でとります。という説明が復習の回で不足しておりすみません。

-Q: 最後の証明でγが∞とはどういう意味になるのか?
-A: 今日示した状態フィードバックH∞制御問題の解は、閉ループ系のH∞ノルムがγ未満、つまり
\[ \|T_{zw}\|_\infty < \gamma \]
を満足するものです。この条件は、γが大きいほど緩和されます。つまり、もしγが1のときに解(コントローラ)が存在すれば、γが2のときも存在します(同じ解が条件を満たします。1は2より小さいので)。逆に言うと、γが1のときに解が存在しなくても、γが2のときには解が存在する可能性があります。2でだめなら100、1000000、とどんどん解が存在する可能性は増え、γ=∞はつまり、この不等式条件をおかない、最も簡単な問題となります。

-Q: 何を同じにした条件で等価なのか(ふくまれるか)が理解できなかった。
-A: 状態フィードバックH∞制御問題の特別な場合としてLQR問題が含まれることに関しての質問と思います。簡単に言うと、γを∞に持っていき、閉ループ系のH∞ノルムの制約を無くすると、LQR問題になります。

-Q: PID制御と違ってなかなかイメージがわかないと思った。
-A: 次回からH∞制御の intro を3回に分けて説明します。今回と前回のLQRとの関係の話をむしろ後に回した方が、イメージがわいて良かったかもしれません。また感想を教えてもらえると助かります。

-Q: 声が小さいので、もう少し大きな声にしてほしい
-A: 前回まで問題なかったとすれば、今日小さかったのは喉が痛かったからです。次回までには治します。ごめんなさい。

-Q: Why do we need to know the worst case of the disturbance signal w(t) ?
-A: By knowing the worst case w(t) which is very different from the delta function, at least, one can understand two control problems (LQR and H infinity control) are different.  

-Q: 何々理解が難しい
-A: 具体的に聞いてもらえると助かります。


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

+ outline: &ref(map_v1.1_mixedsens1.pdf); 
+ H infinity control problem (general case)
+ reference tracking problem
+ weighting function for sensitivity function
+ design example &ref(ex1012_1.m); &ref(ex1012_2.m);
+ the small gain theorem
-- proof: Nyquist stability criterion
//+ from performance optimization to robust stabilization

 %-- 2017/10/12 13:38 --%
 ex1012_1
 P
 pole(P)
 ex1012_2

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

-Q: should add legend to Matlab plots
-A: I will modify m-files in the remaining lectures.

-Q: ex1012_2.m で行っているのは、Kを最適化しているという理解で良いですか?
-A: 良いです。γの最小化をしているのですが、その説明が抜けておりすみません。

-Q: 重み関数の使用する意味を理解できなかった。
-A: 重み関数 = 周波数依存の重み関数、と説明すべきでした。
もともと |S(j∞)| = 1 のため、周波数依存の重み関数を使用せずにH∞制御問題を解くと(つまり、全ての周波数帯域で |S(jω)| を下げようとすると)K = 0 が γを最小化する最適解(γ=1)となります。説明はしませんでしたが ex1012_2.m の上の方で
 WS = ss(1);
とすると重み関数を使用しない場合になります。実行してみてください。
一方、低周波数域で大きな値を持つ重み関数を使用してH∞制御問題を解くと(つまり、低周波数域で |S(jω)| を積極的に下げようとすると)、K = 0 は最適解とならなくなり、低周波数域で性能の良いコントローラが得られます。
わからなければまた聞いてください。

-Q: 授業の流れは良いはずなのに、英語と日本語が交互になることで、理解を遅らせている。特に各言語で言い忘れていたりすると良く分からなくなる。
-A: 日本語の分量が少なくなると日本人学生の理解度が悪くなるため、基本的には同じ説明を日本語と英語で二回行うように心がけています。とは言え、厳密に話すことは決めていないため、御指摘のように説明が一対一対応にはなっていないと思います。しかし、指摘の本質は、そもそも日本語と英語の交互の説明自体が分かり難い、という指摘ではないかと思います。これは正直、全く想定していませんでした。様子をみながら対応したいと思いますが、もともと英語の講義ですので、日本語を少なくし、その分、英語で話す際のスピードを落とすしかないかな、と考えています。

-Q: ロバストコントロールに関してよく知らないため、small gain 定理のよさがよくわからなかった。
-A: 次回、ロバスト安定化コントローラの設計法を説明しますので、それで理解できるのではないかと思います。


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

+ review &ref(map_v1.1_mixedsens2.pdf); and outline
//+ an equivalent problem of robust stabilization for reference tracking problem
+ normalized uncertainty Delta
+ uncertainty model 
+ how to determine P0 and WT
-- example: frequency response of plant with perturbation &ref(ex1019_1.m);
-- frequency response based procedure for P0 and WT &ref(ex1019_2.m);
+ robust stabilization problem and equivalent problem 
-- design example and simulation &ref(ex1019_3.m); &ref(mod1019.mdl);

 %-- 2017/10/19 13:30 --%
 ex1019_1
 ex1019_2
 ex1019_3
 K
 figure(4)
 bode(K)
 mod1019
 c
 c = 0.8
 c = 0
 c = 2

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

-Q: I could only understand ambiguously as a whole. Especially, in the latter half
-A: In righthand side (4) of whiteboard #2, I forgot to explain that P_0 must include all unstable poles of the actual plant \tilde P because the term (1 + W_T \Delta) can represent only stable variations. Therefore, (s-1) is included in the denominator of P_0(s). &br; 
In lefthand side (5) of whiteboard #3, I should have written `for all \tilde P' in the equivalent conditions, e.g.,
\[ {}^\forall \tilde P \quad 
\left| \frac{\tilde P(j\omega)}{P_0(j\omega)} - 1 \right| \leq |W_T(j\omega)| {}^\forall \omega \]
as confirmed in the gain characteristic plot (some \tilde Ps are specified by varying parameter c). &br;
I think the last part of the lecture is simple: the robust stabilization problem is formulated with P_0 and W_T after their determination, and the equivalent problem is given by simple block diagram manipulation. &br;
If you have any questions, please ask again.

-Q: 外乱オブザーバでマイナーループで安定化させるのと、コントローラによって安定化させる違いは?
-A: マイナーループで安定化させる ... 最終的なコントローラがマイナーループとその外側の部分に分かれていて、それぞれを段階的に設計する場合、ということではないかと思います(違っていたら指摘してください)。H∞制御では、一度に丸ごと設計します。別の設計問題に、二自由度制御系があります。閉ループ系の安定性をフィードバックコントローラで確保した後に、フィードフォワードコントローラで所望の目標値追従性能を達成する設計法です。図が無いと分かりにくいと思いますが、一般化プラントの外乱wに目標値信号rを含めると、H∞制御の枠組みで二自由度制御系の二つのコントローラを一度に設計することができます。

-Q: 英語さっぱりわからない。
-A: 特にわからない部分を質問してもらえると助かります。

-Q:
\[ \tilde {\bf P} \neq {\bf P} \]
ならば
\[ \tilde {\bf P} \geq {\bf P} \mbox{ or } \tilde {\bf P} \leq {\bf P} \]
とあったが
\[ \tilde {\bf P} > {\bf P} \mbox{ or } \tilde {\bf P} < {\bf P} \]
になるのでは?
-A: 御指摘の通りです。重み関数の不等式に等号を付けたくてこうしていたのですが、良く考えたら不要でした。すみません。

-Q: モデルの不確かさの決め方、調べ方がよく分からなかった。
-A: 余裕がなくこの辺の話は完全にスキップしました。すみません。(授業では安定性のみで性能については触れませんでしたが)より良い性能を得るために、なるべく現実のプラントを小さな重み関数で、しかし全てを含むようにモデルを構成することが重要です。運動方程式など物理的なモデルがある場合は、その構造に従って相応しいモデルが選べることがあります。そうでない場合、とりあえず加法的摂動モデルや乗法的摂動モデルを使ってみて性能が良くなった方を採用する、ということよく行われます。 劉 康志 著「線形ロバスト制御」計測自動制御学会 編 などが参考になります。&br;
また、できるだけモデルの次数を低くすることも重要です。得られるコントローラの次数がその分低くなるからです。例えば、
\[ P_0(1+W_T\Delta) = P_0 + (P_0 W_T) \Delta\]
より、重み関数を W_T とする乗法的摂動モデルは、重み関数 W を W = P_0 W_T とする加法的摂動モデルとみなせます。しかし、P_0 の次数分、重み関数の次数が高くなるため、このような(P_0と同様の特性が重み関数に含まれる)場合は乗法的摂動モデルの方が有利です。&br;
不安定極が変動する場合は、LFTの摂動モデルが利用できます(乗法的摂動モデルでは、1 + W_T \Delta の項が安定の場合しか表現できないため、ノミナルプラントに不安定極を含める必要があり、不安定極の変動を直接扱うことはできません。加法的摂動モデルも同様です)。
実際、2入力2出力のシステムMの状態空間実現を
\[
M = \left[\begin{array}{c|c:c} 1 & 0.1 & 1 \\ \hline 1 & 0 & 0 \\ 1 & 0 & 0 \end{array} \right]
\]
として、上側の入出力をΔで閉じると、その伝達関数が
\[
\frac{1}{s-1-0.1\Delta}
\]
となります。Δが-1〜1に変化する実数と思えば、これは不安定極 s = 1 + 0.1Δ を持つ制御対象となります。


** &color(green){[lecture #8]}; 2017.10.26 Mixed sensitivity problem 3/3 [#ma21462e]
- review: &ref(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 nominal performance and robust performance 
+ mixed sensitivity problem ---> (1) and (2) : proof
+ generalized plant for mixed senstivity problem
+ design example &ref(ex1026_1.m); minimize gamma by hand
+ gamma iteration by bisection method &ref(ex1026_2.m);
+ nominal performance and robust performance &ref(ex1026_3.m); 
+ introduction of robust performance problem

 ex1026_1
 K
 ex1026_2
 gam
 ex1026_3

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


** &color(green){[lecture #9]}; 2017.11.2 robust performance problem 1/3 [#re9957f7]
-- [[schedule2017]] mini report #1 and exam #1
+ review
-- mixed sensitivity problem : N.P. but not R.P.
-- robust performance problem (R.P.)
c.f. the last whiteboard
+ an equivalent robust stability (R.S.) problem to R.P.
-- with structured uncertainty Delta hat 
+ definition of H infinity norm for general case (MIMO)
-- definition of singular values and the maximum singular value
 M = [sqrt(2), sqrt(2); -1i/sqrt(2), 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
-- mini report #1 %%&ref(report1.pdf);%% &ref(report1_fixed.pdf); ... You will have a mini exam #1 related to this report
+ proof of ||Delta hat||_inf <= 1
+ design example: &ref(ex1102_1.m);
-- robust performance is achieved but large gap
-- non structured uncertainty is considered ... the design problem is too conservative

 M = [sqrt(2), sqrt(2); -1i/sqrt(2), 1i/sqrt(2)]
 M'
 eig(M'*M)
 svd(M)
 ex1102_1

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

-Q: "due date" of today's report is wrong.
-A: Thank you for pointing out the mistake, it has been corrected.  

-Q: 特異値を使うメリット何ですか?
-A: 1×1の行列(スカラ)の場合は特異値=絶対値です。特異値は絶対値の自然な拡張となっています。

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

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