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

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

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

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

Звіт до лабораторної роботи № 3 з курсу “Моделювання процесів та елементів систем керування”

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

ВУЗ:
Національний університет Львівська політехніка
Інститут:
МЕХ
Факультет:
Радіотехнічний факультет
Кафедра:
Кафедра електричних машин і апаратів

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

Рік:
2013
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Моделювання процесів та елементів систем керування
Група:
КН-31
Коротко про документ

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

У лабораторній роботі досліджено методи прискореного пошуку усталених режимів електромагнетних елементів систем керування. Проведено числове розв'язування систем нелінійних диференціальних рівнянь за допомогою мови програмування C++.

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

  • Моделювання систем керування
  • Електромагнетні елементи
  • Числові методи
  • Нелінійні диференціальні рівняння
  • Перехідні процеси
  • Усталені режими
  • Метод Рунге-Кутти

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

  1. Мета роботи
  2. Завдання до лабораторної роботи
  3. Теоретичні відомості
  4. Алгоритм обчислень екстраполяційним методом
  5. Текст основної програми
  6. Результат виконання програми
  7. Висновок
Для кого:Студенти технічних спеціальностей вищих навчальних закладів, які вивчають моделювання процесів та систем керування.
Викладачі:Павельчак А. Г.

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

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

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

