различные ДЗ (17_утс)

Посмотреть архив целиком

Задание



Получение необходимых данных.



Получение математической модели системы в терминах пространства состояний.



Поиск оптимального управления.


Для линейных непрерывных стационарных систем с квадратичным критерием оптимальное управление ищется в виде:



В общем случае для систем такого типа матрица S не зависит от времени и дифференциальное уравнение Риккати вырождается в алгебраическое

В таком случае система стабилизируется в бесконечности. В данном же случае время стабилизации конечно, следовательно, матрица S зависит от времени.


Определим параметры, входящие в уравнение Риккати:


В числовом виде:



Уравнение Риккати является системой нелинейных ДУ первого порядка, поэтому аналитического решения оно в общем случае не имеет. Т.к. при оптимальном управлении ДУ системы имеет вид , следовательно и оно не имеет аналитического решения.


Воспользуемся численным решением в среде MATLAB (код программ приведён в приложении).

Рис. 1. График зависимости элементов матрицы S(t) от времени (результаты численного интегрирования дифференциального уравнения Рикатти).


Рис. 2. График зависимости фазовых координат системы от времени (реакция системы на полученное оптимальное управление).

Рис. 3. Фазовый портрет системы.

Приложение

1. dz.m

%[t X]=dz(A, B, Q, tf, x0)

%

%The arguments of the function:

% A,B are linear continious stationary system canonical state-space form

% matrices: dX/dt=AX+BU, where X is state vector of the system, and

% U - control vector.

% Q is the constant matrix of quadratic form X'QX in the functional.

% tf is the final time.

% x0 is the initial conditions vector.

%

%The outputs of the function:

% X is reaction of the system on the optimal control (numerical solution

% of the system's differential equation).

% t is corresponding to X time vector.

%

function [t X]=dz(A,B,Q,tf,x0)

% Initialization of unknown matrix S(t).

N=size(A,1);

k=0;

for i=1:N

for j=i:N

k=k+1;

S(i,j)=sym(strcat('s',int2str(i),int2str(j)));

S(j,i)=S(i,j);

end;

end

% Putting known matrices from Rikatti differential equation to symbol type.

a=sym(A);

b=sym(B);

q=sym(Q);

% Computation of right part of Rikatti differential equation.

R=-S*a-a'*S+S*b*b'*S-q;

% Numerical integration of Rikatti differential equation.

[t X]=ode45(@(t,s) right(t,s,R,S,k,N),[tf 0],zeros(1,k));

% Plotting dependance of matrix S(t) elements on time.

figure(1);

plot(t,X(:,1),'-',t,X(:,2),'-.',t,X(:,3),'-')

legend('S(1,1)','S(1,2)','S(2,2)')

xlabel('Time, sec')

ylabel('S(i,j)')

title('Matrix S(t) elements vs time')

grid on

% Computation of cubic spline for matrix S(t).

S1=spline(t,X');

% Numerical integration of system's differential equation.

[t X]=ode45(@(t1,x) right1(t1,x,S1,A,B,N),[0 tf],x0);

% Plotting dependance of phase coordinates on time.

figure(2);

plot(t,X(:,1),'-',t,X(:,2),'-.')

legend('X(1)','X(2)')

xlabel('Time, sec')

ylabel('X(i)')

title('Phase coordinates vs time')

grid on

% Plotting phase-plane portrait of the system.

figure(3);

plot(X(:,1),X(:,2))

xlabel('X(1)')

ylabel('X(2)')

title('Phase-plane portrait of the system')

grid on

2. right.m

% This function computes numerical value of right part

% of Rikkati differential equation.

function ds=right(t,s,R,S,k,N)

ds=zeros(k,1);

for i=1:N

for j=i:N

a(i+j-1)=S(i,j);

end;

end

temp=sym('0');

for i=1:N

for j=i:N

temp=R(i,j);

for m=1:k

temp=subs(temp,a(m),s(m));

end;

ds(i+j-1)=double(temp);

end;

end


3. right1.m


% This function computes numerical value of right part

% of system's differential equation.

function dx=right1(t,x,a,A,B,N)

dx=zeros(N,1);

s=ppval(a,t);

for i=1:N

for j=i:N

S(i,j)=s(i+j-1);

S(j,i)=S(i,j);

end;

end

dx=(A-B*B'*S)*x;




Случайные файлы

Файл
71515.rtf
72704.rtf
93031.rtf
80931.rtf
30808.rtf




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.