oryadok * 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_0 = ones (poryadok, poryadok);
% P_0 (1.1) = P_0 (1.1) * 1e12;
% P_0 (2,2) = P_0 (2,2) * 1e8;
% P_0 (3,3) = P_0 (3,3) * 1e7;
% P_0 (4,4) = P_0 (4,4) * 1e0;
% P_0 (5,5) = P_0 (5,5) * 1e2;
% -------------------------------------------------- ----------------------%
P_nach = zeros (poryadok, poryadok);% + P_0;
% -------------------------------------------------- ----------------------%
% Рішення рівняння Риккати методом зворотного інтегрування
P = Solve_Riccati_Method_Revers_Integr (A, B, Q, R, Time, poryadok, P_nach);
load Solve_Riccati_Method_Revers_Integr_for_slegenie Time_R P N_str
PP = P;
for k = 1: N_str
P1 = reshape (PP (k, :), poryadok, poryadok);
for i = 1: poryadok
for j = 1: poryadok
P2 (i, j, k) = P1 (i, j);
end
end
end
size_P = size (P2);
% -------------------------------------------------- ----------------------%
tic
% -------------------------------------------------- ----------------------%
% Отримання дискретних значень задає впливу у зворотному часу
% для знаходження допоміжної функції q (t)
Vozmyshyayushee_Vozdeistvie_Discrete_Revers (h, 0, Time);
% -------------------------------------------------- ----------------------%
load Vozmyshyayushee_Vozdeistvie_Discrete_Revers w_discrete_rev
% -------------------------------------------------- ----------------------%
size (w_discrete_rev);
% Початкове значення q (t)
q = zeros (poryadok, 1);
% Інтегрування q (t) у зворотному часу
for k = 1: N_str
q (:, k +1) = q (:, k) - h * ((P2 (:,:, k) * B * inv (R) * B'-A ') * q (:, k) - P2 (:,:, k) * w_discrete_rev (:, k));
end
q (:, k +1) = [];
size_q = size (q);
% -------------------------------------------------- ----------------------%
% Знаходження змінних коефіцієнтів регулятора
for k = 1: N_str
K_o (k, :) =-inv (R) * B '* P2 (:,:, k);
K_pr (k, :) =-inv (R) * B ';
end
% Формування вектора коефіцієнтів регулятора, значень задає
% впливу, значень допоміжної функції в прямому порядку
size (K_o);
size (K_pr);
K_pr_p = K_pr;
i = 1;
len_K = length (K_o (:, 1));
for j = len_K: -1: 1
K_o_p (i, :) = K_o (j, :);
w_discr...