Вход

Разработка иммитационной модели фабричной кладовой.

Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код 138067
Дата создания 2009
Страниц 33
Источников 3
Мы сможем обработать ваш заказ (!) 2 мая в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
2 000руб.
КУПИТЬ

Содержание

Содержание
Введение
1 Разработка и описание алгоритма имитационной модели
2 Разработка и отладка исходного текста программы на алгоритмическом языке Object Pascal в среде Delphi 7.
3 Моделирование процесса и разработка инструкции пользователю программы
Заключение
Список использованных источников
Приложение А. Исходный текст программы

Фрагмент работы для ознакомления

Во-вторых, руководитель или руководство предприятия, внедрившие у себя эту методологию, будет иметь информацию, которая позволит самостоятельно совершенствовать свое предприятие и прогнозировать его будущее.
Данная работа помогла изучить построение модели, ее запуск и анализ, используя среду программирования Delphi 7.
Однако, несмотря на полученное различие стоимости, период моделирования, использованный в нашем примере, так мал, что выводы, сделанные на основании полученных результатов, неправдоподобно хороши. Изучая дополнительны возможности, можно проанализировать модель более тщательно.
Список использованных источников
Шеннон Р. Имитационное моделирование систем – искусство и наука: Пер. с анг. М., Наука, 1985, 237с.
Цифровая имитация автоматизированных систем. М., Институт проблем передачи информации АН ССР, 1983, с.139
http://rk6.bmstu.ru/electronic_book/develop/gpss_example.html
Приложение А
Исходный текст программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
Edit3: TEdit;
Label4: TLabel;
Edit4: TEdit;
Label5: TLabel;
Edit5: TEdit;
Label6: TLabel;
Edit6: TEdit;
Label7: TLabel;
Edit7: TEdit;
Button1: TButton;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Edit9: TEdit;
Button2: TButton;
Edit10: TEdit;
Edit11: TEdit;
Label12: TLabel;
Label16: TLabel;
Label8: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Edit8: TEdit;
Edit12: TEdit;
Edit13: TEdit;
Edit14: TEdit;
Animate1: TAnimate;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
f:system.text;
j,k_oll:integer;
Form1: TForm1;
pr2_sr,kol2_sr,kol_sr,pr_sr:array[1..500] of real48;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
edit1.Text:=floattostr(8);
edit2.Text:=inttostr(420);
edit3.Text:=floattostr(300);
edit4.Text:=floattostr(90);
edit5.Text:=inttostr(360);
edit6.Text:=floattostr(100);
edit7.Text:=floattostr(30);
edit9.Text:=inttostr(5);
edit10.Text:=inttostr(360);
edit11.Text:=inttostr(240);
edit8.Text:=inttostr(400);
edit12.Text:=inttostr(250);
edit13.Text:=inttostr(250);
edit14.Text:=inttostr(45);
end;
procedure TForm1.Button1Click(Sender: TObject);
Var
Time_false1,Time_false2,Time,Time_end,Time_ps2,Time_ps3,Time_ps1,Time_pos11,
Time_pos33,Time_pos22,Time_pos1,Time_pos2,Time_pos3,min,max,
pr,kol,pr2,kol2,t1,t2,t3,it1,it2,it3,t11,t22,t33,it11,it22,it33,clch,summa:real48;
p1,p2,n,n1,j,a,kt1,kt2,k_oll:integer;
p1l,p2l:boolean;
Time1,Time2:array[1..500] of real48;
FUNCTION NORM:REAL48;
VAR
I:integer;
s:real;
CHANCE:real48;
BEGIN
S:=0;
FOR I:=1 TO 12 DO
BEGIN
CHANCE:=RANDOM;
S:=S+CHANCE;
END;
NORM:=S-6;
END;
Procedure input;
begin
Time_end:=strtofloat(edit1.Text);
t11:=strtoint(edit2.Text);
t1:=strtofloat(edit3.Text);
it1:=strtofloat(edit4.Text);
t33:=strtoint(edit8.Text);
t3:=strtofloat(edit13.Text);
it3:=strtofloat(edit14.Text);
it33:=strtofloat(edit12.Text);
t22:=strtoint(edit5.Text);
t2:=strtofloat(edit6.Text);
it2:=strtofloat(edit7.Text);
it11:=strtofloat(edit10.Text);
it22:=strtofloat(edit11.Text);
k_oll:=strtoint(edit9.Text);
end;
Procedure output;
begin
if (kol2>kol) thenLabel10.Caption:='Число ожидающих механиков уменьшится для второй дисциплины!'
else Label10.Caption:='Число ожидающих механиков увеличится для второй дисциплины!';
Label11.Caption:='Число обработанных механиков первой дисциплины = '+ floattostr(round(kol))+
' механика(ов)';
Label13.Caption:='Число обработанных механиков второй дисциплины = '+ floattostr(round(kol2))+
' механика(ов)';
if (summa<=0) then Label14.Caption:= 'Сумма экономия при второй дисциплины = '+ floattostr(round(summa/100))+ ' руб.'
else Label14.Caption:='Сумма экономия при второй дисциплины = '+ floattostr(round(summa/100))+
' руб.';end;
Procedure init;
var i:integer;
begin
for i:=1 to 500 do
Time1[i]:=0;
for i:=1 to 500 do
Time2[i]:=0;
Time:=0;Time_pos1:=0;Time_pos3:=0;Time_pos2:=0;Time_pos11:=0;Time_pos33:=0;Time_pos22:=0;
n:=0; n1:=0;Time_false1:=0;
Time_false2:=0;
end;
Procedure comp1;
begin
N1:=N1+1;
Time_pos11:=0;
clch:=trunc(norm*it1+t1);
if clch<t1-it1 then clch:=t1-it1;
if clch>t1+it1 then clch:=t1+it1;
Time_pos11:=clch;
clch:=trunc(norm*it11+t11);
if clch<t11-it11 then clch:=t11-it11;
if clch>t11+it11 then clch:=t11+it11;
Time_ps1:=clch;
Time_pos1:=clch+Time_pos1;
end;
Procedure comp2;
begin
N1:=N1+1;
Time_pos22:=0;
clch:=trunc(norm*it2+t2);
if clch<t2-it2 then clch:=t2-it2;
if clch>t2+it2 then clch:=t2+it2;
Time_pos22:=clch;
clch:=trunc(norm*it22+t22);
if clch<t22-it22 then clch:=t22-it22;
if clch>t22+it22 then clch:=t22+it22;
Time_ps2:=clch;
Time_pos2:=clch+Time_pos2;
end;
Procedure comp3;
begin
N1:=N1+1;
Time_pos33:=0;
clch:=trunc(norm*it3+t3);
if clch<t3-it3 then clch:=t3-it3;
if clch>t3+it3 then clch:=t3+it3;
Time_pos33:=clch;
clch:=trunc(norm*it33+t33);
if clch<t33-it33 then clch:=t33-it33;
if clch>t33+it33 then clch:=t33+it33;
Time_ps3:=clch;
Time_pos3:=clch+Time_pos3;
end;
Begin
animate1.active:=true;
input;
Time_end:=Time_end*60*60;
FOR a:=1 to 500 do begin
init; pr:=0;kol:=0;
RANDOMIZE;
clch:=trunc(norm*it11+t11);
if clch<t11-it11 then clch:=t11-it11;
if clch>t11+it11 then clch:=t11+it11;
Time_pos1:=Time_pos1+clch;
clch:=trunc(norm*it1+t1);
if clch<t1-it1 then clch:=t1-it1;
if clch>t1+it1 then clch:=t1+it1;
Time_pos11:=clch;
clch:=trunc(norm*it2+t2);
if clch<t2-it2 then clch:=t2-it2;
if clch>t2+it2 then clch:=t2+it2;
Time_pos22:=clch;
clch:=trunc(norm*it22+t22);
if clch<t22-it22 then clch:=t22-it22;
if clch>t22+it22 then clch:=t22+it22;
Time_pos2:=Time_pos2+clch;
clch:=trunc(norm*it3+t3);
if clch<t3-it3 then clch:=t3-it3;
if clch>t3+it3 then clch:=t3+it3;
Time_pos33:=clch;
clch:=trunc(norm*it22+t22);
if clch<t33-it33 then clch:=t33-it33;
if clch>t33+it33 then clch:=t33+it33;
Time_pos3:=Time_pos3+clch;
While Time < Time_end do begin
Time:=Time+1;
if (Time_pos11<Time_pos22) then min:=Time_pos11
else min:=Time_pos22;
if (min>Time_pos33) then min:=Time_pos33;
if ((Time>=Time_pos2) and (min=Time_pos22)) then begin
Time:=Time+Time_pos22+Time_ps2; n:=n+1;
if (0>=Time_ps2-Time_ps1-Time_ps3) then pr:=pr-Time_ps2+Time_ps1+Time_ps3;
comp2; end else begin
if (((Time)>=(Time_pos1)) and (min=Time_pos11)) then begin
Time:=Time+Time_pos11+Time_ps1; n:=n+1;
if (0>=Time_ps1-Time_ps2-Time_ps3) then pr:=pr-Time_ps1+Time_ps2+Time_ps3;
comp1; end else begin
if (((Time)>=(Time_pos3)) and (min=Time_pos33)) then begin
Time:=Time+Time_pos33+Time_ps3; n:=n+1;
if (0>=Time_ps3-Time_ps2-Time_ps1) then pr:=pr-Time_ps3+Time_ps2+Time_ps1;
comp3; end; end; end;
end;
pr_sr[a]:=pr;
kol:=n1;
kol_sr[a]:=kol;
end;
pr:=0;
kol:=0;
FOR a:=1 to 500 do begin
pr:=pr+pr_sr[a];
kol:=kol+kol_sr[a];
end;
kol:=kol/a;
pr:=pr/a;
Time_end:=8*60*60;
a:=0;
FOR a:=1 to 500 do begin
init; pr2:=0;kol2:=0;
RANDOMIZE;
clch:=trunc(norm*it11+t11);
if clch<t11-it11 then clch:=t11-it11;
if clch>t11+it11 then clch:=t11+it11;
Time_pos1:=Time_pos1+clch;
clch:=trunc(norm*it1+t1);
if clch<t1-it1 then clch:=t1-it1;
if clch>t1+it1 then clch:=t1+it1;
Time_pos11:=clch;
clch:=trunc(norm*it2+t2);
if clch<t2-it2 then clch:=t2-it2;
if clch>t2+it2 then clch:=t2+it2;
Time_pos22:=clch;
clch:=trunc(norm*it22+t22);
if clch<t22-it22 then clch:=t22-it22;
if clch>t22+it22 then clch:=t22+it22;
Time_pos2:=Time_pos2+clch;
clch:=trunc(norm*it3+t3);
if clch<t3-it3 then clch:=t3-it3;
if clch>t3+it3 then clch:=t3+it3;
Time_pos33:=clch;
clch:=trunc(norm*it22+t22);
if clch<t33-it33 then clch:=t33-it33;
if clch>t33+it33 then clch:=t33+it33;
Time_pos3:=Time_pos3+clch;
Time:=0;
While Time < Time_end do begin
Time:=Time+1;
if (Time_pos11>Time_pos22) then max:=Time_pos11
else max:=Time_pos22;
if (max<Time_pos33) then max:=Time_pos33;
if (((Time)>=(Time_pos2)) and (max=Time_pos22)) then begin
Time:=Time+Time_pos22+Time_ps2; n:=n+1;
if (0>=Time_ps2-Time_ps1-Time_ps3) then pr2:=pr2-Time_ps2+Time_ps1+Time_ps3;
comp2; end else begin
if (((Time)>=(Time_pos1)) and (max=Time_pos11)) then begin
Time:=Time+Time_pos11+Time_ps1; n:=n+1;
if (0>=Time_ps1-Time_ps2-Time_ps3) then pr2:=pr2-Time_ps1+Time_ps2+Time_ps3;
comp1; end else begin
if (((Time)>=(Time_pos3)) and (max=Time_pos33)) then begin
Time:=Time+Time_pos33+Time_ps3; n:=n+1;
if (0>=Time_ps3-Time_ps2-Time_ps1) then pr2:=pr2-Time_ps3+Time_ps2+Time_ps1;
comp3; end; end; end;
end;
pr2_sr[a]:=pr2;
kol2:=n1;
kol2_sr[a]:=kol2;
end; pr2:=0;kol2:=0;
FOR a:=1 to 500 do begin
pr2:=pr2+pr2_sr[a];
kol2:=kol2+kol2_sr[a];
end;
kol2:=kol2/a;
pr2:=pr2/a;
summa:=(pr2-pr)*k_oll;
output;
animate1.active:=false;
end;
procedure TForm1.Button2Click(Sender: TObject);
var dis:integer; summa:real48;
begin
AssignFile(f,'rez.csv');
Rewrite(f);
k_oll:=strtoint(edit9.Text); writeln(f,';1 дисциплина;;2дисциплина;;;');
writeln(f,'N прогона;простой;количество обработанных механиков;простой;количество обработанных механиков;сумма экономия;дисциплина экономия;');
if (pr2_sr[j]>pr_sr[j]) then begin dis:=2; summa:=((-pr_sr[j])+pr2_sr[j])*k_oll; end
else begin dis:=1; summa:=((pr_sr[j])+pr2_sr[j])*k_oll; end;
writeln(f, FloatToStr(j) + ';' +
FloatToStr(round(pr_sr[j])) + ';' +
FloatToStr(round(kol_sr[j])) + ';' +
FloatToStr(round(pr2_sr[j])) + ';'+
FloatToStr(round(kol2_sr[j])) + ';' +
FloatToStr(round(summa))+ ';' +
FloatToStr(dis));
end;
CloseFile(f); ShowMessage('Запись данных произведена успешно')
end; end.
2
3

Список литературы [ всего 3]

Список использованных источников
1.Шеннон Р. Имитационное моделирование систем – искусство и наука: Пер. с анг. М., Наука, 1985, 237с.
2.Цифровая имитация автоматизированных систем. М., Институт проблем передачи информации АН ССР, 1983, с.139
3.http://rk6.bmstu.ru/electronic_book/develop/gpss_example.html

Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00496
© Рефератбанк, 2002 - 2024