МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ІКТА
кафедра „КОМП’ЮТЕРИЗОВАНІ СИСТЕМИ, АВТОМАТИКА І УПРАВЛІННЯ”
ЗВІТ
до лабораторної роботи № 6
З КУРСУ “Комп’ютерні методи дослідження систем керування”
на тему: „ Інтегрування систем диференціальних рівнянь. Розрахунок перехідного процесу для RLC-ланок ”
Варіант № 3
Таблиця 1. Завдання до лабораторної роботи
* Схеми RCL-ланок вибираються з таблиці 2
№
п/п
Завдання
Для вказаної RCL-ланки скласти систему диференціальних рівнянь та виконати розрахунок перехідного процесу ланки зазначеним методом. Згідно отриманих даних побудувати графік перехідного процесу вихідної напруги .
Вхідні дані: , В, Гц, Ом, Ом, Ом, Ом, Гн, Гн, Гн, Ф, Ф, Ф, сек, (крок інтегрування).
Група 1
3
Модифікований метод Ейлера
Таблиця 2. Схеми RCL-ланок
№3
Блок-схема розробленої програми:
Список змінних, які використовуються в коді програми, та їх пояснення:
X[3]={0,0,0},X_X[3],h=0.00001,R1=5,R2=4,R3=7,C1=300e-6,C2=150e-6,Umax=100,U1,L1=0.01; – змінні типу double;
Остаточна версія програми:
//---------------------------------------------------------------------- #include <vcl.h>
#pragma hdrstop
#include <fstream.h>
#include <math.h>
#include "Unit1.h"
//----------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//----------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//----------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
double X[3]={0,0,0},X_X[3],h=0.00001,R1=5,R2=4,R3=7,C1=300e-6,C2=150e-6,Umax=100,U1,L1=0.01;
fstream file;
file.open("1.txt",ios_base::out|ios_base::trunc);
bool cond;
for(double t=0;t<=0.2;t+=h)
{
U1=Umax*sin(2*3.14*50*t);
X_X[0]=X[0]+h*((U1-X[0]+X[2]*R2)/(R1+R2))/C1;
X_X[1]=X[1]+h*(X[2])/C2;
X_X[2]=X[2]+h*(U1-X[0]-((U1-X[0]+X[2]*R3)/(R1+R3))*R1-X[1]-
-X[2]*R3)/L1;
X[0]=X[0]+1/2.*h*((U1-X[0]+X[2]*R2)/(R1+R2)+(U1-
-X_X[0]+X[2]*R2)/(R1+R2));
X[1]=X[1]+1/2.*h*(X[2]+X_X[2]);
X[2]=X[2]+1/2.*h*((U1-X[0]-((U1-X[0]+X[2]*R3)/(R1+R3))*R1-X[1]-
-X[2]*R3)+(U1-X_X[0]-((U1-X_X[0]+X[2]*R3)/(R1+R3))*R1-X_X[1]-X[2]*R3));
file<<t<<" "<< U1-X[0]-R1*((U1-X[0]+X[2]*R2)/(R1+R2))-X[1]-
-R3*X[2]<<endl;
}
}
//----------------------------------------------------------------------
Графік перехідного процесу:
Висновок: при виконанні лабораторної роботи я ознайомився з основними методами призначені для розв’язування диференціальних рівнянь першого порядку – явним метод Ейлера, модифікованим метод Ейлера та неявним метод Ейлера.