close

Вход

Забыли?

вход по аккаунту

?

АПСИСУ 4 лаба

код для вставкиСкачать
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Факультет энергетики и систем управления
Кафедра электропривода, автоматики и управления в технических системах
Лабораторная работа № 4 "СИНТЕЗ ЛИНЕЙНОЙ ДИСКРЕТНОЙ СИСТЕМЫ УПРАВЛЕНИЯ МЕТОДОМ ПОСТРОЕНИЯ ОБЛАСТИ УСТОЙЧИВОСТИ В ПЛОСКОСТИ ИСКОМЫХ ПАРАМЕТРОВ РЕГУЛЯТОРА"
Выполнил:студент гр. АТ-091
Попов К. М.
Принял:профессор
Данилов А.Д.
ВОРОНЕЖ 2013
Цель работы: изучение возможностей среды MATLAB для исследования линейной дискретной системы
Для построений области устойчивости дискретной системы необходимо осуществить w- преобразование z=(1+ω)/(1-ω) . которое позволяет применять для исследования линейой дискретной системы методы линейных непрерывных систем
Пример 1
{█(w_y=-ω_y-22β-9.5Ƅ[email protected]β_ =-ω_y-0.51β+0.07Ƅ_H )┤
Где w_y - угловая скорость рыскания
β- угловое скольжения
Ƅ_H- отклонение руля напряжения (управляющий сигнал)
Время переходного процесса по угловой скорости не более 1,5с
Перерегулирование не более5%
При переходе к дискретному описанию системы принять период квантования T_0=0.1с
Перейдем к описанию системы в пространстве состояний:
где
;
;
>> A=[-1 -22;1 -0.51]
A =
-1.0000 -22.0000
1.0000 -0.5100
>> B=[-9.5;0.07]
B =
-9.5000
0.0700
>> C=[1 0;0 1]
C =
1 0
0 1
>> D=[0;0]
D =
0
0
>> so=ss(A,B,C,D)
so =
a = x1 x2
x1 -1 -22
x2 1 -0.51
b = u1
x1 -9.5
x2 0.07
c = x1 x2
y1 1 0
y2 0 1
d = u1
y1 0
y2 0
2. Перейдем к дискретному описанию объекта:
Здесь >> T0=0.1
T0 = 0.1000
>> sod=c2d(so,T0)%переход к дискретному описанию объекта
sod =
a = x1 x2
x1 0.8055 -1.966
x2 0.08937 0.8493
b = u1
x1 -0.8789
x2 -0.03778
c = x1 x2
y1 1 0
y2 0 1
d = u1
y1 0
y2 0
>> [F,D1,H,G]=ssdata(sod) %переприсваивание имен матриц
F =
0.8055 -1.9662
0.0894 0.8493
D1 =
-0.8789
-0.0378
H =
1 0
0 1
G =
0
0
>> pause %ожидания нажатия любой клавиши
>> wz=tf(sod) %вычисление матрицы передаточных функций
wz =
-0.8789 z + 0.8207
1: ----------------------
z^2 - 1.655 z + 0.8598
-0.03778 z - 0.04812
2: ----------------------
z^2 - 1.655 z + 0.8598
3. Вычислим управление:
Для вычисления управления используется метод построения области устойчивости в плоскости искомых параметров k11, k12
Для этого сначало необходимо осуществить w- преобразование исследуемой дискретной системы
>> syms k11 k12 z w s
>> K=[k11 k12]
K =[ k11, k12] >> f=F+D1*K %матрица f скорректирвоанной системы
f = [ 7255360697392135/9007199254740992 - (7916178078252347*k11)/9007199254740992, - (7916178078252347*k12)/9007199254740992 - 8855126158684405/4503599627370496]
[ 6440091751770477/72057594037927936 - (1361194646244723*k11)/36028797018963968, 7649816317188077/9007199254740992 - (1361194646244723*k12)/36028797018963968]
>> f1=vpa(f,4) %формат вещественного числа f - 4 знака после точки
f1 = [ 0.8055 - 0.8789*k11, - 0.8789*k12 - 1.966]
[ 0.08937 - 0.03778*k11, 0.8493 - 0.03778*k12]
>> mf=det(z*eye(2)-f1) %вычисление коэффициентов характеристического уравнения
mf =
0.048115888166598745101710830006488*k12 - 0.82071219215821540338822231431878*k11 - 1.6548070707685837987810373306274*z + 0.87887231695094669703394174575806*k11*z + 0.037780740931452783115673810243607*k12*z + 1.0*z^2 + 0.85984769865821529165412126790618
>> mf1=collect(mf,z) %формирование уравнения по степеням z;
mf1 = 1.0*z^2 + (0.87887231695094669703394174575806*k11 + 0.037780740931452783115673810243607*k12 - 1.6548070707685837987810373306274)*z - 0.82071219215821540338822231431878*k11 + 0.048115888166598745101710830006488*k12 + 0.85984769865821529165412126790618
>> pause
>> z=(1+w)/(1-w);
>> zw=subs(mf1,z) %подстановка z=(1+w)/(1-w)
zw = 0.048115888166598745101710830006488*k12 - 0.82071219215821540338822231431878*k11 + (1.0*(w + 1)^2)/(w - 1)^2 - ((w + 1)*(0.87887231695094669703394174575806*k11 + 0.037780740931452783115673810243607*k12 - 1.6548070707685837987810373306274))/(w - 1) + 0.85984769865821529165412126790618
>> zw1=vpa(zw,4) %формат вещественного числа zw - четыре знака после точки
zw1 =
0.04812*k12 - 0.8207*k11 + (1.0*(w + 1.0)^2)/(w - 1.0)^2 - (1.0*(w + 1.0)*(0.8789*k11 + 0.03778*k12 - 1.655))/(w - 1.0) + 0.8598
>> zw1=simplify(zw1) %функция simplify() упрощает уравнение, осуществляя операции возведения в степень, умножения и другие математические операции.
Результат:
zw1 = 0.010335147235145961986037019762881*k12 - 1.6995845091091621004221640600768*k11 + (1.6e-33*k11 + 4.0)/(w - 1.0)^2 - (1.0*(1.7577446339018933940678834915161*k11 + 0.075561481862905566231347620487213*k12 - 7.3096141415371675975620746612549))/(w - 1.0) + 3.5146547694267990904351585985336
Преобразуем это уравнение к виду
>> zw1=(-10240-14020*w-175740*w^2-2910*k11+84980*k11*w^2-4295*k12-517*k12*w^2+4812*k12*w-82070*k11*w);
>> zw2=collect(zw1,w) %формирование уравнения по степеням w;
Результат: zw2 =
(84980*k11 - 517*k12 - 175740)*w^2 + (4812*k12 - 82070*k11 - 14020)*w - 2910*k11 - 4295*k12 - 10240
>> k12=solve('84980*k11 - 517*k12 - 175740','k12') k12 =(84980*k11)/517 - 175740/517
>> k12=solve('4812*k12 - 82070*k11 - 14020','k12')
k12 =(41035*k11)/2406 + 3505/1203
>> k12=solve('- 2910*k11 - 4295*k12 - 10240','k12')
k12 =- (582*k11)/859 - 2048/859
>> k11=-0.4:0.01:3;%диапазон может быть выбран любой, в дальнейшем его можно будет изменять
>> k122=(84980*k11)/517 - 175740/517;
>> k121=(41035*k11)/2406 + 3505/1203;
>> k120=- (582*k11)/859 - 2048/859;
>> plot(k11,k122,'r',k11,k121,'g',k11,k120,'m'),grid
>> k11=1.8
k11 = 1.8000
>> k12=20
k12 = 20
>> k=[k11 k12];%здесь k11, k12 - выбранные коэффициенты
>> fz=F+D1*k;%матрица замкнутой системы
>> szk=ss(fz,D1,H,G,T0);
>> step(szk)
>> figure
>> k=[0 k12];%размыкание системы приравниванием k11=0
>> fz=F+D1*k;%матрица системы, разомкнутой по >> szk=ss(fz,D1,H,G,T0);
>> zw=tf(szk)%матрица передаточных функций
zw = -0.8789 z + 0.8207
1: ----------------------
z^2 - 0.8992 z + 1.822
-0.03778 z - 0.04812
2: ----------------------
z^2 - 0.8992 z + 1.822
>> bode(-zw(1,1)*k11)%ЛЧХ разомкнутого контура системы
>> figure
>> margin(-zw(1,1)*k11)
Задание 1.
>> A=[-0.17 -3.64 -0.008;1 -0.054 0.083;-0.145 -22.9 -0.45]
A =
-0.1700 -3.6400 -0.0080
1.0000 -0.0540 0.0830
-0.1450 -22.9000 -0.4500
>> B=[-0.48 0.034;-0.0034 0;-0.92 -4.7]
B =
-0.4800 0.0340
-0.0034 0
-0.9200 -4.7000
>> C=[1 0 0;0 1 0;0 0 1]
C =
1 0 0
0 1 0
0 0 1
>> D=[0 0;0 0;0 0]
D =
0 0
0 0
0 0
>> so=ss(A,B,C,D)
so =
a = x1 x2 x3
x1 -0.17 -3.64 -0.008
x2 1 -0.054 0.083
x3 -0.145 -22.9 -0.45
b = u1 u2
x1 -0.48 0.034
x2 -0.0034 0
x3 -0.92 -4.7
c = x1 x2 x3
y1 1 0 0
y2 0 1 0
y3 0 0 1
d = u1 u2
y1 0 0
y2 0 0
y3 0 0
>> T0=0.125
T0 = 0.1250
>> sod=c2d(so,T0)%переход к дискретному описанию объекта
sod =
a = x1 x2 x3
x1 0.9513 -0.4409 -0.003227
x2 0.1214 0.951 0.009849
x3 -0.1899 -2.73 0.9312
b = u1 u2
x1 -0.05857 0.004901
x2 -0.004682 -0.00269
x3 -0.1067 -0.5688
c = x1 x2 x3
y1 1 0 0
y2 0 1 0
y3 0 0 1
d = u1 u2
y1 0 0
y2 0 0
y3 0 0
Sample time: 0.125 seconds
>> [F,D1,H,G]=ssdata(sod)%переприсваивание имен матриц
F =
0.9513 -0.4409 -0.0032
0.1214 0.9510 0.0098
-0.1899 -2.7300 0.9312
D1 =
-0.0586 0.0049
-0.0047 -0.0027
-0.1067 -0.5688
H =
1 0 0
0 1 0
0 0 1
G =
0 0
0 0
0 0
>> pause
wz=tf(sod)%вычисление матрицы передаточных функций
wz = -0.05857 z^2 + 0.1127 z - 0.05527
1: ----------------------------------
z^3 - 2.834 z^2 + 2.756 z - 0.9192
-0.004682 z^2 + 0.0006523 z + 0.003628
2: --------------------------------------
z^3 - 2.834 z^2 + 2.756 z - 0.9192
-0.1067 z^2 + 0.2268 z - 0.1059
3: ----------------------------------
z^3 - 2.834 z^2 + 2.756 z - 0.9192
From input 2 to output...
0.004901 z^2 - 0.006203 z + 0.004068
1: ------------------------------------
z^3 - 2.834 z^2 + 2.756 z - 0.9192
-0.00269 z^2 + 5.718e-05 z + 0.002607
2: -------------------------------------
z^3 - 2.834 z^2 + 2.756 z - 0.9192
-0.5688 z^2 + 1.088 z - 0.553
3: ----------------------------------
z^3 - 2.834 z^2 + 2.756 z - 0.9192
>> syms k11 k12 z w s
K=[k11 k12 0;0 0 0]
K = [ k11, k12, 0]
[ 0, 0, 0]
>> f=F+D1*K%матрица f скорректированной системы
f =
[ 8568374289969333/9007199254740992 - (8440843490516469*k11)/144115188075855872, - (8440843490516469*k12)/144115188075855872 - 1985544134117001/4503599627370496, -7440125013673285/2305843009213693952]
[ 8748477544303325/72057594037927936 - (337373917090699*k11)/72057594037927936, 4283063837465059/4503599627370496 - (337373917090699*k12)/72057594037927936, 5677514281255519/576460752303423488]
[ - (7686538107274565*k11)/72057594037927936 - 6841573866269057/36028797018963968, - (7686538107274565*k12)/72057594037927936 - 3073726796966495/1125899906842624, 4193816193941501/4503599627370496]
>> f1=vpa(f,4)
f1 = [ 0.9513 - 0.05857*k11, - 0.05857*k12 - 0.4409, -0.003227]
[ 0.1214 - 0.004682*k11, 0.951 - 0.004682*k12, 0.009849]
[ - 0.1067*k11 - 0.1899, - 0.1067*k12 - 2.73, 0.9312]
>> mf=det(z*eye(3)-f1)
mf =
0.055272924896380074595474034315914*k11 - 0.0036279184216842846349757802564197*k12 + 2.7559594746195160141223347297758*z - 0.11265173004777548307193142994302*k11*z - 0.00065227328497726378770544771539071*k12*z + 0.058570117440126523433718830347061*k11*z^2 + 0.004682003633277531662315595895052*k12*z^2 - 2.8335261196043575182557106018066*z^2 + 1.0*z^3 - 0.91920142701155356268373964598142
>> mf1=collect(mf,z)%формирование уравнения по степеням z;
mf1 =
1.0*z^3 + (0.058570117440126523433718830347061*k11 + 0.004682003633277531662315595895052*k12 - 2.8335261196043575182557106018066)*z^2 + (2.7559594746195160141223347297758 - 0.00065227328497726378770544771539071*k12 - 0.11265173004777548307193142994302*k11)*z + 0.055272924896380074595474034315914*k11 - 0.0036279184216842846349757802564197*k12 - 0.91920142701155356268373964598142
>> pause
z=(1+w)/(1-w);
zw=subs(mf1,z)%подстановка z=(1+w)/(1-w)
zw = 0.055272924896380074595474034315914*k11 - 0.0036279184216842846349757802564197*k12 - (1.0*(w + 1)^3)/(w - 1)^3 + ((w + 1)^2*(0.058570117440126523433718830347061*k11 + 0.004682003633277531662315595895052*k12 - 2.8335261196043575182557106018066))/(w - 1)^2 + ((w + 1)*(0.11265173004777548307193142994302*k11 + 0.00065227328497726378770544771539071*k12 - 2.7559594746195160141223347297758))/(w - 1) - 0.91920142701155356268373964598142
>> zw1=vpa(zw,4)%формат вещественного числа zw - четыре знака после точки
zw1 = 0.05527*k11 - 0.003628*k12 - (1.0*(w + 1.0)^3)/(w - 1.0)^3 + ((w + 1.0)^2*(0.05857*k11 + 0.004682*k12 - 2.834))/(w - 1.0)^2 + ((w + 1.0)*(0.1127*k11 + 0.0006523*k12 - 2.756))/(w - 1.0) - 0.9192
>> zw1=simplify(zw1)%функция simplify() упрощает уравнение, осуществляя операции возведения в степень, умножения и другие математические операции.
zw1 =
0.22649477238428208110112429460599*k11 + 0.0017063584965705108150452633540229*k12 + (4.9e-34*k11 + 1.3e-35*k12 - 8.0)/(w - 1.0)^3 + (0.23428046976050609373487532138825*k11 + 0.018728014533110126649262383580208*k12 - 23.334104478417430073022842407227)/(w - 1.0)^2 + (0.45958392985605705987873818127428*k11 + 0.020032561103064654224673279010989*k12 - 22.846023427656462101267511866778)/(w - 1.0) - 7.5086870212354270950617849775638
>> zw2=collect(zw1,w)
zw2 =
((2.2649477238428208110112429460599e35*k11 + 1.7063584965705108150452633540229e33*k12 - 7.5086870212354270950617849775638e36)*w^3 + (1.491348561335312177953748894892e34*k12 - 2.199003872967891834246347025437e35*k11 - 3.1996236395018081608215693408664e35)*w^2 + (- 5.403072798761782719228157342338e33*k11 - 1.6218032183307649354948384379702e34*k12 - 1.6811868681078715567317360636186e35)*w - 1.1913122887311149572614347199565e33*k11 - 401811926615983239634367923241533.0*k12 - 3.23192800360493318288448198768e33)/(1.0e36*w^3 - 3.0e36*w^2 + 3.0e36*w - 1.0e36)
>> k12=solve('2.2649477238428208110112429460599e35*k11 + 1.7063584965705108150452633540229e33*k12 - 7.5086870212354270950617849775638e36','k12')
k12 =4400.4158776286494055571229482911 - 132.7357485777448849730999928391*k11
>> k12=solve('1.491348561335312177953748894892e34*k12 - 2.199003872967891834246347025437e35*k11 - 3.1996236395018081608215693408664e35','k12')
k12 =14.745069864813928534050144223141*k11 + 21.454566172223036930904820974757
>> k12=solve('- 5.403072798761782719228157342338e33*k11 - 1.6218032183307649354948384379702e34*k12 - 1.6811868681078715567317360636186e35','k12')
k12 =- 0.33315218133078288919449820290971*k11 - 10.366158169535679099288603854752
>> k12=solve('- 1.1913122887311149572614347199565e33*k11 - 401811926615983239634367923241533.0*k12 - 3.23192800360493318288448198768e33','k12')
k12 =- 2.9648504930259754050598822416009*k11 - 8.0433849508248365511407892860197
>> k11=-5:0.01:5;
>> k123=4400.4158776286494055571229482911 - 132.7357485777448849730999928391*k11;
>> k122=14.745069864813928534050144223141*k11 + 21.454566172223036930904820974757;
>> k121=- 0.33315218133078288919449820290971*k11 - 10.366158169535679099288603854752;
>> k120=- 2.9648504930259754050598822416009*k11 - 8.0433849508248365511407892860197;
>> plot(k11,k122,'r',k11,k121,'g',k11,k120,'m'),grid
>> k11=1.5
k11 = 1.5000
>> k12=6
k12 = 6
>> k=[k11 k12 0;0 0 0]
k =
1.5000 6.0000 0
0 0 0
>> fz=F+D1*k;
>> szk=ss(fz,D1,H,G,T0);
>> step(szk)
>> figure
>> k=[0 k12 0;0 0 0]
k =
0 6 0
0 0 0
>> fz=F+D1*k;
>> szk=ss(fz,D1,H,G,T0);
>> zw=tf(szk)
zw = From input 1 to output...
-0.05857 z^2 + 0.1127 z - 0.05527
1: ---------------------------------
z^3 - 2.805 z^2 + 2.752 z - 0.941
-0.004682 z^2 + 0.0006523 z + 0.003628
2: --------------------------------------
z^3 - 2.805 z^2 + 2.752 z - 0.941
-0.1067 z^2 + 0.2268 z - 0.1059
3: ---------------------------------
z^3 - 2.805 z^2 + 2.752 z - 0.941
From input 2 to output...
0.004901 z^2 - 0.00512 z + 0.005105
1: -----------------------------------
z^3 - 2.805 z^2 + 2.752 z - 0.941
-0.00269 z^2 + 5.718e-05 z + 0.002607
2: -------------------------------------
z^3 - 2.805 z^2 + 2.752 z - 0.941
-0.5688 z^2 + 1.074 z - 0.5642
3: ---------------------------------
z^3 - 2.805 z^2 + 2.752 z - 0.941
>> bode(-zw(1,1)*k11)
>> figure
>> margin(-zw(1,1)*k11)
Вывод: изучили возможности среды MATLAB для исследования линейной дискретной системы
Документ
Категория
Рефераты
Просмотров
36
Размер файла
168 Кб
Теги
лаба, апсису
1/--страниц
Пожаловаться на содержимое документа