- •Аннотация
- •Содержание:
- •Введение
- •1 Объекты системы моделирования сим-си
- •1.1 Общая классификация
- •1.2 Системные константы, типы и переменные
- •Системные типы
- •Скалярные типы данных
- •Множественные типы данных
- •Системные переменные
- •2 Принципы и методы построения моделей
- •2.1 Создание транзактов
- •2.2 Уничтожение транзактов
- •2.3 Продвижение транзактов
- •2.4 Задержка транзактов. Функцияdelayt
- •2.5 Блокировка транзактов
- •2.5.1 Функцияwait
- •2.5.2 Функцииacceptиsend
- •2.6 Изменение порядка осуществления событий. Функцияnехt
- •2.7 Использование приборов
- •2.7.1 Функции ввода транзактов в прибор
- •2.7.1.1 Захват прибора. Функцияinfac
- •2.7.1.2 Занятие прибора. Функцияseize
- •2.7.2 Функцияoutfac. Вывод транзакта из прибора
- •2.8 Регистрация очередей. Функцииinqueue,outqueue
- •2.9 Накопители (многоканальные устройства). Функцииenterиleave
- •2.10 Построение гистограмм. Функцииtabulate,newhist,prnhist
- •2.11. Создание, использование и обработка списков
- •2.11.1 Создание списков
- •2.11.2 Включение объектов в списки
- •2.11.3 Удаление объектов из списков
- •2.11.4 Просмотр элементов списка. Сканирование
- •2.11.5 Списки пользователя. Организация различных дисциплин обслуживания с помощью списков пользователя
- •2.12 Модельная среда
- •2.12.1 Создание модельной среды
- •2.12.2 Уничтожение очередей, приборов, накопителей и гистограмм
- •2.13 Ансамбли
- •2.13.1 Создание ансамблей. Функцияsplit
- •2.13.2 Сбор членов ансамбля. Функцияassemble
- •2.13.3 Изменение приоритета всех членов ансамбля. Функцияpriority
- •2.13.4 Изменение значения параметра всех членов ансамбля. Функцияparmans
- •2.14 Генераторы случайных чисел
- •2.15 Процесс моделирования. Функцияplan
- •2.16 Создание системной среды. Функцияinitlist
- •2.17 Структура модели
- •2.18 Сброс статистики и очистка системной и модельной среды. Функцииresetallиclear
- •3 Вывод результатов моделирования
- •4 Отладочные средства
- •4.1 Диагностика ошибок
- •4.2 Трассировка
- •Приложение 1. Коды и сообщения об ошибках
- •Приложение 2. Сообщения в режиме трассировки
- •Приложение 3. Системные константы и типы данных
- •Приложение 4. Системные переменные
- •Приложение 5 Заголовки системных функций
- •Приложение6. Примеры моделей Пример 1.
- •Пример 2.
- •Пример 3.
- •Диагностика ошибок
- •Системные списки Список current
- •Список прибора Fac f
- •Список future
Пример 3.
#include "simc.h"
voidmain(){
//variables
pqueueq,q1,q2; // объявление модельной среды
pfacilityf;
initlist(50); // создание системной среды
initcreate(1,0); // иниц. генератора сообщений
initcreate(8,0);
newqueue(q, "Queue Q"); // создание модельной среды
newqueue(q1,"Queue Q1");
newqueue(q2,"QueueQ2");
newfac(f, "Fac F");
while(systime<4800) { // огранич. времени моделир.
plan();
switch(sysevent){
case 1: create(randab(12,24,v1)); break;
case 2: inqueue(q); inqueue(q1); trans->prty=2; break;
case 3: seize(f); break;
case 4: outqueue(q); outqueue(q1); break;
case 5: delayt(randab(12,20,v2)); break;
case 6: outfac(f); break;
case 7: destroy(); break;
case 8: create(randab(40,80,v3)); break;
case 9: inqueue(q); inqueue(q2); break;
case 10: seize(f); break;
case 11: outqueue(q); outqueue(q2); break;
case 12: delayt(randab(8,12,v4)); break;
case 13: delayt(randab(12,24,v2)); break;
case 14: outfac(f); break;
case 15: destroy(); break;
}
}
printall();
}
В этом примере имеются события, в которых выполняются два действия (события 2, 4, 9, 11). Такое построение модели уменьшает время моделирования. В одном событии можно объединять функции, которые не устанавливают trans=nil. Допускается также, чтобы последней в событии стояла функция, безусловно устанавливающаяtrans=nil. Например:
case 3: seize(f); break;
case 4: inqueue(q); inqueue(q1); delayt(randab(12,20,v2)); break;
case 5: outfac(f); break;
Диагностика ошибок
Error code # 102
|
Общие параметры среды: | |
|
Текущее время |
3.57e+03 |
|
Текущее событие |
8 |
|
Текущий транзакт |
10 |
|
Всего событий |
1.85e+03 |
|
Время моделирования |
0 сек. |
|
Среднее время выполнения события |
0 сек/событие |
|
СОБЫТИЕ |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
|
ВСЕГО |
199 |
199 |
395 |
197 |
197 |
196 |
196 |
61 |
60 |
75 |
|
СОБЫТИЕ |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
|
ВСЕГО |
15 |
15 |
15 |
15 |
15 |
|
|
|
|
|
|
Очереди | |||||
|
Очередь |
Число входов |
Макс. длина |
Ср. вр. ож. |
Средняя длина |
% вх. в пустую оч. |
|
С 0 вр. ож. |
Текущ.длина |
Без уч. 0 вх. | |||
|
Queue Q |
259 |
47 |
341 |
24.7 |
0.386 |
|
1 |
47 |
342 | |||
|
Queue Q |
199 |
3 |
16.8 |
0.935 |
0.503 |
|
1 |
2 |
16.9 | |||
|
Queue Q |
60 |
45 |
1.38e+03 |
23.1 |
0 |
|
0 |
45 |
1.38e+03 | |||
|
Приборы | |||||
|
Прибор |
Число входов |
Ср. время обработки |
Загрузка |
Число захватов |
Состояние |
|
Fac F |
212 |
16.9 |
1 |
0 |
SEIZED |
Системные списки Список current
|
|
|
NUMB. |
PRTY |
EVE |
NEXTTIME |
ANS |
NANS |
TESTPRTY |
TRANSLIST |
|
10 |
0 |
8 |
3.57e+03 |
10 |
1 |
1 |
CURRENT |
|
Параметры: PI: 0 0 0 PR: 0 0 0 PB: FALSE FALSE PQ: NIL NIL PF: NIL NIL PS: NIL NIL | |||||||
