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

- schedule2024 (tentative)
- map 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 = K/(s-1+K) step(Tyr)

- minute paper https://cera-e1.nagaokaut.ac.jp/ilias/

%-- 2024/09/05 13:40 --% s = tf('s') P = 1/(s-1) pole(P) impulse(P) K = 2 Tyr = K/(s-1+K) step(Tyr)

- introduction of Matlab and Simulink
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

- 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 ex0912_1.m mod0912_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 ex0912_2.m mod0912_2.mdl
- Gain Margin(GM); Phase Margin(PM)

%-- 2024/09/12 13:07 --% a = 2 a + 1 t=[1 2 3] t + 2 pwd ex0912_1 sqrt(k/m) sqrt(k/m)/(2*pi)

- LQR problem
- controllability
- cost function J >= 0
- positive (semi-)definite matrices
- solution of LQR problem
- example ex0919_1.m mod0919_1.mdl

- ARE and quadratic equation
- scalar case (solve by hand)
- matrix case lqr.pdf ≒ proof4.pdf (from B3「動的システムの解析と制御」)

%-- 2024/09/19 13:53 --% ex0919_1 Uc [B A*B] ex0919_1 F

- GOAL: to learn difference in concepts between LQR problem and H infinity control problem

- 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 = s/(s+1); bode(G2); norm(G2, 'inf') G3 = 1/(s^2 + 0.1*s + 1); bode(G3); norm(G3, 'inf')

- definition of H infinity norm (SIMO)
G4 = [1/(s+2); -1/(s+2)]; norm(G4, 'inf')

- solve the problem by hand
- solve the problem by tool(hinfsyn) ex0926_1.m

%-- 2024/09/26 14:04 --% s = tf('s'); G1 = 1/(s+1); bode(G1); norm(G1, 'inf') G2 = s/(s+1); bode(G2); norm(G2, 'inf') bode(G1); norm(G1, 'inf') bode(G2); norm(G2, 'inf') G3 = 1/(s^2 + 0.1*s + 1); bode(G3); norm(G3, 'inf') ctrlpref bode(G3); grid on G4 = [1/(s+2); -1/(s+2)]; norm(G4, 'inf') 1/sqrt(2)

- cont.
- solve the problem by hand
- solve the problem by tool(hinfsyn) ex0926_1.m

- complete the table in simple example
- confirm the cost function J for both controllers by simulation mod1003.mdl
- block diagram in the simulink model
- how to approximate impulse disturbance with a step function
- (unit) impulse disturbance resp. with zero initial condition = (unit) 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 for sinusoidal input signal; how to choose the frequency such that the output amplitude is maximized ?
- the worst-case disturbance w(t) for the simple example ?

- general state-feedback case: hinf.pdf
- includes the simple example as a special case
- LQR lqr.pdf is included as a special case in which gamma -> infinity, w(t) = 0, B2 -> B, and non-zero x(0) are considered

%-- 2024/10/03 13:17 --% ex0926_1 sqrt(2-sqrt(2)) mod1003 h = 0.01 x0 = 0 f = 1 plot(t, x) zz plot(t, zz) zz(end) x0 zz(end) x0 = 1 zz(end) f = -1+sqrt(2) zz(end) h = 100 x0 = 0 f sqrt(zz(end)/ww(end)) f = 1 sqrt(zz(end)/ww(end))

- outline: 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 ex1010_1.m ex1010_2.m
- the small gain theorem
- proof: Nyquist stability criterion

%-- 2024/10/10 13:47 --% ex1010_1 pole(P) ex1010_2 K_hinf K_hinf.a eig(K_hinf.a) ex1010_2

- outline: from point to set map_v1.1_mixedsens2.pdf
- the small gain theorem ... robust stability = H infinity norm condition
- normalized uncertainty Delta
- uncertainty model
- simple example of plant set
- given plant P tilde
- frequency response of plant with perturbation ex1017_1.m

- how to determine P0 and WT ?
- frequency response based procedure for P0 and WT ex1017_2.m

