2.2 Разработка структуры состояний задач
Многие задачи СРВ могут быть структурированы в соответствии с моделью состояний.
Состояние – это часть задачи, выполняемая при определённых условиях. Только одно состояние задачи является активным в данный момент времени. При изменении условий, задача может перейти в другое состояние.
Состояние ZI определяется:
действиями выполняемыми постоянно, пока состояние активно - DI;
условиями переходов в другие состояния - GI,J;
действием при входе в состояния - EI;
действием при выходе из текущего состояния в некоторое N-ное состояние – LI,N.
Step X. Задача управления ШД. Каждой задаче управления соответствует задача, формирующая для неё входное значение. Эта задача может находиться в 2-х состояниях: ожидание момента времени возможного изменения скорости привода и изменение скорости привода.
Рисунок 2.2 – Состояния задачи управления ШД
Tc = Tт+Tрт1
где Tт – текущий момент времени.
Полушаговый способ является комбинацией полношагового с перекрытием фаз и полношагового без перекрытия. Обеспечивается попеременной коммутацией фаз. Обнуление будет происходить с помощью логической операции «AND», присвоение разряду единицы будет происходить с помощью логической операции «OR».
Для данной задачи можно сформировать таблицу действий.
Таблица 2.1 – таблица состояний для задачи StepX
Состояние |
Вход |
Выход |
Действия |
|||||||||||||||||||||||||||||||||||||||||||||
1 |
- |
- |
Изменение значений фазного массива, расчет нового времени изменения параметров напряжения на обмотки, переход в состояние 2
|
|||||||||||||||||||||||||||||||||||||||||||||
2 |
- |
- |
Ожидание в течении времени Tc, по истечению которого осуществляется переход в состояние 1 |
Goto0_X. Задача выхода в ноль выходного звена по координате X.
Рисунок 2.3 – Состояния задачи «выхода в «0»
Из исходного состояния 0, в момент включения системы управления, задача безусловно переходит в состояние 1. В этом состоянии проверяется сигнал от снижения скорости. В том случае, если датчик формирует сигнал 0, т.е. выходное звено находится на неизвестном расстоянии от начала координат, переходим в состояние 2. Если же модуль находится непосредственно возле датчика, датчик формирует сигнал 1, сразу переходим в состояние 3. В состоянии 2 выходное звено двигается с максимальной скоростью к началу координат до тех пор, пока не сработает датчик снижения скорости. Когда датчик снижения скорости формирует сигнал 1, задача переходит в состояние 3. В состоянии 3 модуль продолжает двигаться к нулю, но уже на минимальной скорости, которая составляет 20% от скорости Vmax. Так как расстояние от датчика до нуля и скорость, с которой выходное звено движется между ними, известны, рассчитываем время T1, за которое модуль достигнет начала координат. По истечении времени T1 переходим в состояние 4. В состоянии 4 начинаем движение от нуля, двигатель совершает N шагов, пока датчик начального положения не вернет 0. В этот момент переходим в состояние OFF, т.е. передаем задаче управления двигателем нулевую скорость. Выходное звено находится в положении датчика начального положения. Принимаем это положение за 0. Теперь манипулятор готов к выполнению команд оператора.
Для данной задачи можно сформировать таблицу действий.
Таблица 2.2 – таблица состояний для задачи Goto0_X
Состояние |
Вход |
Выход |
Действия |
1 |
- |
- |
Считывание датчика снижения скорости. Если ССК=0, то переход в состояние 2, если ССК=1, то переход в состояние 3. |
2 |
Nшаг=1*106; v=160 мм/c |
- |
Если СК=1, то переход в состояние 3 |
3 |
v=40 мм/c; Задать время t1 |
- |
Если tтек>=t1, то переход в состояние 4 |
4 |
v=40 мм/c; Nшаг=500 |
Сообщение модулю нулевой скорости после прохождения N шагов |
Если Nшаг=0, то v=null и x = null, переход в состояние 5 |
5 |
key=1 |
- |
Переход в состояние ожидания |
MoveX. Задача управления скоростью ШД.
Рисунок 2.4 - Состояния задачи формирования скорости
Из исходного состояния 0, задача переходит в состояние 1, при этом передаются переменные заданной координаты и сигнал датчика начального положения. Состояние 1 это состояние остановки модуля, в этом состоянии рассчитывается как разность заданной координаты и текущей (Kзад – заданная координата, Kтек – текущая координата). В этом состоянии проверяется сигнал от задачи «выход в ноль». В случае если сигнал равен 1, то есть система готова к дальнейшим манипуляциям, и переходим в состояние 2, если |Kзад-Kтек|>FSD, где FSD – величина минимального перемещения выполняемого на высокой скорости, если key=0, то модуль еще не готов к выполнению действий. Все перемещения меньше чем FSD выполняются на низкой скорости. Если MD≤|Kзад-Kтек|<FSD, где MD – минимально возможное перемещение, то переход в состояние 3. В состоянии 2 модуль двигается с средней скоростью, которая составляет 80% от Vmax. Когда остаток пути K’ становится меньше FSD, но больше MD, то переход в состояние 3. В состоянии 3 происходит движение модуля на минимальной скорости, которая составляет 20% от скорости Vmax . Как только конечное расстояние K’’ станет меньше чем минимально возможное перемещение, переходим в состояние STOP, т.е. передаем задаче управления двигателем нулевую скорость.
Для данной задачи можно сформировать таблицу действий.
Таблица 2.3 – таблица состояний для задачи MoveX
Состояние |
Вход |
Выход |
Действие |
1 |
СТОП. Вычисление перемещения |Kзад-Kтек| |
- |
Если key=1 и |Kзад-Kтек|>FSD, то переход в состояние 2 Если key=1 и MD≤|Kзад-Kтек|<FSD, то переход в состояние 3 |
2 |
v=160 мм/c |
- |
Если MD<=K’<FSD, то переход в состояние 3 |
3 |
v=40 мм/c; |
Сообщение модулю нулевой скорости |
Если ЕMD>K’’, то переход в состояние 1 |
Goto0_Y. Задача выхода в ноль выходного звена по координате Y.
Рисунок 2.3 – Состояния задачи «выхода в «0»
Из исходного состояния 0, в момент включения системы управления, задача безусловно переходит в состояние 1. В этом состоянии проверяется сигнал от снижения скорости. В том случае, если датчик формирует сигнал 0, т.е. выходное звено находится на неизвестном расстоянии от начала координат, переходим в состояние 2. Если же модуль находится непосредственно возле датчика, датчик формирует сигнал 1, сразу переходим в состояние 3. В состоянии 2 выходное звено двигается с максимальной скоростью к началу координат до тех пор, пока не сработает датчик снижения скорости. Когда датчик снижения скорости формирует сигнал 1, задача переходит в состояние 3. В состоянии 3 модуль продолжает двигаться к нулю, но уже на минимальной скорости, которая составляет 20% от скорости Vmax. Так как расстояние от датчика до нуля и скорость, с которой выходное звено движется между ними, известны, рассчитываем время T1, за которое модуль достигнет начала координат. По истечении времени T1 переходим в состояние 4. В состоянии 4 начинаем движение от нуля, двигатель совершает N шагов, пока датчик начального положения не вернет 0. В этот момент переходим в состояние OFF, т.е. передаем задаче управления двигателем нулевую скорость. Выходное звено находится в положении датчика начального положения. Принимаем это положение за 0. Теперь манипулятор готов к выполнению команд оператора.
Для данной задачи можно сформировать таблицу действий.
Таблица 2.4 – таблица состояний для задачи Goto0_Y
Состояние |
Вход |
Выход |
Действия |
1 |
- |
- |
Считывание датчика снижения скорости. Если ССК=0, то переход в состояние 2, если ССК=1, то переход в состояние 3. |
2 |
v=160 мм/c; Выбор скоростного режима MIDDLE и направления вращения ДПТ ROTATION |
- |
Если СК=1, то переход в состояние 3 |
3 |
v=40 мм/c; Выбор скоростного режима LOW и направления вращения ДПТ ROTATION Задать время t1 |
- |
Если tтек>=t1, то переход в состояние 4 |
4 |
v=40 мм/c; Выбор скоростного режима LOW и направления вращения ДПТ ROTATION Задать время t2 |
- |
Если tтек>=t2, то выбор скоростного режима STOP и x = null, переход в состояние 5 |
5 |
key=1 |
- |
Переход в состояние ожидания |
MoveY. Задача управления скоростью ДПТ.
2
движение на высокой
скорости
(key=1) AND
(|Kзад-Kтек|>FSDH)
(key=1) AND
(|Kзад-Kтек|<FSDH)
AND
(|Kзад-Kтек|<FSDH)
Рисунок 2.5 - Состояния задачи формирования скорости
Из исходного состояния 0, задача переходит в состояние 1, при этом передаются переменные заданной координаты и сигнал датчика начального положения. Состояние 1 это состояние остановки модуля, в этом состоянии рассчитывается как разность заданной координаты и текущей (Kзад – заданная координата, Kтек – текущая координата). В этом состоянии проверяется сигнал от задачи «выход в ноль». В случае если сигнал равен 1, то есть система готова к дальнейшим манипуляциям, и переходим в состояние 3, если |Kзад-Kтек|>FSD и |Kзад-Kтек|<FSDH, где FSD – величина минимального перемещения выполняемого на средней скорости, или в состояние 3, если |Kзад-Kтек|>FSDH, где FSDH – величина минимального перемещения выполняемого на высокой скорости, если key=0, то модуль еще не готов к выполнению действий. Все перемещения меньше чем FSD выполняются на низкой скорости. Если MD≤|Kзад-Kтек|<FSD, где MD – минимально возможное перемещение, то переход в состояние 4. В состоянии 2 модуль двигается с высокой скоростью Vmax. В состоянии 3 модуль двигается с средней скоростью, которая составляет 80% от Vmax. Когда остаток пути K’ становится меньше FSD, но больше MD, то переход в состояние 4. В состоянии 4 происходит движение модуля на минимальной скорости, которая составляет 20% от скорости Vmax . Как только конечное расстояние K’’ станет меньше чем минимально возможное перемещение, переходим в состояние STOP, т.е. передаем задаче управления двигателем нулевую скорость.
Для данной задачи можно сформировать таблицу действий.
Таблица 2.5 – таблица состояний для задачи MoveY
Состояние |
Вход |
Выход |
Действие |
1 |
СТОП |
- |
Если key=1 и |Kзад-Kтек|>FSD AND |Kзад-Kтек|<FSDH, то переход в состояние 3. Если key=1 и |Kзад-Kтек|>FSDH, то переход в состояние 2. Если key=1 и MD≤|Kзад-Kтек|<FSD, то переход в состояние 4 |
2 |
v=200 мм/c Выбор скоростного режима HIGH и направления вращения ДПТ ROTATION |
- |
Если key=1 и |Kзад-Kтек|<FSDH, то переход в состояние 3 |
3 |
v=160 мм/c Выбор скоростного режима MIDDLE и направления вращения ДПТ ROTATION |
- |
Если MD<=K’<FSD, то переход в состояние 4 |
4 |
v=40 мм/c; Выбор скоростного режима LOW и направления вращения ДПТ ROTATION |
Сообщение модулю нулевой скорости |
Если ЕMD>K’’, то переход в состояние 1 |
