- •«Моделирование работы системы передачи цифровой информации»
- •2013 Содержание
- •Аннотация
- •Введение
- •Постановка задачи
- •Методы решения поставленной задачи Принцип ∆t
- •Принцип особых состояний
- •Принцип последовательной проводки заявок
- •Решение задачи Структурная схема
- •Особые состояния, в которых может находиться система
- •Обобщённая схема моделирующего алгоритма
- •Среда разработки
- •Краткое руководство пользователя
- •1 2 3
- •Разработка алгоритмической модели
- •Заключение
- •Литература
- •Приложение (листинг программы)
Краткое руководство пользователя
Запуск программы осуществляется двойным щелчком мыши по файлу Project1.exe. После этого откроется главная форма, содержащая панель для моделирования.(Рис.2)
Кнопка «Пуск» запускает процесс моделирования, согласно варианту задания. Задается масштаб времени (1 мс), запускаем моделирование процесса с помощью 1 кнопки – старта, также можно остановить процесс кнопкой 2- стоп, кнопка 3 задает шаг (т.е. 1 тик таймера). (Рис.3)
В результате моделирования выводятся данные о потерях, времени их наступления, об ускорении, о частоте подключения ресурса, а также обо всех остальных этапах приведения объекта в рабочее состояние.
Рис.2. Главная форма
1 2 3
Рис.3. Процесс моделирования
Разработка алгоритмической модели
Рис. 4.Алгортим программы
Заключение
Результатом данной работы стало построение программы, моделирующего процесс функционирования заданной системы. Также были построены схемы моделирующего алгоритма и рассчитаны следующие показатели эффективности данной системы: количество поступивших пакетов, количество потерянных пакетов, частота подключения ресурса, частота уничтожения пакетов, вероятность уничтожения пакетов.
Таким образом, показано, что машинное моделирование – это эффективное средство решения задач в системе управления технологическим процессом, где появление сообщений (сигналов) на обработку происходит в случайные моменты времени, т.е. характер их функционирования носит стохастический характер.
Литература
Гофман В. Э., Хомоненко А. Д., Г74 Delphi. Быстрый старт. — СПб.: БХВ-Петербург, 2003. — 288 с:
Методические указания по дипломному проектированию http://10.61.2.63/asu/library/gost/diplom/normokontrol__metodicheskie_ukazanija_2011.pdf
Советов Б.Я., Яковлев С.А. Моделирование систем: Учебник для вузов по спец. «Автоматизированные системы управления». – М.: Высш. шк., 2001. – 271 с.
П.Бусленко “Моделирование сложных систем”,- М.:Наука, 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.