Главная

Категории:

ДомЗдоровьеЗоологияИнформатикаИскусствоИскусствоКомпьютерыКулинарияМаркетингМатематикаМедицинаМенеджментОбразованиеПедагогикаПитомцыПрограммированиеПроизводствоПромышленностьПсихологияРазноеРелигияСоциологияСпортСтатистикаТранспортФизикаФилософияФинансыХимияХоббиЭкологияЭкономикаЭлектроника






ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ В СИСТЕМЕ ИМИТАК


Ю.Н.Алексеев

кандидат технических наук, доцент

 

ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ В СИСТЕМЕ ИМИТАК

(VISUAL IMITAK)

 

Учебное пособие

 

для студентов специальности

«Математические методы в экономике» – 061800

 

Москва – 2007

Учебное пособие «Имитационное моделирование в системе ИМИТАК (Visual Imitak)» по дисциплине « Системный анализ и моделирование социально-экологических процессов» / Сост., Ю. Н.Алексеев; ГУУ.-М., 2007.-70с.

 

Составитель:

 

кандидат технических наук, доцент

Ю.Н. Алексеев

 

Ответственный редактор:

 

заведующий кафедрой экономической кибернетики,

доктор экономических наук, профессор

В.И. Дудорин

 

Обсуждены и одобрены

 

На заседании кафедры экономической кибернетики

Ноября 2007 г., протокол № 7

 

 

ã Ю.Н. Алексеев, 2007

ã Государственный университет управления, 2007

 

ОГЛАВЛЕНИЕ

Введение. . . . . . . . . . . . 4

§1. Концепция системной динамики, реализованная в системе ИМИТАК. 4

§2. Механизмы визуального мышления в системе ИМИТАК. . . 8

§3. Встроенные функции системы ИМИТАК. . . . . . 17

3.1. Элементарные функции. . . . . . . . 18
3.2. Переключательные функции. . . . . . . 26

3.3. Стохастические функции. . . . . . . . 34

3.4. Встроенные функции работы с массивами. . . . . 38

3.5. Временные функции. . . . . . . . . 43

3.6. Функции имитации систем массового обслуживания. . . 44

3.7. Графические (маргинальные) функции. . 50

3.7.1 Паутинообразная модель рынка с запаздыванием спроса. . 52.

3.7.2 Паутинообразная модель рынка с запаздыванием предложения. 55

3.7.3 Паутинообразные модели с обучением. 57

§4. Базы данных и система ИМИТАК. . . . . . . 60

4.1. Создание базы данных и ее заполнение. . . . . . 60

4.2. Создание в операционной системе имени источника данных

ODBC (DSN- data source name). . . . . . . . 64

4.3. Создание модели, интегрированной с базой данных. . . . 65

Заключение. . . . . . . . . . . 68

Литература. . . . . . . . . . . 68

 

Введение

В настоящее время имеется большое количество программных реализаций системной динамики. В данной работе рассматривается одна из таких реализация – ИМИТАК. Система ИМИТАК (Имитационно-Анализирующий Комплекс) разработана в Государственном университете управления (ГУУ) на кафедре экономической кибернетики . Концепция системы ИМИТАК создана группой выпускников кафедры (Розенвассером А. В. ,Ермаковым Д. В. ,Максимовым К.М., Клоповым Д.А.) под руководством доцента Алексеева Ю.Н.. Программная реализация (VisualImitak) , которая легла в основу данного методического указания, построена кандидатом экономических наук Максимовым К.М. Она предназначена для обучения студентов основам построения имитационных моделей различных процессов, но для промышленного использования она уступает таким программным средствам как I thing , Powersim, Vinsim , Any Logic.Имитационная модель является одной из разновидностей компьютерной программы, но имеются некоторые особенности построения модели-программы на языке системы ИМИТАК. Так первой особенностью системы ИМИТАК является то, что в модели-программе отсутствует конкретное определение циклического процесса. И хотя все процессы цикличны, параметры цикличности задаются по «умолчанию». В системе ИМИТАК предполагается, что все циклические процессы есть, по сути, временными процессами и требуют только задания временного диапазона изменения времени (например, день, час, минута, сутки, год и т.д.). Вторая особенность – это наличие в модели так называемых контуров обратной связи. Эта особенность привела к тому, что простое описание специальных функций требует рассмотрения нескольких шагов моделирования. Третьей особенностью является то, что в составе команд имеется специальная команда считывания информации из базы данных , в которых используется язык SQL. Четвертой особенностью является задание почти всей смысловой информации на русском языке ( кроме так называемых встроенных функций).

