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

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

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

Рік:
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:04-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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