Вы находитесь на странице: 1из 9

Министерство науки и высшего образования Российской Федерации Федеральное

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


«СЕВАСТОПОЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
Институт информационных технологий и управления в технических системах
Кафедра информатики и управления в технических системах

Лабораторная работа № 2

по курсу «Теория автоматического управления»

Линеаризация моделей динамических управляемых объектов

Выполнили:
ст. 3-го курса
гр. УТС/б-19-1-о
Тихонов Г.О.

Принял:
Доц. Карапетьян В.А.

Севастополь, 2021
Цель работы
Исследование методов и процедур линеаризации математических моделей
динамических управляемых объектов, построение различных форм моделей линейных
стационарных систем управления и моделирование их движения. Применение средств
среды Matlab для решения таких задач. Формирование навыков профессиональной ра-
боты в системе Matlab&Simulink.

Постановка задачи

В качестве объекта линеаризации берем маятник Фуруты из первой лабораторной


работы. В ходе данной лабораторной работы следует исполнить следующие задания: –
провести линеаризацию уравнений модели тремя различными способами:

1) аналитически вручную;
2) с использованием средств среды Matlab и пакета символьных вычислений Symbolic
Math Toolbox;
3) с использованием средств среды Matlab и пакета Simulink:
− функция linmod;
− инструментарий средства Linear Analysis Tool.
Ход работы
Ручное вычисление
Для компактности, заменим некоторые уравнения переменными:
A11=Ja+mp*(La)^2;
A12=mp*(lp)^2;
A21=-mp*(La)*(lp);
A22=Jp+mp*(lp)^2;
B1=Ca+(kt*kb/Ra);
B2=(1/2)*mp*lp^2;
B4=-(1/2)*mp*(lp)^2;
B3=mp*(La)*lp;
C1=-mp*g*lp;
C2=(kt*ku)/Ra;

Рис. 1 – Математическая модель движения маятника в векторно-матричной форме

2
α alf

[][ ]
β
α̇
β̇
α̈
β̈
=
bet
dalf
dbet
alf
¨
bet
¨

¨ = (A22*(C2*U-dalf*(B1+B2*dalf*dbet*sin(2*bet)+B2*dbet*sin(bet)+
alf
B3*dbet^2*sin(bet))))/((A11+A12*sin(bet)^2)-(A22*cos(bet))^2)

¨ = (((-A21*cos(bet))*(C2*U-dalf*(B1+B2*dalf*dbet*sin(2*bet)+
bet
B2*dbet*sin(bet)+B3*dbet^2*sin(bet))))/(A22*(A11+A12*sin(bet)^2)
-(A21*cos(bet))^2))-(((A11+A12*sin(bet)^2)*B4*dalf^2*sin(2*bet)+
Cp*dbet-C1*sin(bet))/(A22*(A11+A12*sin(bet)^2)-
(A21*cos(bet))^2))

Обозначим первую матрицу на рис. 1 как матрицу M, а значит, обратная ей матрица:

1 A 22 − A 21∗cos β
H=
[
detM − A 21∗cos β A 11+ A 12∗sin( β)2 ]

0 0 1 0

[
A= 0
0
0
0
A 32
A 42
0
A 33
A 43
]
1 ,
A 34
A 44

B=¿

A32 = (A22*(2*cos(bet)*sin(bet)*A22^2 + 2*A12*cos(bet)*sin(bet))*(dalf*(B1 +


B3*dbet^2*sin(bet) + B2*dbet*sin(bet) + B2*dalf*dbet*sin(2*bet)) - C2*U))/(-
A22^2*cos(bet)^2 + A12*sin(bet)^2 + A11)^2 - (A21*cos(bet)*(- 2*B4*cos(2*bet)*dalf^2 +
C1*cos(bet)))/(- A22^2*cos(bet)^2 + A12*sin(bet)^2 + A11) - (A22*dalf*(B3*dbet^2*cos(bet)
+ B2*dbet*cos(bet) + 2*B2*dalf*dbet*cos(2*bet)))/(- A22^2*cos(bet)^2 + A12*sin(bet)^2 +
A11) - (A21*sin(bet)*(B4*sin(2*bet)*dalf^2 + Cp*dbet - C1*sin(bet)))/(- A22^2*cos(bet)^2 +
A12*sin(bet)^2 + A11) - (A21*cos(bet)*(2*cos(bet)*sin(bet)*A22^2 +
2*A12*cos(bet)*sin(bet))*(B4*sin(2*bet)*dalf^2 + Cp*dbet - C1*sin(bet)))/(-
A22^2*cos(bet)^2 + A12*sin(bet)^2 + A11)^2;