Механизмы визуального мышления в системе ИМИТАК

Пример построения диаграммы потоков с использованием механизмов визуального мышления рассмотрим на модели имитации охлаждения чашечки кофе в комнате. Словесное описание процесса состоит в следующем:

Пример 1: Чашечка кофе соответственно содержит определенное количество калорий. При известной теплоемкости, можно определить температуру чашечки кофе. Полученная температура чашечки кофе сравнивается с комнатной температурой Разность температур, умноженная на величину теплоотдачи, позволяет определить, какое число калорий будет переходить в каждый момент времени от чашечки кофе в комнату. На эту величину будет уменьшаться количество калорий каждый период до окончательного выравнивания температур комнаты и чашечки кофе. Такому словесному описанию будет соответствовать диаграмма причинно-следственных связей, представленная на рисунке (Рис. 4)

 

Количество калорий
Температура чашечки кофе
Уменьшение калорий в чашечке кофе
Разность температур комнаты и чашечки кофе

Рис. 4. Диаграмма причинно-следственных связей модели «Чашечка кофе».

При использовании механизмов визуального мышления построение диаграммы причинно-следственных связей может быть опущено. В результате диаграмма потоков будет получена сразу на рабочем поле монитора.

В качестве уровня берем количество калорий в чашечке кофе. Чтобы изобразить уровень на рабочем поле монитора нужно:

1) Щелкнуть левой кнопкой мыши по пиктограмме (уровень) в панели инструментов (Рис. 5)

Рис. 5. Рабочая линейка инструментов

 

2) Передвинуть указатель мыши на рабочее поле монитора (поле монитора равноценно главному окну программы) (Рис. 6)

Рис. 6. Главное окно программы VisualImitak

В системе ИМИТАК использована концепция «системной динамики», разработанная в течение тридцатилетней эксплуатации в учебном процессе Государственного Университета Управления системы ИМИТАК (Сначала на Раздан-3, затем на Минск-32, затем на ЕС-1045 и, наконец, на персональных компьютерах).

4) В результате на рабочем поле монитора получим диалоговое окно редактирования уравнений. Такое окно имеет типовой вид (Рис. 7): четыре окошка редактирования

1. окошко «Имя переменной»

2. окошко «Формула для расчета»

3. окошко «Начальное значение»

4. окошко «Комментарий (необязательный)»

В главном окне программы присутствуют также окошки для быстрого ввода чисел, окошки для встроенных функций, и окошки установленных связей между переменными:

5. окошко «Число»

6. окошко «Операции»

7. окошко «Функции»

8. окошко «Переменные»

Рис. 7. Диалоговое окно редактирования уравнения в системе ИМИТАК.

5) Далее частично заполняется диалоговое окно редактирования уравнения (имя переменной, комментарий),

6) После этого необходимо щелкнуть левой кнопкой мыши на клавишу ОК в окне редактирования уравнения,

7) В результате на рабочем поле монитора будет следующая картинка (Рис. 8), где переменная будет иметь имя КК (количество калорий)

Рис. 8. Первый фрагмент построения диаграммы потоков модели «Чашечка кофе»

Чтобы определить следующую переменную – «температуру чашечки кофе», проделаем следующую процедуру:

А) щелкнув левой клавишей мыши по идеограмме (дополнительное выражение), переведем указатель мыши на рабочее поле монитора, приведенного на Рис. 8.