- given plant P tilde
- robust stabilization problem and equivalent problem
- design example and simulation ex1017_3.m mod1017.mdl

%-- 2024/10/17 13:36 --% ex1017_1 ex1017_2 ex1017_1 ex1017_2 ex1017_1 ex1017_2 ex1017_3 mod1017 c c = 0.8 c = 2 c = 1.5

- review: map_v1.1_mixedsens2.pdf (1)performance optimization and (2)robust stabilization
- 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 ex1024_1.m minimize gamma by hand
- gamma iteration by bisection method ex1024_2.m tradeoff between model robust stability and performance
- intro. to RP: weak point of mixed sensitivity problem(problem of NP) ex1024_3.m

%-- 2024/10/24 13:41 --% ex1024_1 K ex1024_1 ex1024_2 gam ex1024_2 gam ex1024_2 gam help hinfsyn ex1024_3 ex1024_2 ex1024_3

- review
- mixed sensitivity problem : N.P. but not R.P.

- robust performance problem (R.P.), but can not be solved by tool
- 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/sqrt(2), 1/sqrt(2); 1i, -1i] M' eig(M'*M) svd(M)

- mini report #1 report1.pdf ... You will have a mini exam #1 related to this report

- definition of singular values and the maximum singular value
- proof of ||Delta hat||_inf <= 1
- design example: ex1031_1.m
- robust performance is achieved but large gap
- non structured uncertainty is considered ... the design problem is too conservative

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

!!! the remaining page is under construction (the contents below are from last year) !!!

%-- 2023/11/02 13:54 --% M = [1, 1; 1i/sqrt(2), -1i/sqrt(2)] M' eig(M'*M) svd(M) pwd ex1102_1

#ref(): File not found: "2023.11.02-1.jpg" at page "授業/制御工学特論2024"

#ref(): File not found: "2023.11.02-2.jpg" at page "授業/制御工学特論2024"

#ref(): File not found: "2023.11.02-3.jpg" at page "授業/制御工学特論2024"

- return of mini report #1
- 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(): File not found: "ex1109_1.m" at page "授業/制御工学特論2024";

%-- 2023/11/09 13:26 --% M = [1, 1; 1i/sqrt(2), -1i/sqrt(2)] [U, S, V] = svd(M) U'*U format long e U'*U U*U' V'*V U*S*V' U*S*V'- M format short U*S*V'- M ex1109_1 rand(1,1) rand(1,3)

#ref(): File not found: "2023.11.09-1.jpg" at page "授業/制御工学特論2024"

#ref(): File not found: "2023.11.09-2.jpg" at page "授業/制御工学特論2024"

- review : R.S. problems for structured and unstructured uncertainty
- scaled H infinity control problem
- relation between three problems
- how to determine structure of scaling matrix
- design example &ref(): File not found: "ex1116_1.m" at page "授業/制御工学特論2024";
ex1102_1 gam2 = gam_opt ex1116_1 gam_opt

- mini exam #1 (10 min.)

%-- 2023/11/16 13:03 --% ex1102_1 gam_opt format long gam_opt gam2 = gam_opt ex1116_1 gam_opt gam2 opts = hinfsynOptions opts.AutoScale = 'off' ex1116_1

#ref(): File not found: "2023.11.16-1.jpg" at page "授業/制御工学特論2024"

#ref(): File not found: "2023.11.16-2.jpg" at page "授業/制御工学特論2024"

- return of mini exam #1
- review of scaling &ref(): File not found: "ex1123_1.m" at page "授業/制御工学特論2024";
- mini report #2 &ref(): File not found: "report2.pdf" at page "授業/制御工学特論2024";
- introduction of a practical system: Speed control of two inertia system with servo motors
- experimental setup

setup_fixed.pdf

photo.jpg - objective of control system = reference speed tracking 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 y tracks the reference speed command r
- frequency response experiment and physical model of speed control system
#ref(): File not found: "ex1123_2.m" at page "授業/制御工学特論2024"

