Московський Державний Технічний Університет ім. Н.Е. Баумана
Курсова робота з курсу "Нелінійні САУ"
на
тему:
Застосування методу частотних кругових діаграм до дослідження стійкості систем з логічними алгоритмами управління.
Виконав: ст-т гр. АК4-81
Смик В.Л.
Керівник: професор
Хабаров В.С.
Реутов 1997
Застосування методу частотних кругових діаграм до дослідження стійкості систем з логічними алгоритмами управління.
На ранній стадії розвитку теорії автоматичного регулювання вимога стійкості роботи системи було першим і зазвичай єдиним і зміст більшості теоретичних досліджень зводилося до дослідження стійкості.
"Термін" стійкість "настільки виразний, що він сам за себе говорить",-зазначають на початку викладу теорії стійкості Ж. Ла Салль і С. Лефшец [1]. Це цілком справедливо, але, незважаючи на це, неточності та нелогічності можна зустріти як раз не в математичних, а в смислових поняттях і термінах.
Стійкістю будь-якого явища в побуті називаю його здатність досить довго і з достатньою точністю сохронять ті форми свого існування, при втраті яких явище перестає бути самим сабой. Однак не тільки в побуті, але і в науковій терміналогіі стійким називають не явище, а систему, в корою воно спостерігається, хоча це не виправдовує логічно. Чи стійкі фізичні тіла - куля або куб? Таке питання буде мати сенс, якщо мова йде про матеріал, з якого вони зроблені. (Металевий куля
стійкий, куля з диму немає.) Теорію управління цікавить, однак, не ця прочнасная стійкість. Мається на увазі, що система управління як інженерна конструкція завідомо стійка, і в теорії вивчається стійкість не самої системи, а її станів та функціонування. В одній і тій самій системі одні стану або рухи можуть бути стійкими, а інші не стійкими. Більш того, один і той же жвіженіе може бути стійким щодо однієї змінної і неустойцівим щодо іншого - це відзначав ще А.М. Ляпунов [2]. Обертання ротора турбіни стійко по відношенню до кутової швидкості і нестійка щодо кута повороту вала. Рух ракети стійко щодо траєкторії і нестійка по відношенню до нерухомої системі координат. Тому потрібно обумовлювати, стійкість якого стану або руху в системі і щодо яких змінних вивчається. Так само є багато методів для оцінки самої стійкості. Ми розглянемо як можна оцінити стійкість системи з логічним алгоритмом управління методом кругових діаграм.
Розглянемо теоретичну частину і подивимося що з себе представляє кругової критерій. Нехай дана система
.
x = Ax + b x, s = c'x, (1)
де x і s - у загальному випадку вектори (і, отже, b і с - прямокутні матриці), а матриця А не має власних значень на лінійній осі. Припустимо, що для деякого m, £ m £
система (1), доповнення співвідношенням x =- ms, асимптотично усойчіва.
Для абсолютної екпоненціальной стійкості системи (1) в класі М () нелінійностей x = j (s, t), що задовольняють умові
£ j (s, t) / s £ (2)
достатньо, щоб при всіх w, - ¥ <w <+ ¥, виконувалося співвідношення
Re {[1 + w)] [1 + W (j w)]}> 0. (3)
Круговий критерій випливає з квадратичного критерію для форми F (x, s) = (sx) (xs). Дійсно, як було показано вище, форма F (jw, x) має вигляд
F (jw, x) =- Re {[1 + W (jw)] [1 + W (jw)]} | x |
З цієї формули після скорочення на | x | слід (3).
У (3) ¹ - ¥, ¹ + ¥. Випадок, коли або =- ¥, або = + ¥ розглядається аналогічно.
Круговий критерій являє собою поширення лінійних частотних критеріїв стійкості Найквіста, Михайлова та інших на лінійні системи з одним лінійним або нелінійним, стаціонарним або нестаціонарним блоком. Він виходить з (3), якщо замість передавальної матриці використовувати частотну характеристику лінійної частини W (jw).
Позначаючи комплексну зміну W (jw) = z, розглянемо систему з одного нелінійністю, що задовольняє одну з таких умов:
Re [(1 + z) (1 + z )] £ 0, якщо ¹ - ¥, ¹ + ¥. (4)
Re [(1 + z) z] £ 0, якщо ¹ - ¥, ¹ + ¥. (5)
Re [z (1 + z)] £ 0, якщо ¹ - ¥, ¹ + ¥. (6)
Нехай З ( ) - Облостях комплексної площини z, обумовлена цими умовами. Кордон В ( ) Області обумовлена рівняннями одержуваними з (4) - (6) заміною знаків нерівностей равенствами. Для (4) отримуємо окружність, що проходить через точки -1 /, -1 / з центром на осі абсцис, причому область С буде внутрішністю цього кола, якщо > 0, тобто якщо нелінійні характеристики лежать в 1 і 3 квадрантах, і її зовнішністю, якщо сектор ( ) Захоплює два суміжних квадранта. Якщо один з кордонів сектора збігається з віссю абсцис, тобто якщо = 0 або = 0, то область С буде півплощини, а її межа - вертикальної прямої, що проходить відповідно через -1 / або -1 / . На малюнку 1 показані кордону в площині z для різного розташування секторів ( ) У площині s, x. Там же зображені криві W (jw), w> 0 для неособого випадку, розташовані так, що можлива абсолютна стійкість. Однак тільки пріємлімоє розташування хаоактерістік W (jw) ще недостатньо для судження про абсолютну стійкості: крім цього, потрібно ще вимагати, щоб лінійна замкнутоя система була асимптотично стійкою.
Круговий критерій забезпечує також абсолютну стійкість для системи з будь-яким блоком, вхід s і вихід x якого задовольняють для всіх t нерівності
( sx) (xs) ³ 0 (7)
Малюнок 1, а.
Розглянемо систему, наведену на рис. 2.
А Х Y У (P) Z
(-)
G (p) g
Малюнок 2.
Тут W (P) - оператор лінійної частини системи, яка може мати в загальному випадку следущий вигляд:
W (P) =;
(8)
W (p) =;
Алгоритм регулятора має вигляд:
y = Y x,
при gx> 0
Y = (9)
- При gx <0,
g = (
У формі рівнянь Коші розглянута система має вигляд:
=,
=- , (10)
k при g> 0
де =
- K при g <0,
g = c +; =.
Відповідність записів системи на рис. 2 досягається, коли при
W (P) = в рівняннях (10) маємо:
(11)
а при W (p) = маємо:
(12)
Причому для обох випадків (11) і (12) має місце співвідношення
(13)
Відповідно до викладеного однаково справедливо розглядати у вигляді структурної схеми на рис. 2 з відомим лінійними операторами - і G (p) або у вигляді форми Коші (10).
Додатково зазначимо, що структурна інтерпретація даної системи на рис. 2 має ще одну структурну схему опису, наведену на рис. 3.
| X | = c
lgyz
(-) X G (p) W (p)
Малюнок 3.
Це означає, що аналітичної запису (10) відповідають два структурних подання досліджуваної УПС, причому друге дозволяє розглядати систему (10) як релейну систему із змінним обмеження, коли | x | - var.
Далі перейдемо до аналізу нашого методу.
Згідно частотної теореми (10), для абсолютної стійкості системи на рис. 3 лостаточно, щоб при всіх w, змінюються від - ¥ до + ¥, виконувалося співвідношення:
Re {[1 + w)] [1 + W (j w)]}> 0,
а гадограф m W (j w) +1 при відповідав критерію Найквіста.
Для досліджуваної системи умова (3) зручніше записати у вигляді
(4) і (5).
На рис. 4 наведені можливі нелінійні характеристики з класу М () і годографи W (j w), розташовані таким чином, що згідно (4) і (5) можлива абсолютна стійкість.
y ^
y = g ()
| X | y = g (при = 0)
>
0
"А" "б"
"В" "г"
Малюнок 4.
У даному випадку (10) при
W (P) =, коли
W (p) = W (P) G (p), G (p) = p +1,
годограф W (j w) системи на рис. 5.
j
W (j w)
w = ¥
> <
=
w = 0
Малюнок 5.
У випадку (10) справедливі графічні форми на рис. 4 в, г, тобто досліджувана система абсолютно стійка в сенсі кругового критерію (3) або (5) при
> (14)
Цікаво зауважити, що достатні умови абсолютної стійкості за Ляпуновим
а> 0, y (t)> 0
і
a> c
для розглянутого випадку збігаються з достатніми умовами абсолютної стійкості, отриманими для кругового критерію (14), якщо виконується вимога
y (t)> 0 (15)
оскільки, згідно (11) і (13) a = a =.
Доведемо це, використовуючи умови існування ковзного режиму
- k £ y (t) = c k
тобто підставимо сюди замість коефіцієнтів а, с, і k їх вираження через
,, , Тоді отримаємо
- £ y (t) = £ (16)
Згідно рис. 5 і умови (16) отримуємо:
1) при =, Y (t) = 0
2) при >, Y (t)> 0
3) при <, Y (t) <0,
що й потрібно було довести.
Тепер розглянемо нашу систему з логічним алгоритмом управління, її логічна схема наведена на рис. 6.
| X | = c
lgsz
(-) X G (p) (P)
Малюнок 6.
У даному випадку вважаємо що:
- Варійована величина,
= 0.5,
= 0.1 (аналіз поведінки системи при зміні даного параметра досліджується в роботі ст-та Новікова, ми беремо оптимальне значення),
= 0.1,1 (коефіцієнт зворотного зв'язку),
= 10,100.
Розглянемо тепер саму функцію:
W (p) = G (p) W (P),
де G (p) - функція коректора, W (P) = (p) W (P), де
(P) =, а W (P) у свою чергу буде:
W (P) =,
де , Відповідно вся функція має вигляд:
W (p) = ;
Тепер замінюємо p на jw і маємо вигляд:
;
Для побудови гадогрофа виведемо формули для P (w), jQ (w) які мають вигляд:
P (w) = ;
jQ ( ;
Графіки можна подивитися у додатку N 2.
Враховуючи, що добротність x повинна бути ³ 0.5 ¸ 0.7 ми можемо визначити добротність нашої системи, вона приблизно дорівнює 0.5. Звідси видно, що через збільшення і, x зменшується, можна зробити висновок, що коливає ланки збільшитися. Це можна спостерігати на графіках 1.13 - 1.16 у додатку N 2.
Але це не підходить на вимогу нашого завдання. Так як > , То можна зробити висновок, що коректор буде впливати тільки на високих частотах, а на низьких буде переважати , Що можна спостерігати на графіках 1.1 - 1.4. На графіках 1.5 - 1.8 можна спостерігати мінемальние значення , Це означає що, при цих значеннях буде максимальні значення полиці нечутливості релейного елемента.
Мінемальние значення полиці нечуствітельності можна спостерігати на графіках 1.9 - 1.12, особливо при мінемальном значенні .
Додаток N 1.
Програма для побудови годографів на мові програмування
СІ + +.
# Include <graphics.h>
# Include <iostream.h>
# Include <conio.h>
# Include <dos.h>
# Include <stdlib.h>
# Include <stdio.h>
# Include <math.h>
# Include <string.h>
void Godograf (float Tpr, float Ko, float Kos, int Color,
int Xc, int Yc, int x, int y, int z, int err);
void Osi (int Xc, int Yc, int kol);
int xmax, ymax;
float Kos [] = {0.1,1.0},
Ko [] = {10.0,100.0},
Tpr [] = {0.01,0.09,0.2,0.5};
void main (void)
{
float P_w, Q_w, w;
int driver, mode, err;
driver = DETECT;
initgraph (& driver, & mode ,"");
err = graphresult ();
if (err! = grOk) {cout <<"nt" <<grapherrormsg (err);
getch ();}
else {
xmax = getmaxx ();
ymax = getmaxy ();
int Xc = (int) (xmax / 2), Yc = (int) (ymax / 2);
for (int i = 0; i <= 1; i + +) for (int j = 0; j <= 1; j + +) for (int k = 0; k <= 3; k + +) {
cleardevice ();
setviewport (0,0, xmax, ymax, 0);
Osi ((int) (xmax / 2), (int) (ymax / 2), i + j + k);
Godograf (Tpr [k], Ko [j], Kos [i], 15, (int) (xmax / 2), (int) (ymax / 2), k, j, i, 1);
setcolor (7);
setlinestyle (1,0,1);
rectangle (Xc-18, Yc-15, Xc +18, Yc +15);
setlinestyle (0,0,1);
rectangle (10, Yc +5,250, Yc +205);
setcolor (15);
setviewport (10, (int) (ymax / 2) +5,250, (int) (ymax / 2) +205,1);
setfillstyle (1,0);
floodfill (5,5,7);
line (10,100,230,100);
line (125,10,125,190);
Godograf (Tpr [k], Ko [j], Kos [i], 15,125,100, k, j, i, 0);};
closegraph ();
}
}
void Godograf (float Tpr, float Ko, float Kos, int Color,
int Xc, int Yc, int x, int y, int z, int err)
{
float P_w1 = 0.0, Q_w1 = 0.0,
P_w, Q_w,
To = 0.5, Tg = 0.1, P_w_min = 0.0;
for (float w = 0; w <= 100; w = w +0.05) {
if (((Kos * Ko-(To + Tpr) * w * w) * (Kos * Ko-(To + Tpr) * w * w) +
(W + Tpr * Kos * Ko * w-To * Tpr * w * w * w) * (w + Tpr * Kos * Ko * w-To * Tpr * w * w * w))! = 0) {
P_w = (Ko * w * Tg * (w + Tpr * Kos * Ko * w-To * Tpr * w * w * w) +
(Kos * Ko * Ko-(To + Tpr) * Ko * w * w)) /
((Kos * Ko-(To + Tpr) * w * w) * (Kos * Ko-(To + Tpr) * w * w) +
(W + Tpr * Kos * Ko * w-To * Tpr * w * w * w) * (w + Tpr * Kos * Ko * w-To * Tpr * w * w * w));
Q_w = (Tg * (Kos * Ko * Ko * w-(To + Tpr) * Ko * w * w) -
Ko * (w + Tpr * Kos * Ko * Ko * w-Ko * To * Tpr * w * w * w)) /
((Kos * Ko-(To + Tpr) * w * w) * (Kos * Ko-(To + Tpr) * w * w) +
(W + Tpr * Kos * Ko * w-To * Tpr * w * w * w) * (w + Tpr * Kos * Ko * w-To * Tpr * w * w * w));
if (abs (P_w)> abs (P_w1)) P_w1 = P_w;
if (abs (Q_w)> abs (Q_w1)) Q_w1 = Q_w;
if (P_w <P_w_min) P_w_min = P_w;
if (P_w1 == 0) P_w1 = P_w1 +0.01;
if (Q_w1 == 0) Q_w1 = Q_w1 +0.01;
};
};
float KmasX = (float) (xmax-Xc-100) / P_w1,
KmasY = (float) (ymax-Yc-100) / Q_w1;
if (KmasX <0) KmasX =- KmasX; if (KmasY <0) KmasY =- KmasY;
if (KmasX> = 220) KmasX = 150;
if (KmasY> = 140) KmasY = 100;
if (err == 0) {KmasX = KmasX * 4; KmasY = KmasY * 4;};
w = 0;
if (((Kos * Ko-(To + Tpr) * w * w) * (Kos * Ko-(To + Tpr) * w * w) +
(W + Tpr * Kos * Ko * w-To * Tpr * w * w * w) * (w + Tpr * Kos * Ko * w-To * Tpr * w * w * w))! = 0) {
P_w = KmasX * (Ko * w * Tg * (w + Tpr * Kos * Ko * w-To * Tpr * w * w * w) +
(Kos * Ko * Ko-(To + Tpr) * Ko * w * w)) /
((Kos * Ko-(To + Tpr) * w * w) * (Kos * Ko-(To + Tpr) * w * w) +
(W + Tpr * Kos * Ko * w-To * Tpr * w * w * w) * (w + Tpr * Kos * Ko * w-To * Tpr * w * w * w));
Q_w = KmasY * (Tg * (Kos * Ko * Ko * w-(To + Tpr) * Ko * w * w) -
Ko * (w + Tpr * Kos * Ko * Ko * w-Ko * To * Tpr * w * w * w)) /
((Kos * Ko-(To + Tpr) * w * w) * (Kos * Ko-(To + Tpr) * w * w) +
(W + Tpr * Kos * Ko * w-To * Tpr * w * w * w) * (w + Tpr * Kos * Ko * w-To * Tpr * w * w * w));
moveto (Xc + P_w, Yc-Q_w);};
setcolor (Color);
setcolor (9);
line (Xc + P_w_min * KmasX, 10, Xc + P_w_min * KmasX, ymax-10);
gotoxy (2,5);
printf ("K2 =");
printf ("% f", (-1/P_w_min));
setcolor (15);
for (w = 0; w <= 700; w = w +0.05) {
if (((Kos * Ko-(To + Tpr) * w * w) * (Kos * Ko-(To + Tpr) * w * w) +
(W + Tpr * Kos * Ko * w-To * Tpr * w * w * w) * (w + Tpr * Kos * Ko * w-To * Tpr * w * w * w))! = 0) {
P_w = KmasX * (Ko * w * Tg * (w + Tpr * Kos * Ko * w-To * Tpr * w * w * w) +
(Kos * Ko * Ko-(To + Tpr) * Ko * w * w)) /
((Kos * Ko-(To + Tpr) * w * w) * (Kos * Ko-(To + Tpr) * w * w) +
(W + Tpr * Kos * Ko * w-To * Tpr * w * w * w) * (w + Tpr * Kos * Ko * w-To * Tpr * w * w * w));
Q_w = KmasY * (Tg * (Kos * Ko * Ko * w-(To + Tpr) * Ko * w * w) -
Ko * (w + Tpr * Kos * Ko * Ko * w-Ko * To * Tpr * w * w * w)) /
((Kos * Ko-(To + Tpr) * w * w) * (Kos * Ko-(To + Tpr) * w * w) +
(W + Tpr * Kos * Ko * w-To * Tpr * w * w * w) * (w + Tpr * Kos * Ko * w-To * Tpr * w * w * w));
lineto (Xc + P_w, Yc-Q_w);
};
};
setcolor (13);
circle (Xc-KmasX, Yc, 2);
circle (Xc-KmasX, Yc, 1);
putpixel (Xc-KmasX, Yc, 13);
outtextxy (Xc-KmasX-7, Yc-12, "-1");
setcolor (15);
if (err == 1) {
if (x == 0) outtextxy (10,10, "Tpr = 0.01");
if (x == 1) outtextxy (10,10, "Tpr = 0.09");
if (x == 2) outtextxy (10,10, "Tpr = 0.2");
if (x == 3) outtextxy (10,10, "Tpr = 0.5");
if (y == 0) outtextxy (10,30, "Ko = 10");
if (y == 1) outtextxy (10,30, "Ko = 100");
if (z == 0) outtextxy (10,50, "Koc = 0.1");
if (z == 1) outtextxy (10,50, "Koc = 1.0");}
else {
char ch = '';
while (ch! = 27 & & ch! = 13)
if (kbhit ()! = 0) ch = getch ();};
};
void Osi (int Xc, int Yc, int kol)
{
setcolor (15);
rectangle (0,0, xmax, ymax);
line (Xc, 10, Xc, ymax-10);
line (10, Yc, xmax-10, Yc);
line ((int) (xmax / 2) -3,15, (int) (xmax / 2), 10);
line ((int) (xmax / 2), 10, (int) (xmax / 2) +3,15);
line (xmax-15, (int) (ymax / 2) -3, xmax-10, (int) (ymax / 2));
line (xmax-15, (int) (ymax / 2) +3, xmax-10, (int) (ymax / 2));
settextstyle (2,0,5);
outtextxy ((int) (xmax / 2) +7,10, "jQ (w)");
outtextxy (xmax-35, (int) (ymax / 2) +7, "P (w)");
settextstyle (2,0,4);
outtextxy ((int) (xmax / 2) -8, (int) (ymax / 2) +1, "0");
settextstyle (0,0,0);
if (kol == 5) outtextxy (5, ymax-15, "'Esc' - exit");
else outtextxy (5, ymax-15, "'Enter' - next");
setcolor (15);
};
Додаток N 2.
Малюнок N 1.1
Малюнок N 1.2
Малюнок 1.3
Малюнок 1.4
Малюнок 1.5
Малюнок 1.6
Малюнок 1.7
Малюнок 1.8
Малюнок 1.9
Малюнок 1.10
Малюнок 1.11
Малюнок 1.12
Малюнок 1.13
Малюнок 1.14
Вставка 1.15
Малюнок 1.16
Література:
1. Емільянов С.В., Системи автоматичного управління зі змінною структурою. - М.: Наука, 1967.
2. Воронов О.О., Стійкість керованість наблюдаемость, Москва "Наука", 1979.
3. Хабаров В.С. Сранітельная оцінка методів дослідження абсолютної стійкості СПС: наук.-дослід. робота.
4. Хабаров В.С. Нелінійні САУ: Курс лекцій / Записав В. Л. Смик, -1997.
Список посторінкових посилань:
1. Ла Салль Ж., Лефшец С. Дослідження стійкості прямим методом Ляпунова.-М.: Світ, 1964.-168 с.
2. Ляпунов А.М. Загальна задача про стійкість руху. - Собр. соч .- М.: Изд-во АН СРСР, 1956, т. 2, с. 7-271.