Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

NDVwWO28D2

.pdf
Скачиваний:
4
Добавлен:
13.02.2021
Размер:
343.66 Кб
Скачать

%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

Скрипты, приведенные в настоящем подразделе, аналогичны соответствующим скриптам из 1.3. При формировании массивов, соответствующих аналитическому решению дифференциального уравнения, необходимо правильно выбирать обозначение для операции умножения. Требуется точно указать, предполагается ли выполнение умножения матриц (*) или поэлементного перемножения элементов массивов (.*). В рассматриваемом случае аналитическому произведению экспонент и гармонических функций соответствует поэлементное произведения соответствующих массивов данных.

Файл Main3.m (вызов ODE45)

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);

11

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

Требуется найти решение следующей системы дифференциальных уравнений 3-го порядка:

dxdt1 = x2, dxdt2 = x3,

dxdt3 = −3x3 − 4x2 − 2x1.

Искомое решение должно соответствовать следующим начальным условиям:

x1(0) = 1, x2 (0) = 0, x3 (0) = 0.

Для удобства использования MATLAB-функций целесообразно записать решаемую систему уравнений в матричном виде:

 

dx

 

= Ax,

 

(1.21)

 

dt

 

 

 

 

 

где

 

 

 

0

1

0

 

A = 0

0

1

.

 

−4

 

 

−2

−3

Для контроля последующего аналитического решения целесообразно вычислить собственные числа матрицы A . Далее приведено содержимое окна команд MATLAB, которое соответствует формированию массива данных, содержащего элементы матрицы A и вызову функции EIG, выполняющей вычисление собственных чисел. Результат работы функции EIG также выводится в окно команд и обозначается идентификатором ANS.

A=[0,1,0;0,0,1;-2,-4,-3]

eig(A)

12

ans =

-9.999999999999991e-001

-9.999999999999994e-001 +1.000000000000002e+000i

-9.999999999999994e-001 -1.000000000000002e+000i

Далее приводится аналитическое решение, полученное с помощью

MATLAB-функции 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)

Результаты, полученные с помощью функции DSOLVE соответствуют значениям собственных чисел, рассчитанных ранее.

1.7. Индивидуальные задания (по бригадам)

Варианты заданий приведены в таблице.

При выполнении задания необходимо найти аналитическое решение дифференциального уравнения с помощью преобразований вручную,

Вариант

Матрица A

Вариант

Матрица A

(номер бригады)

(номер бригады)

 

 

 

 

 

 

 

0

1

0

 

0

2

0

1

A = 0

0

0.5

5

A = 0

0

0.5

 

 

−4

 

 

 

 

 

 

−2

−3

 

−2

−4 −3

 

0

1

0

 

0

2

0

2

A = 0

0

1

6

A = 0

0

1

 

 

−4

 

 

 

 

 

 

−3

−2

 

−3

−4 −2

 

0

1

0

 

0

2

0

3

A = 0

0

2

7

A = 0

0

2

 

 

−4

 

 

 

 

 

 

−2

−3

 

−2

−4 −3

 

0

1

0

 

0

2

0

4

A = 0

0

2

8

A = 0

0

2

 

 

−4

 

 

 

 

 

 

−3

−2

 

−3

−4 −2

13

выполнить численное решение и построить графики переходных процессов, соответствующие аналитическому и численному решениям.

При выполнении задания следует учитывать, что дифференциальное уравнение имеет вид (1.21) и во всех вариантах заданий используется следующий вектор начальных условий: [1 0 0]

2. РЕШЕНИЕ ЗАДАЧ ОПТИМИЗАЦИИ МЕТОДОМ ПОИСКА

Одним из распространенных методов решения задач оптимизации является метод Нелдера– Мида. Следующие примеры показывают, как с его помощью решаются статические и динамические задачи оптимизации.

2.1. Статическая задача оптимизации

Под статическими будем понимать задачи, в которых соотношение между показателем качества и параметрами задается в виде алгебраических выражений.

Например, рассмотрим задачу определения значений параметров x1 и x2 , которые обеспечивают минимальное значение следующей функции:

f (x1, x2) = (1 − x1)2 + 100(x2 x12)2 .

Для решения задачи будут использованы средства пакета программ

MATLAB.

Функция FMINSEARCH, в которой реализован метод Нелдера– Мида вызывается с помощью следующего скрипта:

Файл Main5.m

