Q R poryadok
% Рішення диференціального рівняння Риккати
P1 = reshape (P1, poryadok ^ 2, 1);
[Time_R, P] = ode45 (@ Riccati, [Time: -0.01: 0], P1);
[N_str, N_stolb] = size (P);
В
% Побудова отриманого рішення
figure (1)
for i = 1: poryadok ^ 2
plot (Time_R, P (:, i), '-')
hold on
end
%
%
%
%
% Time_R, P (:, 25), '-', 'lineWidth', 2);
grid on;
tit1 = title ('Розв'язки рівняння Риккати');
set (tit1, 'FontName', 'Courier');
xlabel ('t');
%
% 'p_1_7', 'p_1_8', 'p_1_9', 'p_2_0', 'p_2_1', 'p_2_2', 'p_2_3', 'p_2_4', 'p_2_5');
save Solve_Riccati_Method_Revers_Integr Time_R P N_str
save Solve_Riccati_Method_Revers_Integr_for_slegenie Time_R P N_str
P = reshape (P (N_str, :), poryadok, poryadok);
В В
function dP = Riccati (Time, P)
load For_Riccati A B Q R poryadok
P = reshape (P, poryadok, poryadok);
% Диференціальне рівняння Риккати
dP =-P * A - A '* P + P * B * inv (R) * B' * P - Q;
dP = reshape (dP, poryadok ^ 2, 1);
Vozmyshyayushee_Vozdeistvie_Discrete_Revers.m
% Отримання дискретних значень обурює впливу в зворотному часу
% для знаходження допоміжної функції q (t)
function Vozmyshyayushee_Vozdeistvie_Discrete_Revers (h, T_nach, T_konech)
% -------------------------------------------------- ----------------------%
% Рівноваги вплив
A = 1;
w = 4 * pi;
В
k = 1;
В
RETURN = 1;
while RETURN == 1
disp ('рівноваги вплив - const: 1')
disp ('обурюватися вплив - A * sin (w * t): 2 ')
reply = Input ('Виберете рівноваги вплив [1 або 2]:', 's');
В
switch reply
case '1 '
disp ('рівноваги вплив - const')
for t = T_konech:-h: T_nach
w_discrete_rev (:, k) = [A + 0 * t, 0, 0, 0, 0];
k = k + 1;
end
RETURN = 2;
case '2 '
disp ('обурюватися вплив - A * sin (w * t) ')
for t = T_konech:-h: T_nach
w_discrete_rev (:, k) = [A * sin (w * t), 0, 0, 0, 0];
k = k + 1;
end
RETURN = 2;
otherwise
disp ('Невідоме вплив.')
RETURN = 1;
end
end
figure (2)
t = T_konech:-h: T_nach;
plot (t, w_discrete_rev (1, :), 'r-', 'LineWidth', 2);
xlabel ('t')
tit1 = Title ('рівноваги вплив');
set (tit1, 'FontName', 'Courier');
hl = legend ('рівноваги вплив', 0);
set (hl, 'FontName', 'Courier');
grid ...