A33 = (2*A21*B4*dalf*sin(2*bet)*cos(bet))/(- A22^2*cos(bet)^2 + A12*sin(bet)^2 + A11) -


(A22*(B1 + B3*dbet^2*sin(bet) + B2*dbet*sin(bet) + 2*B2*dalf*dbet*sin(2*bet)))/(-
A22^2*cos(bet)^2 + A12*sin(bet)^2 + A11);

A34 = (A21*Cp*cos(bet))/(- A22^2*cos(bet)^2 + A12*sin(bet)^2 + A11) -


(A22*dalf*(B2*sin(bet) + B2*dalf*sin(2*bet) + 2*B3*dbet*sin(bet)))/(- A22^2*cos(bet)^2 +
A12*sin(bet)^2 + A11);
3
A42 = ((2*cos(bet)*sin(bet)*A21^2 +
2*A12*A22*cos(bet)*sin(bet))*(B4*sin(2*bet)*(A12*sin(bet)^2 + A11)*dalf^2 + Cp*dbet -
C1*sin(bet)))/(A22*(A12*sin(bet)^2 + A11) - A21^2*cos(bet)^2)^2 -
(2*B4*dalf^2*cos(2*bet)*(A12*sin(bet)^2 + A11) - C1*cos(bet) +
2*A12*B4*dalf^2*sin(2*bet)*cos(bet)*sin(bet))/(A22*(A12*sin(bet)^2 + A11) -
A21^2*cos(bet)^2) - (A21*sin(bet)*(dalf*(B1 + B3*dbet^2*sin(bet) + B2*dbet*sin(bet) +
B2*dalf*dbet*sin(2*bet)) - C2*U))/(A22*(A12*sin(bet)^2 + A11) - A21^2*cos(bet)^2) -
(A21*cos(bet)*(dalf*(B1 + B3*dbet^2*sin(bet) + B2*dbet*sin(bet) + B2*dalf*dbet*sin(2*bet))
- C2*U)*(2*cos(bet)*sin(bet)*A21^2 + 2*A12*A22*cos(bet)*sin(bet)))/(A22*(A12*sin(bet)^2
+ A11) - A21^2*cos(bet)^2)^2 + (A21*dalf*cos(bet)*(B3*dbet^2*cos(bet) + B2*dbet*cos(bet)
+ 2*B2*dalf*dbet*cos(2*bet)))/(A22*(A12*sin(bet)^2 + A11) - A21^2*cos(bet)^2);

A43 = (A21*cos(bet)*(B1 + B3*dbet^2*sin(bet) + B2*dbet*sin(bet) +


2*B2*dalf*dbet*sin(2*bet)))/(A22*(A12*sin(bet)^2 + A11) - A21^2*cos(bet)^2) -
(2*B4*dalf*sin(2*bet)*(A12*sin(bet)^2 + A11))/(A22*(A12*sin(bet)^2 + A11) -
A21^2*cos(bet)^2);

A44 = (A21*dalf*cos(bet)*(B2*sin(bet) + B2*dalf*sin(2*bet) +


2*B3*dbet*sin(bet)))/(A22*(A12*sin(bet)^2 + A11) - A21^2*cos(bet)^2) -
Cp/(A22*(A12*sin(bet)^2 + A11) - A21^2*cos(bet)^2),