X=fminsearch('fmsfun’,[0,0])

Параметрами функции FMINSEARCH являются: fmsfun – имя функции, которая вычисляет значения целевой функции f (x1, x2) в процессе поиска;

[0, 0] – вектор значений параметров, соответствующий начальной точке поиска.

Файл fmsfun.m

function f=fmsfun(x)

f=(1-x(1))^2+100*(x(2)-x(1)^2)^2;

После окончания процесса поиска найденная комбинация параметров отображается в виде вектора X в командном окне системы MATLAB.

14

Для наглядного представления поведения целевой функции в найденной точке целесообразно построить графики линий равного уровня функции f (x1, x2) в рассматриваемой области. Дополнительный анализ целевой

функции с помощью графиков линий равного уровня целесообразен поскольку при этом проводятся:

проверка нахождения глобального минимума;

оценка чувствительности величины целевой функции к изменению параметров.

Построение графиков может быть реализовано с помощью следующего

MATLAB-скрипта:

Файл Main6.m

%Задание диапазона построения графиков x1=-4:0.01:5;

x2=x1;

%Формирование вспомогательных структур данных

[X1,X2]=meshgrid(x1,x2);

%В следующей строке программы используются операции

%поэлементного возведения в степень, так как переменные X1 и %X2 являются матрицами

Z=(1-X1).^2+100*(X2-X1.^2).^2; %Собственно построение графиков.

%Последний параметр функции contour определяет количество

%линий на графике и значения функции,

%для которых выполняются построения (см. справку MATLAB) contour(X1,X2,Z,[0.5 4 20]);

2.2. Динамическая задача оптимизации

Под динамическими будем понимать задачи, в которых соотношения между параметрами и целевой функцией выражаются с помощью дифференциальных уравнений или функционалов от функций времени.

В качестве первого примера рассмотрим задачу, в которой требуется определить параметра управляющего воздействия, при котором обеспечивается требуемая величина состояния объекта управления в заданный момент времени.

Задан динамический объект, описываемый дифференциальным уравнением

15

dxdt = −0.5x + u; x (0) = 10.

Входным воздействием на объект является кусочно-линейная функция времени u (t) , содержащая неизвестный параметр um . Её вид определяется таблицей значений (табл. 2.1).

 

Таблица 2.1

Требуется найти такое

значение

 

 

 

 

t

u (t)

параметра входного воздействия

(um ) , при

 

0

0

котором x (4) = 0 .

 

 

 

 

2

um

 

Строго говоря, приведенная

задача не

4

0

является задачей на нахождение минимума

 

 

,

но ее можно переформулировать как задачу минимизации при сохранении исходного смысла. Новая формулировка заключается в том, что будет найдено такое значение параметра входного воздействия, которое обеспечит минимальное значение x (4) . Такая постановка задачи позволяет использовать при решении поставленной задачи MATLAB-функцию FMINSEARCH. Кроме функции FMINSEARCH будет использована функция ODE45, которая предназначена для численного решения дифференциального уравнения.

Решение поставленной задачи реализовано в MATLAB c помощью следующих скриптов:

Файл Main7.m

%В рассматриваемой программе решается задача поиска такого

%значения um, которое соответствует минимальному значению

%ABS(x) при t=4.

%Для определения значения параметра um программа вызывает

%функцию поиска минимума (fminsearch).

%Предполагается, что функция fmsfun7, на которую ссылается

%fminsearch, вычисляет квадрат состояния объекта, %соответствующего моменту времени t=4

global t t1 x x0 u t1=2;

x0=10;

um=fminsearch(@fmsfun7,1)

plot(t,x,t,u)

16

Файл fmsfun7.m

%Основное назначение программы – вычислить квадрат значения

%состояния объекта, соответствующего моменту времени t=4. %Для вычисления значений состояния объекта используется

%функция ode45, которая реализует метод численного решения

%соответствующего дифференциального уравнения.

%Функция odefun7, на которую ссылается ode45, предназначена

%для вычисления значений правой части дифференциального

%уравнения объекта. function f=fmsfun7(um) global t t1 x x0 u umax umax=um;

t=[];

x=[];

u=[];

[t,x]=ode45(@odefun7,[0 2*t1],[x0]); for i=1:length(t),

if t(i)<t1 u(i)=(um/t1)*t(i);

else

u(i)=-(um/t1)*t(i)+2*um;

end

end f=x(length(t))*x(length(t));

Файл odefun7.m

function f=odefun7(t,x) global t1 umax

if t<t1 u=(umax/t1)*t;

else

u=-(umax/t1)*t+2*umax;

end f=-0.5*x+u;

2.3. Индивидуальные задания (по бригадам)

Статическая задача. Определить глобальный максимум функции и исследовать поведение функции в районе экстремума. Задача нахождения максимума должна быть решена средствами MATLAB по аналогии с примером, приведенным в 2.1.

Варианты функций приведены в табл. 2.2.

17

 

 

 

 

 

 

 

Таблица 2.2

Вариант

 

 

Вариант

 

 

(номер

 

Функция

(номер

 

Функция

бригады)

 

 

бригады)

 

 

 

 

 

 

 

 

 

 

1

 

 

z = x2 + y2 − 2x +1;

5

 

 

z = x2 + y2 + 2x +1;

 

 

f = e−0.1z cos (z)

 

 

f = e−0.1z cos (z)

 

 

 

 

 

 

2

 

 

z = x2 + y2 − 2x − 2y + 2;

6

 

 

z = x2 + y2 + 2y +1;

 

 

f = e−0.1z cos (z)

 

 

f = e−0.1z cos (z)

 

 

 

 

 

 

3

 

 

z = x2 + y2 − 2y +1;

7

 

 

z = x2 + y2 + 2x + 2y + 2;

 

 

f = e−0.1z cos (z)

 

 

f = e−0.1z cos (z)

 

 

 

 

 

 

4

 

 

z = x2 + y2 + 2x − 2y + 2;

8

 

 

z = x2 + y2 − 2x − 2y + 2;

 

 

f = e−0.1z cos (z)

 

 

f = e−0.1z cos (z)

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 2.3

 

 

 

 

 

 

 

 

Вариант

 

 

 

Вариант

 

 

 

(номер

 

 

Параметры функции

(номер

 

 

Параметры функции

бригады)

 

 

 

бригады)

 

 

 

1

 

u (0) = 0, u (1) = um, u (9) = 0

5

 

u (0) = 0, u (5) = um, u (9) = 0

2

 

u (0) = 0, u (5) = um, u (9) = 0

6

 

u (0) = 0, u (6) = um, u (9) = 0

3

 

u (0) = 0, u (3) = um, u (9) = 0

7

 

u (0) = 0, u (7) = um, u (9) = 0

4

 

u (0) = 0, u (4) = um, u (9) = 0

8

 

u (0) = 0, u (8) = um, u (9) = 0

Динамическая задача. Динамический объект

dxdt = −0.5x + u; x (0) = 10.

Входным воздействием на объект является функция времени, содержащая неизвестный параметр um , значение которого необходимо определить из

условия x (9) = 0 .

Функция u (t) является кусочно-линейной, и ее вид определяется таблицей значений (табл. 2.3).

3. МОДАЛЬНОЕ УПРАВЛЕНИЕ

Модальное управление имеет своей целью определение параметров регулятора, которые обеспечивают заданные значения корней характеристического уравнения замкнутой системы управления.

Исходя из практики применения модального управления были выбраны так называемые стандартные полиномы, распределение корней в которых

18

удовлетворяет инженерным требованиям качества переходных процессов (полиномы Ньютона, Баттерворта и т. п.).

Недостатком подхода к проектированию систем управления на основе стандартных полиномов является то, что эти полиномы определены с точностью до базовой частоты, т. е. до масштабного коэффициента, характеризующего время протекания переходных процессов. Таким образом, для решения задачи модального управления необходимо не только выбрать желаемый характер переходных процессов (выбрать тип стандартного полинома), но и определить целесообразное значение базовой частоты для выбранного полинома.

Устранить отмеченный недостаток можно, вычислив базовую частоту в соответствии с экстремальным значением дополнительного показателя качества. Одним из таких показателей может быть время переходного процесса.

Опора на время переходного процесса вполне конструктивна для реальных объектов управления, поскольку физически реализуемые объекты всегда содержат ограничения на максимальные значения параметров движения (скоростей, ускорений, сил, …) и, следовательно, их динамика существенно зависит от масштаба времени.

Для примера рассмотрим следующую задачу.

Для заданного объекта управления требуется определить базовую частоту стандартного полинома, обеспечивающую минимум времени переходного процесса.

Объект управления:

dxdt1 = x2;

dxdt2 = −x2 + 2x3; (3.1) dxdt3 = −x3 + u;

u ≤ 1;

Начальные условия:

x1(0) = 1;

x2 (0) = x3 (0) = 0.

Закон управления:

u = −K1x1 K2x2 K3x3.

(3.2)

19

На первом этапе решения задачи определяем характеристическое уравнение замкнутой системы, которая получается при использовании заданного закона управления объектом.

Динамика замкнутой системы без учета ограничения на уровень управления описывается следующей системой уравнений:

dxdt1 = x2;

dxdt2 = −2x2 + 2x3;

dxdt3 = −x3 K1x1 K2x2 K3x3.

Характеристический полином замкнутой системы:

 

s

−1

0

 

= (s2 + 2s)(s + 1 + K3) + 2K1 + 2sK2 =

 

 

∆ =

0 s + 2

−2

 

 

K1

K2

s + 1 + K3

 

 

=s3 + s2 + K3s2 + 2s2 + 2s + 2K3s + 2K1 + 2sK2 =

=s3 + (3 + K3) s2 + (2 + 2K2 + 2K3) + 2K1.

Сравнивая полученный характеристический полином замкнутой системы со стандартным полиномом 3-го порядка

A3 (s) = ω30 + 3ω02s1 + 3ω10s2 + s3,

получаем систему уравнений для определения коэффициентов обратной связи:

 

3 + K3 = 3ω0,

 

 

 

 

 

 

2 + 2K2 + 2K3 = 02,

 

 

 

2K = ω3.

 

 

 

 

 

 

 

 

 

1

0

 

 

 

 

 

 

 

Для удобства применения MATLAB-функций следует записать

предыдущую систему уравнений в матричном виде:

 

0

0

1 K1

 

0

- 3

 

 

2

 

 

 

 

 

2

 

 

(3.3)

0

2 ×

K2

=

0

- 2 .

2

0

0

K

3

 

 

3

 

 

 

 

 

 

 

ω

 

 

 

 

 

 

 

 

 

 

0

 

На втором этапе требуется найти такое значение базовой частоты, которому соответствует минимальное значение времени переходного процесса в замкнутой системе управления, состоящей из объекта управления

20

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]