&ref(): File not found: "servo1.dat" at page "授業/制御工学特論2024"; &ref(): File not found: "servo2.dat" at page "授業/制御工学特論2024"; - room 374 @ Dept. Mech. Bldg. 2

- experimental setup

%-- 2023/11/23 13:09 --% ex1123_1 format long eig(clp2.a) ex1123_2

#ref(): File not found: "2023.11.23-1.jpg" at page "授業/制御工学特論2024"

#ref(): File not found: "2023.11.23-2.jpg" at page "授業/制御工学特論2024"

Due to a hardware problem in our experimental environment, today's lecture is cancelled. I'm sorry for the inconvenience.

Please check the modified schedule at schedule2023

- return of mini report #2; ... You will have a mini exam #2 related to this report next week
- review of the experimental system
- the same robust performance problem setup given in lecture can be used to design controllers

- design example
- frequency response experiment data

servo1.dat - determination of plant model(nominal plant and multiplicative uncertainty weight)

&ref(): File not found: "nominal.m" at page "授業/制御工学特論2024";

&ref(): File not found: "weight.m" at page "授業/制御工学特論2024";

&ref(): File not found: "weight_2.m" at page "授業/制御工学特論2024"; ... loose weight was further used to prevent high-frequency oscillation - configuration of generalized plant and controller design by scaled H infinity control problem using one-dimensional search on the scaling d

&ref(): File not found: "cont.m" at page "授業/制御工学特論2024";

&ref(): File not found: "cont_2.m" at page "授業/制御工学特論2024"; ... for loose weight design - result of control experiment and evaluation

result.dat

result_2.dat; ... for loose weight design

&ref(): File not found: "perf.m" at page "授業/制御工学特論2024";

- frequency response experiment data
- 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 (your controller and the design example):
- bode diagram of controllers
- gain characteristic of sensitivity function
- time response of control experiment

- Why is the performance of your system improved(or unfortunately deteriorated)?

- due date: 4th(Thu) Jan 17:00
- submit your report(pdf file) by e-mail to kobayasi@nagaokaut.ac.jp
- You can use Japanese
- maximum controller order is 20
- submit your controller.dat, controller_order.dat, and controller.mat at this page:participant list2023(download is also possible) not later than 26th(Tue) Dec
- the system will be started until next lecture
- You can send up to 10 controllers
- control experimental results will be uploaded here
- freqresp ... frequency response will be measured and uploaded everyday

- how to improve the performance ?
- performance and sensitivity gain
- accuracy of the nominal(physical) model, weighting for robust stability
- caution: measurement noise in high frequency range due to rotational speed calculation

- specifications of the experimental system
- program sources for frequency response experiment
- freqresp.h
- freqresp_module.c
- freqresp_app.c
- format of servo1.dat
1st column ... frequency (Hz) 2nd column ... gain from T_M(Nm) to Omega_M(rad/s) 3rd column ... phase (deg) from T_M to Omega_M 4th column ... gain from T_M to Omega_L 5th column ... phase (deg) from T_M to Omega_L

- program sources for control experiment
- hinf.h
- hinf_module.c
- hinf_app.c
- format of result.dat
1st column: time (s) 2nd column: y (Omega_M (rad/s)) 3rd column: Omega_L (rad/s) 4th column: u (T_M (Nm)) 5th column: r (rad/s)

- configuration of control experiment
- reference signal r is specified as described in hinf.h and hinf_module.c:
r = (double)COM_ROT_SPEED;; if(t > 2){ t1 = t - 2; t1 -= ((int)(t1 / REF_PERIOD))*REF_PERIOD; t1 /= 0.2; if(t1 < 1){ r += REF_AMP * t1; }else if(t1 < 4){ r += REF_AMP; }else if(t1 < 6){ r += REF_AMP * (5 - t1); }else if(t1 < 9){ r -= REF_AMP; }else if(t1 < 10){ r -= REF_AMP * (10 - t1); } }

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

