Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МОДЕЛИРОВАНИЕ ПРОЦЕССОВ И СИСТЕМ / Мет.ук.лаб.раб.МПиС.00г..doc
Скачиваний:
60
Добавлен:
21.03.2016
Размер:
130.56 Кб
Скачать

Содержание отчета

1. Краткое описание алгоритма имитации.

2. Результаты выполнения задания.

Контрольные вопросы

  1. Какие составные части включает структура модели?

  2. Что содержит общая часть программы?

  3. Для чего служит процессор дискретного моделирования?

  4. Что представляет собой модуль инициализации?

  5. Для чего необходима подпрограмма обработки события?

  6. При каких условиях заканчивается имитационный прогон?

  7. Для чего служит подпрограмма otput?

  8. При каких условиях имитация заканчивается?

Лабораторная работа №3

НЕПРЕРЫВНОЕ МОДЕЛИРОВАНИЕ

Цель работы: Ознакомление со структурой и функционированием непрерывной имитационной модели.

ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

При непрерывном моделировании время меняется непрерывно с шагом, определяемым скоростью процессов в исследуемом объекте. Состояние модели определяется путем решения уравнений, связывающих параметры объекта с временем. При достижении любого параметра (параметров) некоторого порога наступает событие (структурное событие), изменяющее состояние модели или ее поведение.

Структура модели может вклюяать следующие составные части.

Главный модуль. Накладывает общие требования к модели и вызывает процессор непрерывного моделирования.

Процессор непрерывного моделированитя – управляющий модуль. Координирует работу остальных частей модели.

Модуль инициализации. Задает значения параметров моделируемого объекта.

Модуль решения уравнений. Определяет состояние модели путем вычисления ее переменных.

Подпрограмма флагов. Определяет моменты наступления и коды структурных событий при достижении параметрами модели заданных порогов.

Другие модули предназначены для поиска подпрограмм обработки событий, сбора статистической информации, вывода данных и т.д.

Рассмотрим непрерывную модель на примере модели зрительного зала, часть которого отведена под стулья.. Поступление зрителей – равномерное с интервалом dtnow. Сначала занимаются стулья, затем стоячие места. Когда зал заполнится, начинается сеанс.

program nm;

USES crt;

var

ezp1,ezp2,zp:real;

k,k1,k2,k3,tnow,ttlas,nrns,nnrns,tsob1,

dtnow,tmax:integer;

const

ttbeg=0;

ttfin=300;

pz=16;

procedure intlc;

begin

writeln('Инициализация переменных');

ttlas:=ttbeg; tnow:=ttlas; writeln('tnow:=',tnow);

ezp1:=_;

k:=0;writeln('k:=',k);

ezp2:=_;

k1:=0;writeln('k1:=',k1);

zp:=0;writeln('zp:=',zp);

k3:=_;writeln('k3:=',k3);

dtnow:=1;{Интервал поступления зрителей}

k2:=0;writeln('k2:=',k2);

tmax:=ttfin;

end;

procedure state;

label 1,2;

begin

writeln('Определение переменных состояния');

if k>=k3 then goto 1;

k2:=0;writeln('k2:=',k2);

k1:=k1+1;writeln('k1:=',k1);

goto 2;

1: k1:=k3;writeln('k1:=',k1);

k2:=k2+1;writeln('k2:=',k2);

2: zp:=k1*ezp1+k2*ezp2;writeln('zp:=',zp);

k:=k2+k1;writeln('k:=',k);

writeln('Вызов подпрограммы флагов');

end;

procedure sob1;

begin

writeln('Происходит первое событие');

tsob1:=tnow;

writeln('tsob1:=',tsob1,' k1:=',k3);

end;

procedure sob2;

begin

writeln('Происходит второе событие');

writeln('Зал заполнен');

tmax:=tnow;

end;

procedure event(j:integer);

begin

writeln('Обработка событий');

case j of

1:begin

sob1;

end;

2:begin

sob2;

end;

end;

end;

procedure outputn;

begin

writeln('Печать результатов по прогону');

writeln('tmax:=',tmax);

writeln('Прогон завершен');

end;

procedure output;

begin

writeln('Печать результатов по всем прогонам');

end;

procedure sevnt;

begin

if zp>=pz

then event(2);

if k=k3 then event(1);

end;

procedure slam;

label 1,2,3;

begin

writeln('Работает процессор непрерывного моделирования');

3: intlc;

1: state;

sevnt;

if (tnow>=tmax)or(tnow>=ttfin) then goto 2;

writeln('Изменение времени');

tnow:=tnow+dtnow;writeln('tnow:=',tnow);

goto 1;

2: nrns:=nrns+1;

writeln('Вызов подпрограммы печати результатов прогона');

outputn;

if nrns<nnrns then goto 3;

output;

end;

begin

clrscr;

nnrns:=1;

nrns:=0;

slam;

writeln('Имитация закончена');

end.

В программе используются следующие величины:

k1– число занятых стульев;

k2– число стоящих зрителей;

k3– число стульев;

k – общее количество зрителей;

ezp1– площадь под стулом;

ezp2– площадь стоячего места;

zp– занятая площадь зала;

pz– общая площадь зала;

tmax– время заполнения зала;

dtnow– шаг изменения времени.

ПОРЯДОК ПРОВЕДЕНИЯ РАБОТЫ

1. Ознакомиться с теоретической частью лабораторной работы.

2. Набрать программу с данными выбранного варианта, приведенными в таблице:

Вариант 1 2 3 4 5 6 7 8 9 10 11 12

ezp1 1. 0 1.1 1.2 1.3 1.4 1.5 1.4 1.3 1.2 1.1 1.0 1.2

ezp22.0 2.1 2.2 2.3 2.4 2.4 2.3 2.2 2.1 2.0 2.1 2.1

k3 3 4 5 6 7 6 5 4 3 4 5 6

3. Отладить программу.

4. Вывести результаты в пошаговом режиме.

5. Оформить отчет.