Б) когда указатель мыши окажется в нужном месте, надо снова щелкнуть левой кнопкой мыши, в результате чего на рабочем поле монитора появится идеограмма дополнительной переменной ТЧК (температура чашечки кофе)

В) В данном фрагменте надо еще ввести константу «теплоемкость». Для этого щелкнув левой кнопкой мыши по идеограмме (константа), переведем ее на рабочее поле монитора. Когда указатель мыши будет на нужном месте еще раз, щелкнем указателем мыши и получим константу ТЕ (теплоемкость).

Г) И, наконец, в этот фрагмент надо ввести две связи, для чего берем идеограмму (установка связи) из набора инструментов (Рис. 5) и из центра переменной, откуда идет связь «тащим» стрелку до переменной, куда идет связь. Например, от переменной КК к переменной ТЧК, а также от константы ТЕ к переменной ТЧК.

Е) В результате мы будем иметь второй фрагмент диаграммы потоков (Рис. 9)

 

Рис. 9. Второй фрагмент построения диаграммы потоков модели «Чашечка кофе»

 

Аналогично предыдущему действию определяем следующую переменную- «разность температур комнаты и чашечки кофе» для чего проделаем следующую процедуру:

1) Щелкнув левой клавишей мыши по идеограмме (дополнительное выражение), переведем указатель мыши на рабочее поле монитора, приведенного на Рис. 9.

2) Когда указатель мыши окажется в нужном месте, снова щелкнуть левой кнопкой мыши, в результате на рабочем поле монитора появится идеограмма дополнительной переменной РТ (разность температур)

3) В данном фрагменте надо еще ввести константу «температуру комнаты». Переведем ее на рабочее поле монитора. Когда указатель мыши будет на нужном месте еще раз, щелкнем указателем мыши и получим константу ТК (температура комнаты)

4) И, наконец, в этот фрагмент надо ввести две связи, для чего берем идеограмму (установка связи) из набора инструментов (Рис. 5) и из центра переменной, откуда идет связь, «тащим» стрелку до переменной, куда идет связь. Например, от переменной ТЧК к переменной РТ, а также от константы ТК к переменной РТ.

5) В результате мы имеем третий фрагмент диаграммы потоков (Рис. 10)

Рис. 10. Третий фрагмент построения диаграммы потоков модели «Чашечка кофе»

 

Последний фрагмент диаграммы потоков указанной имитационной модели может быть сформирован следующим образом:

1) Щелкнув левой клавишей мыши по идеограмме (темпа), переведем указатель мыши на рабочее поле монитора, приведенного на Рис. 10.

2) Когда указатель мыши окажется в нужном месте, снова щелкнуть левой кнопкой мыши, в результате на рабочем поле монитора появится идеограмма темпа УКЧК (уменьшение калорий в чашечке кофе).

3) В данном фрагменте надо еще ввести константу «теплоотдача». Для этого щелкнув левой кнопкой мыши по идеограмме (константа), переведем ее на рабочее поле монитора. Когда указатель мыши будет на нужном месте еще раз, щелкнем указателем мыши и получим константу ТО (теплоотдача).

4) И, наконец, в этот фрагмент надо ввести две связи, для чего берем идеограмму (установка связи) из набора инструментов (Рис. 5) и из центра переменной, откуда идет связь, «тащим» стрелку до переменной куда идет связь. Например, от переменной РТ к переменной УКЧК, а также от константы ТО к переменной УКЧК.

В результате окончательный вид диаграммы потоков имитационной модели «охлаждения чашечки кофе в комнате» будет иметь вид, представленный на Рис. 11.

 

Рис. 11. Окончательная диаграмма потоков модели «Чашечка кофе»

 

После построения диаграммы потоков целесообразно перейти к построению модели-программы. Для этого воспользуемся инструментальной панелью Рис. 12.

 

Рис. 12. Инструментальная панельсистемыVisualImitak

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

Если мы возьмем рабочее поле, представленное на Рис. 11 и два раза щелкнем левой частью мышки на переменную КК, то появится окно, подобное Рис. 7. Далее левой клавишей мышки, выбирая последовательно:

