|
||||||||||||||||||||||||
Индивидуальное задание. Вариант №1. Object. System. External Timer
ПГУТИ
Индивидуальное задание Тема: «Моделирование работы объекта и системы управления при помощи Switch-технологии»
Выполнил: Студент гр. УИТС-81 Громов С.В.
Самара 2012г Вариант №1 Задание: Разработать модель управления электроприводом стеклоподъемника автомобиля. В процессе разработки считать, что управление осуществляется с помощью контроллера лабораторной установки Momentum. Связь с объектом осуществляется следующим образом (см. таблицу 1). Таблица 1 – Информационные сигналы системы управления стеклоподъёмником
Управление стеклоподъёмником должно осуществляться пользователем с помощью команд с верхнего уровня системы управления. Время полного хода стекла составляет 25 секунд. Это время должно контролироваться программой и в случае, если время будет превышено – должна сформироваться ошибка «Стекло застряло». Кроме того, если в течение трёх секунд после подачи команды «Поднять стекло» или «Опустить стекло», стекло не двигается с места – должна быть сформирована ошибка «Стекло не двигается». При появлении любой из ошибок управляющие сигналы с объекта управления должны быть сняты (электропривод отключен).
На рисунке ниже представлена схема, разработанная в среде MatLAB. Button Up, Button Down – кнопки «Поднять стекло» и «Опустить стекло» соответственно; в chart System представлены как события System – модель Системы управления в виде конечного автомата Object – модель объекта управления в виде конечного автомата External Timer – внешний таймер для слежения за временем работы объекта Так же на схеме присутствуют семь индикаторов, отражающих текущее состояние объекта Podnyato, Opuscheno, Podnimaetsya, Opuskaetsya, Stoit, Zastralo (обозначает что стекло не закрылось/открылось в течении положенного времени), Steklo Ne Dvigaetsya (означает, что в течении трех секунд объект никак не отреагировал на сигнал системы управления) Все эти индикаторы принимают значение 1 или 0 в зависимости от состояния
Рассмотрим каждый Chart подробнее. Object Таблица состояний: Входные сигналы: SUp – сигнал «Поднять стекло» SDown – сигнал «Опустить стекло» SZ – сигнал «Стекло застряло»
Выходные сигналы: DOWN2/UP2 – сигналы подаваемые на СУ «стекло опущено»/»стекло поднято» Ris/ Fal - сигналы подаваемые на СУ «стекло опускается» /»стекло поднимается»
Counter: Внутренний таймер, имитирует время работы объекта, при подаче сигнала «Поднять стекло» от СУ Начинает считать до 250 и останавливается. При подаче сигнала «Опустить стекло» считает в обратную сторону (от 250 до 0). Так же переход можно осуществить в процессе поднятия/опускания стекла, в этом случае новый отсчет начнется с той цифры, до которой дошел таймер, что точно имитирует реальную работу стеклоподъемника. Obj: Init – начальное состояние, стекло опущено Rising – состояние «Поднимается». Переход в это состояние осуществляется по сигналу «Поднять стекло» от СУ (SUp==1), при переходе подается сигнал ,что стекло начало движение вверх. Так же в это состояние можно перейти из состояния «Опускается» так же по сигналу «Поднять стекло» от СУ. Переход в Init происходить по сигналу SZ, этот сигнал генерирует СУ, когда стекло застревает Close – состояние «Стекло Поднято», переход происходит по истечении работы таймера (T= 250) Falling – состояние «Стекло Опускается». Переход в это состояние осуществляется по сигналу «Опустить стекло» от СУ (SDown==1). При переходе подается сигнал, что стекло начало движение вниз. Так же в это состояние можно перейти из состояния «Поднимается» так же по сигналу «Опустить стекло» от СУ. Переход в Init происходить по сигналу SZ, этот сигнал генерирует СУ, когда стекло застревает Open – состояние «Стекло Опущено», переход осуществляется по истечении работы таймера (T=0)
System Состояния СУ аналогичны состояниям объекта управления Init – начальное состояние, стекло опущено Up – переход происходит по событию Up1 (нажали кнопку) из состояний Опущено или Опускается. При этом на объект подается команда «Поднять окно» (UP2=1). Если в течении 3х секунд объект не начал движение (индикатор Ris=0) то автомат возвращается в Init, и выводит сообщение «Стекло не двигается». Если по истечении времени работы внешнего таймера, сигнал «Стекло поднято» от объекта не поступил, автомат так же возвращается в Init, и выводится сообщение о том, что стекло застряло. Close – переход происходит при условии, что от объекта был подан сигнал «Стекло поднято» не позднее чем внешний таймер закончил счет. Если в течение 3х секунд после нажатия кнопки «Опустить стекло» (Событие Down1) объект не реагирует (индикатор Fal=0), то автомат остается в этом состоянии. Down – состояние Опускается, аналогично состоянию Up, но в обратную сторону Open – переходное состояние «стекло Опущено», переход происходит по сигналу от объекта и внешнего таймера. Входные сигналы: UP1, DOWN1 – сигналы от объекта «Стекло Поднято» и «Стекло Опущено» соответственно T – сигнал с внешнего таймера, контролирует время работы объекта Ris, Fal – сигналы от «Стекло Поднимается» и «Стекло Опускается» соответственно Выходные сигналы: UP2, DOWN2 – команда подаваемая на объект «Поднять стекло» и «Опустить стекло» соответственно Z – сигнал, отключающий объект, когда стекло застряло. IndUp, IndDown, Rising, Falling, Stop, Error, Nein – индикаторы состояний объекта
External Timer Входящие сигналы: Up, Down – сигналы от СУ «Поднять стекло» и «Опустить стекло» соответственно, активируют таймер Nein – Сигнал того, что объект не отвечает на команды СУ Выходной сигнал: Т – время таймера
External Timerаналогичен внутреннему таймеру Объекта управления. Начинает отсчет с момента подачи команды «Поднять/Опустить стекло». Добавлен сигнал Nein, он возвращает таймер в предыдущее состояние, если объект не отвечает на команды.
Примечание: При моделировании времени работы стеклоподъемника количество тиков таймеров никаким образом не отражает реальное время работы, поэтому примем 1 тик таймера за 100 мсек, т.е. 1 сек = 10 тиков. Экспериментально было установлено, что 250 тиков ≈ 22 сек, это хотя бы приближенно отражает реальный процесс.
Работа Системы: Показания индикаторов при нормальном функционировании объекта:
Для моделирования ситуации, когда стекло застряло, необходимо изменить время работы внутреннего таймера объекта управления. Рассмотрим ситуация когда стекло застревает по пути наверх: Для этого изменяем время работы с 250 на 350. По истечении 250 тиков на внешнем таймере на СУ не поступает сигнал «Стекло поднято» и объект отключается на индикаторах появляются соответствующие сигналы:
Смоделируем наиболее вероятную поломку стеклоподъемника: Подается команда «Поднять стекло», стекло полностью поднимается. Затем подаем команду «Опустить стекло», пока стекло находится в состоянии «Опускается», снова подаем команду «Поднять стекло». Снова не дожидаясь когда стекло поднимется, подается команда «Опустить стекло». В этот момент стекло застревает. Для того чтобы это реализовать подобную ситуацию на последнем описанном переходе изменяем значение Т (значение времени во внутреннем таймере объекта): В итоге на выходе СУ снова получаем уведомление о застрявшем стекле:
Ситуация когда объект не отвечает на команды возможна когда либо сам объект неисправен, либо сигнал до него просто не доходит. Логически в контексте данной модели эти ситуации ничем друг от друга не отличаются, поэтому чтобы реализовать подобные поломки достаточно либо добавить ключ на проводах от UP2 (chart System) к SUp (chart Object) и от DOWN2 (chart System) к SDown (chart Object), либо просто удалить эти провода. Дабы не загромождать без того нелегко читаемую схему воспользуемся вторым методом, удалим провод от DOWN2 (chart System) к SDown (chart Object).
Объект реагирует на команду «Поднять стекло», и спустя 250 тиков переходит в состояние «Поднято». При подачи команды «Опустить стекло», объект, разумеется, никак не реагирует и по истечении трех секунд (30 тиков) снова возвращается в состояние «Поднято». Система управления генерирует сигнал ошибки: Аналогично можно смоделировать ситуацию, когда стекло не реагирует из начального состояния «Опущено»:
Вывод: В данной работе я моделировал работу стеклоподъемника с помощью SWITCH-Технологии и получил практические знания в области разработки конечных автоматов в среде MatLab.
|
||||||||||||||||||||||||
|