Автор работы: Пользователь скрыл имя, 04 Января 2012 в 12:56, курсовая работа
В курсовой работе рассматривается система передачи цифровой информации, в которой речевые пакеты передаются через два транзитных канала, буферируясь в накопителях перед каждым каналом. Система представляется в следующем виде: поступление пакета в канал связи, передача пакета по нему, поступление пакета в декодер. Целью данной работы является моделирование работы система передачи цифровой информации в течении 10 секунд, определение числа потерянных пакетов и не допустить уничтожения более 30 % пакетов. В процессе работы разработана структурная схема моделируемой системы.
Из первых двух результатов видно, что при поступлении пакетов со скоростью 6±3мс потери составляют порядка 6,5%, поэтому подключение ресурсов системы не требуется. Для достижения 30% потерь необходимо поступление пакетов со скоростью менее чем 4 мс. При поступлении пакетов через 3 мс видно, что потери достигают 30% и частота подключения ресурсов составляет 133 раз/с (таблица 3).
Результатом данной работы
По
результатам моделирования
Таким
образом, показано, что машинное моделирование
– это эффективное средство решения
задач в системе управления технологическим процессом,
где появление сообщений (сигналов) на
обработку происходит в случайные моменты
времени, т.е. характер их функционирования
носит стохастический характер.
1. Б.Д.Гнеденко, И.Н.Коваленко “Введение в теорию массового обслуживания”- М.:Наука, 1987 год.
2. Б.Я.Советов, С.А.Яковлев “Моделирование систем”, Москва “Высшая школа” 2001год.
3.
Б.Я.Советов, С.А.Яковлев “Моделирование
систем. Лабораторный практикум”, Москва
“Высшая школа”1989 год.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons;
type
TForm1 = class(TForm)
Timer1: TTimer;
Timer2: TTimer;
Timer3: TTimer;
Edit1: TEdit;
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Memo1: TMemo;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
GroupBox1: TGroupBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Label8: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure Timer3Timer(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
SumPac,Pac,TimePac,Buf,
Time,i:integer;
a1:PAnsiChar;
const a: array[0..6] of char = ('3', '4', '5', '6', '7', '8', '9');
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
timer1.Enabled:=true;
SumPac:=0;
SumTimePac:=0;
TimePac:=0;
Buf:=0;
TimeBuf:=0;
TimeTrans:=5;
Poter:=0;
timePoter:=0;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
randomize;
if radiobutton1.Checked=true then
TimePac:=strtoint(a[random(7)]
TimePac:=strtoint(a[0]);
timer1.Interval:=TimePac;
timer2.Interval:=TimePac;
if TimePac<timer3.Interval then
TimeBuf:=TimeBuf+(timer3.
if SumTimePac<=(strtoint(edit1.
timer1.Enabled:=true;
timer2.Enabled:=true;
timer3.Enabled:=true;
label1.Caption:='Число потерянных пакетов='+floattostr(poter)+' шт';
label2.Caption:=Время:'+
label3.Caption:=’Всего
пакетов='+floattostr(SumPac)+'
label6.Caption:=Ресурс
подключен:'+floattostr(
label7.Caption:='Частота
подключения ресурса:'+floattostr(Round(
label8.Caption:='Частота
уничтожения пакетов:'+floattostr(Round(
end else
if SumTimePac>1000 then begin
timer1.Enabled:=false;
timer2.Enabled:=false;
timer3.Enabled:=false;
end;
if Poter>(SumPac*0.3) then begin
timer3.Interval:=4;
timePoter:=timePoter+1;
end else
timer3.Interval:=5;
end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
Buf:=Buf+1;
SumPac:=SumPac+1;
SumTimePac:=SumTimePac+timer2.
memo1.SelText:=inttostr(
end;
procedure TForm1.Timer3Timer(Sender: TObject);
begin
if Buf>0 then
Buf:=Buf-1 else
if Buf>=1 then begin
Buf:=Buf-1; Poter:=Poter+1;
end else
if Buf<=0 then
Buf:=0;
if TimeBuf>=5 then begin
Poter:=Poter+1;
TimeBuf:=0;
end;
end;
end.