­ из окошка «Переменные» имя уровня КК,

­ из окошка «Операции» расширение .П

­ из окошка «Операции» знак –

­ из окошка «Переменные» имя темпа УКЧК

­ из окошечка «Операции» расширение .ПН

мы получаем в окошке «Формула расчета» уравнение уровня КК (Количество калорий) в терминах ИМИТАК «Количество калорий» мы вводим в окошечко «Комментарий», а в окошечко «Начальное значение» числовое значение уровня, с которого начинается собственно моделирование. В результате мы будем иметь следующую картину, представленную на Рис. 13.

Рис. 13. Диалоговое окно редактирования переменной КК (количество калорий).

Следующее уравнение будет организовано аналогично предыдущему Рис. 14

 

Рис. 14. Диалоговое окно переменной ТЧК (температура чашечки кофе)

 

Таким же способом можно получить диалоговые окна редактирования дополнительной переменной РТ (Рис. 15) и темпа УКЧК (Рис. 16)

Рис. 15. Диалоговое окно редактирования уравнения РТ(разность температур)

Рис. 16. Диалоговое окно редактирования УКЧК(уменьшение калорий в чашечке кофе)

В результате в диаграмме потоков (Рис. 11) все операторы из красных превращаются в черные, что означает, что все уравнения модели-программы определены.

Теперь можно запускать саму модель идеограммой . После этого возможна диагностика ошибок (Рис. 17)

 

Рис. 17. Окно диагностики ошибок

Для оперативной отладки модели первоначально надо попробовать щелкнуть идеограммой . Если после этого ошибка не исправится, то необходимо щелкнуть идеограммой , и мы получим (Рис. 18)

 

Рис. 18. Диалоговое окно перемещения операторов

Чтобы получить работоспособную модель-программу необходимо:

1) Щелкнуть левой клавишей мыши по второму оператору (Рис. 18) (это связано с тем, что в правой части используется переменная ТЧК, которая рассчитывается в третьем операторе).

2) С помощью клавиши «ВНИЗ» опускаем оператор, рассчитывающий переменную ТЧК на строку ниже

3) С помощью клавиши «ОК» мы фиксируем перемещение оператора и получаем работающую модель-программу

 

Рис. 19. Окно с отлаженной моделью-программой

Чтобы запустить модель-программу на инструментальной панели (Рис. 12) «нажимаем» с помощью мыши кнопку . В результате на мониторе мы получаем следующую картину:

Рис. 20. Окно результатов моделирования

Теперь, если с помощью мышки мы отметим в левом столбце интересующие нас переменные, то при нажатой кнопке «График» мы будем иметь следующий вид (Рис. 21).

 

Рис. 21. Окно графических результатов модели «Чашечка кофе»

А если выбрать кнопку «Таблица» то мы будем иметь:

 

Таблица 3. Числовые результаты моделирования «Чашечки кофе»

РТ КК ТЧ УКЧК
0 -20 0 -300
150 -5 15 -75
225 2.5 22.5 37.5
187.5 -1.25 18.75 -18.75
206.25 0.625 20.625 9.375
196.875 -0.3125 19.6875 -4.6875
201.563 0.15625 20.1563 2.34375
199.219 -0.078125 19.9219 -1.17188
200.391 0.0390625 20.0391 0.585938
199.805 -0.0195313 19.9805 -0.292969
200.098 0.00976563 20.0098 0.146484
199.951 -0.0048828 19.9951 -0.0732422

 

Рассмотренный выше пример соответствует простейшим вариантам построения имитационных моделей, в которых в правой части оператора встречаются только арифметические выражения.

 

Элементарные функции


В этот класс собраны разнородные, логически несвязанные встроенные функции

Ф. н =SIN(А. н)- Синус

Ф. н = СОS(А. н)- Косинус

Ф. н =LOG(А. н)- Логарифм натуральный

Ф. н =EXP(А. н)- Экспонента

Ф. н =SIGN(А. н)- Анализ знака аргумента

Ф. н =RANGE(А. н, В. н)-Возведение в степень

