17_утс (Архив с большим количеством готовых домашних работ)
Описание файла
Файл "17_утс" внутри архива находится в папке "Архив с большим количеством готовых домашних работ". Документ из архива "Архив с большим количеством готовых домашних работ", который расположен в категории "". Всё это находится в предмете "оптимальное управление" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "оптимальное управление" в общих файлах.
Онлайн просмотр документа "17_утс"
Текст из документа "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;