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

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

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

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

Звіт до лабораторної роботи № 3 з курсу «Моделювання процесів та елементів систем керування» на тему: Прискорений пошук усталених режимів електромагнетних елементів систем керування

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

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

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

Рік:
2009
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Моделювання процесів та елементів систем керування
Група:
КС-43
Варіант:
3
Коротко про документ

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

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

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

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

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

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

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

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

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

Міністерство освіти і науки України Національний університет “Львівська політехніка” Кафедра КСА  Звіт до лабораторної роботи № 3 з курсу “Моделювання процесів та елементів систем керування” на тему Прискорений пошук усталених режимів електромаґнетних елементів систем керування Варіант №14 Перевірив: [ім’я автора приховано] Львів-2009 Мета роботи – вивчити методи прискореного пошуку усталених режимів електромаґнетних елементів систем керування, а також дослідити ці режими для заданої схеми використовуючи числові методи розв’язування систем нелінійних диференціальних рівнянь. ЗАВДАННЯ ДЛЯ ЛАБОРАТОРНОЇ РОБОТИ Завдання для лабораторної роботи дають із зазначенням номеру схеми трансформатора та варіанту чисельних значень параметрів схеми і навантаження, які необхідно взяти з лабораторної №2. 1. Домашня підготовка до роботи 1. Вивчити метод формування варіаційних рівнянь необхідних для використання моделі чутливостей до початкових умов. 2. Вивчити алгоритм побудови моделі чутливостей до початкових умов. 3. Вивчити екстраполяційний -алгоритм і метод середніх значень для пошуку початкових умов, що задовольняють умову періодичності. 4. Скласти блок-схему розрахунку стаціонарного процесу заданої схеми заданим методом. 5. Згідно блок-схеми написати програму розрахунку стаціонарного процесу заданої схеми алгоритмічною мовою С. 2. Робота в лабораторії 1. Ввести в комп’ютер програму, написану мовою С згідно отриманим завданням. 2. Відлагодити програму. При необхідності скоригувати блок-схему алгоритму та програму у відповідності з виявленими логічними та синтаксичними помилками. 3. Результати розрахунку стаціонарного процесу записати до текстового файлу у вигляді стовпців t, i1, i2, i3, uC1, uC2, uC3. 4. Використовуючи програму GRAFER нарисувати залежності  EMBED Equation.3 . Можна суміщати декілька змінних однакової розмірності на одному графіку, якщо це дозволяє масштаб. 5. Остаточні версії блок-схеми, програми та отримані результати занести у звіт з лабораторної роботи. 6. Здати звіт з лабораторної роботи. Остаточна версія програми // lab3.cpp : Defines the entry point for the console application. #include "stdafx.h" #include"math.h" #include "conio.h" #include "iostream" #include"fstream" using namespace std; const double a1=150,a2=190,a3=190,r1=1,r2=5,r3=7,C1=3e-3,C3=0.5e-3,Um=370,Rn2=23,Rn3=10,R1=15,R2=15,Ln3=1.1e-3,i1=0.035,i2=3.1; const double h=0.0001; double ff(double psi) { if (psi<=0.35) return 0.1*psi; if((psi<0.7)&&(psi>0.35)) return -2.28+20.714*psi-61.959*psi*psi+61.924*psi*psi*psi; if (psi>0.7) return 25*psi+3.1-25*0.7; } double aii(double psi) { if (psi<=0.35) return 0.1; if((psi<0.7)&&(psi>0.35)) return 20.714-2*61.959*psi+3*61.924*psi*psi; if (psi>0.7) return 25; } void DfDt (double K[5],double X[5], double t) { double g1,g2,g3,g; g=a1+a2+a3+aii(X[0]); g1=a1/g; g2=a2/g; g3=-a3/g; 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/C1,0},{0,0,0,0,1/C3}}; double I[3]={ ff(X[0])-X[1]+X[2], X[1], X[2] }, U[3]={X[3], -R2*X[2], -X[4]-R2*X[1]}, R[3][3]={{r1,0,0},{0,r2+Rn2+R2,0},{0,0,r3+R2}}, Z[3]={0,0,0}; for (int i=0; i<3; i++) 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 Y[5]={Z[0],Z[1],Z[2],Um*sin(2*3.14159*50*t)-X[3]-R1*(ff(X[0])-X[1]+X[2]),X[2]*Rn3-X[4]}; for (int i=0; i<5; i++) { K[i]=0; for (int j=0; j<5; j++) K[i]+=B[i][j]*Y[j]; } } void rungecytta (double X[5]) { fstream file; file.open("laba2.dat",ios_base::out|ios_base::trunc); double K1[5],K2[5],K3[5],K4[5],Z[5]; for (double t=0;t<1.0/50;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]); cout<<t<<" "<<X[0]<<" "<<X[1]<<" "<<X[2]<<" "<<X[3]<<" "<<X[4]<<endl; file<<t<<" "<<X[0]<<" "<<X[1]<<" "<<X[2]<<" "<<X[3]<<" "<<X[4]<<endl; } file.close(); } void _tmain(int argc, _TCHAR* argv[]) { const int 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; int count=0; 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]; count++; } } while (cond); cout<<count; getch(); } Результати роботи програми    Висновки: вивчили методи прискореного пошуку усталених режимів електромаґнетних елементів систем керування, а також дослідили ці режими для заданої схеми використовуючи числові методи розв’язування систем нелінійних диференціальних рівнянь.
Допоможи студентському архіву

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

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

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

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

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

Admin

26.02.2023 12:38

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