- •Введение
- •Лабораторная работа № 1 структурно-параметрическое моделирование систем
- •Теоретическое введение
- •Задание и порядок выполнения
- •Параметры биосырья (молока):
- •На базе статистических данных по формуле (1-1) сформирована матрица корреляционных коэффициентов связей между параметрами состояния системы (таблица 1.2). Матрица коэффициентов корреляции Rij
- •Матрица коэффициентов регрессии Pij
- •Матрица безразмерных характеристик связей Cij
- •Вопросы для самопроверки
- •Литература
- •Лабораторная работа № 2 идентификация аномальных состояний большой системы
- •Теоретическое введение
- •Задание и порядок выполнения работы
- •Варианты графов системы [2]
- •Вводится вектор текущих относительных отклонений x1,…,xn в виде
- •Ситуационная матрица аномального состояния системы Sij
- •Вопросы для самопроверки
- •Вопросы для самопроверки
- •Требования к отчету
- •Литература
- •Лабораторная работа № 4 статистическое моделирование производственных систем
- •Теоретическое введение
- •Задание и порядок выполнения работы
- •Контрольные задания для самопроверки
- •Программа
- •Требования к отчету
- •Литература
- •Лабораторная работа № 5 универсальная система имитационного моделирования simplex 3
- •Теоретическое введение
- •Компоненты модели, описываемые на объектно-ориентированном языке, объединяются в иерархические модели различной сложности структурными компонентами вышестоящего (верхнего) уровня.
- •Порядок выполнения работы
- •5.2. Общий порядок подготовки и проведения эксперимента с моделью в имитационной системе Simplex3
- •Изучить диалоговый интерфейс имитационной системы.
- •Изучить общий порядок подготовки модели
- •Внешние функции (External functions).
- •При этом в окне содержания появляется таблица с перечислением компонентов и версий. В рассматриваемом примере в окне появляются три
- •Для этого:
- •1). Выделить директорию priv и в ее контекстном меню задать команду New library…(создать новую библиотеку) и ввести имя новой модели.
- •5.2.4. Диалоговый интерфейс подготовки и проведения эксперимента с моделью в имитационной системе Simplex3
- •Задание и порядок выполнения работы
- •Вопросы для самопроверки
- •Требования к отчету
- •Литература
- •Для описания непрерывных процессов в каждом случае требуется дифференциальное уравнение. В комбинированных моделях дифференциальные уравнения могут дополняться дискретными событиями.
- •Задание и порядок выполнения работы
- •Вопросы для самопроверки
- •Требования к отчету
- •Литература
- •Лабораторная работа № 7 многомерные массивы в моделировании параметрических полей
- •Теоретическое введение
- •Задание и порядок выполнения работы
- •Требования к отчету
- •Вопросы для самопроверки
- •Литература
- •38 # Конец обслуживания
- •Листинг 8.1. Mdl- описание модели Queue
- •Задание и порядок выполнения работы
- •Варианты заданий*
- •Пример выполнения задания По заданному описанию построить и реализовать в универсальной имитационной системе Simplex3 mdl- модель сборочного конвейера.
- •Вопросы для самопроверки
- •Требования к отчету
- •Литература
- •Объектно-ориентированное моделирование систем
- •Теоретическое введение
- •Листинг 9.1. Базисный компонент Sun
- •Листинг 9.2. Базисный компонент Lake
- •Листинг 9.3. Компонент верхнего уровня Задание и порядок выполнения работы
- •Вопросы для самопроверки
- •Требования к отчету
- •Литература
- •Лабораторная работа № 10 многокомпонентная иерархическая модель
- •Задание и порядок выполнения работы
- •Вопросы для самопроверки
- •Требования к отчету
- •Литература
- •Лабораторная работа № 11 собственные функциональные компоненты
- •Задание и порядок выполнения работы
- •Вопросы для самопроверки
- •Требования к отчету
- •Литература
- •Лабораторная работа № 12 внешние с-функции и с- процедуры
- •Теоретическое введение
- •Листинг 12.1. Модель QueueExp
- •Листинг 12.2. С-функция для вычисления экспоненциально распределенных случайных чисел
- •Задание и порядок выполнения работы
- •Вопросы для самопроверки
- •Требования к отчету
- •Литература
- •Задание и порядок выполнения работы
- •Вопросы для самопроверки
- •Требования к отчету
- •Литература
- •Лабораторная работа № 14 мультиагентное моделирование систем в simplex 3
- •1. Теоретическое введение
- •2. Общее задание и порядок выполнения работы
- •3. Возможные варианты заданий
- •3.1. Моделирование маркетинговых ситуаций
- •3.2. Моделирование учебного процесса
- •3.4. Мультиагентное моделирование биологических систем
- •3.4.2. Имитационное моделирование динамического развития колоний и популяций микроорганизмов.
- •3.5.5. Объектно-ориентированное моделирование и имитация экологической системы.
- •4. Пример выполнения работы
- •И накопления знаний
- •В циклах учебного процесса
- •В цикле учебного процесса
- •Требования к отчету
- •Литература
- •Структурно-параметрическое описание технологических систем
- • Технологические режимы и параметры производства творога
- •Результаты наблюдений процесса производства кисломолочного продукта (ряженки жирностью 2,5%)
- •Корреляционная матрица тесноты связей между параметрами технологической системы производства ряженки жирностью 2.5%
- •Технологической системы производства ряженки жирностью 2.5%
- •Матрица безразмерных оценок множественной регрессии для технологической системы производства ряженки жирностью 2.5%
- •Пример ситуационной модели состояния технологической системы производства ряженки жирностью 2.5%
- •Результаты наблюдений процесса изготовления сметаны жирностью 15%
- •Корреляционная матрица тесноты связей между параметрами технологической системы производства сметаны жирностью 15%
- •Регрессионная матрица характера связей между параметрами технологической системы производства сметаны жирностью 15%
- •Безразмерная регрессионная матрица характеристик связей между параметрами технологической системы производства сметаны жирностью 15%
- •Пример ситуационной модели состояния технологической системы производства сметаны жирностью 15%
- •Результаты наблюдений процесса производства нежирного диетического творога
- •Регрессионная матрица характера связей между параметрами технологической системы производства нежирного диетического творога
- •Безразмерная регрессионная матрица характеристик связей между параметрами технологической системы производства нежирного диетического творога
- •Пример ситуационной модели состояния технологической системы производства нежирного диетического творога
- •Общий порядок создания пользовательского интерфейса с помощью внешней программы.
- •1. Создание пользовательского интерфейса с помощью внешней программы.
- •Межвидового взаимодействия.
- •2. Создание процедуры на языке edl, реализующей запуск пользовательского интерфейса и передачу исходных данных переменным модели сводится к следующему.
- •Листинг 1. Описание ввода исходных данных на языке Simplex-edl
- •4. Просмотр результатов моделирования.
Листинг 12.1. Модель QueueExp
Вызов функции Exp_Rand, возвращающей экспоненциально распределенное случайное число переменным состояния TArrive^ и TWork^, осуществляется указателем в строках 21 и 29 листинга 12.1.
Доступ к входным и выходным значениям осуществляется через специальные функции с применением ранее определенных макросов. Для этого в начале описания С-функции приводится ряд головных файлов, обеспечивающих согласование С-программы со структурами данных и передаваемыми параметрами.
# include "sys struct .h." /* Структуры данных */
# include "sys extern.h." /* Внешние переменные*/
# include 'rts func.h' /* Функции, выполняемые системой */
# include 'c macros.h" /* Макросы для раскрытия пути доступа */
а также как минимум одна стандартная библиотека С:
# include "stdlib.h" /* Cтандартная библиотека общего назначения языка С */
Эти головные файлы могут быть найдены в директории include \simplex при инсталляции Simplex3.
Пример С-функции Exp_Rand расчета нормального распределения случайной величины, описанной в строках 3 и 4 базисного компонента QueueExp и вызываемой в строках 21 и 29, представлен в листинге 12.2.
1 /*****************************************************/ 2 /* Function Exp_Rand ( REAL: mean --> REAL ) */ 3 /*****************************************************/ 4 # include "sys_struct.h" 5 # include "sys_extern.h" 6 # include "rts_func.h" 7 # include "c_macros.h" 8 # include <stdlib.h> 9 # include <math.h>
10 real Exp_Rand ( real mean ) 11 { 12 real x_uniform; 13 real x_exp; 14 x_uniform = ( real ) rand ( ) / ( RAND_MAX + 1.0 ); 15 x_exp = -InPara ( mean) * log ( x_uniform ); 16 return ( x_exp ); 17 } |
Листинг 12.2. С-функция для вычисления экспоненциально распределенных случайных чисел
С-процедура с несколькими возвращаемыми переменными, в отличие от С-функции с одним значением возврата, имеет как входные параметры <in_parameter>, так и выходные <out_parameter> в следующей синтаксической форме заголовка
<procedure_head> ::= 'void' identifier ' (' < type > < in_ parameter >
{ ',' < type >< in_parameter >}-->
< type > < out_parameter > { ',' <type> < out_parameter > } ')'
В качестве примера рассмотрим С-процедуру динамической стратегии вызова очередной заявки из очереди, когда быстрее всего обрабатываются заявки с наименьшим временем обработки, но каждой заявке дается приоритет, увеличивающийся по мере времени ожидания по формуле
Время
ожидания в очереди
T
- Tвх.
в очередь
Время
обработки =
Tобр.
При этом требующие длительного обслуживания заявки с низкими исходными приоритетами будут увеличивать свой приоритет со временем и поэтому будут обработаны быстрее.
Описание такой С-процедуры имеет вид:
1 /***********************************************************/
2 /* Procedure Candidate ( ARRAY [n][m] REAL: data, */
3 /* INTEGER: number, */
4 /* REAL: time */
5 /* --> INTEGER, REAL, REAL ) */
6 /***********************************************************/
7 # include "sys_struct.h"
8 # include "sys_extern.h"
9 # include "rts_func.h"
10 # include "c_macros.h"
11 # include <stdio.h>
12 # include <stdlib.h>
13 void Candidate ( array data;
14 integ number;
15 real time;
16 integ *position;
17 real *r_entry;
18 real *r_proc;
19 )
20 {
21 int i;
22 real high_priority = 0.0;
23 real curr_priority = 0.0;
24 integ candidate = 1;
25 if ( InPara ( number ) >= 1 )
26 for ( i = 1; i <= InPara ( number ); i++ )
27 {
28 curr_priority = ( InPara ( time ) –
29 InPara2 ( data, real, i, 1 ) ) /
30 InPara2 ( data, real, i, 2 );
31 if ( curr_priority > high_priority )
32 {
33 high_priority = curr_priority;
34 candidate = i;
35 }
36 }
37 OutPara ( position ) = candidate;
38 OutPara ( r_entry ) = InPara2 ( data, real, candidate, 1 );
39 OutPara ( r_proc ) = InPara2 ( data, real, candidate, 2 );
40 }
Объявление С-процедуры в разделе LOCAL DEFINITIONS базисного компонента QueueExp (листинг 12.1):
C_PROCEDURE Candidate ( ARRAY [n][m] REAL, INTEGER, REAL
--> INTEGER, REAL, REAL )
Фрагмент основной программы [1] с оператором вызова С-процедуры определения текущего приоритета имеет вид:
ON GetPos
DO
(Position^, T_Entry^, T_Proc^ ) :=
Candidate ( ARRAY Data, IMIN 20, NUMBER (WaitP)), T );
………………
END
