Лабораторная работа по "Математике"
Автор: shved000 • Март 25, 2023 • Лабораторная работа • 530 Слов (3 Страниц) • 198 Просмотры
Код в matlab для нахождения матриц:
% ввод исходных данных
A=[-0.0222 -0.1778 0.1778 0 0 0.1778;
0.1778 -0.0222 0 0 0 0 ;
0 0 0 2 0 0;
0 0 0 0 0 0;
0 0 0 0 0 -0.015625;
0 0 0 0 1 -0.2];
B=[0;
0;
16;
2;
0.125;
0];
C=[1 0 0 0 0 0];
D=[0];
Mn=obsv(A,C); % матрица наблюдаемости
Rn=rank(Mn);
My=ctrb(A,B); % матрица управляемости
Ru=rank(My); % ранг матрицы упр
[num,den] = ss2tf(A,B,C,D);
% основная нормальная управляемая форма
A1 = [0 1 0 0 0 0;
0 0 1 0 0 0;
0 0 0 1 0 0;
0 0 0 0 1 0;
0 0 0 0 0 1;
0 0 -0.00050165125 -0.007114886 -0.05661068 -0.2444];
B1 = [0;
0;
0;
0;
0;
1];
My1 = ctrb(A1,B1);
P1 = My1 * inv(My); % преобразователь в нормальную форму
C1 = C * inv(P1);
D1 = D;
% ТОН форма
P4=[C1*A1^5+0.2444*C1*A1^4+0.05661068*C1*A1^3+0.007114886*C1*A1^2+0.00050165125*C1*A1^1;
C1*A1^4+0.2444*C1*A1^3+0.05661068*C1*A1^2+0.007114886*C1*A1^1+0.00050165125*C1;
C1*A1^3+0.2444*C1*A1^2+0.05661068*C1*A1^1+0.007114886*C1;
C1*A1^2+0.2444*C1*A1^1+0.05661068*C1;
C1*A1^1+0.2444*C1;
C1];
D2=0;
A2 = P4 * A1 * inv(P4);
B2 = P4 * B1;
C2 = C1 * inv(P4);
D2 = D;
% Дополнительная нормальная форма
A3 = [-0.2444 1 0 0 0 0;
-0.05661068 0 1 0 0 0;
-0.007114886 0 0 1 0 0;
-0.00050165125 0 0 0 1 0;
0 0 0 0 0 1;
0 0 0 0 0 0];
C3 = C1;
Mn3 = obsv(A3,C3);
P3 = inv(Mn3) * Mn;
B3 = P3 * B;
D3 = D;
% Каноническая диагональная форма
N=eig(A);
W = [ 1 1 1 1 1 1 ;
N(1) N(2) N(3) N(4) N(5) N(6) ;
N(1)^2 N(2)^2 N(3)^2 N(4)^2 N(5)^2 N(6)^2 ;
...