Добавил:
nikolozzz15@gmail.com Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursach_TOU.docx
Скачиваний:
0
Добавлен:
27.11.2022
Размер:
125.82 Кб
Скачать
  1. Поиск параметров кусочно-постоянной функции времени

    1. Определение параметров методом Эйлера

Файл Main1.m

P0=[1 1 1 1 1];

OPTIONS = optimset('MaxIter',100000);

[P,F] = fminsearch('Eiler1',P0,OPTIONS);

xlabel('t')

ylabel('u,x')

Файл Eiler1.m

function j = Eiler1(P)

t0=0;

tm=4;

t1=0.8;

t2=1.6;

t3=2.4;

t4=3.2;

dt=0.01;

x1=1;

x2=0;

j=0;

x1r=[];

u1r=[];

tr=[];

while t0<tm

if t0<t1

u=P(1);

elseif t0<t2

u=P(2);

elseif t0<t3

u=P(3);

elseif t0<t4

u=P(4);

else

u=P(5);

end

u1r=[u1r u];

dx1=x2*dt;

dx2=-2*x1*dt-2*x2*dt+2*u*dt;

dj=(2*x1^2+u^2)*dt;

x1=x1+dx1;

x1r=[x1r x1];

x2=x2+dx2;

j=j+dj;

t0=t0+dt;

tr=[tr t0];

end

j=j+20*x1^2;

plot(tr,x1r,tr,u1r)

grid on

Рис. 1. Управление как кусочно-постоянная функция времени

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

u(0) = -0.3717

0.0229

0.0555

-0.0151

-0.00024071

Достигнуто значение критерия качества 1.3226

Графики переходных процессов, соответствующие рассматриваемой функции времени показаны на рис. 1.

    1. Определение параметров с помощью функции ode45

Файл Main45.m

clear all

clc

P0=[1 1 1 1 1];

[P,F] = fminsearch('fmsfun45',P0);

Файл fmsfun45.m

function J=fmsfun45(Q)

global P;

P = Q;

[t,x] = ode45('odefun45',[0 4],[1 0 0]);

n=length(t);

for k = 1:n

if t(k)<0.8

u(k)=P(1);

elseif t(k)<1.6

u(k)=P(2);

elseif t(k)<2.4

u(k)=P(3);

elseif t(k)<3.2

u(k)=P(4);

else

u(k)=P(5);

end

end

J=x(n,3)+20*(x(n,1)^2);

figure(5)

plot(t,x(:,1),'black-',t,u,'black:')

grid on;

end

Файл odefun45.m

function F=odefun45(t0,x)

global P;

if t0<0.8

u=P(1);

elseif t0<1.6

u=P(2);

elseif t0<2.4

u=P(3);

elseif t0<3.2

u=P(4);

else

u=P(5);

end

F = [x(2); -2*x(1)-2*x(2)+2*u; 2*x(1)^2+u^2];

end

Рис. 2. Управление как кусочно-постоянная функция времени

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

u(0) = -0.2764

-0.0202

-0.0415

-0.0435

-0.0248

Достигнуто значение критерия качества 1.4306

Графики переходных процессов, соответствующие рассматриваемой функции времени показаны на рис. 2.

    1. Определение параметров с помощью функции ode23s

Файл Main1.m

clear all

clc

P0=[1 1 1 1 1];

[P,F] = fminsearch('fmsfun23',P0);

Файл fmsfun23.m

function J=fmsfun23(Q)

global P;

P = Q;

[t,x] = ode23s('odefun23',[0 4],[1 0 0]);

n=length(t);

for k = 1:n

if t(k)<0.8

u(k)=P(1);

elseif t(k)<1.6

u(k)=P(2);

elseif t(k)<2.4

u(k)=P(3);

elseif t(k)<3.2

u(k)=P(4);

else

u(k)=P(5);

end

end

J=x(n,3)+20*(x(n,1)^2);

figure(5)

plot(t,x(:,1),'black-',t,u,'black:')

grid on;

end

Файл odefun23.m

function F=odefun23(t0,x)

global P;

if t0<0.8

u=P(1);

elseif t0<1.6

u=P(2);

elseif t0<2.4

u=P(3);

elseif t0<3.2

u=P(4);

else

u=P(5);

end

F = [x(2); -2*x(1)-2*x(2)+2*u; 2*x(1)^2+u^2];

end

Рис. 3. Управление как кусочно-постоянная функция времени

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

u(0) = -0.3680

0.0136

0.0541

0.0158

0.0028

Достигнуто значение критерия качества 1.3089

Графики переходных процессов, соответствующие рассматриваемой функции времени показаны на рис. 3.

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