Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СИСТЕМНЫЙ АНАЛИЗ.doc
Скачиваний:
27
Добавлен:
18.12.2018
Размер:
8.13 Mб
Скачать

Часть 2. Имитационное моделирование

Оптимизация на имитационных моделях

137

objective:=Q_max+(l-KPD); haltQ

Следующее описание определяет содержимое основных полей блоков разветвителей и очередей модели.

Блок 1. (tv construction) Mean Time: 5; Standard Deviation: 3; Release Condition: 1; Beginning Effect: tag += 1;

Разветвитель 1.

Decision Type: Multiple Routing condition: technical control: 1; tv con­struction: 1;

ОчередЬ 2 (technical control queue)

Sorting Order: FIFO Entering Effect: q+=l; if q>Q_max then Q_max:=q; Departing Effect: q—=1;

Блок 2. (technical control)

Mean Time: 9; Standard Deviation: 6; Release Condition: Nck>0; (Вхождение в блок возможно, когда свободен хотя бы один конт­ролер.)

Beginning Effect: Nck-=1; Launch Effect: Tsk:=Tsk+duration;

Системная переменная duration определяет время, в течение кото­рого тэг будет находиться в блоке. Обычно системная переменная du­ration используется в поле Launch Effect. В данном примере эта пере­менная используется для определения общего полезного времени контролеров путем накопления интервалов времени, потраченных на контроль телевизионных приемников.

Ending Effect: Nck+=1;

Разветвитель 2.

Decision Type: Probabilistic Routing condition: repairing: 0,15; wraping:

0,85;

Очередь 3 (rapairing queue) Sorting Order: FIFO

Блок 3. (rapairing) Mean Time: 30; Standard Deviation: 20; Time Dist­ribution: Rectangular Release Condition: State==0; Begining Effect: Sta­te—I; Ending Effect: State:=0;

Блок 4. (wraping) Release Condition: 1;

Внесем в календарь событий операторы присваивания начальных _ значений переменным MS- модели, оператор определения перемен­ной objective и оператор остановки прогона (halt) по истечении 8 ра­бочих часов (480 мин.).

Рис. 2.40. Начальное содержимое календаря событий для модели технического

контроля изделий

Количество свободных контролеров Nek устанавливается равным общему количеству контролеров Nk (ситуация перед началом рабо­ты). Выполнение оператора присваивания (Nck:=Nk) планируется с небольшой задержкой (0.001) сразу после запуска модели (ниже пояс­няется необходимость такой задержки).

Функция objective вычисляется после определения KPD непосред­ственно перед завершением прогона. Структура этой функции ориен­тирована на поиск такого количества контролеров (Nk), которое обес­печивало бы, с одной стороны, минимальную длину очереди (Q_max), а с другой — эффективную работу контролеров (KPD, близкий к еди­нице). В структуре формулы: objective:=Q_max+(l—KPD) оба этих фактора достигаются при поиске такого значения Nk, при котором objective достигает минимума.

Определенная таким образом функция objective и будет опреде­лять целевую функцию оптимизации модели.

Заметьте, что в отличие от целевой ячейки электронной таблицы определенная здесь целевая функция оптимизации имитационной модели не имеет аналитической зависимости от варьируемой пере­менной Nk.

Запуск процесса оптимизации связан с выбором пункта Optimize из меню Micro Saint {Execute —> Optimize). Результатом этого выбора будет запуск приложения OptQuest и открытие главного окна OptQuest.

Определение оптимизационной задачи

Прежде всего необходимо создать новый файл с расширением ОРТ или открыть существующий файл, связанный с оптимизируемой имитационной моделью (подпункт New или Open пункта главного меню File, соответственно, рис. 2.41). В дальнейшем в таком файле будут храниться параметры оптимизации.

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

1) выбрать изменяемые переменные из переменных имитацион­ной модели;

138