----------------------------- --------------------------%
% Приведення системи
b0 = b_0/a_5;
b1 = b_1/a_5;
В
a5 = a_5/a_5;
a4 = a_4/a_5;
a3 = a_3/a_5;
a2 = a_2/a_5;
a1 = a_1/a_5;
a0 = a_0/a_5;
% -------------------------------------------------- ----------------------%
% -------------------------------------------------- ----------------------%
% Представлення системи в просторі станів
A = [0 1 0 0 0;
0 0 1 0 0;
0 0 0 1 0;
0 0 0 0 1;
-a0-a1-a2-a3-a4]
B = [0, 0, 0, 0, 1]
C = [b0 b1 0 0 0]
% Початкові умови
X_0 = [10, 0, 6; 4; 8]
В
Time = 10;
% -------------------------------------------------- ----------------------%
% -------------------------------------------------- ----------------------%
% Отримання max значень з файлу
load Sostoyaniya X_max U_max
% -------------------------------------------------- ----------------------%
% Знаходження елементів матриць Q і R
r (1) = 100;
q (1) = 1/poryadok * r (1) * (U_max) ^ 2/(X_max (1)) ^ 2;
В
for i = 2: poryadok
q (i) = q (1) * (X_max (1)) ^ 2/(X_max (i)) ^ 2;
end
Q = diag (q)
R = diag (r)
В
% Для зміни коефіцієнтів
Q (1,1) = Q (1,1);
Q (2,2) = Q (2,2);
Q (3,3) = Q (3,3);
Q (4,4) = Q (4,4);
Q (5,5) = Q (5,5);
В
% Q (1,1) = Q (1,1) * 1e +12;
% Q (2,2) = Q (2,2) * 1e +8;
% Q (3,3) = Q (3,3) * 1e +7;
% Q (4,4) = Q (4,4) * 1e +0;
% Q (5,5) = Q (5,5) * 1e +2;
В
R (1,1) = R (1,1);
% -------------------------------------------------- ----------------------%
P_nach = zeros (poryadok, poryadok);% + ones (poryadok, poryadok);
% -------------------------------------------------- ----------------------%
% Рішення рівняння Риккати методом зворотного інтегрування
P1 = Solve_Riccati_Method_Revers_Integr (A, B, Q, R, Time, poryadok, P_nach)
% -------------------------------------------------- ----------------------%
% Побудова графіка коефіцієнтів регулятора
load Solve_Riccati_Method_Revers_Integr Time_R P N_str
PP = P;
for i = 1: N_str
P = reshape (PP (i, :), poryadok, poryadok);
K (i, :) =-inv (R) * B '* P;
end
figure (2)
plot (Time_R, K (:, 1), '-', Time_R, K (:, 2), '-', Time_R, K (:, 3), '-', Time_R, K (:, 4), '-', Time_R, K (:, 5), '-', 'LineWidth', 2);
xlabel ('t')
tit1 = Title ('Коефіцієнти зворотного зв'язку в прямому часу');
set (tit1, 'FontName', 'Courier');
hl = legend ('k_1_о_с', 'k_2_о_с', 'k_3_о_с', 'k_4_о_с', '...