Нелинейные САУ - (курсовая)
p>Теперь рассмотрим нашу систему с логическим алгоритмом управления, ее логическая схема приведена на рис. 6.|x|=c
l g s z (-) 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
#include
#include
#include
#include
#include
#include
#include
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 getch(); }
else {
xmax = getmaxx();
ymax = getmaxy();
int Xc=(int)(xmax/2), Yc=(int)(ymax/2);
for(int i=0; i
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 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 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 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 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.
Страницы: 1, 2