где A22*(A11 + A12*sin(bet)- A 21*cos(bet)^2 – определитель/дискриминант.

Для alf = 0; bet = 120, получим значения элементов для матриц A и B модели пространства
состояний

0 0 1 0
A=
0
[ 0 0 1
0 3.7309 −1.7412 −0.2(3)
0 −51.13 −0.93 −0.57544
,
]
0
B=
[ ]0
1.537
0.82422

C использованием средств среды Matlab

4
clc; clear all;
n=4; m=2; p=2;
Ra=8.4; kt=0.042; kb=0.042; ku=0.0636;
ma=0.095; La=0.085; Ja=5.72e-5;
mp=0.024; Lp=0.129; lp=Lp/2; Jp=1.0e-4;
Ca=0.00015; Cp=0.00009;
g=9.81;
A11=Ja+mp*(La)^2;
A12=mp*(lp)^2;
A21=-mp*(La)*(lp);
A22=Jp+mp*(lp)^2;
B1=Ca+(kt*kb/Ra);
B2=(1/2)*mp*lp^2;
B4=-(1/2)*mp*(lp)^2;
B3=mp*(La)*lp;
C1=-mp*g*lp;
C2=(kt*ku)/Ra;

syms alpha Dalpha beta Dbeta U;

M_sym(1,1)=A11+A12*(sin(beta))^2;
M_sym(1,2)=A21*cos(beta);
M_sym(2,1)=M_sym(1,2);
M_sym(2,2)=A22;
H_sym=M_sym^-1;
K_sym(1,1)=B1+B2*Dbeta*sin(2*beta);
K_sym(1,2)=1/2*A12*Dalpha*sin(2*beta)+B3*Dbeta*sin(beta);
K_sym(2,1)=B4*Dalpha*sin(2*beta);
K_sym(2,2)=Cp;
G_sym=[0;C1*sin(beta)];
L_sym=[C2;0];
RP_sym=-H_sym*(K_sym*[Dalpha;Dbeta]-G_sym)+H_sym*L_sym*U;
RP_Jac=[Dalpha;Dbeta;RP_sym(1);RP_sym(2)];
A_sym=jacobian(RP_Jac,[alpha beta Dalpha Dbeta]);
B_sym=jacobian(RP_Jac,[U]);
alpha0=0; Dalpha0=0; beta0=120; Dbeta0=0; U0=0;
A=double(subs(A_sym,{alpha beta Dalpha Dbeta U},{alpha0 beta0 Dalpha0
Dbeta0 U0}));
B=double(subs(B_sym,{alpha beta Dalpha Dbeta U},{alpha0 beta0 Dalpha0
Dbeta0 U0}));
C=[ 1 0 0 0; 0 1 0 0];
D=zeros(2,1);
sys = ss(A,B,C,D)
t_end=30;
x0=deg2rad([0 120 0 0]);
[y,t]=initial(sys, x0, t_end);
y=rad2deg(y);
subplot(1,2,1); plot(t,y(:,1)); grid on; title('Плечо');
subplot(1,2,2); plot(t,y(:,2)); grid on; title('Рука');
eig(A)

5
A=

x1 x2 x3 x4

x1 0 0 1 0

x2 0 0 0 1

x3 0 3.731 -1.741 -0.2333

x4 0 -51.13 -0.933 -0.5754

B=

u1

x1 0

x2 0

x3 1.537

x4 0.8242

C=

x1 x2 x3 x4

y1 1 0 0 0

y2 0 1 0 0

D=

u1

y1 0

y2 0

Рис. 2 – Числовые матрицы коэффициентов A, B, C, D

6
Плечо Рука
25 150

100
20

50

15

10

-50

5
-100

0 -150
0 10 20 30 0 10 20 30

Рис. 3 – Графики работы программы в точке линеаризации alpha=0 ° , beta=120 °

ans =

0.0000 + 0.0000i

-0.2514 + 7.1373i

-0.2514 - 7.1373i

-1.8132 + 0.0000i

Рис. 4 – Собственные числа матрицы A

Можно заметить затухающие колебания и возвращение в нулевое положение, из


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

7
C использованием средств среды Matlab и пакета Simulink
В код из предыдущего раздела добавим:
[A_sim B_sim C_sim D_sim] = linmod('Tau1_lab2', [0 120 0 0], [0])

Рис. 4 – Модифицированная Simulink-схема

Мы использовали ту же схему что и в первой лабораторной работе с одним


исключением, вместо блоков From и Goto были использованы блоки Input и Output.

Asim =

0 0 1 0

0 0 0 1

0 3.7309 -1.7412 -0.2333

0 -51.13 -0.93 -0.57544

8
Bsim =

1.537

0.82422

Csim =

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

Dsim =

Рис. 5 - Результат работы программы с функцией linmod

ВЫВОД
В ходе лабораторной работы были исследованы методы и процедуры линеаризации
математических моделей динамических управляемых объектов, построены различные
формы моделей линейных стационарных систем управления и моделирование их
движения, были применены средства среды Matlab для решения подобных задач, а также
были сформированы навыки профессиональной работы в системе Matlab & Simulink.

Вам также может понравиться