DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Розрахункова робота з дисципліни “Динамічні елементи систем керування” (Тема 4, Варіант 8)

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

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

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

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

Про що ця робота

У роботі виконується розрахунок та моделювання динамічних елементів систем керування згідно з варіантом 8. Наведено структурну схему, передатні функції, частотні характеристики та програму на C++ для чисельного інтегрування методом Рунге-Кутта.

У роботі розглядаються

  • Системи керування
  • Динамічні елементи
  • Частотні характеристики
  • Метод Рунге-Кутта
  • Структурні схеми
  • Моделювання процесів
  • Програмування на C++

Зміст і розділи

  1. Технічне завдання
  2. Структурна схема системи
  3. Програма табуляції частотних характеристик і розрахунку 4 періодів перехідного процесу
  4. Список основних ідентифікаторів програми
Для кого:Студенти технічних спеціальностей та викладачі вищих навчальних закладів.
Викладачі:Самотий В.В.

Ключові поняття

передатна функціячастотні характеристикиамплітудно-частотна характеристикафазо-частотна характеристикаметод Рунге-Куттаперехідний процесструктурна схемавхідний сигналдиференціальне рівняння

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

Міністерство освіти і науки України Національний університет “Львівська політехніка ” Кафедра КСА  РОЗРАХУНКОВА РОБОТА з дисципліни “ДИНАМІЧНІ ЕЛЕМЕНТИ СИСТЕМ КЕРУВАННЯ” Тема 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 – крок табуляції.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

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

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

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

Admin

26.02.2023 12:38

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