я рівняння Риккати методом зворотного інтегрування
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)
Zadayushee_Vozdeistvie_Discrete_Revers_Modern (h, 0, Time);
% -------------------------------------------------- ----------------------%
load Zadayushee_Vozdeistvie_Discrete_Revers X_o_discrete_rev
% -------------------------------------------------- ----------------------%
size (X_o_discrete_rev);
% Знаходження q (t)
for i = 1: poryadok
qq =-P_nach (:,:, 1) * X_o_discrete_rev (i, 1);
q (i, 1) = Qq (i, 1);
end
В
% Інтегрування q (t) у зворотному часу
for k = 1: N_str
q (:, k +1) = q (:, k) - h * ((P2 (:,:, k) * B * inv (R) * B'-A ') * q (:, k) + Q * X_o_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, :);
X_o_discrete (:, i) = X_o_discrete_rev (:, j);
q_pr (:, i) = q (:, j);
i = i + 1;
end
% -------------------------------------------------- ----------------------%
% Побудова графіка змінних коефіцієнтів регулятора зворотного зв'язку
% в прямому часу
toc
figure (3)
plot (Time_R, K_o (:, 1), '-', Time_R, K_o (:, 2), '-', Time_R, K_o (:, 3), '-', ...
Time_R, K_o (:, 4), '-', Time_R, K_o (:, 5), '-', 'LineWidth', 2);
xlabel ('t')
tit1 = Title ('Коефіцієнти зворотного зв'язку в прямому часу');
set (tit1, 'FontName', 'Courier');
hl = legend ('k_1_о_с', 'k_2_о_с', 'k_3_о_с', 'k_4_о_с', 'k_5_о_с'...