Главная страница

математическое моделирование. Т 1 МАТ. Моделирование. Литература по теме 197 Вопрос Узловые операторы. 201 Вопрос Текст программной модели смо. 202 Вопрос Сборка и запуск исполнительного модуля модели. 205


Скачать 1.51 Mb.
НазваниеЛитература по теме 197 Вопрос Узловые операторы. 201 Вопрос Текст программной модели смо. 202 Вопрос Сборка и запуск исполнительного модуля модели. 205
Анкорматематическое моделирование
Дата02.06.2022
Размер1.51 Mb.
Формат файлаdocx
Имя файлаТ 1 МАТ. Моделирование.docx
ТипЛитература
#564707
страница16 из 31
1   ...   12   13   14   15   16   17   18   19   ...   31
алгоритмическим моделированием; он не всегда доступен прикладному специалисту, даже имеющему подготовку в области программирования.

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

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

      1. Инициализацию объектов и структур данных при запуске программной модели.

      2. Описание узлов с помощью общих операторов управления транзактами, событиями и узлами модели.

      3. Функциональное описание процессов управления материальными и денежными ресурсами.

      4. Управление переходами между слоями модели при многоуровневой декомпозиции.

      5. Описание сигнальных управляющих функций.

Данные средства по форме записи являются функциями, через параметры которых реализуются синтаксические связи между объектами (узлами, транзактами, ресурсами и событиями) имитационной модели. Форма записи различных условий и условных действий соответствует языку C++.

Ниже представлен перечень основных разделов программного модуля на языке C++, на основе которого формируется исполнительный модуль для реализации модельных экспериментов (названия необязательных разделов заключены в квадратные скобки).

#include


[Глобальные переменные и функции]

forward

{

[Локальные переменные модели]

modbeg (pbp2,p3,p4, ps,p6,p7,ps,p9)

ag (p1,p2,p3,p4, p5,p6,p7,ps)

ag (p1,p2,p3,p4, p5,p6,p7,p8) [Сигнальные функции]

network (p1,p2) {

Узел 1

Узел N

}

modend (pbp2,p3,p4)

return 0;

}

Препроцессорная инструкция

#include


подключает моделирующую среду имитатора к модели.

Оператор modbeg 1, Р2, Р3, Р4, Р5, Р6, Р7, Р8, Р9) осуществляет первоначальную настройку моделирующих программ и инициализацию в памяти ЭВМ графа модели. Аргументы этой функции имеют следующий смысл:

Р1 - символическое имя узла: строка длиной до 14 символов (типа

char);

Р2 - максимальный номер узла модели (типа int), причем 2
где mmax - некоторое граничное значение, задаваемое при установке имитатора на ЭВМ (обычно mmax =1024);

Р3 - модельное время, в течение которого необходимо производить моделирование (типа float);

Р4 - произвольное целое число, используемое для настройки датчиков псевдослучайных величин (long). В каждом узле есть свой независимый датчик. В качестве этого числа полезно использовать значение таймера ЭВМ, обращение к которому имеет следующий вид p4=(long)time(NULL). В этом случае результаты разных прогонов модели будут разными, имеющими случайные отклонения. При отладке лучше использовать постоянную комбинацию цифр, например, p4=(long)2013456789.

Р5 - признак режима пространственной имитации (типа int); возможные значения:

  • earth -поверхность Земли (сферические географические координаты широта и долгота);

  • plane -декартова плоскость (прямоугольная система координат);

  • cosmos -произвольное пространство (ответственность за правильность его представления возлагается на разработчика модели);

  • none - если пространственная имитация в модели не используется.

Р6 - номер (типа int) одной из очередей (узел типа queue, attach или send), которую необходимо контролировать во времени для анализа динамики задержек в этой очереди с графическим отображением результатов.

Р7 - номер (типа int) одного из процессов (узла типа proc), который необходимо контролировать как в пространстве, так и во времени с графическим отображением результатов. Если нет необходимости в графической интерпретации, то указывается none.

Р8 - номер (типа int) терминатора (узел типа term), на входе которого необходимо наблюдать интенсивность потока транзактов во время моделирования. Если такой необходимости нет, то указывается none.

Р9 - точность (типа int). Если Р9=1..6, то имитатор будет использовать от 1 до 6 знаков после запятой при выводе результатов; если P9=none, то результаты будут округляться до целых значений.

Оператор network (Р1, Р2) представляет собой координатор процессов модели. Он осуществляет диспетчеризацию транзактов в узлах модели, планирует события в едином модельном времени и активизирует дискретные или непрерывные компоненты модели, имитирующие внешнюю среду. Аргументы Р1 и Р2- это имена (адреса) соответствующих программных функций моделирования внешней среды, производящих интегрирование, решение разностных уравнений, вычисление по формулам и т.д. Функции float Р1 (d) и float Р2 (d), если они необходимы, пишутся пользователем. Если процессы Р1 (d) и Р2 (d) не моделируются, то в качестве Р1 и Р2 записывается dummy.

Оператор modend 1, Р2, Р3, Р4) выполняется по окончании моделирования. Он позволяет просмотреть на экране монитора графические результаты и выводит итоговые результаты в файл-отчет. Аргументами оператора являются:

Р1 - символическое имя файла-отчета (сИаг);

Р2 - номер первой страницы отчета (int);

Р3 - число строк на каждой странице (int);

Р4 - флаг символа перевода страницы в файле-отчете; возможные значения:

  • page символ ставится;

  • none символ не ставится.

Вопрос 2. Узловые операторы.

Узел в тексте программы состоит из шести компонентов (необязательные компоненты заключены в квадратные скобки):

toP(i):

[Описание условий] Узловой оператор [Сигнальные функции] [Блок операторов С++] place;

Описание узла начинается
1   ...   12   13   14   15   16   17   18   19   ...   31


написать администратору сайта