Uploaded by Emad Kh

Lab-3 System dynamics

advertisement
Министерство науки и высшего образования Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«Московский государственный технический университет
имени Н.Э. Баумана
(национальный исследовательский университет)»
(МГТУ им. Н.Э. Баумана)
ФАКУЛЬТЕТ _______ИНФОРМАТИКА И УПРАВЛЕНИЕ_____________________________
КАФЕДРА _________КОМПЬЮТЕРНЫЕ СИСТЕМЫ И СЕТИ__________________________
Магистерская программа __Современные интеллектуальные программно-аппаратные
комплексы__
ОТЧЕТ
По домашнее задание №3
«Реконструкция математической модели системы по неполным данным»
Дисциплина: Системный анализ в управлении
Студент
ИУ6И-43М
(Группа)
Э.А. Керхили
(Подпись, дата)
Преподаватель
(И.О. Фамилия)
Д.И. Миков
(Подпись, дата)
Москва, 2022
(И.О. Фамилия)
Функция регистрируемого сигнала
Вариант: у = 𝟏. 𝟓 𝐬𝐢𝐧(𝒙) + 𝒙𝟐
Математическая модель Задания
Сформировать временной ряд ai(i∆t) = ai, I = 1, …,N, где N = 400 ÷ 500.
Отрезок: t =[0;10]
∆t = (tf-t0)/N = 0.02.
Параметры реконструкции: n = 3, v = 3
Вектор состояния: 𝑋(𝑡) = [𝑎(𝑡),
𝑑𝑎(𝑡) 𝑑2 𝑎(𝑡)
𝑑𝑡
,
𝑑𝑡 2
] = 𝑓(𝑥1 , 𝑥2 , 𝑥3 )
Математическая модель системы:
3
𝑓(𝑋) =
∑
𝑙1 ,𝑙2 ,𝑙3 =0
3
3
𝑙
𝑐𝑙1,𝑙2 ,𝑙3 ∏ 𝑥𝑘𝑘 , ∑ 𝑙𝑘 ≤ 3
𝑘=1
𝑘=1
число коэффициентов: k = (n + v)!/(n!v!) = 20
Код Математической модели ode45: systema.m
function f
global
f(1) =
f(2) =
= systema(~,x)
C;
x(2);
x(3);
f(3) = (C(1) + C(2)*x(1) + C(3)*x(2) + C(4)*x(3)+C(5)*x(1)*x(2) + C(6)* x(2)
*x(3) ...
+C(7)*x(1)*x(3) + C(8)*x(1)*x(1) + C(9)*x(2)*x(2)+C(10)*x(3)*x(3) ...
+C(11) * x(1)*x(2)*x(3) + C(12)*x(1)*x(1)*x(2) + C(13)*x(1)*x(1)*x(3) ...
+C(14)*x(1)*x(2)*x(2) + C(15)*x(2)*x(2)*x(3) + C(16)*x(1)*x(3)*x(3)...
+C(17)*x(2)*x(3)*x(3) + C(18)*x(1)*x(1)*x(1) + C(19)*x(2)*x(2)*x(2) ...
+C(20)*x(3)*x(3)*x(3));
f = f';
end
Код Основной программы: model.m
t0 = 0;
tf = 10;
N = 500;
step = (tf-t0)/N;
syms x;
t = t0 : step : tf;
n = 3;
v = 3;
k = 20;
global C x1 x2 x3 x4;
y1 = zeros(1, N+1);
for i = 1 : N
y1(i) = 1.5 * sin(t(i)) + t(i)^2;
end
y2 = zeros(1, N+1);
y3 = zeros(1, N+1);
y4 = zeros(1, N+1);
x1
x2
x3
x4
=
=
=
=
zeros(k,1);
zeros(k,1);
zeros(k,1);
zeros(k,1);
C = zeros(1, k);
for i = 1 : N-1
y2(i) = (y1(i + 1) - y1(i)) / step;
end
for i = 1 : N-1
y3(i) = (y2(i + 1) - y2(i)) / step;
end
for i = 1 : N-1
y4(i) = (y3(i + 1) - y3(i)) / step;
end
for i = 0 : 19
x1(i+1) = y1( (i *(N/k)) + 1);
end
for i = 0 : 19
x2(i+1) = y2( (i *(N/k)) + 1);
end
for i = 0 : 19
x3(i+1) = y3( (i *(N/k)) + 1);
end
for i = 0 : 19
x4(i+1) = y4( (i *(N/k)) + 1);
end
A = zeros([k, k]);
for i = 1 : k
A(i, :) = [1 x1(i) x2(i) x3(i) x1(i)*x2(i) x2(i)*x3(i) x1(i)*x3(i) (x1(i))^2
(x2(i))^2
...
(x3(i))^2 x1(i)*x2(i)*x3(i) (x1(i))^2*x2(i) (x1(i))^2*x3(i) (x2(i))^2*x1(i)
...
(x2(i))^2*x3(i) (x3(i))^2*x1(i) (x3(i))^2*x2(i) (x1(i))^3 (x2(i))^3 (x3(i))^3];
end
C = A \ x4;
[~, s] = ode45('systema', t, [x1(1) x2(1) x3(1)]);
Y1 = s(:, 1);
figure
plot(t,Y1,'-r', t,y1,'-g');
title('The graphic of reconstructed model and original function')
legend({'reconstructed', 'original'}, 'Location', 'northeast', 'FontSize',11);
grid on;
Y2 = s(:, 2);
figure
plot(Y1,Y2,'-r', y1,y2,'-g');
title('Phase portraits')
legend({'reconstructed', 'original'}, 'Location', 'northeast', 'FontSize',11);
grid on;
Выполняя программы, получается:
1- изображения оригинального;
2- реконструированного сигналов, фазовые портреты.
Выводы
В ходе лабораторной работы были выполнены следующие задачи:
1 - выбраны параметры модели;
2- разработана реконструкция сигнала на основе вектора переменных
состояния.
3- была реализована реконструкция системы с использованием ode45 в
matlab и проведено сравнение с исходной моделью;
В качестве результатов: график восстановленного сигнала имеет форму
и фазу, аналогичные исходным. Сходство фазовых портретов показывает
высокую точность построенной модели благодаря тщательно подобранным
параметрам n, v и временному шагу ∆t.
Download