Міністерство освіти і науки,молоді та спорту України Національний університет “Львівська політехніка” Прискорений пошук усталених режимів електромаґнетних елементів систем керування ЗВІТ до лабораторної роботи № 3 з курсу “Моделювання процесів та елементів систем керування” Мета роботи: вивчити методи прискореного пошуку усталених режимів електромаґнетних елементів систем керування, а також дослідити ці режими для заданої схеми використовуючи числові методи розв’язування систем нелінійних диференціальних рівнянь. Завдання до лабораторної роботи Завдання для лабораторної роботи дають із зазначенням номеру схеми трансформатора та варіанту чисельних значень параметрів схеми і навантаження, які необхідно взяти з лабораторної №2. № п/пьу журналі викладача Метод прискореного пошуку  2 Екстраполяційний є - алгоритм   Теоретичні відомості Таким чином, маючи систему диференціальних рівнянь, що описує стан пристрою і початкові умови, з допомогою чисельних методів ми можемо розрахувати перехідні процеси що в них протікають.Наступною задачею, яка викликає великий інтерес є аналіз усталених режимів роботи електромаґнетних елементів систем керування. Рівняння динамікидають можливість проводити аналіз перехідних процесів. Інтеґруючи ці рівняння на достатньо великому інтервалі часу, отримаємо усталений режим. Безумовно, що такий підхід має два недоліки: 1) накопичення похибок чисельного інтеґрування; 2) значні затрати машинного часу. Тому розглянемо ряд методів, які позбавлені цих недоліків, дають можливість отримувати розв’язок в часовій області і з наперед заданою точністю збіжності ітераційного процесу. Як і усі ітераційні методи вони дуже зручні при програмуванні. Алґоритм обчислень екстраполяційним методом 1. Інтеґруємо рівняння, від заданих початкових умов  на  періодах і визначаємо початкові умови періодичного режиму швидкозатухаючих компонент . 2. Маючи на -й ітерації початкові умови змінних стану  (на першій ітерації умови п.1), інтеґруємо рівняння на 6 періодах і породжуємо послідовність . 3. Визначаємо уточнене значення початкових умов  4. Перевіряємо умову збіжності ітераційного процесу. Якщо вона не виконується, то процес повторюємо з п.2, в противному випадку зупиняємо ітераційний процес. Текст основної програми #include"stdafx.h" #include"math.h" #include"fstream" usingnamespace std; constdouble a1=190, a2=170, a3=170, r1=11, r2=10, r3=16, C1=0.005, R1=10, C2=0.0004, C3=0.0006; double Um=270, Rn2=13, Rn3=15; constdouble h=0.0001; double I_psi(double psi) { return psi; if (psi<= 0.4) return 2*psi; if ((psi<1.2)&&(psi>0.4)) return (1.2+(-2.375)*psi+(-0.625)*psi*psi+10.15625*psi*psi*psi); if (psi>1.2) return 40*psi+15-40*1.2; } double DI_psi (double psi) { return 1; if (psi<=0.4) return 2; if ((psi<1.2)&&(psi>0.4)) return (-2.375+(-1.25)*psi+30.46875*psi*psi); if (psi>1.2) return 40; } void DfDt (double K[5], double X[5], double t) { double g1,g2,g3,a_li; a_li=DI_psi(X[0]); g1=a1/(a1+a2+a3+a_li); g2=a2/(a1+a2+a3+a_li); g3=-a3/(a1+a2+a3+a_li); double B[5][5]={{g1,g2,g3,0,0},{-a2*g1, a2*(1-g2), -a2*g3, 0, 0}, {a3*g1, a3*g2, a3*(1+g3), 0, 0},{0,0,0,1/(R1*C1),0},{0,0,0,0,1/C2}}; double I[3]={I_psi(X[0])-X[1]+X[2],X[1],X[2]}; double U[3]={X[3],-X[4],-X[4]}; double R[3][3]={{r1,0,0},{0,r2+Rn2,0},{0,0,r3+Rn3}}; double Z[3]; for (int i=0; i<3; i++) { Z[i]=0; for (int j=0; j<3; j++) { Z[i]+=R[i][j]*I[j]; } } for (int i=0; i<3; i++) Z[i]=U[i]-Z[i]; double Dy_dt[5]={Z[0], Z[1], Z[2], (Um*sin(2*3.14159*50*t)-X[3])-R1*I[0], X[2]+X[1]}; for (int i=0; i<5; i++) { K[i]=0; for (int j=0; j<5; j++) { K[i]+=B[i][j]*Dy_dt[j]; } } } void rungecytta (double X[5]) { fstream file; file.open("laba3.dat",ios_base::out|ios_base::trunc); double K1[5],K2[5],K3[5],K4[5],Z[5]; for (double t=0;t<0.02;t+=h) { DfDt (K1,X,t); for (int i=0;i<5;i++) Z[i]=X[i]+h/2*K1[i]; DfDt (K2,Z,t+h/2); for (int i=0;i<5;i++) Z[i]=X[i]+h/2*K2[i]; DfDt (K3,Z,t+h/2); for (int i=0;i<5;i++) Z[i]=X[i]+h*K3[i]; DfDt (K4,Z,t+h); for (int i=0;i<5;i++) X[i]=X[i]+h/6*(K1[i]+2*K2[i]+2*K3[i]+K4[i]); file<<t<<" "<<X[0]<<" "<<X[1]<<" "<<X[2]<<" "<<X[3]<<" "<<X[4]<<endl; } file.close(); } void _tmain(int argc, _TCHAR* argv[]) { constint m=5,q=5,n=11,p=2; double X[5]={0,0,0,0,0},e[12][12][5],Eps=0.0001, V[5], sum; bool cond; for (int j=0;j<=n;j++) for(int i=0;i<m;i++) e[j][0][i]=0; do { cond=false; for (int j=1;j<=p;j++) rungecytta (X); for(int i=0;i<m;i++) e[0][1][i]=X[i]; for (int j=0;j<10;j++) { rungecytta (X); for(int i=0;i<=m;i++) e[j+1][1][i]=X[i]; if(j==0) { for(int i=0;i<m-1;i++) cond=cond||( fabs((e[1][1][i]-e[0][1][i])/e[1][1][i])*100>Eps); if (cond==false) break; } } if (cond) { for (int k=1;k<=n-1;k++) for (int j=0;j<=n-k-1;j++) { for (int i=0;i<=m-1;i++) V[i]=e[j+1][k][i]-e[j][k][i]; sum=0; for(int i=0;i<=m-1;i++) sum=sum+V[i]*V[i]; for (int i=0;i<=m-1;i++) V[i]=V[i]/sum; for(int i=0;i<=m-1;i++) e[j][k+1][i]=e[j+1][k-1][i]+V[i]; } for (int i=0;i<=m-1;i++) X[i]=e[0][n][i]; } } while (cond); } Результат виконання програми // // / Висновок: під час виконання даної лабораторної роботи я вивчив методи прискореного пошуку усталених режимів електромаґнетних елементів систем керування, а також дослідив ці режими для заданої схеми використовуючи числові методи розв’язування систем нелінійних диференціальних рівнянь.
Допоможи студентському архіву

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

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

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

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

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

Admin

26.02.2023 12:38

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