DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

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

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

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

Рік:
2013
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Моделювання

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

Міністерство освіти і науки,молоді та спорту України Національний університет “Львівська політехніка” Прискорений пошук усталених режимів електромаґнетних елементів систем керування ЗВІТ до лабораторної роботи № 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); } Результат виконання програми // // / Висновок: під час виконання даної лабораторної роботи я вивчив методи прискореного пошуку усталених режимів електромаґнетних елементів систем керування, а також дослідив ці режими для заданої схеми використовуючи числові методи розв’язування систем нелінійних диференціальних рівнянь.
Антиботан аватар за замовчуванням

11.04.2013 22:59

Коментарі

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

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

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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