Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовая _ИМ.docx
Скачиваний:
157
Добавлен:
18.03.2015
Размер:
295.21 Кб
Скачать
  1. Краткое руководство пользователя

Запуск программы осуществляется двойным щелчком мыши по файлу Project1.exe. После этого откроется главная форма, содержащая панель для моделирования.(Рис.2)

Кнопка «Пуск» запускает процесс моделирования, согласно варианту задания. Задается масштаб времени (1 мс), запускаем моделирование процесса с помощью 1 кнопки – старта, также можно остановить процесс кнопкой 2- стоп, кнопка 3 задает шаг  (т.е. 1 тик таймера). (Рис.3)

В результате моделирования выводятся данные о потерях, времени их наступления, об ускорении, о частоте подключения ресурса, а также обо всех остальных этапах приведения объекта в рабочее состояние.

Рис.2. Главная форма

1 2 3

Рис.3. Процесс моделирования

  1. Разработка алгоритмической модели

Рис. 4.Алгортим программы

Заключение

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

Таким образом, показано, что машинное моделирование – это эффективное средство решения задач в системе управления технологическим процессом, где появление сообщений (сигналов) на обработку происходит в случайные моменты времени, т.е. характер их функционирования носит стохастический характер.

Литература

  1. Гофман В. Э., Хомоненко А. Д., Г74 Delphi. Быстрый старт. — СПб.: БХВ-Петербург, 2003. — 288 с:

  2. Методические указания по дипломному проектированию http://10.61.2.63/asu/library/gost/diplom/normokontrol__metodicheskie_ukazanija_2011.pdf

  3. Советов Б.Я., Яковлев С.А. Моделирование систем: Учебник для вузов по спец. «Автоматизированные системы управления». – М.: Высш. шк., 2001. – 271 с.

  4. П.Бусленко “Моделирование сложных систем”,- М.:Наука, 1987 год.

Приложение (листинг программы)

unit Unit1;

interface

uses

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

Dialogs, StdCtrls, ExtCtrls, ComCtrls;

type

TForm1 = class(TForm)

Timer1: TTimer;

Label1: TLabel;

Label2: TLabel;

GroupBox1: TGroupBox;

Label3: TLabel;

Label4: TLabel;

ProgressBar1: TProgressBar;

Label5: TLabel;

GroupBox2: TGroupBox;

Button1: TButton;

Button2: TButton;

Button3: TButton;

ProgressBar2: TProgressBar;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

Label13: TLabel;

Label14: TLabel;

Edit1: TEdit;

UpDown1: TUpDown;

Label15: TLabel;

Label16: TLabel;

Label17: TLabel;

procedure Timer1Timer(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Edit1Change(Sender: TObject);

procedure UpDown1Click(Sender: TObject; Button: TUDBtnType);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

t,s,ms:integer;

appear:byte;

v,pos1,pos2,time:byte;

losses,res:real;

usingres:longint;

n,n1:longint;

acceleration,go1,go2:boolean;

mss:string;

implementation

{$R *.dfm}

Procedure Display;

begin

s:=t div 1000;

ms:=t mod 1000;

if ms<10

then mss:='00'+inttostr(ms)

else if ms<100

then mss:='0'+inttostr(ms)

else mss:=inttostr(ms);

Form1.Label2.Caption:=inttostr(s)+'.'+mss;

Form1.Label4.Caption:=inttostr(appear);

Form1.ProgressBar1.Position:=pos1*(100 div v);

Form1.ProgressBar2.Position:=pos2*(100 div v);

Form1.Label11.Caption:=inttostr(n);

Form1.Label12.Caption:=inttostr(n1);

Form1.Label13.Caption:=inttostr(round(losses))+' %';

if acceleration

then Form1.Label14.Caption:='ВКЛ'

else Form1.Label14.Caption:='ВЫКЛ';

Form1.Label17.Caption:=inttostr(round(res))+' %';

end;

procedure takt;

begin

t:=t+1;

if appear>1

then appear:=appear-1

else begin

appear:=random(7)+3;

time:=appear+v;

inc(n);

if time<=10

then inc(n1);

losses:=100*(n-n1)/n;

if not go1

then go1:=true

else go2:=true;

end;

if go1

then if pos1<v

then inc(pos1)

else begin

pos1:=0;

go1:=false;

end;

if go2

then if pos2<v

then inc(pos2)

else begin

pos2:=0;

go2:=false;

end;

if (losses>30) and (not acceleration)

then begin

acceleration:=true;

v:=4;

end;

if (losses<=30) and acceleration

then begin

acceleration:=false;

v:=5;

end;

if acceleration

then inc(usingres);

res:=100*usingres/t;

Display;

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

takt;

if t=10000

then Timer1.Enabled:=false; end;

procedure TForm1.FormCreate(Sender: TObject);

begin

t:=0;

v:=5;

losses:=0;

n:=0;

n1:=0;

pos1:=0;

pos2:=0;

usingres:=0;

res:=0;

Randomize;

appear:=random(7)+3;

acceleration:=false;

go1:=false;

go2:=false;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

Timer1.Enabled:=true;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Timer1.Enabled:=false;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

takt;

end;

procedure TForm1.Edit1Change(Sender: TObject);

begin

Timer1.Interval:=UpDown1.Position;

end;

procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType);

begin

Timer1.Interval:=UpDown1.Position;

end;

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]