Міністерство освіти України
ІКТАМ
при Національному університеті "Львівська політехніка"
кафедра : автоматики та телемеханіки
Курсова робота
з курсу
"Комплексні методи дослідження систем керування"
на тему:
"Система статичного слідкування за швидкістю задаючого вала"
Тема 4, варіант 4
Львів 2006
Зміст
Завдання 3
Опис роботи схеми 4
Виведення системи диференціальних рівнянь 4
Метод Рунге-Кутта-Фельберга 5
Метод Ейлера 5
Реалізація автоматичного кроку 6
Блок-схеми алгоритмів. 7
Тексти програм 8
Результати 13
Графічні результати 5
Висновок 6
Література 6
Завдання
Двома заданими чисельними методами розрахувати з заданою точністю процес реакції заданої системи автоматичного керування (САК) на одиничний стрибок вхідного сигналу.
Розрахунок здійснити для свого варіанту САК, параметрів САК, параметрів перехідного процесу і параметрів процесу чисельного інтегрування.
Чисельні методи 1) з фіксованим кроком – Ейлера.
2) з автоматичним вибором кроку – Рунге-Кутта-Фельберга.
Точність розрахунку не нижча 0.001, початкові умови – нульові.
1. Схема системи статичного слідкування за швидкістю задаючого вала.
2. Рівняння ланок
a) рівняння тахогенераторів
,
b) вимірювальна схема
c) електронний підсилювач
d) обмотка збудження ЕМП (електромашинного підсилювача)
e) короткозамкнута обмотка ЕМП
f) двигун
3. Завдання
Tm (сек)
0,005
КЕМП
10
T1 (сек)
0,2
КЕП
1.5
T2 (сек)
0,6
к1 (в∙с/рад)
1,01
С (рад/в∙с)
2
к2 (в∙с/рад)
1
Опис роботи схеми
На вхід електронного підсилювача подається різниця напруг U1 та U2 які є пропорційними величинам вхідного і вихідного сигналів відповідно. Сигнал, підсилений електронним, а потім електромашинним підсилювачами, подається на двигун, який обертає ротор тахогенератора ТГ2.
У рівноважному стані Wвх = Wвих, на вході електронного підсилювача нульова напруга. При появі , припиненні чи зміні Wвх на вході електронного підсилювача (ЕП) виникає напруга: Uвх=U1-U2 . Підсилена в Кu разів різниця напруг подається на обмотку збудження електромашинного підсилювача (ЕМП), який керує двигуном. Під дією цієї напруги в залежності від знаку зміни вхідного сигналу збільшується або зменшується швидкість обертання двигуна. Вал двигуна з'єднаний з тахогенератором, який генерує напругу, що подається на вимірювальну схему. Цей процес буде тривати доти , доки Uвх не стане рівне нулю , тобто Wвх = Wвих .
Виведення системи диференціальних рівнянь
З рівняння двигуна виражаємо Up :
Підставляємо його в рівняння короткозамкненої обмотки ЕМП, звідки знаходимо Uk:
.
Підставивши вираз для Uk, а також рівняння електронного підсилювача, вимірювальної схеми і тахогенераторів в рівняння обмотки збудження ЕМП, отримаємо:
Позначимо :
тоді .
Введемо заміну:
Тепер, з отриманого лінійного диф. рівняння третього порядку можна скласти систему з трьох диф. рівнянь першого порядку:
Метод Рунге-Кутта-Фельберга
Метод Рунге-Кутта-Фельберга є модифікацією метода Рунге-Кутта
4-го порядку. Він реалізується за наступним алгоритмом:
За допомогою циклів з керуючою змінною j обчислюємо
Yj(n+1) = Yjn + K0j/9 + 9K2j/20 + 16K3j/45 + K4j/12 ,
де
K0j = h * Fj( Xn , Yjn )
K1j = h * Fj( Xn + 2h/9 , Yjn + 2K0j/9 )
K2j = h * Fj( Xn + h/3 , Yjn + K0j/12 + K1j/4 )
K3j = h * Fj( Xn + 3h/4 , Yjn + 69K0j/128 – 143K1j/128 + 135K2j/64 )
K4j = h * Fj( Xn + h , Yjn - 17K0j/12 + 27K1j/4 - 27K2j/5 + 16K3j/15 )
K5j = h * Fj( Xn + 5h/6 , Yjn + 65K0j/432 – 5K1j/16 + 13K2j/16 + 4K3j/27 + K4j/144 );
Метод Рунге-Кутта-Фельберга також має похибку інтегрування h5 , але, на відміну від методу Рунге-Кутта 4-го порядку, для оцінки похибки відпадає необхідність робити подвійний перерахунок. Цей метод дає наближену оцінку похибки на кожному кроці інтегрування за формулою:
Rj(n+1) = K0j/150 - 3K2j/100 + 16K3j/75 + K4j/20 – 6K5j/25 ) ;
Метод Ейлера
Розв’язок в околі точки xm розкладається в ряд Тейлора
Якщо xm змінюється з кроком h, припустивши, що сітка x0,x1,...,xm є рівномірною, можна отримати наближене значення y(x) в точці xm+1 :
Якщо обмежитися i=1,то отримаємо формулу методу Ейлера :
При переході до системи диференціальних рівнянь скалярні величини замінюються на векторні :
Реалізація автоматичного кроку
Нехай вже відоме значення функції в точці t. Для методу Ейлера спочатку обчислюють наступне значення з кроком h . Потім цей же проміжок обчислюють з кроком h/2. Різницю у з кроком h і у з кроком h/2 порівнюють із (попередньо задана точність). Для методу Рунге-Кутта-Фельберга немає потреби робити перерахунок з кроком h/2, похибка обчислюється на кожному кроці. Якщо похибка більше , зменшують h в два рази. Так послідовно зменшують крок до тих пір, коли похибка стане менше .
Значення функції в точці t+h обчислено.Якщо ж похибка менша /30,аналогічно збільшують крок.
Блок-схеми алгоритмів.
Метод Ейлера
Метод Рунге-Кутта-Фельберга
Тексти програм
Метод Ейлера
#include<stdio.h>
#include<math.h>
#define N 3
double A1,A2,A3,A4,A5;
FILE *fp;
double F(int i,double *y,double x)
{ switch (i)
{ case 0:return y[1];
case 1:return y[2];
case 2:return ((-A2*y[2]-A3*y[1]-A4*y[0]-A5)/A1); } }
void eyler(int i,double *y,double x,double h)
{ y[i]+=h*F(i,y,x); }
main()
{ double y1[N],y[N],a=0,b=2.,x,e,h=0.001,Tm=0.005,T1=0.2,T2=0.06,C=2,Kemp=10,Kep=1.5,K1=1.01,K2=1;
int i,j,c=0;
A1=T1*T2*Tm; A2=T1*T2+T1*Tm+T2*Tm; A3=T1+T2+Tm;
A4=1+Kemp*C*Kep*K2; A5=-Kemp*C*Kep*K1;
y[0]=0;y[1]=0;y[2]=0;
if ((fp=fopen("c:\\temp\\eyler.dat","w"))==NULL) exit(-1);
for(x=a;x<b+h;x+=h)
{ for(i=0;i<N;i++)
{ eyler(i,y,x,h);
for(j=0;j<=1;j++)
{ eyler(i,y1,x,h/2.);
x+=h/2.; }
x-=h; }
e = fabs(y1[0]-y[0]);
printf("x=%lf y=%lf e=%lf\n",x,y[0],e);
c++;
if (c == 1) { c=0; fprintf(fp,"%lf\t%lf\t%lf\n",x,y[0],e); }
}
fclose(fp);
}
1. Метод Рунге-Кутта-Фельберга
Результати
Методом Ейлера0.000000 0.000000 31.747171
0.000100 0.000000 31.809827
0.000200 0.000001 31.871642
0.000300 0.000002 31.932616
0.000400 0.000005 31.992748
0.000500 0.000010 32.052038
0.000600 0.000017 32.110485
0.000700 0.000028 32.168089
0.000800 0.000041 32.224849
0.000900 0.000058 32.280765
0.001000 0.000080 32.335837
0.001100 0.000106 32.390064
0.001200 0.000137 32.443445
0.001300 0.000173 32.495981
0.001400 0.000215 32.547671
0.001500 0.000263 32.598515
0.001600 0.000318 32.648512
0.001700 0.000380 32.697663
0.001800 0.000448 32.745966
0.001900 0.000525 32.793422
0.002000 0.000609 32.840030
0.022900 0.365141 25.114979
0.023000 0.368533 25.006612
0.023100 0.371937 24.897738
0.023200 0.375352 24.788360
0.023300 0.378778 24.678481
0.023400 0.382216 24.568103
0.023500 0.385664 24.457231
0.023600 0.389124 24.345867
0.023700 0.392594 24.234014
0.023800 0.396076 24.121676
0.023900 0.399568 24.008856
0.024000 0.403071 23.895557
0.024100 0.406584 23.781782
0.024200 0.410108 23.667534
0.024300 0.413642 23.552817
0.024400 0.417186 23.437634
0.024500 0.420741 23.321988
0.024600 0.424305 23.205882
0.024700 0.427880 23.089320
0.024800 0.431465 22.972305
0.024900 0.435059 22.854840
0.025000 0.438663 22.736928
0.025100 0.442277 22.618573
0.025200 0.445900 22.499777
0.025300 0.449533 22.380545
0.025400 0.453175 22.260880
0.025500 0.456826 22.140784
0.025600 0.460486 22.020262
0.025700 0.464156 21.899316
0.025800 0.467834 21.777950
0.025900 0.471521 21.656167
0.026000 0.475217 21.533970
0.047000 1.291814 7.776648
0.047100 1.295191 7.907555
0.047200 1.298557 8.038148
0.047300 1.301912 8.168425
0.047400 1.305257 8.298382
0.047500 1.308590 8.428017
0.047600 1.311912 8.557327
0.047700 1.315222 8.686308
0.047800 1.318522 8.814959
0.047900 1.321810 8.943276
0.048000 1.325086 9.071256
0.048100 1.328351 9.198898
0.048200 1.331605 9.326197
0.048300 1.334847 9.453151
0.048400 1.338077 9.579758
0.048500 1.341295 9.706014
0.048600 1.344502 9.831917
0.048700 1.347696 9.957464
0.048800 1.350879 10.082653
0.048900 1.354049 10.207480
0.049000 1.357208 10.331944
0.049100 1.360354 10.456041
0.049200 1.363488 10.579768
0.049300 1.366610 10.703123
0.049400 1.369719 10.826104
0.049500 1.372816 10.948707
0.049600 1.375900 11.070931
0.049700 1.378972 11.192771
0.049800 1.382031 11.314227
0.049900 1.385077 11.435295
0.050000 1.388111 11.555973
0.050100 1.391132 11.676257
0.050200 1.394140 11.796146
0.050300 1.397135 11.915637
0.050400 1.400117 12.034728
0.050500 1.403086 12.153415
0.050600 1.406042 12.271697
0.050700 1.408984 12.389571
0.050800 1.411914 12.507034
0.050900 1.414830 12.624084
0.051000 1.417733 12.740719
0.051100 1.420622 12.856935
0.051200 1.423498 12.972732
0.051300 1.426360 13.088105
0.051400 1.429209 13.203053
0.051500 1.432044 13.317574
0.051600 1.434865 13.431664
0.051700 1.437673 13.545322
0.051800 1.440467 13.658545
0.051900 1.443247 13.771331
0.052000 1.446013 13.883678
0.052100 1.448765 13.995583
0.052200 1.451503 14.107044
0.052300 1.454227 14.218058
0.052400 1.456937 14.328624
0.052500 1.459632 14.438739
0.052600 1.462314 14.548401
0.052700 1.464981 14.657607
0.052800 1.467633 14.766355
0.052900 1.470272 14.874644
0.053000 1.472896 14.982470
0.053100 1.475505 15.089833
0.053200 1.478100 15.196728
0.053300 1.480680 15.303155
0.053400 1.483246 15.409112
0.053500 1.485797 15.514595
0.053600 1.488333 15.619603
0.053700 1.490854 15.724135
0.053800 1.493361 15.828186
0.053900 1.495852 15.931757
0.054000 1.498329 16.034844
0.054100 1.500791 16.137446
0.054200 1.503238 16.239560
0.054300 1.505669 16.341184
0.054400 1.508086 16.442317
0.054500 1.510487 16.542957
0.054600 1.512873 16.643101
0.054700 1.515244 16.742747
1.980300 0.977502 0.002930
1.980400 0.977502 0.002939
1.980500 0.977502 0.002948
1.980600 0.977502 0.002957
1.980700 0.977503 0.002966
1.980800 0.977503 0.002974
1.980900 0.977503 0.002983
1.981000 0.977503 0.002991
1.981100 0.977503 0.003000
1.981200 0.977503 0.003008
1.981300 0.977504 0.003016
1.981400 0.977504 0.003024
1.981500 0.977504 0.003032
1.981600 0.977504 0.003040
1.981700 0.977504 0.003048
1.981800 0.977504 0.003056
1.981900 0.977504 0.003063
1.982000 0.977505 0.003071
1.982100 0.977505 0.003079
1.982200 0.977505 0.003086
1.982300 0.977505 0.003093
1.982400 0.977505 0.003101
1.982500 0.977505 0.003108
1.982600 0.977505 0.003115
1.982700 0.977505 0.003122
1.982800 0.977506 0.003129
1.982900 0.977506 0.003136
1.983000 0.977506 0.003143
1.983100 0.977506 0.003150
1.983200 0.977506 0.003156
1.983300 0.977506 0.003163
1.983400 0.977506 0.003169
1.983500 0.977506 0.003176
1.983600 0.977507 0.003182
1.983700 0.977507 0.003188
1.983800 0.977507 0.003194
1.983900 0.977507 0.003200
1.984000 0.977507 0.003206
1.984100 0.977507 0.003212
1.984200 0.977507 0.003218
1.984300 0.977507 0.003224
1.984400 0.977507 0.003229
1.984500 0.977507 0.003235
1.984600 0.977507 0.003240
1.984700 0.977508 0.003246
1.984800 0.977508 0.003251
1.984900 0.977508 0.003256
1.985000 0.977508 0.003261
1.985100 0.977508 0.003266
1.985200 0.977508 0.003271
1.985300 0.977508 0.003276
1.985400 0.977508 0.003281
1.985500 0.977508 0.003286
1.985600 0.977508 0.003290
1.985700 0.977508 0.003295
1.985800 0.977508 0.003299
1.985900 0.977508 0.003304
1.986000 0.977508 0.003308
1.986100 0.977508 0.003312
1.986200 0.977508 0.003316
1.986300 0.977509 0.003320
1.986400 0.977509 0.003324
1.986500 0.977509 0.003328
1.986600 0.977509 0.003332
1.986700 0.977509 0.003336
1.986800 0.977509 0.003339
1.986900 0.977509 0.003343
1.987000 0.977509 0.003346
1.987100 0.977509 0.003350
1.987200 0.977509 0.003353
1.987300 0.977509 0.003356
1.987400 0.977509 0.003359
1.987500 0.977509 0.003362
1.987600 0.977509 0.003365
1.987700 0.977509 0.003368
1.987800 0.977509 0.003371
1.987900 0.977509 0.003374
1.988000 0.977509 0.003376
1.988100 0.977509 0.003379
1.988200 0.977509 0.003381
1.988300 0.977509 0.003383
1.988400 0.977509 0.003386
1.988500 0.977509 0.003388
1.988600 0.977509 0.003390
1.988700 0.977509 0.003392
1.988800 0.977509 0.003394
1.988900 0.977509 0.003396
1.989000 0.977509 0.003398
1.989100 0.977509 0.003399
1.989200 0.977509 0.003401
1.989300 0.977509 0.003402
1.989400 0.977509 0.003404
1.989500 0.977509 0.003405
1.989600 0.977509 0.003406
1.989700 0.977509 0.003408
1.989800 0.977509 0.003409
1.989900 0.977509 0.003410
1.990000 0.977509 0.003411
1.990100 0.977509 0.003411
1.990200 0.977509 0.003412
1.990300 0.977509 0.003413
1.990400 0.977509 0.003413
1.990500 0.977508 0.003414
1.990600 0.977508 0.003414
1.990700 0.977508 0.003415
1.990800 0.977508 0.003415
1.990900 0.977508 0.003415
1.991000 0.977508 0.003415
1.991100 0.977508 0.003415
1.991200 0.977508 0.003415
1.991300 0.977508 0.003415
1.991400 0.977508 0.003415
1.991500 0.977508 0.003414
1.991600 0.977508 0.003414
1.991700 0.977508 0.003413
1.991800 0.977508 0.003413
1.991900 0.977508 0.003412
1.992000 0.977508 0.003411
1.992100 0.977507 0.003411
1.992200 0.977507 0.003410
1.992300 0.977507 0.003409
1.992400 0.977507 0.003408
1.992500 0.977507 0.003406
1.992600 0.977507 0.003405
1.992700 0.977507 0.003404
Методом Рунне-Кутта-Фельберга
Графічні результати
Графік, отриманий методом Ейлера
Графік, отриманий методом Рунне-Кутта-Фельберга
Література
1.М.А.Гаврилюк , Л.В.Мороз та iн. "Прикладні програми i лабораторний практикум для персонального комп'ютера." 1988 Київ УМКВО.
2. Л.О. Новіков, А.Ф. Обшта, "Чисельні та наближені методи прикладної математики. Лекції" 1998 Львів