Система управления лифта
Исследование и анализ примера применения автоматного подхода для проектирования пассажирского лифта с использованием среды разработки Unimod. Методика построения системы взаимосвязанных автоматов для формализации процесса работы (поведения) системы.
Рубрика | Производство и технологии |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 18.03.2013 |
Размер файла | 662,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
1. Постановка задачи
Задачей, решаемой в настоящей работе, является проектирование программы, которая управляет работой пассажирского лифта.
Данная задача не представляет особого интереса в случае, если лифт выполняет все задания последовательно, не впуская людей на промежуточных этажах. Более интересно поведение лифта, когда он имеет возможность выполнять задания не в порядке их поступления. Существует проблема оптимальности движения лифта - суммарное время ожидающих лифта людей должно быть минимальным.
Одной из возможных реализаций «умного» лифта может быть следующая: лифт знает, когда он едет вниз, а когда вверх. При движении вверх логично впускать только тех людей, кто планирует ехать вверх, а при движении вниз тех, кто поедет вниз. На каждом этаже для вызова лифта установлена панель управления с двумя кнопками: кнопка «вверх», означающая, что пассажир желает ехать с данного этажа вверх и аналогичная кнопка «вниз». При таком подходе к организации вызова лифта можно построить алгоритм, согласно которому лифт принимает некоторый вызов или временно его игнорирует. Заметим, что именно такой «элементарный» подход уже давно используется для управления лифтами во многих развитых странах.
Автоматный подход уже использовался для реализации работы лифтов, например, в работах Наумова А.С., Шалыто А.А. «Системауправления лифтом» [1] и Наумова Л.А., Шалыто А.А. «Автоматное решение задачи Д. Кнута о лифте» [2]. Возможными недостатками данных программ может быть, например, то, что задача решается для фиксированного числа этажей.
На рисунке 1 изображен пользовательский интерфейс программы.
Рисунок 1. Пользовательский интерфейс программы
В левой части приложения располагается внутренняя панель лифта. Каждая круглая кнопка соответствует кнопке внутри лифта. Каждый раз, когда пассажир нажимает кнопку внутри лифта, она подсвечивается, и лифт должен будет посетить данный этаж.
В центральной части анимирован сам лифт. Прямоугольная область, отведенная для эмуляции движения лифта, горизонтальными линиями разделена на FLOORS_COUNTчастей, каждая из которых является уровнем соответствующего этажа. В левом нижнем углу данной области отображается текущий номер этажа с точностью до десятой доли.
В правой части приложения размещены панели вызова лифта, располагающиеся на каждом этаже. Кнопка «Вверх» (треугольник внутри кнопки направлен вверх) означает, что пассажир желает ехать вверх, кнопка «Вниз» (треугольник внутри кнопки направлен вниз), что он желает ехать вниз. На каждой кнопке в центре написан номер этажа, на котором она располагается. Заметим, что на первом этаже нет кнопки «Вниз», а на последнем «Вверх», потому как эти направления с крайних этажей не допустимы.
В нижней части располагается текстовое окно, в которое выводится информация о вызовах и текущее состояние лифта. В правом нижнем углу находится кнопка «Выход», по нажатию на которую приложение завершает свою работу.
В разработанной программе количество этажей можно задать путем изменения константы FLOORS_COUNT в файле Lift.java. При этом автомат останется неизменным, а соответствующим образом изменится пользовательский интерфейс.
2. Формальный текст сценария
автоматный unimod лифт формализация
Работу лифта можно разбить на несколько состояний, в которых он ждет событий для дальнейшего функционирования. Формально возможно рассмотрение следующих фаз работы лифта.
1. Ожидание следующего задания.
Лифт находится в статичном состоянии на одном из этажей. Когда лифту поступит сигнал о новом задании или о том, что следующее задание выбрано, он перейдет в движение «вверх» или «вниз». Эти состояния являются различными, так как при восходящем и нисходящем движении могут реализовываться неодинаковые алгоритмы выбора промежуточных остановок.
2. Восходящее движение.
Лифт движется вверх. Он останавливается в случае достижения требуемого этажа, либо при поступлении сигнала о том, что следует остановиться на промежуточном этаже.
3. Нисходящее движение.
Состояние аналогично состоянию «2». Алгоритм останова на промежуточных этажах может отличаться.
4. Лифт стоит с открытыми дверьми. Ожидает, пока пассажиры
займут место в лифте.
5. Лифт сломан.
Конечно, лифт не идеален. Может случиться, что он сломается. В этом случае лифт не функционирует, пока не будет починен.
3. Автоматная реализация
Описанная выше система реализована с помощью автоматного подхода в виде схемы, представленной ниже на рисунке 2.
Рисунок 2. Схема связей
Автомат
Рассмотрим автомат liftAutomat, который отражает логику работы лифта. Он представлен на рисунке 3.
Рисунок 3. Автомат liftAutomat
На схеме изображены следующие состояния автомата дляуправления лифтом:
* «Выбор направления» - лифт находится в состоянии ожидании нового задания;
* «Движение вверх» - лифт движется вверх, попутно останавливаясь на нужных этажах;
* «Движение вниз» - лифт движется вниз;
* «Посадка пассажиров 1,2» - лифт находится в состоянии ожидания, пока пассажиры не зайдут внутрь лифта;
* «Сломался по пути вверх / вниз» - лифт сломан и находится в состоянии ожидания ремонта.
Генератор событий
Далее будет описан генератор событий liftEventProvider. Данный объект описывает события, передаваемые лифту.
События:
* «NewTaskAdded» - уведомление о появлении нового задания;
* «GoUp» - уведомление о том, что лифт должен ехать вверх;
* «GoDown» - уведомление о том, что лифт должен ехать вниз;
* «QueueIsEmpty» - уведомление о том, что очередь заданий пуста;
* «OpenTheDoors» - уведомление об открытии дверей;
* «CloseTheDoors» - уведомление о закрытии дверей;
* «HasBroken» - уведомление о поломке лифта;
* «HasBeenRepaired» - уведомление о том, что лифт был починен.
Объекты управления
Объект управления oLift описывает действия лифта.
Методы объекта:
* «goUp» - ехать вверх;
* «goDown» - ехать вниз;
* «waitOpened» - ждать посадки пассажиров;
* «openTheDoors» - открыть двери;
* «closeTheDoors» - закрыть двери;
* «changeDirection» - изменить направление движения;
* «chooseDirection» - выбрать направление движения.
Объект управления oForm описывает вспомогательные, помимо движения лифта, действия.
Методы объекта:
* «updateButtons» - обновить состояния кнопок на всех этажах;
* «showBreakageMsg» - сообщить о поломке;
* «closeForm» - завершить работу системы.
4. реализация Программы
Программа реализуется с использованием плагина Unimod к среде разработки Java-приложений Eclipse. С помощью данного плагина были построены все схемы связей, сконструирован сам автомат, а также интерфейс объектов управления. Реализация самих методов проводилась вручную на языке программирования Java.
Существуют два подхода для создания приложений: интерпретационныйи компилятивный.
Интепретационный подход
Данный подход основан на использовании библиотек Unimod для работы приложения.
Построенный автомат сохраняется в файле XML-формата (Приложение 1), затем компилируются написанные вручную классы, реализующие поставщики событий и объекты управления. После этого, используя библиотеки Unimod, XML-файл и скомпилированные классы, запускается приложение. При работе в протокол выводятся комментарии Unimodо происходящих событиях и совершаемых переходах в автомате. Далее приведен пример такого протокола для следующих действий: запустили приложение, нажали кнопку на пятом этаже, нажали кнопку выхода.
20:36:56,421 INFO [Run] Start event [Start] processing. In state [/liftAutomat: Top]
20:36:56,421 INFO [Run] Transition to go found [InitialState#Выбор направления##true]
20:36:56,421 INFO [Run] Start on-enter action [oLift.chooseDirection] execution
20:36:56,437 INFO [Run] Finish on-enter action [oLift.chooseDirection] execution
20:36:56,437 INFO [Run] Finish event [Start] processing. In state [/liftAutomat: Выбор направления]
20:36:57,156 INFO [Run] Start event [NewTaskAdded] processing. In state [/liftAutomat: Выбор направления]
20:36:57,156 DEBUG [Run] Try transition [Выбор направления#Выбор направления#NewTaskAdded#true]
20:36:57,156 INFO [Run] Transition to go found [Выбор направления#Выбор направления#NewTaskAdded#true]
20:36:57,156 INFO [Run] Start on-enter action [oLift.chooseDirection] execution
20:36:57,156 INFO [Run] Finish on-enter action [oLift.chooseDirection] execution
20:36:57,156 INFO [Run] Finish event [NewTaskAdded] processing. In state [/liftAutomat: Выбор направления]
20:36:57,156 INFO [Run] Start event [GoUp] processing. In state [/liftAutomat: Выбор направления]
20:36:57,156 DEBUG [Run] Try transition [Выбор направления#Движение вверх#GoUp#true]
20:36:57,156 INFO [Run] Transition to go found [Выбор направления#Движение вверх#GoUp#true]
20:36:57,156 INFO [Run] Start on-enter action [oLift.goUp] execution
20:36:57,156 INFO [Run] Finish on-enter action [oLift.goUp] execution
20:36:57,156 INFO [Run] Finish event [GoUp] processing. In state [/liftAutomat: Движение вверх]
20:36:57,156 INFO [Run] Start event [QueueIsEmpty] processing. In state [/liftAutomat: Движение вверх]
20:36:57,156 DEBUG [Run] Try transition [Движение вверх#Выбор направления#QueueIsEmpty#true]
20:36:57,156 INFO [Run] Transition to go found [Движение вверх#Выбор направления#QueueIsEmpty#true]
20:36:57,171 INFO [Run] Start output action [oLift.changeDirection] execution
20:36:57,171 INFO [Run] Finish output action [oLift.changeDirection] execution
20:36:57,171 INFO [Run] Start on-enter action [oLift.chooseDirection] execution
20:36:57,171 INFO [Run] Finish on-enter action [oLift.chooseDirection] execution
20:36:57,171 INFO [Run] Finish event [QueueIsEmpty] processing. In state [/liftAutomat: Выбор направления]
20:36:57,171 INFO [Run] Start event [GoDown] processing. In state [/liftAutomat: Выбор направления]
20:36:57,171 DEBUG [Run] Try transition [Выбор направления#Движение вниз#GoDown#true]
20:36:57,171 INFO [Run] Transition to go found [Выбор направления#Движение вниз#GoDown#true]
20:36:57,171 INFO [Run] Start on-enter action [oLift.goDown] execution
20:37:00,265 INFO [Run] Finish on-enter action [oLift.goDown] execution
20:37:00,265 INFO [Run] Finish event [GoDown] processing. In state [/liftAutomat: Движение вниз]
20:37:00,265 INFO [Run] Start event [OpenTheDoors] processing. In state [/liftAutomat: Движение вниз]
20:37:00,265 DEBUG [Run] Try transition [Движение вниз#Посадка пассажиров 2#OpenTheDoors#true]
20:37:00,265 INFO [Run] Transition to go found [Движение вниз#Посадка пассажиров 2#OpenTheDoors#true]
20:37:00,265 INFO [Run] Start output action [oForm.updateButtons] execution
20:37:00,265 INFO [Run] Finish output action [oForm.updateButtons] execution
20:37:00,265 INFO [Run] Start output action [oLift.openTheDoors] execution
20:37:01,000 INFO [Run] Finish output action [oLift.openTheDoors] execution
20:37:01,000 INFO [Run] Start on-enter action [oLift.waitOpened] execution
20:37:04,000 INFO [Run] Finish on-enter action [oLift.waitOpened] execution
20:37:04,000 INFO [Run] Finish event [OpenTheDoors] processing. In state [/liftAutomat: Посадка пассажиров 2]
20:37:04,000 INFO [Run] Start event [CloseTheDoors] processing. In state [/liftAutomat: Посадка пассажиров 2]
20:37:04,000 DEBUG [Run] Try transition [Посадка пассажиров 2#Движение вниз#CloseTheDoors#true]
20:37:04,000 INFO [Run] Transition to go found [Посадка пассажиров 2#Движение вниз#CloseTheDoors#true]
20:37:04,000 INFO [Run] Start output action [oLift.closeTheDoors] execution
20:37:04,734 INFO [Run] Finish output action [oLift.closeTheDoors] execution
20:37:04,734 INFO [Run] Start on-enter action [oLift.goDown] execution
20:37:04,734 INFO [Run] Finish on-enter action [oLift.goDown] execution
20:37:04,734 INFO [Run] Finish event [CloseTheDoors] processing. In state [/liftAutomat: Движение вниз]
20:37:04,734 INFO [Run] Start event [QueueIsEmpty] processing. In state [/liftAutomat: Движение вниз]
20:37:04,734 DEBUG [Run] Try transition [Движение вниз#Выбор направления#QueueIsEmpty#true]
20:37:04,734 INFO [Run] Transition to go found [Движение вниз#Выбор направления#QueueIsEmpty#true]
20:37:04,734 INFO [Run] Start output action [oLift.changeDirection] execution
20:37:04,734 INFO [Run] Finish output action [oLift.changeDirection] execution
20:37:04,734 INFO [Run] Start on-enter action [oLift.chooseDirection] execution
20:37:04,734 INFO [Run] Finish on-enter action [oLift.chooseDirection] execution
20:37:04,734 INFO [Run] Finish event [QueueIsEmpty] processing. In state [/liftAutomat: Выбор направления]
20:37:07,406 INFO [Run] Start event [Exit] processing. In state [/liftAutomat: Выбор направления]
20:37:07,406 DEBUG [Run] Try transition [Выбор направления#FinalState#Exit#true]
20:37:07,406 INFO [Run] Transition to go found [Выбор направления#FinalState#Exit#true]
20:37:07,406 INFO [Run] Start output action [oForm.closeForm] execution
20:37:07,421 INFO [Run] Finish output action [oForm.closeForm] execution
20:37:07,421 INFO [Run] State machine came to final state [/liftAutomat: FinalState]
20:37:07,421 INFO [Run] Finish event [Exit] processing. In state [/liftAutomat: FinalState]
Компилятивный подход
В этом подходе с помощью средств Unimod из XML-файла (Приложение 1), описывающего структуру программы и автомата, генерируется Java-файл. К этому файлу добавляются файлы, написанные вручную, которые реализуют поставщики управления и контрольные объекты. Для его работы необходимы также некоторые классы библиотек Unimod.
Отметим, что в используемых в настоящее время версиях инструментальной среды Unimod, главный класс, обеспечивающий запуск приложения, вручную писать не приходится. Он генерируется автоматически.
Выводы
Автоматный подход удобен для проектирования систем управления механическими процессами. С одной стороны, он позволяет разделить систему на отдельные несвязанные объекты, что сильно упрощает ее программирование, а с другой - наглядная диаграмма автомата позволяет человеку легче видеть схему работы программы и находить возможные ошибки.
Набор инструментов Unimod [3] сильно упрощает задачу реализации спроектированной системы.
Литература
1. Наумов А.С., Шалыто А.А. Система управления лифтом. http://is.ifmo.ru/projects/elevator/
2. Наумов Л.А., Шалыто А.А. Автоматное решение задачи Д. Кнута о лифте. http://is.ifmo.ru/projects/lift2/
3. Unimod. http://unimod.sourceforge.net
Размещено на Allbest.ru
...Подобные документы
Основные технологические условия работы пассажирского лифта. Расчет относительной продолжительности включения приводного электродвигателя. Расчет статистической мощности. Выбор тормозного устройства. Требования к электроприводу пассажирского лифта.
курсовая работа [837,6 K], добавлен 19.06.2012Общий вид пассажирского лифта. Силовая схема и схема управления лифтом. Циклограмма работы лифта в заданной последовательности. Устройство, специфика конструкций и условий эксплуатации портального крана. Анализ схемы управления портальным краном.
курсовая работа [1,9 M], добавлен 24.11.2013Разработка и расчет системы электропривода скоростного пассажирского лифта для многоэтажных зданий. Выбор силового оборудования, анализ динамических режимов работы разомкнутой и замкнутой системы электропривода. Экономическая эффективность его применения.
дипломная работа [1,6 M], добавлен 28.03.2012Назначение и конструкции пассажирского лифта и козлового крана. Силовая электрическая релейно-контакторная и кинематическая схема управления подъемными машинами. Построение циклограммы работы лифта. Составление таблицы состояний передвижения крана.
курсовая работа [2,2 M], добавлен 18.12.2015Описание конструкции пассажирского лифта и технологического процесса его работы. Проектирование электропривода: выбор рода тока и типа электропривода; расчет мощности двигателя; определение момента к валу двигателя; проверка по нагреву и перегрузке.
курсовая работа [2,4 M], добавлен 16.11.2010Разновидности лифтовых электроприводов. Системы с регулируемым напряжением и частотой. Состав и устройство лифта. Исходные данные и расчет мощности двигателя. Требования, обзор и выбор преобразователя частоты. Принципиальная схема устройства управления.
дипломная работа [4,9 M], добавлен 13.12.2013Основные узлы оборудования для пассажирских и грузовых лифтов. Применение автоматизированной система управления электроприводом электроустановки передвижения кабины лифта. Проведение технического надзора за исправным состоянием приводного механизма.
курсовая работа [305,9 K], добавлен 12.03.2015Общая характеристика и принцип работы лифта, его основные составные части и порядок их взаимодействия. Классификация лифтов, их разновидности и отличительные черты. Порядок разработки силовой части электропривода грузового лифта, расчет мощности.
курсовая работа [2,7 M], добавлен 30.04.2009Расчет и разработка проекта автоматизированного электропривода грузового лифта, обеспечивающего заданную скорость и ускорение подъема и опускания при повторном кратковременном режиме работы. Анализ процессов и различных режимов работы проектной системы.
курсовая работа [841,5 K], добавлен 29.11.2010Описание технологического процесса и оборудования пассажирских лифтов, их технологическая схема и требования к их электроприводу. Математическое и компьютерное моделирование работы асинхронного двигателя в пассажирских лифтах, их графическое изображение.
курсовая работа [2,6 M], добавлен 21.03.2010Характеристика предприятия "Alex lift": его структурная схема управления и внедренные инновационные технологии. Учет срока износа инструмента и составление графика ремонта оборудования. Установка кронштейнов, сборка каркаса, установка дверей шахты лифта.
отчет по практике [965,1 K], добавлен 21.07.2012Лифт как стационарный подъемник периодического действия, в котором перемещение грузов или пассажиров с одного уровня на другой производится в кабине. Анализ особенностей расчета грузоподъемного механизма лифта, способы определения мощности двигателя.
курсовая работа [353,7 K], добавлен 15.01.2015Описание промышленной установки, анализ кинематической схемы, определение параметров и проектирование расчётной схемы механической части электропривода. Расчёт и построение оптимальной тахограммы движения скоростного лифта и нагрузочные диаграммы.
курсовая работа [1,1 M], добавлен 16.03.2012Технические расчет и чертежи основных элементов лебедки грузового лифта. Определение нагрузок, расстояния между опорами и реакций в опорах, возникающих при основных режимах работы лифтовой установки. Построение эпюр изгибающих и крутящих моментов.
курсовая работа [479,9 K], добавлен 02.02.2012Назначение, устройство и расчет кабины лифта, каркаса, пола, направляющих башмаков. Механизм подъема, подвижные части механизма, канат, редуктор, противовес, электродвигатель. Инженерный расчет по обеспечению безопасных условий труда и эксплуатации.
дипломная работа [1,4 M], добавлен 18.11.2009Методика проектирования поверхности фигуры человека и одежды в трёхмерной среде. Разработка моделей женской одежды с использованием геометрических объёмных форм. Анализ способов проектирования рукавов геометрической объёмной формы в трёхмерной среде.
дипломная работа [8,3 M], добавлен 13.07.2011Синтез функциональной и структурной схем автоматической системы управления технологическим процессом. Методика проектирования автоматизированной системы блока очистки, синтез, режимы работы, принципы управления. Рассмотрение алгоритма ее функционирования.
курсовая работа [3,5 M], добавлен 23.12.2012Назначение системы управления по минимуму потерь, особенности ее применения для малых и средних двигателей, оценка эффективности. Расчет потерь в асинхронных двигателях. Методика разработки системы оптимального управления. Анализ динамических режимов.
контрольная работа [330,9 K], добавлен 26.05.2009Построение элементарной схемы и исследование принципа работы системы автоматического управления, ее значение в реализации способа поднастройки системы СПИД. Основные элементы системы и их взаимосвязь. Анализ устойчивости контура и его оптимальных частот.
контрольная работа [1,2 M], добавлен 12.09.2009Исследование устойчивости САУ. Построение АЧХ, ФЧХ, АФЧХ. Численные методы интегрирования. Анализ системы с использованием спектрального метода (базис Лягерра). Анализ системы с использованием спектрального метода. Синтез регулятора матричным методом.
курсовая работа [683,1 K], добавлен 22.12.2008