WinWord 2Mb

advertisement
Управления движением тележки на основе шагового
двигателя с помощью ЭВМ
Горячев Павел
Работа данной установки основана на принципе управления шаговым двигателем
сигналами, поступающими через LPT порт компьютера.
Состав установки.
- блок питания (БП),
- микросхемный коммутатор переключения обмоток двигателя,
- тележка,
- программное обеспечение.
Рис. 1. Внешний вид комплекса
Внешний вид комплекса приведен на рис. 1.
Механическая часть достаточно простая.
Тележка состоит из металлической платформы, на которой закреплены шаговый
двигатель, на оси которого располагается ведущее колесо с резиновой шиной (для лучшего
сцепления с дорогой) и ведомые пластмассовые колёса (рис. 2). На платформе так же
закреплен разъем через который шаговый двигатель соединяется с коммутатором. Шаговый
двигатель рассчитан на напряжение 12 В.
Управление
движением
модели
осуществляется через LPT порт компьютера,
причём в управлении задействованы 4 разряда
порта. От LPT порта сигнал поступает на
плату коммутатора, к ней же подводится
питание от БП: 5 В для канала управления и 12
В для двигателя. Плата коммутатора
соединена с тележкой длинным, легким
плоским кабелем сечением 6 х 0,2 мм. Такой
кабель обеспечивает удобство эксплуатации
модели.
Для управления данной моделью была
написана программа на языке Q-Basic 4.5.. В
Рис. 2
качестве единиц измерения скорости и ускорения выбраны соответственно см/с и см/с2.
Программа может работать на любом компьютере с LPT портом, технические
параметры компьютера не влияют на скорость движения модели. Максимальная скорость
тележки - 35 см/с. Модель может двигаться в обе стороны, как назад, так и вперёд, причём
направление движения модели может изменяться и во время движения. Условием этого
является задание определённого ускорения модели.
После запуска программы на экран выводится крупными буквами надпись:
V=
пользователю предлагается ввести начальную скорость тележки, а также ускорение (ввести
закон изменения скорости). Формула изменения скорости тележки после ввода может
выглядеть так:
V = 25 – 3t
где 25 – начальная скорость движения тележки (см/с),
-3 – ускорение модели (см/с2).
После ввода тележка начинает двигаться с заданными параметрами.
Если начальная скорость равна нулю, то может вводится сразу ускорение модели,
например:
V = -2,5
Результатом является движение модели (тележки) со скоростью, изменяющейся по
заданному закону.
В приложении приведёна небольшая часть программы, отвечающая за движение
тележки вперёд с заданными скоростью и ускорением.
Программа состоит из следующих основных частей: ввод начальных данных, разгон
тележки до необходимой начальной скорости (не более 35 см/с), движение модели вперёд с
заданными скоростью и ускорение, движение назад с аналогичными параметрами.
Поскольку в программе может быть задано, как положительное, так и отрицательное
ускорение, то тележка с течением времени может изменять направление движения. В
программе предусмотрен переход между циклами движения назад и вперёд. На каждом
этапе проверяется текущий знак скорости, при его изменении автоматически осуществляется
переход к циклу противоположного направления движения модели.
В приложении приведена блок-схема данной программы, на которой видны все её
основные части.
Особенность шагового двигателя заключается в том, что при подаче напряжения на
его обмотки его ротор не постоянно вращается, а поворачивается на известный угол (шаг).
Переключая (коммутируя) обмотки соответствующим образом можно привести ротор во
вращение. Скорость вращения - это скорость переключения напряжения на обмотках
двигателя. У данного двигателя имеется две обмотки. Для изменения направления вращения
надо изменить порядок коммутации его обмоток.
Если сразу попытаться быстро переключать обмотки для движения с большой
начальной скоростью, то произойдет срыв вращения и тележка останется на месте. После
подачи первого импульса напряжения на обмотки необходимо некоторое время для того,
чтобы ротор двигателя успел повернуться на один шаг. Этому мешает инерционность ротора
и дополнительная нагрузка за счет взаимодействия колеса с поверхностью. Фактически если
нет проскальзывания, то инерция определяется всей массой тележки. ЭВМ достаточно
быстро выдает управляющие импульсы на обмотки двигателя поэтому после каждого
выданного импульса необходимо делать паузу, достаточную для поворота ротора на шаг.
Частота вращения ротора и соответственно скорость тележки определяются длительностью
этих пауз. Для разгона двигателя без срывов надо последовательно (по мере разгона)
уменьшать длительность этих пауз.
На низких скоростях (до 7 см/с) особенно заметно подёргивание тележки при
движении. На более высоких скоростях подёргивание практически незаметно.
Тележка может также двигаться с дополнительным грузом (до 500 грамм) не изменяя
характера движения. Груз оказывает сглаживающее действие на движение тележки на
низких скоростях, в следствие чего движение становится намного более плавным.
Программа работает следующим образом.
После ввода уравнения движения программа определяет величину начальной
скорости, направление движения и величину ускорения. Запускает таймер. С максимально
возможным ускорением разгоняет тележку до начальной скорости. Определяет время,
прошедшее с начала работы таймера. Подставляет это значение времени в формулу скорости
и рассчитывает необходимую (теоретическую) скорость. Сравнивает в данный момент
времени реальную скорость (она однозначно определяется длительностью пауз, как было
сказано выше) и теоретическую. Изменением частоты вращения приводит в соответствие
реальную скорость с теоретической. За секунду совершается 5 – 10 коррекций скорости.
Приложение
Часть текста программы
IF V > 0 THEN
PLUS1:
IF V2 = 1 THEN N = K / V2
FOR J = 1 TO 7000
OUT 888, 9: FOR I = 1 TO N: NEXT I
M=M+N
IF M >= 1.11111111# * K / 40 THEN
DD = M / (1.11111111# * K / 40)
V1 = K / N
V2 = V1 + (A / 40) * DD
IF V2 <= 1 THEN V2 = -1: GOTO MINUS1
N = K / V2
M=0
END IF
OUT 888, 8: FOR I = 1 TO N: NEXT I
M=M+N
IF M >= 1.11111111# * K / 40 THEN
DD = M / (1.11111111# * K / 40)
V1 = K / N
V2 = V1 + (A / 40) * DD
IF V2 <= 1 THEN V2 = -1: GOTO MINUS1
N = K / V2
M=0
END IF
OUT 888, 12: FOR I = 1 TO N: NEXT I
M=M+N
IF M >= 1.11111111# * K / 40 THEN
DD = M / (1.11111111# * K / 40)
V1 = K / N
V2 = V1 + (A / 40) * DD
IF V2 <= 1 THEN V2 = -1: GOTO MINUS1
N = K / V2
M=0
Download