
- •Курсовая работа
- •1 Разработка справочно-расчетного программного обеспечения 5
- •3. Обозреватель разделов библиотеки Simulink
- •Структура программ delphi
- •1.4 Алгоритм решения задачи
- •1.5 Программная реализация
- •Список использованных источников
- •ПриложениеА. Экранные формы работы справочно-расчётного программного обеспечения
- •Приложение б. Результаты моделирования динамической системы на текстовых примерах
Структура программ 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.