Варіант 8

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра КСА

Інформація про роботу

Рік:
2011
Тип роботи:
Розрахункова робота
Предмет:
Динамічні елементи систем керування
Група:
СІ-22

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет “Львівська політехніка ” Кафедра КСА  РОЗРАХУНКОВА РОБОТА з дисципліни “ДИНАМІЧНІ ЕЛЕМЕНТИ СИСТЕМ КЕРУВАННЯ” Тема 4 Варіант 8 Вхідна дія 14 Львів 2011   Варіант 8 Tm=0,003 сек; Т1=0,3 сек; Т1=0,02 сек; С=3 рад/в.сек; Кемп=15; Кеп=2; К1=1,01 в.сек /рад; К2=1 в.сек /рад; КІ=5; КІІ=3; Вхідна дія, ɷвх:  де а=0.1 секунда. Технічне завдання. 1. Нарисувати структурну схему системи. 2. Визначити передатні функції елементів системи. 3. Визначити передатну функцію системи. 4. Визначити частотні характеристики системи ДЧХ, УЧХ, АЧХ, ФЧХ. 5. Написати програму табуляції частотних характеристик. 6. Результати табуляції записати у текстовий файл. 7. Нарисувати частотні характеристики АФХ, АЧХ, ФЧХ. 8. Записати диференціальні рівняння системи в нормальній формі Коші. 9. Написати програму розрахунку 4 періодів перехідного процесу системи методом Рунге-Кутта з постійним кроком інтегрування. 10. Результати розрахунку записати у текстовий файл. 11. Навести список основних ідентифікаторів програми. 12. Нарисувати криві 4 періодів перехідного процесу системи для вихідної величини і помилки системи. 13. За результатами розрахунків зробити висновки про роботу системи. Структурна схема системи ɷвх U1 Uвх Uвих Uк Uр ɷвих U1 ɷвих Програма табуляції частотних характеристик і розрахунку 4 періодів перехідного процесу системи методом Рунге-Кутта з постійним кроком інтегрування #include "iostream" #include "math.h" #include "fstream" using namespace std; void P(double A, double B, double C, double D, double w, double &P_w); void Q(double A, double B, double C, double D, double w, double &Q_w); void H(double P, double Q, double &H_w); void FI(double P, double Q, double &fi_w); //Runhe_________________________________________________________________________ void W_vx(double a, double T, double t, double n, double &Wvx); void poxidni(double k1[],double k2[],double k3[],double c[],double x[],double dx[]); void k00(double k1[],double k2[],double k3[]); void main() { fstream file; file.open("resultCH.txt",ios_base::out|ios_base::trunc); double P_w,Q_w,H_w,FI_w=0; double H_w_fest,H_w_end; double _A,_B,_C,_D; double w=0,a0,b3,b2,b1,b0,h=1; double T_m=0.003, T_1=0.3, T_2=0.02, C=3, K_emp=15, K_ep=2, K_1=1.01, K_2=1,K_I=5, K_II=3; a0=K_1*K_ep*K_I*K_II*C; b3=T_1*T_2*T_m; b2=T_1*T_2+T_2*T_m+T_1*T_m; b1=T_1+T_2+T_m; b0=1+K_2*K_ep*K_I*K_II*C; int n=0; file<<"w P(w) Q(w) H(w) FI(w)"<<endl; do { _A=a0; _B=0; _C=b0-b2*w*w; _D=w*(b1-b3*w*w); P( _A, _B, _C, _D, w, P_w); Q( _A, _B, _C, _D, w, Q_w); H( P_w, Q_w, H_w); FI(P_w, Q_w, FI_w); file<<w<<" "<<P_w<<" "<<Q_w<<" "<<H_w<<" "<<FI_w<<endl; if (n==0)H_w_fest=H_w,H_w_end=H_w; else H_w_end=H_w; n++; w=w+h; }while(20*H_w_end > H_w_fest); file.close(); //Runhe_________________________________________________________________________ file.open("resultRunhe.txt",ios_base::out|ios_base::trunc); n=0; double a=0.1,T=4*a; double x[3],dx[3]={0,0,0},c[7],Wvx=0,k1[3],k2[3],k3[3],k4[3]; double Up=0,Uk=0,Wvux=0,U1=0,U2=0,Uvx=0,Uvux=0; c[0]=T_1; c[1]=K_I; c[2]=Uvux; c[3]=T_2; c[4]=K_II; c[5]=T_m; c[6]=C; h=T/1000; x[0]=Uk; x[1]=Up; x[2]=Wvux; file<<"t Wvx U1 Uvx Uvux Uk Up Wvux U2"<<endl; int m=0; for (n=0;n<4;n++) for(double t=0+n*T;t<T+n*T;) { if((m/10)*10==m) file<<t<<" "<<Wvx<<" "<<U1<<" "<<Uvx<<" "<<c[2]<<" "<<x[0]<<" "<<x[1]<<" "<<x[2]<<" "<<U2<<endl; else ; W_vx(a,T,t,n,Wvx); U1=K_1*Wvx; U2=K_2*x[2]; Uvx=U1-U2; c[2]=K_ep*Uvx; poxidni(k1,k2,k3,c,x,dx); for(int i=0;i<3;i++) { k1[i]=h*dx[i]; } t=t+h/2; W_vx(a,T,t,n,Wvx); U1=K_1*Wvx; U2=K_2*x[2]; Uvx=U1-U2; c[2]=K_ep*Uvx; x[0]=x[0]+k1[0]/2; x[1]=x[1]+k1[1]/2; x[2]=x[2]+k1[2]/2; poxidni(k1,k2,k3,c,x,dx); for(int i=0;i<3;i++) { k2[i]=h*dx[i]; } x[0]=x[0]-k1[0]/2+k2[0]/2; x[1]=x[1]-k1[1]/2+k2[1]/2; x[2]=x[2]-k1[2]/2+k2[2]/2; poxidni(k1,k2,k3,c,x,dx); for (int i=0;i<3;i++) { k3[i]=h*dx[i]; } t=t+h/2; W_vx(a,T,t,n,Wvx); U1=K_1*Wvx; U2=K_2*x[2]; Uvx=U1-U2; c[2]=K_ep*Uvx; x[0]=x[0]-k2[0]/2+k3[0]/2; x[1]=x[1]-k2[1]/2+k3[1]/2; x[2]=x[2]-k2[2]/2+k3[2]/2; poxidni(k1,k2,k3,c,x,dx); for (int i=0;i<3;i++) { k4[i]=h*dx[i]; } x[0]=x[0]-k3[0]/2; x[1]=x[1]-k3[1]/2; x[2]=x[2]-k3[2]/2; for (int i=0;i<3;i++) { x[i]=x[i]+(k1[i]+2*k2[i]+2*k3[i]+k4[i])/6; } m++; } file.close(); system("pause"); } //vunctions_________________________________________________________________ void P(double A, double B, double C, double D, double w, double &P_w) { P_w=(A*C+B*D)/(C*C+D*D); } void Q(double A, double B, double C, double D, double w, double &Q_w) { Q_w=(B*C-A*D)/(C*C+D*D); } void H(double P, double Q, double &H_w) { H_w=pow(P*P+Q*Q,0.5); } void FI(double P, double Q, double &fi_w) { fi_w=atan(Q/P); if (P<0) fi_w=fi_w-3.141592653589793238; else ; } //Runhe_________________________________________________________________________ void W_vx(double a, double T, double t, double n, double &Wvx) { if(t>=0+n*T && t<a+n*T) Wvx=5*(t-n*T)+0.5;else ; if(t>=a+n*T && t<2*a+n*T) Wvx=-5*(t-n*T-a)+1;else ; if(t>=2*a+n*T && t<=4*a+n*T) Wvx=-2.5*(t-n*T-2*a)+0.5;else ; } void poxidni(double k1[],double k2[],double k3[],double c[],double x[],double dx[]) { dx[0]=(c[1]*c[2]-x[0])/c[0]; dx[1]=(c[4]*x[0]-x[1])/c[3]; dx[2]=(c[6]*x[1]-x[2])/c[5]; } Амплітудно-фазова характеристика системи (АФХ)  y=Q; x=P; Амплітудно-частотна характеристика системи (АЧХ)  y=H; x=ɷ; Фазо-частотна характеристика системи (ФЧХ)  y=φ; x=ɷ; Вхідна дія ɷ(t)  U1(t)  Uvx(t)  Uvux(t)  Uk(t)  Up(t)  Вихідна дія ɷвих(t)  U2(t)  Список основних ідентифікаторів програми P_w, Q_w, H_w, FI_w – частотні характеристики; P( ) - функція обчилення дійсно-частотної характеристики; Q( ) - функція обчилення уявно-частотної характеристики; H( ) - функція обчилення амплітудно-частотної характеристики; FI( ) - функція обчилення фазо-частотної характеристики; W_vx( ) - функція обчислення вхідного сигналу; poxidni( ) - функція обчислення значень похідних в методі Рунге-Кутта; с[ ] - масив, за допомогою якого у функцію poxidni( ) передаються значення необхідної невідомої Uвих і константи, які входять в систему рівнянь; х[ ] - масив невідомих, які шукаються за методом Рунге-Кутта; Wvx – вхідний сигнал; Wvux – вихідний сигнал; Up,Uk,U1,U2,Uvx,Uvux – проміжні сигнали; Т – період; h – крок табуляції.
Антиботан аватар за замовчуванням

28.01.2013 17:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!