
- •Введение
- •1.5. Численное решение дифференциального уравнения (п. 1.2.2.) с помощью функции ode45 из matlab.
- •1.6. Аналитическое решение дифференциального уравнения 3 порядка с помощью matlab.
- •1.7. Индивидуальные задания (по бригадам)
- •2. Решение задач оптимизации методом поиска.
- •2.1. Статическая задача оптимизации
- •2.2. Динамическая задача оптимизации
- •2.3. Индивидуальные задания (по бригадам)
- •3. Модальное управление.
- •Индивидуальные задания (по бригадам)
- •4. Принцип максимума Понтрягина. Экономия управления.
- •Индивидуальные задания (по бригадам)
- •5. Принцип максимума Понтрягина. Максимальное быстродействие.
- •Индивидуальные задания (по бригадам)
- •6. Принцип максимума Понтрягина. Линейная квадратичная задача.
- •Индивидуальные задания (по бригадам)
- •Приложение. Стандартные характеристические полиномы
- •1. Биноминальные полиномы (Полиномы Ньютона)
- •Коэффициенты
- •Переходные характеристики
- •2. Полиномы Баттерворта Коэффициенты
- •Переходные характеристики
- •3. Полиномы минимизирующие функционал Коэффициенты
- •4. Полиномы минимизирующие функционал Коэффициенты
- •Переходные характеристики
Введение
Целью лабораторных работ является ознакомление студентов с вычислительными аспектами проектирования оптимальных систем управления с применением лабораторного оборудования в виде вычислительных машин оснащенных общематематическим программным обеспечением (MATLAB).
В каждом разделе методических указаний рассматривается решение простейшей задачи, которая является образцом для выполнения индивидуальных заданий.
При проведении занятий предполагается, что студенты в режиме самоподготовки заранее знакомятся с темой очередного занятия и, основываясь на примере, приведенном в методическом указании, готовятся к выполнению индивидуальных заданий.
1. Аналитическое и численное решение дифференциальных уравнений.
1.1 Аналитическое решение дифференциального уравнения 1 порядка методом преобразования Лапласа.
Табличное значение
Применяем табличное значение к нашему случаю
1.2. Аналитическое решение дифференциального уравнения 2 порядка методом преобразования Лапласа.
1.2.1. Вещественные корни характеристического уравнения
В соответствии с таблицей
1.2.2. Комплексные корни характеристического уравнения
1.3. Численное решение дифференциального уравнения (п. 1.1.) с помощью функции ODE45 из MATLAB.
Файл Main1.m
[t,y]=ode45(@odefun1,[0 3],1);
plot(t,y);
Файл Odefun1.m
function f=odefun1(t,y)
f=-2*y;
1.4. Численное решение дифференциального уравнения (п. 1.2.1.) с помощью функции ODE45 из MATLAB.
Следует отметить, что набор экспонент в решении дифура существенно зависит от начальных условий.
Файл Main2.m
%exp(-t) and exp(-2*t)
x10=1;
x20=1;
%exp(-t) only
x10=1;
x20=-1;
%exp(-2*t) only
x10=0.5;
x20=-1;
t0=0;
tm=10;
[t,x]=ode45(@odefun2,[t0 tm],[x10,x20]);
%вычисление переменных y1 и y2 необходимо для сравнения %графиков аналитического и численного решений
y1=(2*x10+x20)*exp(-t)-(x10+x20)*exp(-2*t);
y2=(-2*x10-x20)*exp(-t)+(2*x10+2*x20)*exp(-2*t);
plot(t,x(:,1),'r',t,x(:,2),'g',t,y1,'bo',t,y2,'ko');
Файл Odefun2.m
function f=odefun2(t,x)
f=[x(2);-2*x(1)-3*x(2)];
1.5. Численное решение дифференциального уравнения (п. 1.2.2.) с помощью функции ode45 из matlab.
Следует отметить, что в MALLAB скрипте необходимо правильно выбирать обозначение для операции умножения. Требуется точно указать собираемся ли мы выполнять умножение матриц (*) или почленное умножение элементов массивов (.*).
Файл Main3.m
x10=2;
x20=1;
t0=0;
tm=10;
[t,x]=ode45(@odefun3,[t0,tm],[x10,x20]);
%вычисление переменных y1 и y2 необходимо для сравнения %графиков аналитического и численного решений
y1=(x10+x20)*exp(-t).*sin(t)+(x10)*exp(-t).*cos(t);
y2=-(2*x10+x20)*exp(-t).*sin(t)+(x20)*exp(-t).*cos(t);
plot(t,x(:,1),'r',t,x(:,2),'g',t,y1,'bo',t,y2,'ko');
Файл Odefun3.m
function f=odefun3(t,x)
f=[x(2);-2*x(1)-2*x(2)];
1.6. Аналитическое решение дифференциального уравнения 3 порядка с помощью matlab.
Уравнения объекта в матричном виде
где
Собственные числа (корни характеристического уравнения) определим с помощью функции EIG
A=[0,1,0;0,0,1;-2,-4,-3]
eig(A)
ans =
-9.999999999999991e-001
-9.999999999999994e-001 +1.000000000000002e+000i
-9.999999999999994e-001 -1.000000000000002e+000i
Аналитическое решение получим с помощью функции DSOLVE
S=dsolve('Dx1=x2','Dx2=x3',' Dx3=-3*x3-4*x2-2*x1','x1(0)=1','x2(0)=0','x3(0)=0')
S =
x1: [1x1 sym]
x2: [1x1 sym]
x3: [1x1 sym]
>> S.x1
ans =
-exp(-t)*(-2-sin(t)+cos(t))
>> S.x2
ans =
exp(-t)*(2*cos(t)-2)
>> S.x3
ans =
-exp(-t)*(2*sin(t)+2*cos(t)-2)
Графики переходных процессов построим с помощью функций ODE45 и PLOT.
Файл Main4.m
x10=1;
x20=0;
x30=0;
tm=4;
[t,x]=ode45(@odefun4,[0 tm],[x10,x20,x30]);
y1=-exp(-t).*(-2-sin(t)+cos(t));
y2= exp(-t).*(2*cos(t)-2);
y3=-exp(-t).*(2*sin(t)+2*cos(t)-2);
plot(t,x(:,1),'r',t,x(:,2),'g',t,x(:,3),'b', t,y1,'ro',t,y2,'go',t,y3,'bo')
Файл Odefun4.m
function f=odefun4(t,x)
f=[x(2);x(3);-3*x(3)-4*x(2)-2*x(1)];