Задание 5. Настройка поведения турбин



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

Задайте временные интервалы работы турбин

1. Двойным щелчком откройте тип агента Turbine из дерева элементов модели. Начните с добавления двух элементов Параметр из палитры Агент в графический редактор.

2. Параметр с именем MTTF (среднее время до аварии) имеет тип Время и его Значение по умолчанию равняется 250 дням. Дни Вы можете выбрать в свойстве Единица измерения. Второй параметр, serviceTimeout, также имеет тип Время; его Значение по умолчанию равняется 2 неделям.

Добавьте переменные состояний турбин

1. Теперь нам необходимо добавить два элемента Переменная , которые мы будем далее использовать при задании состояний в диаграмме. Переменные operating (работает) и waitingForService (ожидает техобслуживания) обе имеют тип boolean. Переменная operating, к тому же, имеет Начальное значение: true, потому что мы хотим, чтобы изначально при старте модели все турбины исправно работали.

Добавьте функции, управляющие запросами на транспорт

1. Добавьте Функцию  из палитры Агент и назовите ее sendTransport. Эта функция является просто Действием (не возвращает ничего) и имеет два аргумента, которые необходимо добавить в секции Аргументы: Transport t и ServiceRequest request. Эта функция отправляет транспорт к турбине, когда это необходимо, соответственно диаграмме состояний, задаваемой на диаграмме типа агента Transport.

2. Добавьте еще одну Функцию . Назовите ее sendRequest и задайте ее свойства, как указано на рисунке ниже. В секции свойств Аргументы добавьте аргумент TransportType type. Тело функции ссылается на диаграмму действий findTransport, которую мы ранее создали на диаграмме MC. Когда турбина отправляет запрос на обслуживание, сервисный центр должен отправлять соответствующий тип транспорта: AUTO или AVIA.

Задайте состояния турбины

1. Теперь мы готовы приступить к созданию диаграммы состояний турбины. Откройте палитры Диаграмма состояний и перетащите на диаграмму  Turbine элемент Начало диаграммы состояний .

2. Добавьте три состояния и несколько переходов  между состояниями, как показано на рисунке:

3. Для каждого состояния турбины задается свое Действие при входе. Состояние турбины зависит от переменных operating и waitingForServices. Когда происходит авария, турбина находится в состоянии Failure (авария) и отправляет запрос на обслуживание AVIA транспортом (вертолетом). Когда подходит время планового обслуживания, турбина отправляет запрос на AUTO транспорт - грузовик.

Состояние Действие при входе
Operating
Failure
scheduledService

4. Переход от состояния Operating (работает) к состоянию Failure происходит С заданной интенсивностью , которая равняется 1/MTTF - один раз за среднее время до аварии. Переход обратно из состояния Failure в состояние Operating происходит При получении заданногосообщения  «repaired» (исправлено).

5. Иногда работающая турбина получает сообщение  «scheduled» (запланировано), и это означает, что ей требуется плановое обслуживание; запускается соответствующее состояние scheduledService. Когда турбина получает сообщение  «repaired», обслуживание завершено, и она снова может вернуться в рабочее состояние Operating.

6. Последний переход, который нам необходимо задать, идет из состояния scheduledService в состояние Failure. Этот переход происходит С заданной интенсивностью , 1 раз в неделю.

7. Добавьте циклическое Событие по таймауту и назовите его scheduledRepair. Это событие будет запускаться, когда турбине требуется плановое обслуживание (согласно переменной serviceTimeout), и оно будет запускать переход от состояния Operating в состояние scheduledService.

Настройте анимацию лопастей турбины

1. Нам необходимо изменить свойства лопастей турбины. Фигура анимации Ветряная турбина является группой, состоящей из двух 3D фигур: башни турбины и лопастей. Нам нужно открыть свойства лопастей.

2. Вы можете выделить лопасти щелчком мыши в графическом редакторе, или открыть панель Проекты и раскрывать уровни дерева модели, пока не найдете группу wind_blades:

3. Перейдите в свойства этой группы. Разверните секцию Местоположение и размер и введите operating?time():0 в поле свойства Поворот Y. Теперь лопасти будут вращаться, когда турбина находится в рабочем состоянии, а при поломке лопасти будут останавливаться.

Добавьте индикацию состояния турбины

1. Откройте палитру Презентация и сделайте двойной щелчок по элементу Овал , чтобы перейти в режим рисования для этого элемента.

2. Нарисуйте круг вокруг фигуры турбины радиусом около 10.

3. Щелкните по фигуре круга правой кнопкой мыши и выберите Порядок > На задний план в контекстном меню.

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

5. Чтобы иметь возможность задать динамическое значение в поле свойства, щелкните его значок

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

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

Запустите модель. Вы увидите, что некоторые турбины работают, некоторые ожидают планового обслуживания, а некоторые - вышли из строя.


Дата добавления: 2020-04-25; просмотров: 192; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!