- reference signal r is specified as described in hinf.h and hinf_module.c:
- 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.

- The rotational speed is approximately calculated by using difference for one sampling period in hinf_module.c and freqresp_module.c like:

- program sources for frequency response experiment

%-- 2023/12/07 13:33 --% pwd cd .. nominal weight cont perf axis([9.9, 10, -10, 50]) axis([9.99, 10, -10, 50]) weight_2 pwd weight_2 cont_2 perf cd .. perf

- web based remote experiment system
- usage; how to upload controller's
- powered by prof. Takebe, National Institute of Technology, Nagaoka College

- supplemental explanations
- room temperature is displayed and stored in temp.txt (Bosch Sensortec BME280 is used)
- c2d() is used to discretize the resultant continuous-time controller in cont.m
- You can send up to 10 controllers (don't fall into trial and error; think always about the reason)
- no strict control objective is given ( there is a freedom to define what is good performance )

- preparation of your own controller(s) by using the remote experiment system
- mini exam #2

%-- 2023/12/14 13:50 --% load result.dat plot(result(:,1), result(:,2)) axis([9, 10, 10, 25]) load result2.dat plot(result(:,1), result(:,2)) plot(result2(:,1), result2(:,2)) axis([9, 10, -10, 50]) axis([9.9, 10, -10, 50]) plot(result2(:,1), result2(:,2), '.-') axis([9.9, 10, -10, 50]) nominal weight weight2 weight_2

~~return of mini exam #2~~- preparation of your own controller(s) by using the remote experiment system

添付ファイル: ex1031_1.m 13件 [詳細] report1.pdf 46件 [詳細] 2024.10.24-1.jpg 8件 [詳細] 2024.10.24-2.jpg 13件 [詳細] ex1024_3.m 26件 [詳細] ex1024_2.m 18件 [詳細] ex1024_1.m 19件 [詳細] 2024.10.17-3.jpg 36件 [詳細] 2024.10.17-2.jpg 28件 [詳細] 2024.10.17-1.jpg 36件 [詳細] mod1017.mdl 26件 [詳細] ex1017_3.m 33件 [詳細] ex1017_2.m 32件 [詳細] ex1017_1.m 31件 [詳細] 2024.10.10-3.jpg 49件 [詳細] 2024.10.10-2.jpg 50件 [詳細] 2024.10.10-1.jpg 49件 [詳細] ex1010_2.m 35件 [詳細] ex1010_1.m 31件 [詳細] 2024.10.03-3.jpg 35件 [詳細] 2024.10.03-2.jpg 42件 [詳細] 2024.10.03-1.jpg 41件 [詳細] mod1003.mdl 36件 [詳細] 2024.09.26-4.jpg 69件 [詳細] 2024.09.26-3.jpg 72件 [詳細] 2024.09.26-2.jpg 78件 [詳細] 2024.09.26-1.jpg 75件 [詳細] ex0926_1.m 82件 [詳細] 2024.09.19-1.jpg 62件 [詳細] 2024.09.19-4.jpg 75件 [詳細] 2024.09.19-3.jpg 58件 [詳細] 2024.09.19-2.jpg 65件 [詳細] ex0919_1.m 67件 [詳細] mod0919_1.mdl 50件 [詳細] 2024.09.12-4.jpg 56件 [詳細] 2024.09.12-3.jpg 52件 [詳細] 2024.09.12-2.jpg 56件 [詳細] 2024.09.12-1.jpg 55件 [詳細] mod0912_2.mdl 48件 [詳細] mod0912_1.mdl 53件 [詳細] ex0912_2.m 54件 [詳細] ex0912_1.m 75件 [詳細] 2024.09.05-4.jpg 54件 [詳細] 2024.09.05-3.jpg 62件 [詳細] 2024.09.05-2.jpg 53件 [詳細] 2024.09.05-1.jpg 55件 [詳細]

Last-modified: 2024-10-31 (木) 14:26:17