Ф. н = MAX(А1. н,А2.н…)-Максимальное значение

Ф. н = MIN(А1. н,А2.н…)-Минимальное значение

Ф .н = WHOLE(А.н,К)-Округление

 

Рассмотрение работы отдельных функций мы будем вести на базе простейшей модели склада. При этом используем методику, которую определим как иерархия построения моделей. Иерархия построения моделей – это последовательное усложнение модели на основе ранее разработанных, более простых фрагментов этой модели. В качестве базового фрагмента мы будем использовать следующую модель склада.

Пример 2.На складе (С) первоначально имеется определенный запас продукта (товара; в нашем случае 1000 единиц). Каждый шаг моделирования на него поступает (ПОС) определенная партия товара (П) (в нашем случае 200 ед.) и со склада выбирается (ВЫБ) партия товара (В) (в нашем случае 300 ед.).Построить имитационную модель склада, работающего 20 шагов моделирования.

Начинаем строить имитационную модель, как показано в §2 Главы 1, с диаграммы потоков (Рис. 22):

ис. 22. Диаграмма потоков модели склада

 

По данной диаграмме потоков нетрудно создать модель-программу и , если пропустить модель на компьютере, снабженном транслятором с системой VisualImitak, то мы получим следующие цифровые результаты для трех шагов моделирования:

Таблица 4. Модель-программа склада и результаты первых трех шагов моделирования.

МОДЕЛЬ-ПРОГРАММА ВРЕМЯ=1 ВРЕМЯ=2 ВРЕМЯ=3
; Склад      
У С.Н=С.П+ПОС.ПН-ВЫБ.ПН С.1=1000 С.2=900 С.3=800
; Поступление      
Т ПОС.НБ=П ПОС.12=200 ПОС.23=200 ПОС.34=200
; Выборка      
Т ВЫБ.НБ=В ВЫБ.12=300 ВЫБ.23=300 ВЫБ.34=300
НАЧАЛЬНОЕ ЗНАЧЕНИЕ УРОВНЯ      
И С=1000      
; Поставка      
К П=200      
; Выдача      
К В=300      

 

По умолчанию числовые значения цикла рассчитываются при условии:

И ВРЕМЯ=0 (начальное значение цикла)

И DT=1 (шаг изменения времени внутри цикла)

И ДЛИНА=20 (продолжительность цикла).

Выше мы рассматривали цифровые результаты только для трех шагов, а теперь графические результаты будем анализировать для 20 шагов, как это было объявлено в условии задачи:

 

Рис. 23. Графический результат моделирования склада

На одиннадцатом шаге моделирования запасы на складе становятся отрицательными, что говорит о том, что в таком виде модель не может быть практически использована.

Это подтверждают и числовые результаты моделирования тех же переменных: приведенные в таблице 5.

Таблица 5. Числовые результаты моделирования склада

ВЫБ ПОС С
-100
-200
-300
-400
-500

Разбор элементарных встроенных функций начнем с простейшей адаптации модели склада встроенными функциями синуса и косинуса. Многие из элементарных встроенных функций будем рассматривать попарно. Это не несет никакой смысловой нагрузки, а связано с двумя вспомогательными особенностями:

-они по жизни часто рассматриваются парами (например, SIN и COS, MIN и MAX)

-функции удобно рассматривать при построении модели склада, у которой есть входной темп – поступление и выходной – выборка. Это позволяет рассматривать, если это возможно сразу две функции.

Встроенная функция SIN

Встроенная функция COS

Для данных функций рассмотрим единый пример.

Пример 3. Первой адаптацией модели склада рассмотрим вариант, когда поставка (ПОС) будет функция синус, выборка (ВЫБ) – функция косинус Аргументами для обеих функций будет переменная ВРЕМЯ. Начальное значение склада (С) равным двум.

Диаграмма потоков представлена на Рис. 24.

 

Рис. 24. Диаграмма потоков имитационной модели склада адаптированной тригонометрическими функциями

 

Программная реализация указанной модели-программы приведена в VisualImitak.

 

