Міністерство освіти та науки України
Національний університет “Львівська політехніка”
Звіт до лабораторної роботи №2
з дисципліни «Моделювання процесів
та елементів систем керування»
тема: «Аналіз перехідних процесів електромаґнетних
елементів систем керування»
Львів – 2011
Мета роботи – вивчити принципи побудови рівнянь динаміки електромаґнетних елементів систем керування в нормальній формі Коші, а також дослідити перебіг перехідних процесів в цих елементах використовуючи числові методи розв’язування систем нелінійних диференціальних рівнянь.
ОСНОВНІ ТЕОРЕТИЧНІ ВІДОМОСТІ
Електромаґнетні елементи з різноманітними функціональними призначеннями часто використовуються як елементи систем керування. Наявність у їх конструкціях феромаґнетиків призводить до появи нелінійних характеристик викликаних наявністю кривих намаґнечення. Тому такі пристрої будуть описуватися нелінійними диференціальними рівняннями. Розв’язування таких рівнянь можна виконувати лише з допомогою чисельних методів, які передбачають застосування обчислювальної техніки. Перш ніж приступати до запису математичної моделі об’єкту необхідно прийняти певні допущення, що будуть визначати складність такої моделі і наскільки адекватно вона відображає реальні фізичні процеси, що там протікають.
Трансформатори є одними з найпоширеніших елементів багатьох пристроїв автоматики, радіоелектроніки, електроенерґетики та ін. Виконують вони як правило дві функції: перша пов’язана з підвищенням або пониженням змінної напруги, а друга для гальванічної розв’язки споживача електричної енергії та мережі живлення. Вони можуть мати найрізноманітніші конструкції, що визначаються потужністю, числом фаз, сполученням обмоток типом маґнетопровідника та ін. Найпоширенішими є одно- та трифазні трансформатори, які можуть мати одну або декілька вихідних обмоток з різними напругами. Маґнетопровідники можуть мати форму тороїда, або прямокутну і виготовлені з шихтованого феромаґнетного матеріалу.
ЗАВДАННЯ ДЛЯ ЛАБОРАТОРНОЇ РОБОТИ
Варіант
1, Гн-1
2, Гн-1
r1, Ом
r2, Ом
r3 Ом
6
170
120
3
6
9
C1, мФ
C2, мФ
C3 мФ
Um, В
9
0,8
0,4
350
RН2, Ом
RН3, Ом
LН2, мГн
LН3, мГн
21
11
2,3
1,0
/
ТЕКСТ ПРОГРАМИ
// Laba 2.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "math.h"
#include "fstream"
#include "iostream"
#include "conio.h"
using namespace std;
const double
a1=170, a2=120, a3=230, m1=3, m2=210, r1=3, r2=6, r3=9, C1=0.009, R1=10, R2=10, C2=0.0008, C3=0.0004;
double Um=350, Rn2=21, Rn3=11, i1=0.45, i2=35;
const double 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/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+R2,R2},{0,R2,r3+Rn3+R2}};
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 _tmain(void)
{
fstream file;
file.open ("Laba2.dat", ios_base::out|ios_base::trunc);
double X[5]={0,0,0,0,0}, K1[5], K2[5], K3[5], K4[5], Z[5];
for (double t=0; t<0.5; 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();
}
РЕЗУЛЬТАТ
//
//
/
Висновок: виконуючи цю роботу, я вивчив принципи побудови рівнянь динаміки електромаґнетних елементів систем керування в нормальній формі Коші, а також дослідив перебіг перехідних процесів в цих елементах використовуючи числові методи розв’язування систем нелінійних диференціальних рівнянь.