авлення системи в просторі станів
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 = 0.2;
% -------------------------------------------------- ----------------------%
% -------------------------------------------------- ----------------------%
% Отримання max значень з файлу
load Sostoyaniya X_max U_max
% -------------------------------------------------- ----------------------%
% Знаходження елементів матриць Q і R
% r (1) = 100;
r (1) = 0.1;
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) * 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_prib = eye (poryadok, poryadok);
% P_prib (1,1) = 100;
% P_prib (2,2) = 10;
%% P_prib (3,3) = 1000;
%% P_prib (4,4) = 10;
%% P_prib (5,5) = 1;
% -------------------------------------------------- ----------------------%
P_nach = zeros (poryadok, poryadok);% + P_prib;
% -------------------------------------------------- ----------------------%
% Рішення рівняння Риккати методом зворотного інтегрування
P = 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
% -------------------------------------------------- ----------------------%
% Формування вектора коефіцієнтів регулятора
% і рішення рівняння Риккати в прямому порядку
load Solve_Riccati_Method_Revers_Integr P
size (K)
i = 1;
len_K = length (K (:, 1))
for j = len_K: -1: 1
K_pr (i, :) = K (j, :);
i = i + 1;
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);
grid on;
title ('K (t)')
xlabel ('t')
legend (&...