Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа Козлов А.И..docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.83 Mб
Скачать

Структура программ delphi

Программа в DELPHI состоит из файла проекта (файл с расширением .dpr), одного или нескольких файлов исходного текста (с расширением .pas), файлов с описанием окон формы (с расширением .dfm).

В файле проекта находится информация о модулях, составляющих

данный проект. Файл проекта автоматически создается и редактируется средой DELPHI и не предназначен для редактирования.

Файл исходного текста – программный модуль (Unit) предназначен для размещения текстов программ. В этом файле программист размещает текст программы, написанный на языке PASCAL.

В разделе объявлений описываются типы, переменные, заголовки процедур и функции, которые могут быть использованы другими модулями, черезоператоры подключения библиотек (Uses). В разделе реализации располагаются тела процедур и функций, описанных в разделе объявлений, а также типы переменных, процедуры и функции, которые будут функционировать только в пределах данного модуля. Раздел инициализации используется редко и его можно пропустить. Модуль имеет следующую структуру:

unit Unit1;

interface

// Разделобъявлений

implementation

// Раздел реализации

begin

// Раздел инициализации

end.

При компиляции программы DELPHI создает файл с расширением .dcu, содержащий в себе результат перевода в машинные коды содержимого файлов с расширением .pas и .dfm. Компоновщик преобразует файлы с расширением .dcu в единый загружаемый файл с расширением .exe. В файлах, имеющих расширение .~df, .~dp, .~pa, хранятся резервные копии файлов с образом формы, проекта и исходного текста соответственно.

1.4 Алгоритм решения задачи

1.5 Программная реализация

unitUnit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Menus;

type

TForm1 = class(TForm)

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Button1: TButton;

Button2: TButton;

Edit6: TEdit;

Label6: TLabel;

Edit7: TEdit;

Label7: TLabel;

procedure N5Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedureFormCreate(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

np,ne,Pemax,Pe,a,b,c:real;

pp,p1,p2,p3,p4,p5,p6:integer;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.N5Click(Sender: TObject);

begin

if MESSAGEDLG ('хотитевыйти ',MTInformation, [MBYes, MBNo],1)=MRYes then

close;

end;

procedure TForm1.N3Click(Sender: TObject);

begin

showmessage('группа 101071-12 КозловА.И.');

end;

procedure TForm1.N4Click(Sender: TObject);

begin

Form2.Show;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

pp:=0;

val(Edit1.text,a,p1);

if(p1<>0)then

begin

Edit1.Color:=clRed;

showmessage(' проверьте данныеa');

pp:=pp+1;

end

else Edit1.color:=clwhite;

val(Edit2.text,b,p2);

if(p2<>0)then

begin

Edit2.Color:=clRed;

showmessage(' проверьте данныеb');

pp:=pp+1;

end

else Edit2.color:=clwhite;

val(Edit3.text,c,p3);

if(p3<>0)then

begin

Edit3.Color:=clRed;

showmessage(' проверьте данныеc');

pp:=pp+1;

end

else Edit3.color:=clwhite;

val(Edit4.text,np,p4);

if(p4<>0)then

begin

Edit4.Color:=clRed;

showmessage(' проверьте данныеnp');

pp:=pp+1;

end

else Edit4.color:=clwhite;

val(Edit5.text,Pemax,p5);

if(p5<>0)then

begin

Edit5.Color:=clRed;

showmessage(' проверьте данныеPemax');

pp:=pp+1;

end

else Edit5.color:=clwhite;

val(Edit6.text,ne,p6);

if(p1<>0)then

begin

Edit6.Color:=clRed;

showmessage('проверьтеданные ne');

pp:=pp+1;

end

else Edit6.color:=clwhite;

ifpp=0 then

begin

button1.Visible:=false;

button2.Visible:=true;

end;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

button2.Visible:=false;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Pe:=Pemax*(a*(ne/np)+b*(ne/np)*(ne/np)+c*(ne/np)*(ne/np)*(ne/np));

edit7.Text:=floattostrf(Pe,fffixed,8,3);

end;

end.

2.Решение задачи динамического моделирования в системе MATLAB/Simulink

2.1Постановка задачи

Составить модель, описать и осуществить тестовое моделирование динамической системы, описываемой уравнением:

-x’(t)+25x(t)+0.34 (t)= - 30sin(t)

Для составления модели, описания и осуществления тестового моделирования динамической системы необходимо выразить зависимость x от t.

2.2 Разработка модели решения

Для решения этой задачи исходное уравнение необходимо продифференцировать дважды. Для этого приведем уравнение к общему виду и получим:

Рисунок 18 - Модель решения дифференциального уравнения в MATLAB/Simulink

2.3 Описание блоков и параметров модели

Scope – осциллограф – строит графики исследуемых сигналов в функции времени

Integrator – интегрирующий блок – выполняет интегрирование входного сигнала

Fcn – блок задания функции – задает выражение в стиле языка программирования С

Clock – источник временного сигнала – формирует сигнал, величина которого на каждом шаге расчета равна текущему времени моделирования

Sum -блок вычисления суммы – выполняет вычисление суммы текущих значений сигналов

Заключение

Разработана программа расчета системы управления . Промоделированный процесс описан уравнением в разделе 2.1.