Автор: Пользователь скрыл имя, 28 Апреля 2013 в 21:28, курсовая работа
У роботі проведено дослідження алгоритму Явного методу Ейлера для аналізу процесів в RC-колах. Реалізовано введення параметрів кола у головному вікні програми. Алгоритм реалізовано в середовищі Delphi 7 і результатами є побудова графіків напруги та струму від часу.
Зроблено висновки про ефективність алгоритму Явного методу Ейлера.
АНОТАЦІЯ 3
ВСТУП 4
РОЗРОБКА WINDOWS ДОДАТКІВ В СЕРЕДОВИЩІ BORLAND DELPHI. 5
1.1. Проектування візуального інтерфейсу 6
1.2. Компілятор у машинний код 12
1.3. Призначення Delphi 13
2. ПРОЦЕСИ В RC-КОЛАХ 15
2.1. Опис RC-ланки з використанням диференційних рівнянь 18
2.2. Чисельне розвязування рівняння, що описує RC-ланку 19
3. РОЗРОБКА ТА ТЕСТУВАННЯ МОДЕЛІ RC-КОЛА 21
3.1. Алгоритм Явного методу Ейлера та його програмна імплементація 21
3.2. Блок-схема алгоритму Явного методу Ейлера 23
3.3. Розрахунки залежності струму та напруги для різних параметрів кола. 24
ВИСНОВОК 25
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ 26
ДОДАТОК 1. ТЕКСТ ПРОГРАМИ 27
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Spin, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Series,
Menus;
const u0=0;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Button1: TButton;
Panel1: TPanel;
Panel2: TPanel;
Chart1: TChart;
Chart2: TChart;
Label5: TLabel;
opir: TEdit;
emn: TEdit;
ers: TEdit;
krok: TEdit;
kst_iter: TEdit;
Series1: TLineSeries;
Series2: TLineSeries;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
PopupMenu1: TPopupMenu;
N7: TMenuItem;
procedure Button1Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N5Click(Sender: TObject);
private
{ Private declarations }
public
function f(u,t:real):real;
function yme(u,t:real):real;
{ Public declarations }
end;
var
Form1: TForm1;
e,r,c,h,napruha,strum,chas:
n,i:integer;
implementation
{$R *.dfm}
{ TForm1 }
function TForm1.f(u, t: real): real;
begin
f:=(e-u)/(r*c);
end;
function TForm1.yme(u, t: real): real;
begin
u:=u+f(u,t)*h;
yme:=u;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if(opir.Text='')or(emn.Text=''
ShowMessage('Ви ввели не всі дані, введіть будь ласка всі дані')
else begin
r:=StrToFloat(opir.Text);
c:=StrToFloat(emn.Text);
e:=StrToFloat(ers.Text);
h:=StrToFloat(krok.Text);
n:=StrToInt(kst_iter.Text);
Series1.Clear;
Series2.Clear;
napruha:=u0;
strum:=(e-napruha)/r;
chas:=0;
Series1.AddXY(chas,napruha);
Series2.AddXY(chas,strum);
for i:=1 to n do begin
napruha:=yme(napruha,chas);
strum:=(e-napruha)/r;
chas:=chas+h;
Series1.AddXY(chas,napruha);
Series2.AddXY(chas,strum);
end;
end;
end;
procedure TForm1.N3Click(Sender: TObject);
begin
Form1.Close;
end;
procedure TForm1.N6Click(Sender: TObject);
begin
ShowMessage('Програма для дослідження RC кола');
end;
procedure TForm1.N5Click(Sender: TObject);
begin
ShowMessage('Автор програми Ірина Кушнір');
end;
end.