% '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);
% Получение дискретных значений возмущающего воздействия в обратном времени
% для нахождения вспомогательной функции 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 on;
save Vozmyshyayushee_Vozdeistvie_Discrete_Revers w_discrete_rev
% ------------------------------------------------------------------------%
% Получение дискретных значений задающего воздействия в обратном времени
% для нахождения вспомогательной функции q(t)
function Zadayushee_Vozdeistvie_Discrete_Revers_Modern(h, T_nach, T_konech)
% ------------------------------------------------------------------------%
% Задающее воздействие
alfa = 0.2;
beta = 10;
H = 0.8;
k = 1;
for t = T_konech: -h : T_nach
X_o_1 = 10*exp(-1/5*t)*t+4/5;
X_o_2 = -2*exp(-1/5*t)*t+10*exp(-1/5*t);
X_o_3 = 2/5*exp(-1/5*t)*t-4*exp(-1/5*t);
X_o_4 = -2/25*exp(-1/5*t)*t+6/5*exp(-1/5*t);
X_o_5 = 2/125*exp(-1/5*t)*t-8/25*exp(-1/5*t);
X_o_discrete_rev(:, k) = [X_o_1; X_o_2; X_o_3; X_o_4; X_o_5];
k = k + 1;
end
figure(2)
t = T_konech : -h : T_nach;
plot(t, X_o_discrete_rev(1,:), 'r-', t, X_o_discrete_rev(1,:)-H, 'LineWidth', 2);
xlabel('t')
tit1 = title('Задающее воздействие');
set(tit1,'FontName','Courier');
hl=legend('Отслеживание зад. возд. на H ','Задающее воздействие',0);
set(hl,'FontName','Courier');
grid on;
save Zadayushee_Vozdeistvie_Discrete_Revers X_o_discrete_rev
% ------------------------------------------------------------------------%