Таблица 6. Модель-программа склада с тригонометрическими функциями

  ВРЕМЯ=1 ВРЕМЯ=2 ВРЕМЯ =3
; Склад      
У С.Н=С.П+ПОС.ПН-ВЫБ.ПН С.1=2 С.2=1.698 С.3=0.373
; Поступление      
Т ПОС.НБ=COS(ВРЕМЯ) ПОС.12=0.54 ПОС.23=-0.41 ПОС.34=-0.989
; Выборка      
Т ВЫБ.НБ=SIN(ВРЕМЯ) ВЫБ.12=0.84 ВЫБ.23=0.909 ВЫБ.12=0.141
Е      
; НАЧАЛЬНОЕ ЗНАЧЕНИЕ УРОВНЯ      
И С=2      

 

После пропуска имитационной модели на компьютере мы имеем график изменения переменных С, ПОС и ВЫБ на Рис. 25 . Результаты моделирования представленные в числовой форме заданы в Таблице 7

 

Рис. 25. Графики имитациионой модели склада адаптированного тригонометрическими функциями

Таблица 7. Результаты моделирования склада адаптированного тригонометрическими функциями

ВЫБ ПОС С
0.841471 0.540302
0.909297 -0.416147 1.69883
0.14112 -0.989992 0.373387
-0.756802 -0.653644 -0.757725
-0.958924 0.283662 -0.654567
-0.279415 0.96017 0.58802
0.656987 0.753902 1.82761

 

Анализ графических результатов показывает, что если аргументы тригонометрических функций задавать не непрерывно, а в радианах, то мы получим кусочно-линейные аппроксимации функций SIN и COS.

Рассмотрим так же спарено функции MIN и MAX,

 

Функция минимума (MIN)

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

Общий вид функции: MIN (A1,A2,...)

Функция определена при любых значениях аргументов. Максимальное количество аргументов 15.

 

Функция максимума (MAX)

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

Общий вид функции: MAX (A1,A2,...)

 

Если для функций максимума и минимума количество аргументов больше 15, то можно использовать вложенность аргументов. Например, имеется следующий оператор:

Ф. н = MAX( А1.н, А2.н,…А15.н, А16.н).

где надо максимум выбрать из 17 аргументов

В этом случае задача решается следующим образом:

А17.н =MAX(А15.н,А16.н)

Ф. н = MAX(А1.н, А2.н,….А14.н, А17.н)

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

Пример 4. Экономически не может быть оправдано наличие на складе отрицательных величин запасов. Для того, чтобы выдача со склада не переводила запасы в отрицательную величину, выходной темп ВЫБ должен быть представлен функцией MIN из текущих запасов на складе С и величины выдачи В. Однако отрицательное значение уровня может быть получено, если входной темп будет равен отрицательной величине. Защита от этого может быть достигнута если входной темп будет определен функцией MAX из поставки П и нуля , т.е. вместо отрицательного значения всегда будет входной темп ПОС будет равняться нулю. С учетом этого Пример 3 будет трансформирован в модель программу, приведенную в Таблице 8.

Таблица 8. Модель-программа склада для исправления семантических ошибок

МОДЕЛЬ-ПРОГРАММА ВРЕМЯ=1 ВРЕМЯ=2 ВРЕМЯ=3 ВРЕМЯ=4
; Склад        
У С.Н=С.П+ПОС.ПН-ВЫБ.ПН С.1=1000 С.2=700 С.3=400 С.4=100
; Поступление        
Т ПОС.НБ=MAX((П-С.Н),0) ПОС.12=0 ПОС.23=0 ПОС.34=0 ПОС.45=100
; Выборка        
Т ВЫБ.НБ=MIN(В,С.Н) ВЫБ.12=300 ВЫБ.23=300 ВЫБ.34=300 ВЫБ.45=100
; НАЧАЛЬНОЕ ЗНАЧЕНИЕ УРОВНЯ        
И С=1000        
; Поставка        
К П=200        
; Выдача        
К В=300        

