Міністерство освіти і науки України
Національний університет «Львівська Політехніка»
Кафедра КСА
Лабораторна робота №6
з курсу “Комп’ютерні методи дослідження систем керування”
«Інтегрування систем диференціальних рівнянь. Розрахунок перехідного процесу для RLC-ланок»
Завдання:
Згідно варіанту (порядкового номера в журналі викладача) завдання (таблиця 1 та 2), вдома написати програму для реалізації алгоритму вказаного методу, а в лабораторії вписати програмний код та налагодити цю програму.
№
п/п
Завдання
Для вказаної RCL-ланки скласти систему диференціальних рівнянь та виконати розрахунок перехідного процесу ланки зазначеним методом. Згідно отриманих даних побудувати графік перехідного процесу вихідної напруги .
Вхідні дані: , В, Гц, Ом, Ом, Ом, Ом, Гн, Гн, Гн, Ф, Ф, Ф, сек, (крок інтегрування).
3
Модифікований метод Ейлера
№3
Код програми:
#include "stdafx.h"
#include "fstream"
#include "math.h"
#include "iostream"
#include "string"
using namespace std;
int main ()
{
double X[3]={0,0,0},X_X[3],h=0.0001,R1=5,R2=4,R3=7,C1=300e-6,C2=200e-6,Umax=100,U1,L1=0.01, T=0.2;
fstream file;
file.open("laba.txt",fstream::in | fstream::out);
file.clear ();
for(double t=0;t<=(T-h/2);t+=h)
{ U1=Umax*sin(2*3.14*50*t);
y[0] = x[0] + h * (((x[0]-U1+x[2]*R2)/(R2-R1))/C1);
y[1] = x[2] + h * ((((x[0]-U1+x[2]*R2)/(R2-R1))*R2-x[2]*R2-x[1]-x[2]*R3)/L1);
y[2] = x[1] + h * (x[2]/C2);
x[0] = x[0] + (1/2.0)*h * ((((x[0]-U1+x[2]*R2)/(R2-R1))/C1)+(((y[0]-
-U1+x[2]*R2)/(R2-R1))/C1));
x[1] = x[1] + (1/2.0)*h * (((((x[0]-U1+x[2]*R2)/(R2-R1))*R2-x[2]*R2-x[1]-
-x[2]*R3)/L1)+((((x[0]-U1+y[2]*R2)/(R2-R1))*R2-y[2]*R2-x[1]-y[2]*R3)/L1));
x[2] = x[2] + (1/2.0)*h * ((x[2]/C2)+(x[2]/C2));
file<<t<<" "<< (((x[0]-U1+x[2]*R2)/(R2-R1))*R2-x[2]*R2-x[1]-x[2]*R3)<<endl;
}
file.close ();
system ("pause");
}
Результат роботи програми:
/
Висновок:
Під час виконання цієї лабораторної роботи, я навчився інтегрувати системи диференціальних рівнянь. Навчився розраховувати перехідні процеси для RLC-ланок.