- •В. К. Никишев Математическое моделирование
- •Предисловие
- •Отчет по лабораторной работе
- •Форма для исследования объекта
- •Исходное дифференциальное уравнение
- •Лабораторная работа 2 Методы исследования объектов, динамика которых описывается дифференциальными уравнениями 2-го поряда.
- •Лабораторная работа 3 Методы исследования объектов, динамика которых описывается дифференциальными уравнениями с использованием программы для моделирования
- •Лабораторные работы для исследования физических, биологических и других систем
- •Пример. Исследовать падение шарика радиуса r с высоты h
- •Пример2 . Исследовать падение шарика радиуса r с высоты h в среде MatLab
- •Пример3. Исследовать движение исследовательского зонда вертикально вверх с летящего самолета
- •Пример. Исследование динамики объектов, брошенных под углом к горизонту.
- •2.4 Лабораторные работы по разработке имитационных моделей Пример. Разработка информационной модели студента ( учащихся)
- •2.5 Разработка моделей транспортных задач Пример. «Размещения предприятий»
- •Пример Моделирование системы планирования на основе метода сетевого графа
- •Пример. Планирование производства товаров на основе модели получения максимальной прибыли с использованием метода линейного программирования
- •2.9 Лабораторная работа
- •2.10 Лабораторная работа 10
- •Тема. Моделирование объектов методом
- •Пространства состояния, динамика которого
- •Описывается дифференциальным уравнением
- •3. Индивидуальные задания по моделированию
- •Моделирование биологических систем Модель однородной популяции
- •Модель межвидовой конкуренции
- •Эпидемия болезней
- •Модель “хищник - жертва”
- •Рост опухоли
- •3.5 Моделирование оптимальных систем
- •4 Где построить школу?
- •Литература
- •Оглавление
2.10 Лабораторная работа 10
Тема. Моделирование объектов методом
Пространства состояния, динамика которого
Описывается дифференциальным уравнением
Задачи исследования:
Исследовать динамику объекта методом пространства состояния с использованием информационных технологий MatLab методом составления программы: решения уравнений пространства состояний.
Исходные данные
Начальные и конечные координаты объекта x(0), x`(0), xk, такт исследования T, управляющее воздействие u(0). Получить зависимости x(T), x`(T) с использованием
программ MatLab ,Scilab
Математическая модель объекта.
Исходное дифференциальное уравнение имеет вид
Представим исходное уравнение в нормальной форме Коши, вводя обозначения
В результате получим систему уравнений первого порядка
С целью определения матриц уравнения параметров состояния преобразуем систему:
матрицы коэффициентов соответственно равны
Уравнение параметров состояния будет иметь вид
Решение данных примеров в системе Matlab
Для этого создадим 3 m-файла (для каждого примера отдельно). Далее эти m-файлы запустим в командном окне(command Window).
Описание m-файлов
Пример 1
figure(1); //вызов графического окна;
clf; //очистка фигуры;
title(“solve equation d(dx)+k1*dx=k2*u”); //установка титульной надписи
syms k1 k2 p t T i Y01 Y02; //задание переменных;
//ввод данных;
k2=0.01;
k1=0.5;
//ввод исходных матриц;
B=[0 1;0 -k1];
U=[0.1];
E=eye(size(B)); //создание единичной матрицы
A=[0;k2];
D=E*p;
W=D-B;
W1=inv(W); //нахождение обратной матрицы
W2=ilaplace(W1,p,t); //обратное преобразование Лапласа
H=(int(W2,t,0,T))*A; //матрица управления
Y0=[Y01;Y02]; //матрица начальных условий
Y01=0;Y02=1;
W21=ilaplace(W1,p,T); //матрица состояния
T=0.1; // такт работы
for i=0:10,
Y=W21*Y0+H*U; //расчетная формула
Y1=Y01+(-2*exp(-1/2*T)+2)*Y02+1/500*T+1/250*exp(-1/2*T)-1/250;
Y2=exp(-1/2*T)*Y02-1/500*exp(-1/2*T)+1/500;
Y01=Y1; Y02=Y2;
hold on;.//обеспечение продолжение вывода графиков в текущее окно
plot(i,Y01,’o’,i,Y02,’or’);//построение графиков
legend(“x”,’dx’); //добавление к текущему графику легенды
xlabel(“i”); //установка надписи на оси OX
ylabel(“x,dx”); //становка надписи на оси OYgrid on; //сетка
end
Y2=exp(-1/2*T)*Y02-1/500*exp(-1/2*T)+1/500;
Y01=Y1; Y02=Y2;
hold on;.//обеспечение продолжение вывода графиков в текущее окно
plot(i,Y01,’o’,i,Y02,’or’);//построение графиков
legend(“x”,’dx’); //добавление к текущему графику легенды
xlabel(“i”); //установка надписи на оси OX
ylabel(“x,dx”); //становка надписи на оси OYgrid on; //сетка
end
нач. Условия
k1=0.5, k2=0.01; i=0..10; y10=0; y20=1; n=0.1; u=0.1
Y2=exp(-1/2*T)*Y02-1/500*exp(-1/2*T)+1/500;
Y01=Y1; Y02=Y2;
hold on;.//обеспечение продолжение вывода графиков в текущее окно
plot(i,Y01,’o’,i,Y02,’or’);//построение графиков
legend(“x”,’dx’); //добавление к текущему графику легенды
xlabel(“i”); //установка надписи на оси OX
ylabel(“x,dx”); //становка надписи на оси OYgrid on; //сетка
end
Пример. Для дифференциального уравнения
Сцелью определения матриц уравнения параметров состояния преобразуем систему:
Пример 2
figure(2); //вызов графического окна;
clf; //очиска фигуры;
title(“solve equation d(dx)+2*dx-3*x=u”); //установка титульной надписи
syms p t T i Y10 Y20; //задание переменных;
//ввод данных;
B=[0 1;3 -2];
E=eye(size(B)); //создание единичной матрицы
U=[0.1];
A=[0;1];
D=E*p;
W=D-B;
W1=inv(W); //нахождение обратной марицы
W2=ilaplace(W1,p,t); //обратное преобразование Лапласа
H=(int(W2,t,0,T))*A; //марица управления
Y10=0;
Y20=1;
T=0.1; // такт работы
for i=0:10,
Y=W21*Y0+H*U;
Y1=(1/4*exp(-3*T)+3/4*exp(T))*Y10+1/16*16^(1/2)*(exp(T*(-
1+1/2*16^(1/2)))-exp(T*(-1-1/2*16^(1/2))))*Y20+1/40*(exp(-
T)*exp(1/2*16^(1/2)*T)*16^(1/2)+8*exp(-T)*exp(1/2*16^(1/2)*T)-exp(-
T)*exp(-1/2*16^(1/2)*T)*16^(1/2)+8*exp(-T)*exp(-1/2*16^(1/2)*T)-
16)/(-2+16^(1/2))/(2+16^(1/2));
Y2=3/16*16^(1/2)*(exp(T*(-1+1/2*16^(1/2)))-exp(T*(-1-
1/2*16^(1/2))))*Y10+(3/4*exp(-3*T)+1/4*exp(T))*Y20-1/40*exp(- 3*T)+1/40*exp(T);
Y10=Y1;
Y20=Y2;
hold on; //обеспечение продолжение вывода графиков в текущее окно
plot(i,Y1,’o’,i,Y2,’or’); //построение графиков
legend(“x”,’dx’); //добавление к текущему графику легенды
xlabel(“i”); //установка надписи на оси OX
ylabel(“x,dx”); //становка надписи на оси OY
grid on; end //сетка