Приведенная выше таблица показывает, что уровень С уменьшается каждый шаг моделирования на 300 единиц. При этом переменная поступление (ПОС) до четвертого шага моделирования за счет отрицательной разности скобки (П-С.Н) будет равняться нулю. И только на четвертом шаге П-С.Н=200-100=100 , почему ПОС будет равняться 100. На том же четвертом шаге С.н=100 будет меньше чем В=300 и поэтому ВЫБ=100.

Функция экспоненты (EXP)

Экспоненциальная встроенная функция позволяет получать экспоненциальную зависимость от аргумента, который сам изменяется во времени. Общая форма представления этой функции:

Ф.Н= EXP(А.Н)

Механизм работы этой функции математически может быть выражен как

Ф(t)=еА(t)

где е – основание натурального логарифма. При использовании функции возможно прерывание процесса при больших значениях А(t).

Функция возведение в степень (RANGE)

Функция возведения в степень осуществляет возведение некоторой переменной, являющейся функцией от времени, в степень задаваемой переменной, которая также зависит от времени. Общая форма записи функции:

Ф.Н=RANGE(А.Н,В.Н)

Механизм работы этой функции можно представить в следующем виде:

Ф(t)=А(t)В(t)

При отрицательных значениях аргумента А(t) выходом функции будет иррациональное число, что не имеет смысла при моделировании реальных процессов, т. е. если А(t) меньше нуля при любом В(t) , то происходит программное прерывание. Прерывание, кроме того , происходит при достаточно больших А(t) и В(t) при переполнении разрядной сетки и если одновременно А(t)=0 и В(t)=0.

Чтобы проиллюстрировать использование этих функций рассмотрим пример имитации склада (Пример2), даже не прибегая к методике иерархии построения модели, а просто заменив в диаграмме потоков (Рис. 22) программное наполнение. В результате мы будем иметь следующую модель-программу, представленную в Таблице 9:

Таблица 9. Модель-программа склада с экспонентой и степенью

  ВРЕМЯ=1 ВРЕМЯ=2 ВРЕМЯ=3
; Склад      
У С.Н=С.П+ПОС.ПН-ВЫБ.ПН С.1=100 С.2=153.598 С.3=270.011
; Поставка      
Т ПОС.НБ=EXP(ВРЕМЯ+3) ПОС.12=54.5981 ПОС.23=148.413 ПОС.34=403.429
; Выборка      
Т ВЫБ.НБ=RANGE(ВРЕМЯ,5) ВЫБ.12=1 ВЫБ. 23=32 ВЫБ.34=243
Е      
И С=100      

 

Функция логарифма (LOG)

Функция позволяет получать логарифм от аргумента, изменяющегося во времени. Общий вид этой функции:

Ф.Н=LOG(А.Н)

Функция математически не определена в произвольном диапазоне изменения аргумента, и поэтому введено ограничение на аргумент. Так, если аргумент становится отрицательным или равным нулю, то машинный счет прерывается. Такое же прерывание может быть и при положительном аргументе, но близком к нулю. В этом случае прерывание происходит потому, что логарифм достигает значения, которое не помещается в разрядную сетку машины.

Функция знака (SIGN)

Результат данной функции зависит от знака аргумента: +1, если аргумент положителен, или -1, если аргумент отрицателен. Общая форма записи функции:

Ф.Н=SIGN (А.Н)

Математически действие, выполняемое данной функцией, можно выразить следующим образом:

, при А(t) 0   , при А(t) <0

Эта функция условно отнесена к классу элементарных функций, хотя, по сути, она является прообразом переключательных функций. С помощью этой функции можно реализовать условные переходы. Чтобы проиллюстрировать использование этих функций рассмотрим пример имитации склада (Пример 3) заменив в диаграмме потоков (Рис. 22) программное наполнение. В результате мы будем иметь следующую модель-программу в таблице 10:

Таблица 10. Модель-программа склада с логарифмом и знаком

  ВРЕМЯ=1 ВРЕМЯ=2 ВРЕМЯ=3 ВРЕМЯ=4
