Mô hình toán của máy phát điện sóng nhiệt âm:
� 𝑥𝑥̇ = 𝛾𝛾𝜔𝜔𝑑𝑑 𝑜𝑜 𝑠𝑠𝑠𝑠𝑠𝑠(𝜔𝜔𝜔𝜔+𝜑𝜑) 𝑦𝑦 =𝐴𝐴𝜌𝜌2𝛾𝛾𝑑𝑑 𝑀𝑀 1 𝐴𝐴𝐴𝐴𝐿𝐿𝐴𝐴2�𝑅𝑅(𝐵𝐵𝑙𝑙)2 𝑒𝑒+𝑅𝑅𝐿𝐿+𝑅𝑅𝐼𝐼�.𝑍𝑍𝐶𝐶𝐶𝐶3 𝑠𝑠𝑠𝑠𝑠𝑠(𝜔𝜔𝜔𝜔+𝜃𝜃) (4.20)
Với: 𝜌𝜌𝑀𝑀,𝛾𝛾,𝜔𝜔,𝐴𝐴 lần lượt là khối lượng riêng (𝑘𝑘𝑘𝑘/𝑚𝑚3), tỉ số đoạn nhiệt của chất khí, tần số góc (𝑠𝑠−1) và tiết diện của khối hoàn nhiệt; 𝐴𝐴𝐴𝐴𝐿𝐿𝑇𝑇,�𝑅𝑅(𝐵𝐵𝑙𝑙)2
𝑒𝑒+𝑅𝑅𝐿𝐿+𝑅𝑅𝐼𝐼�,𝑍𝑍𝐶𝐶𝐶𝐶 lần
lượt là tiết diện màng loa (𝑚𝑚2), trở kháng toàn phần (𝛺𝛺), trở kháng tương đương
khối trao đổi nhiệt(𝛺𝛺), các góc 𝜑𝜑,𝜃𝜃được xác định như sau:
𝜑𝜑 =𝑎𝑎𝑃𝑃𝑐𝑐𝜔𝜔𝑎𝑎𝑠𝑠 �𝑃𝑃0�𝜔𝜔𝜌𝜌𝑀𝑀 2𝜇𝜇 −1� (4.21) 𝜃𝜃 =𝑎𝑎𝑃𝑃𝑐𝑐𝜔𝜔𝑎𝑎𝑠𝑠 −2𝐵𝐵2+𝐶𝐶2𝐴𝐴𝐶𝐶 �𝐷𝐷+𝑍𝑍𝐶𝐶𝐶𝐶+𝐵𝐵2+𝐶𝐶2𝐴𝐴𝐵𝐵 � �𝐷𝐷+𝑍𝑍𝐶𝐶𝐶𝐶+𝐵𝐵2+𝐶𝐶2𝐴𝐴𝐵𝐵 �2−�𝐵𝐵2+𝐶𝐶2𝐴𝐴𝐶𝐶 �2 (4.22) Với: 𝐴𝐴 =𝜔𝜔𝜌𝜌𝑀𝑀𝑙𝑙𝑠𝑠𝑠𝑠𝑎𝑎𝑐𝑐𝑘𝑘 𝐴𝐴𝑔𝑔 ;𝐵𝐵 = 2− 𝑃𝑃0�𝜔𝜔𝜌𝜌𝑀𝑀 2𝜇𝜇 ;𝐶𝐶= 2�−1 +𝑃𝑃1 0�𝜔𝜔𝜌𝜌2𝜇𝜇𝑀𝑀�; 𝐷𝐷 = 𝑍𝑍𝐶𝐶𝐶𝐶2 𝐴𝐴𝐴𝐴𝐿𝐿𝑇𝑇2 �𝑅𝑅(𝐵𝐵𝑙𝑙)2 𝑒𝑒 +𝑅𝑅𝐿𝐿+𝑅𝑅𝐼𝐼�
Tín hiệu đầu vào của đối tượng: 𝑢𝑢 =𝑇𝑇ℎ−𝑇𝑇𝑐𝑐
𝑇𝑇𝑐𝑐 , biến trạng thái: 𝑥𝑥 =𝑝𝑝1, tín hiệu ra: 𝑦𝑦 =
𝑃𝑃𝑜𝑜𝑜𝑜𝜕𝜕. Từ nội dung phân tích ở cuối chương 3, tôi xác định ràng buộc đối với tín hiệu điều khiển chấp nhận được là 𝑢𝑢 > 0 hay thay vào thuật toán 2 chính bằng 𝑙𝑙̄𝑇𝑇𝜓𝜓(𝑥𝑥) > 0∀𝑥𝑥,𝜔𝜔.
Hàm mục tiêu được lựa chọn như sau:
𝐽𝐽�𝑥𝑥0,𝜔𝜔0,𝑢𝑢(𝜔𝜔)�=∫ 𝐿𝐿𝜕𝜕∞0 (𝑥𝑥(𝜔𝜔),𝑢𝑢(𝜔𝜔),𝜔𝜔)𝑑𝑑𝜔𝜔 (4.23) Với:
𝐿𝐿 = (𝑥𝑥 − 𝑥𝑥𝐼𝐼)2+ (𝑦𝑦 − 𝑦𝑦𝐼𝐼)2+𝑢𝑢2 (4.24)
Trong đó: 𝑥𝑥𝐼𝐼,𝑦𝑦𝐼𝐼 lần lượt là các giá trị áp suất theo thiết kế và công suất đầu ra mong muốn (giá trị hiệu dụng). Các giá trịnày được xác định từ tính toán thiết kế
32 cho việc trạng thái hệ thống tiến gần đến trạng thái theo tính toán, đồng thời sử
dụng nguồn nhiệt nhỏ nhất (với nhiệt độ nguồn lạnh được xem là cốđịnh và bằng
nhiệt độmôi trường).
Tiến hành mô phỏng đối tượng và thuật toán điều khiển như trên. Đầu tiên, các thông số với từng phần của máy phát điện sóng nhiệt âm được tham khảo từ [18], các thông số ban đầu của đối tượng lần lượt là: khí hoạt động là Helium, tần số
sóng âm hoạt động là 85 Hz, nhiệt độ nguồn lạnh cốđịnh ở 𝑇𝑇𝑐𝑐 = 300𝐾𝐾, thời điểm mô phỏng bắt đầu: 𝜔𝜔0 = 0, thời gian trích mẫu: 𝜔𝜔𝑠𝑠 = 0.05(𝑠𝑠), trạng thái và tín hiệu
điều khiển ban đầu: 𝑥𝑥0 = 1085000(𝑃𝑃𝑎𝑎),𝑢𝑢0 = 0.2. Giá trị khởi tạo cho biến xấp xỉ tín hiệu điều khiển chấp nhận được: 𝑙𝑙𝑖𝑖𝐼𝐼1 = 0.1, sai số trong xấp xỉ hàm: 𝜀𝜀 = 0.01. Giá trị trạng thái theo thiết kế 𝑥𝑥𝐼𝐼 = 1.1. 105(𝑃𝑃𝑎𝑎). Giá trị công suất đầu ra mong muốn 𝑦𝑦𝐼𝐼 = 65(𝑊𝑊). Thông số cơ khí các thành phần của đối tượng tham khảo từ [18] như sau:
+ Khối Regnerator:
Bảng 4.1 Thông số khối hoàn nhiệt
Tên đại lượng Thông số
Loại ống dẫn Bản mỏng Chiều dài 0.03 m Diện tích tổng 1.95x10-2 m2 Tỉ số diện tích 78% Khoảng cách giữa hai bản 0.5 mm Bề dày bản 0.2 mm
+ Khối trao đổi nhiệt gồm 2 phần là: Khối trao đổi nhiệt lạnh và khối trao đổi nhiệt nóng với các thông sốnhư sau:
Bảng 4.2Thông số khối trao đổi nhiệt lạnh
Tên đại lượng Thông số
Loại ống dẫn Ống tròn
Chiều dài 0.09 m
Diện tích tổng 1.95x10-2 m2
Tỉ số diện tích 63.1%
Bán kính ống 0.5 mm
Bảng 4.3 Thông số khối trao đổi nhiệt nóng
Tên đại lượng Thông số
Loại ống dẫn Ống lục giác
Chiều dài 0.005 m
Diện tích tổng 1.95x10-2 m2 Tỉ số diện tích 95%
33 + Thông số khối khuếch đại (ALT): Sử dụng loại loa B&C 6PS386 với các thông
sốnhư sau:
Bảng 4.4 Thông số khối khuếch đại
Tên đại lượng Thông số
Loại loa B&C 6PS386
Tần số hoạt động 85 Hz
Diện tích màng loa 1.32x10-2 m2
Điện trở 5.4𝛺𝛺
Điện cảm 6.10−4𝐻𝐻
Khối lượng màng loa 14 g
Độ cứng lò xo 2778𝑁𝑁/𝑚𝑚
Hệ số cản cơ học 0.64𝑁𝑁𝑠𝑠/𝑚𝑚
+ Thông số khối then:
Bảng 4.5 Thông số khối then
Tên đại lượng Thông số
Tiết diện piston 6.10−3𝑚𝑚2 Chiều dài tổng 1.5 m Chiều dài cột khí 0.65 m
+ Thông số khối hồi tiếp:
Bảng 4.6 Thông số khối hồi tiếp
Tên đại lượng Thông số
Tiết diện ống 1,95.10−2𝑚𝑚2
Chiều dài ống 5.5𝑚𝑚
Thay các giá trị trên vào mô hình đối tượng và các tham số trong thuật toán, kết
34
Hình 4.1 Tín hiệu điều khiển chấp nhận được
Hình 4.2 Quỹ đạo trạng thái tối ưu
35 Kết quảthu được, tín hiệu đầu ra ổn định ở giá trị xấp xỉ 1,3 sau 0,25 s, trạng thái hệ thống và tín hiệu đầu ra dao động điều hòa với chu kỳ cốđịnh sau 0,25s. Chú ý rằng, từ mô hình toán, tín hiệu đầu ra và trạng thái là các hàm dao động điều hòa dạng hình sin. Từ kết quảtrên đồ thị cho thấy, các dao động này là ổn định và hoàn toàn không phân kỳ, các giá trị trung bình của trạng thái và công suất đầu ra tiến gần đến giá trị mong muốn.
Để thuận tiện cho việc so sánh, sau đây, tôi xin đưa ra một ví dụ khi áp dụng bộ điều khiển PID cho đối tượng máy phát điện sóng nhiệt âm với các tham số PID
được lựa chọn như sau: 𝑘𝑘𝑝𝑝 = 1,4.102,𝑘𝑘𝑖𝑖 = 1,𝑘𝑘𝑑𝑑 = 3,2.10−2, các trạng thái đầu của hệ thống: thời điểm mô phỏng bắt đầu: 𝜔𝜔0 = 0, thời gian trích mẫu: 𝜔𝜔𝑠𝑠 = 0.05(𝑠𝑠), trạng thái và tín hiệu điều khiển ban đầu: 𝑥𝑥0 = 1085000(𝑃𝑃𝑎𝑎),𝑢𝑢0 = 0.2..
Kết quảthu được như sau:
Hình 4.4 Tín hiệu điều khiển bằng PID
36
Hình 4.6 Tín hiệu ra bằng PID
Dễ dàng nhận thấy, bộđiều khiển cho kết quả là đầu ra và trạng thái dao động ổn
định, không phân kỳ, tuy nhiên, tín hiệu điều khiển dao động liên tục. Đáng chú ý là khi xét đến giá trị hàm mục tiêu như ở thuật toán tối ưu, giá trị này ở đây cao hơn đáng kể (tín hiệu trạng thái chênh lệch nhau cỡ 5000 Pa). Điều này cho thấy
khả năng tối ưu hàm mục tiêu của Thuật toán 2 khi áp dụng vào máy phát điện
sóng nhiệt âm.
Chương 4 trình bày về việc xây dựng thuật toán điều khiển tối ưu bằng
phương pháp học tăng cường, giảm bớt sự phụ thuộc vào tham số mô hình. Nội
dung thuật toán được áp dụng cho mô hình máy phát điện sóng nhiệt âm xây dựng
37
CHƯƠNG 5.KẾT LUẬN
Các vấn đềđã làm được trong luận văn:
• Tìm hiểu nguyên lý hoạt động của máy phát điện sóng nhiệt âm
• Tìm hiểu các hiện tượng vật lý xảy ra trong từng thành phần của đối tượng.
• Phân tích định tính các biến đổi của áp suất và lưu lượng dòng khí khi di
chuyển qua từng khối cũng như trên tổng thể của đối tượng.
• Mô hình hóa theo phương pháp mạch điện cho từng thành phần và cho cả
đối tượng.
• Xây dựng thuật toán điều khiển tối ưu theo phương pháp học tăng cường
cho đối tượng và thu được kết quả mô phỏng ổn định. - Những vấn đề còn tồn tại:
• Mô hình đối tượng được xây dựng vẫn trên dạng phương trình vi phân số
phức, còn phức tạp và khó phân tích.
• Việc thiếu sót các thông số vềmáy phát điện sóng nhiệt âm có ảnh hưởng không nhỏđến việc xây dựng mô hình và triển khai thuật toán điều khiển. - Hướng phát triển:
• Từ những ưu điểm của máy phát điện sóng nhiệt âm, tiềm năng phát triển
của công nghệ này là rất lớn. Hiện tại, các mô hình ở lý thuyết cũng như
trong thực tế còn hạn chếở công suất thấp. Nên sau khi thu được mô hình, ta có thể thiết kế các bộđiều khiển giúp tối ưu hiệu suất của máy phát điện sóng nhiệt âm cỡ lớn và đưa vào các ứng dụng thực tế trong công nghiệp.
• Việc xây dựng thành công mô hình lý thuyết mở ra một đối tượng nghiên cứu cho các bài toán điều khiển.
38
TÀI LIỆU THAM KHẢO
[1] A. A. H. Al-Kayiem, "Investigation of travelling-wave thermoacoustic engines with different configurations," PhD thesis, 2017.
[2] R. Bellman, Dynamic programming princeton university press princeton, New Jersey Google Scholar, 1957.
[3] K. d. Blok, "Novel 4-stage travelling wave thermoacoustic power generator,"
in ASME 2010 3rd Joint US-European Fluids Engineering Summer Meeting
and 8th International Conference on Nanochannels, Microchannels, and Minichannels, 2010.
[4] D. L. Frank L Lewis, Reinforcement learning and approximate dynamic programming for feedback control, John Wiley & Sons, 2013.
[5] J. B. P. Y. H. C. Jae Young Lee, "Integral reinforcement learning for continuous-time input-affne nonlinear systems with simultaneous invariant explorations," IEEE Transactions on Neural Networks and Learning Systems, vol. 26, no. 5, pp. 916-932, 2014.
[6] P. O. M. F. Kees de Blok, "Acoustic to electric power conversion," Aster Thermoacoustics, 2014.
[7] D. V. F. L. L. Kyriakos G Vamvoudakis, "Online adaptive algorithm for optimal control with integral reinforcement learning," International Journal of Robust and Nonlinear Control, vol. 24, no. 17, pp. 2686-2710, 2014. [8] F. L. L. Kyriakos G Vamvoudakis, "Online actor–critic algorithm to solve
the continuous-time infnite horizon optimal control problem," Automatica,
vol. 46, no. 5, pp. 878-888, 2010.
[9] N. D. Phước, Phân tích và điều khiển hệ phi tuyến, Hà Nội: Nhà xuất bản Bách khoa Hà Nội, 2015.
[10] F. L. L. Q. W. H. Z. Ruizhuo Song, "Off-Policy Actor-Critic Structure for Optimal Control of Unknown Systems With Disturbances," IEEE Transactions on Cybernetics, vol. 46, no. 5, pp. 1041-1050, 2016.
[11] E. T. M. P. S. Backhaus, "Traveling-wave thermoacoustic electric generator," Applied physic letters, vol. 85, p. 6, 2004.
[12] G. W. Swift, A Unifying Perspective for Some Engines and Refrigerators, Springer, 2017.
[13] O. X. L. T. H. N. Vũ Thị Thúy Nga, Học tăng cường trong điều khiển tự động với MATLAB&SIMULINK, Hà Nội: Nhà xuất bản Bách khoa Hà Nội, 2020.
[14] H. H. D. L. Y. Z. Xiong Yang, "Adaptive dynamic programming for robust neural control of unknown continuous-time non-linear systems," IET Control Theory & Applications, vol. 14, no. 10, pp. 2307-2316, 2017.
39 [15] A. J. J. S. B. Zhibin Yu, "Travelling-wave thermoacoustic electricity
generator using an ultra-compliant alternator for utilization of low-grade thermal energy," Applied Energy , 2012.
[16] P. S. A. J. J. Zhibin Yu, "A method of characterising performance of audio loudspeakers for linear alternator applications in low-cost thermoacoustic electricity generators," Applied Acoustics, 2011.
[17] A. ASA, "Investigation of thermoacoustic processes in a travelling-wave looped-tube thermoacoustic engine," PhD Thesis, Mancheter University, 2012.
[18] "www.aster-thermoacoustics.com," [Online].
[19] S. G. Backhaus S, "A thermoacoustic-Stirling heat engine: detailed study," J Acoust Soc Am, vol. 107, pp. 3148-3166, 2000.
[20] A.-K. A. Yu Z, "Numerical Analysis of a Thermally Driven Thermoacoustic Heat Pump for Low-Grade Heat Recovery," Computational Thermal Sciences, vol. 6, no. 4, pp. 317-327, 2014.
[21] V. S. S. S. Tijani MEH, "Design of a mechanical resonator to be coupled to a thermoacoustic stirling-engine," in Proceedings of ASME 2010 3rd Joint US-European Fluids Engineering Summer Meeting and 8th International
Conference on Nanochannels, Microchannels, and Minichannels, Canada,
2010.
[22] R. N, "Damped and thermally driven acoustic oscillations in wide and narrow tubes," Journal of Applied Mathematics and Physics, 1969.
40
PHỤ LỤC
A1. Chương trình thuật toán tối ưu cho máy phát điện sóng nhiệt âm
trên MATLAB
- Chương trình chính:
clc; clear; close all;
x0 = 100000; % inital states u0 = 0.5; Ts = 0.05; % sample time Tend = 5; N = Tend / Ts; x_im1 = x0; % x_(i-1) epsilon = 1e-2; l_im1 = 0.1; u_im1 = u0; t_store = [0]; u_store = [u0]; x_store = [x_im1]; global N1 N2 N3 N4; N1 = 1; N2 = 1; N3 = 1; N4 = 1;
global w_i c_i h_i x_i u_i; x_i = x0; u_i = u0;
gamma = 5/3; viscos = 2*10^-5; omega = 170*pi;
R = 8.314; l_s = 0.03; destiny = 0.1786; A = 1.95*10^-2; A_g = 0.01521; Bl = 10.8; Re = 5.4; Rm = 0.64; Rl = 0.32; Zchx = 100;
ZA_ts = ((Bl*Bl/(Re+Rl))+Rm)*Zchx*Zchx/(A*A);
ZA_ms = ((((Bl*Bl/(Re+Rl))+Rm)/(A*A))+omega*destiny*l_s*(-viscos/((1- viscos)*(1-viscos)))/A_g+Zchx)^2;
global y_i t_i t_im1;
y_i = gamma*R*A*A*u_i^2*x_i*cos(omega*0-pi/2)^2*(ZA_ts/ZA_ms); y_store = [y_i];
41 t_im1 = 0;
for (i = 1 : N) t_i = i*Ts;
% calculate control signal
[w_i, c_i, h_i] = Calculate_w_c_h(N, l_im1, Ts, x0, u0); %l_i = fminsearch(@Function_li, l_im1);
l_i = fmincon(@Function_li, 0.8, [], [], [], [], [], [], @DefNonlCon); if (norm(l_i - l_im1) <= epsilon)
u_i = l_i' * PSI(x_i); else
u_i = u_im1; end
% apply signal to system
[~, x] = ode45(@TAG_ModelFcn, [(i-1)*Ts, i*Ts], x_im1, [], u_i); x_i = x(end, :); x_i = x_i(:);
% save data for the next iteration
y_i = gamma*R*A*A*u_i^2*x_i*cos(omega*t_i-pi/2)^2*(ZA_ts/ZA_ms); x_im1 = x_i; u_im1 = u_i;
l_im1 = l_i; t_im1 = t_i;
% store data
x_store = [x_store, x_i]; u_store = [u_store, u_i]; y_store = [y_store, y_i]; t_store = [t_store, t_i]; end
%%
figure;
plot(t_store, x_store, 'r-','linewidth', 2); title('x');
42 figure;
plot(t_store, y_store, 'r-','linewidth', 2); title('y');
grid on; figure;
plot(t_store, u_store, 'b-','linewidth', 2); title('u');
grid on;
%% save data to file
% result_test01.t_store = t_store; % result_test01.x_store = x_store; % result_test01.u_store = u_store;
% save data_test01_02.mat result_test01; - Khai báo các hàm số: function a = ALPHA(x) a = ELU(x); end function s = ELU(x) alpha = 0.2; if (x >= 0) s = x; else s = alpha*(exp(x) - 1); end end
function dIX = Calculate_dI_dx(t, IX, u)
I = IX(1); x = IX(2);
43 L = CostFunc_L(t, x, u); dI = L; dx = TAG_ModelFcn(t, x, u); dIX = [dI; dx]; end function dQ1X = Calculate_dQ1_dx(t, QX, u) global N3; Q1 = QX(1:N3); x = QX(N3+1); dQ1 = VARPHI(x); dx = TAG_ModelFcn(t, x, u); dQ1X = [dQ1; dx]; end
function dQ2X = Calculate_dQ2_dx(t, Q2X, l_im1)
global N3; Q2 = Q2X(1:N3); x = Q2X(N3+1); dQ2 = VARPHI(x); u = l_im1' * PSI(x); dx = TAG_ModelFcn(t, x, u); dQ2X = [dQ2; dx]; end function dRX = Calculate_dR_dx(t, RX, u)
44 global N4; R = RX(1:N4); x = RX(N4+1); dR = ALPHA(x); dx = TAG_ModelFcn(t, x, u); dRX = [dR; dx]; end function dx = Calculate_dx_with_lim1(t, x, u) dx = TAG_ModelFcn(t, x, u); end
function [THETA_i_k, Term2_k] = Calculate_THETA_i_k(k, Ts, l_im1, u0, Term2_km1) xP_km1 = Term2_km1.xP; Q1_km1 = Term2_km1.Q1; xQ1_km1 = Term2_km1.xQ1; Q2_km1 = Term2_km1.Q2; xQ2_km1 = Term2_km1.xQ2; R1_km1 = Term2_km1.R1; xR_km1 = Term2_km1.xR; [P_k, xP_k] = Calculate_wch_term2_P(k, Ts, xP_km1, l_im1); [Q_k, Q1_k, xQ1_k, Q2_k, xQ2_k] = Calculate_wch_term2_Q(k, Ts, Q1_km1, xQ1_km1, Q2_km1, xQ2_km1, u0, l_im1); [R_k, R1_k, xR_k] = Calculate_wch_term2_R(k, Ts, l_im1, R1_km1, xR_km1);
45 Term2_k.xP = xP_k; Term2_k.Q1 = Q1_k; Term2_k.xQ1 = xQ1_k; Term2_k.Q2 = Q2_k; Term2_k.xQ2 = xQ2_k; Term2_k.R1 = R1_k; Term2_k.xR = xR_k; End
function [w_i, c_i, h_i] = Calculate_w_c_h(N, l_im1, Ts, x0, u0)
global N2 N3 N4; WCH = zeros(N2+N3+N4, 1); I_km1 = 0; xI_star_km1 = x0; Term2_km1.xP = x0; Term2_km1.Q1 = zeros(N2, 1); Term2_km1.xQ1 = x0; Term2_km1.Q2 = zeros(N3, 1); Term2_km1.xQ2 = x0; Term2_km1.R1 = zeros(N4, 1); Term2_km1.xR = x0; SIGMA = 0; for (k = 2:N)
[I_k, xI_star_k] = Calculate_wch_Term1(l_im1, k, Ts, I_km1, xI_star_km1); [THETA_i_k, Term2_k] = Calculate_THETA_i_k(k, Ts, l_im1, u0, Term2_km1);
WCH = WCH + I_k * THETA_i_k';
SIGMA = SIGMA + THETA_i_k * THETA_i_k';
% update
I_km1 = I_k; xI_star_km1 = xI_star_k; Term2_km1 = Term2_k;
46 end
SIGMA
WCH = WCH * SIGMA^(-1);
w_i = WCH(1:N2); w_i = w_i(:);
c_i = WCH(N2+1:N2+N3); c_i = c_i(:);
h_i = WCH(N2+N3+1:N2+N3+N4); h_i = h_i(:);
end
function [I_k, xI_star_k] = Calculate_wch_Term1(l_im1, k, Ts, I_km1, xI_star_km1)
IX0 = [I_km1; xI_star_km1]; u = l_im1' * PSI(xI_star_km1);
[~, IX] = ode45(@Calculate_dI_dx, [(k-1)*Ts, k*Ts], IX0, [], u);
I_k = IX(end, 1); xI_star_k = IX(end, 2);
end
function Term2 = Calculate_wch_Term2(k, N, Ts)
SIGMA = 0; for (j = 1 : N)
SIGMA = SIGMA + THETA_i_k*THETA_i_k'; end
Term2 = THETA_i_k' * SIGMA^(-1);
End
function [P_k, xP_k] = Calculate_wch_term2_P(k, Ts, xP_km1, l_im1)
u = l_im1' * PSI(xP_km1);
47 xP_k = xP(end, :); xP_k = xP_k(:); P_k = PHI(xP_k) - PHI(xP_km1); End function [Q_k, Q1_k, xQ1_k, Q2_k, xQ2_k] = Calculate_wch_term2_Q(k, Ts, Q1_km1, xQ1_km1, Q2_km1, xQ2_km1, u0, l_im1) global N3; Q1X_km1 = [Q1_km1; xQ1_km1]; [~, Q1X] = ode45(@Calculate_dQ1_dx, [(k-1)*Ts, k*Ts], Q1X_km1, [], u0); Q1_k = Q1X(end, 1:N3); Q1_k = Q1_k(:); xQ1_k = Q1X(end, N3+1); xQ1_k = xQ1_k(:); Q2X_km1 = [Q2_km1; xQ2_km1]; [~, Q2X] = ode45(@Calculate_dQ2_dx, [(k-1)*Ts, k*Ts], Q2X_km1,[], l_im1); Q2_k = Q2X(end, 1:N3); Q2_k = Q2_k(:); xQ2_k = Q2X(end, N3+1); xQ2_k = xQ2_k(:); Q_k = -Q1_k + Q2_k; End
function [R_k, R1_k, xR_k] = Calculate_wch_term2_R(k, Ts, l_im1, R1_km1, xR_km1) global N4; RX_km1 = [R1_km1; xR_km1]; u = l_im1' * PSI(xR_km1); [~, RX] = ode45(@Calculate_dR_dx, [(k-1)*Ts, k*Ts], RX_km1, [], u); R1_k = RX(1:N4); R1_k = R1_k(:); xR_k = RX(N4+1); xR_k = xR_k(:);
48 R_k = -2 * R1_k;
End
function L = CostFunc_L(t, x, u)
gamma = 5/3; viscos = 2*10^-5; omega = 170*pi;
R = 8.314; l_s = 0.03; destiny = 0.1786; A = 1.95*10^-2; A_g = 0.01521; Bl = 10.8; Re = 5.4; Rm = 0.64; Rl = 0.32; Zchx = 100; ZA_ts = ((Bl*Bl/(Re+Rl))+Rm)*Zchx*Zchx/(A*A); ZA_ms = ((((Bl*Bl/(Re+Rl))+Rm)/(A*A))+omega*destiny*l_s*(-viscos/((1- viscos)*(1-viscos)))/A_g+Zchx)^2; y = gamma*R*A*A*u^2*x*cos(omega*t-pi/2)^2*(ZA_ts/ZA_ms);
%L = 1e-6*(u - u_i)^2 + 1e8*(y - y_i)^2 + 1e-4*(x - x_i)^2; L = (y )^2 + (x - 100000)^2 + (u - 0.5)^2;
End
function [c, ceq] = DefNonlCon(l)
global x_i; c = [1e-5 - l' * PSI(x_i); ... l' * PSI(x_i) - 1]; ceq = []; end function J = Function_li(l)
global w_i c_i h_i x_i u_i t_i t_im1;
l = l(:);
49 [~, x] = ode45(@TAG_ModelFcn, [t_im1, t_i], x_i, [], u);
x_new = x(end);
J = c_i'*VARPHI(x_i) + CostFunc_L(t_i, x_new, u);
End
function Phi = PHI(x)
Phi = tanh(x);
End
function Psi = PSI(x)
Psi = sigmoid_1(x);
end
function sigma = sigmoid_1(x)
sigma = 1/(1 + exp(-x));
end
function Varphi = VARPHI(x)
Varphi = LeakyReLU(x);
end
function f = LeakyReLU(x)
f = max([0.1*x, x]);