; Склад        
У С.Н=С.П+ПОС.ПН-ВЫБ.ПН С.1=100 С.2 =50 С.3=0.6931 С.4=-48.2
; Поступление        
Т ПОС.НБ=LOG(ВРЕМЯ) ПОС.12=0 ПОС.23=0.69 ПОС.34=1.09 ПОС.45=1.38
; Выборка        
Т ВЫБ.НБ=SIGN(С.Н)*50 ВЫБ.12=50 ВЫБ.23=50 ВЫБ.34=50 ВЫБ.45=-50
Е        
; НАЧАЛЬНОЕ ЗНАЧЕНИЕ        
И С=100        

Функция округления (WHOLE )

Значение первого аргумента округляется до целого числа в зависимости от значения второго аргумента. Общий вид функции:

Ф. Н = WHOLE (A,K)

где А - округляемая величина;

К - константа, задающая режим округления.

Если К=1, то значение А округляется до ближайшего целого числа; если К<1, то округление происходит в меньшую сторону отбрасыванием дробной части; если К > 1, то выполняется округление до большего целого.

Пример 5. В некоторых случаях фрагмент имитационной модели может быть связан со следующей задачей: имеется объем товара, который должен быть расфасован на фиксированные группы (заказы) с определенным числом единиц товара в каждой группе. ( В качестве практического примера можно взять распределение конфет в новогодние подарки).Для решения этой задачи необходимо сначала определить, на какое максимально возможное число групп может быть разбит данный объем. Потом целое (максимальное) количество полученных групп передается из данного фрагмента в другие части имитационной модели. (Как вариант такая задача может состояться и при определении максимальной поставки товара в качестве заказов, т.е. максимально возможное число заказов. После определения максимального числа групп в текущем объеме нам может быть известен остаток товара, который меньше чем количество товара в одной группе). Если рассматривать это на примере производства, то это можно интерпретировать как количество готовой продукции – это целое число групп полученных при разбиении объема товара, а остаток - незавершенное производство. Рассмотрим это на простом примере. Пусто объем товара равняется 100 единицам, а число единиц в одной группе – 30 штук. Тогда число групп будет 100/30=3.В результате объем товара уменьшается на 3*30=90, при этом в остатке будем иметь 100-90=10.

 

Рассмотрим еще пример, но уже с выходом на модель-программу. Предположим, что мы имеем склад, с которого товара поступает на рынок только в виде массива сгруппированного товара. В результате в каждом шаге изымается максимальное число групп, а на складе остается только то, что мы имеем после изымания. Диаграмма потоков такой модели будет выглядеть как на Рис. 25.

Модель-программа, соответствующая данной диаграмме потоков

Рис. 25. Диаграмма потоков модели склада с группированием товара

Будет выглядеть следующим образом

Таблица 11. Модель-программа группирования заказов



  ВРЕМЯ=1 ВРЕМЯ=2 ВРЕМЯ=3
; Склад      
У С.Н=С.П+ПОС.ПН-ВЫБ.ПН С.1=400 С.2=309 С.3=303
; Число товарных групп      
Д ЧТГ.Н=С.Н/КТГ ЧТГ.1=23.52 ЧТГ.2=18.17 ЧТГ.3=17.82
; Целое число товарных групп      
Д ЦЧТГ.Н=WHOLE(ЧТГ.Н,0) ЦЧТГ.1=23 ЦЧТГ.2=18 ЦЧТГ.3=17
; Поступление      
Т ПОС.НБ=П ПОС.12=300 ПОС.23=300 ПОС.34=300
; Выборка      
Т ВЫБ.НБ=ЦЧТГ.Н*КТГ ВЫБ.12=391 ВЫБ.23=306 ВЫБ.34=289
Е      
; НАЧАЛЬНОЕ ЗНАЧЕНИЕ УРОВНЯ      
И С=400      
; Поставка      
К П=300      
; Количество товара в группе      
К КТГ=17      

Последнее изменение этой страницы: 2016-08-11

headinsider.info. Все права принадлежат авторам данных материалов.