Смекни!
smekni.com

Система сканирования и стабилизации изображения (стр. 4 из 5)

3.1.1 Алгоритм стабилизации при наведении на определённую цель

Пусть есть установка, показанная на рисунке. На платформе установлен двигатель с осью вращения в точке О1. Сама платформа может колебаться – при этом по оси О она неподвижна, то есть колебания происходят относительно оси О.

На платформе установлен измеритель угловой скорости. Положение платформы будем определять углом отклонения от горизонтали в положительном или отрицательном направлении.

На оси, на которой установлен двигатель, имеется также датчик угла, определяющий угловое положение. Угол определяется отклонением луча О1В от вертикали.

У нас заданы величины ОА – расстояние от точки О до цели, на которую будет наведение. И расстояние ОО1 - расстояние от точки О до оси вращения двигателя О1.

Нам необходимо компенсировать колебания платформы вращением двигателя так, чтобы луч О1В проходил через точку А. Это моделирует ситуацию с наведением на цель.

Рис 4.1.1 Схема установки


Будем считывать с интервалом ∆tпоказания с датчика угла и с измерителя угловой скорости, а также посылать сигнал на двигатель: угол поворота и угловая скорость.

Пусть вначале платформа находится в горизонтальном положении, а затем через время ∆tона повернулась на угол φ (рис. Н). Тогда чтобы луч О1В проходил через точку А нужно повернуть двигатель на угол φ против часовой стрелки до вертикального положения. А затем на угол α также против часовой стрелки.

Найдём угол α с помощью заданных величин ОА = h, ОО1 = r. А также

.

Из треугольника ОО1С находим:

,

Отсюда

.

Теперь можно найти tgα:

;

Отсюда находим

.

Получили, что двигатель должен совершить поворот на угол (α+φ) против часовой стрелки.

Рис 4.1.2 Нахождение угла поворота ротора на первом шаге


Далее пусть прошло ещё ∆tвремени. Пусть двигатель был повёрнут на угол α1 = α от вертикали. А за время ∆tплатформа повернулась на угол φ1 и отклонение платформы равно углу φ – сумме двух поворотов.

В положении 2 необходимый угол отклонения от вертикали луча О1В обозначим как α2. Угол α2 находится аналогично из величин h, r и угла φ:

.

Чтобы перейти из положения 1 в положение 2 с наведением на цель, необходимы следующим образом поворачивать двигатель: сначала по часовой стрелке на угол α1, затем против часовой стрелки на угол (α2 + φ). То есть повернуть против часовой стрелки на угол (φ + (α2 – α1)) = (φ + Δ α), где Δ α = α2 – α1.

Рис 4.1.3 Нахождение угла поворота ротора на произвольном шаге

Мы знаем, как рассчитать угол поворота двигателя. Нам нужно, чтобы прогнозировался угол поворота платформы через Δt.

Так как Δtу нас мало – порядка десятков миллисекунд, то можно вначале считать угловую скорость ω1 с измерителя угловой скорости, установленного на платформе. А затем считать, что угол Δφ, на который повернётся платформа в течение Δtравным ω1Δt.

Также мы будем считывать и показания датчика угла – φ1 – угол определяющий положение платформы.

Тогда мы считаем, что через Δtположение платформы будет определяться углом φ = φ1 + Δφ. И поэтому можно найти углы α1 и α2 по формулам:

;

.

И тогда нужно задать, что двигатель должен повернуться на угол α = α2 – – α1 + Δφс угловой скоростью ω = α / Δt.

Сформулируем алгоритм полностью:

1. Пусть начальное положение платформы горизонтальное и луч наведён на цель. Тогда φ = 0, α = 0, также заданы r и h;

Дальнейшие пункты повторяем при t = nΔt, где n = 0, 1, 2, …

2. Считываем угловую скорость платформы ω1;

3. Считываем положение платформы φ1;

4. Прогнозируем положение платформы через Δt: φ = φ1 + ω1Δt;

5. По формулам находим α1 и α2:

;
.

6. Подаем на двигатель значения угла, на который нужно совершить поворот и угловой скорости этого поворота: α = α2 – α1 + Δφ, ω = α / Δt.

3.1.2 Алгоритм стабилизации при сканировании

В данном случае установка остаётся такой же.

Теперь необходимо, чтобы луч О1В в момент времени t проходил через точку cкоординатой x, где x = x(t) – изменяется со временем по определённому закону в некотором интервале (слева и справа от точки А). Пусть начало координат – точка А. Это моделирует ситуацию сканирования.

Пусть вначале платформа находится в горизонтальном положении, а затем через время ∆tона повернулась на угол φ (рис. Н). Тогда луч О1В должен проходить через точку с координатой х = х(∆t) = ∆x. Для этого нужно повернуть двигатель на угол φ против часовой стрелки до вертикального положения. А затем на угол α также против часовой стрелки.

Найдём угол α с помощью заданных величин ОА = h, ОО1 = r. А также

.

Из треугольника ОО1С находим:

,

Отсюда

.

Теперь можно найти tgα:

;

Отсюда находим

.

Получили, что двигатель должен совершить поворот на угол (α+φ) против часовой стрелки


Рис 4.1.4 Нахождение угла поворота ротора на первом шаге.

Далее пусть прошло ещё ∆tвремени. Пусть двигатель был повёрнут на угол α1 = α от вертикали. А за время ∆tплатформа повернулась на угол φ1 и отклонение платформы равно углу φ – сумме двух поворотов.

В положении 2 луч проходит через точку х = x(2∆t) необходимый угол отклонения от вертикали луча О1В обозначим как α2. Угол α2 находится аналогично из величин h, r и угла φ:

.

Чтобы перейти из положения 1 в положение 2 при сканировании, необходимо следующим образом поворачивать двигатель: сначала по часовой стрелке на угол α1, затем против часовой стрелки на угол (α2 + φ). То есть повернуть против часовой стрелки на угол (φ + (α2 – α1)) = (φ + Δ α), где Δ α = α2 – α1.


Рис 4.1.5 Нахождение угла поворота ротора на произвольном шаге

Аналогично случаю с наведением на цель сформулируем алгоритм полностью:

1. Пусть начальное положение платформы горизонтальное и луч наведён на цель. Тогда φ = 0, α = 0, также заданы r и h;

Дальнейшие пункты повторяем при t = nΔt, где n = 0, 1, 2, …

2. Считываем угловую скорость платформы ω1;

3. Считываем положение платформы φ1;

4. Прогнозируем положение платформы через Δt: φ = φ1 + ω1Δt;

5. По формулам находим α1 и α2:

;
.

6. Подаем на двигатель значения угла, на который нужно совершить поворот и угловой скорости этого поворота: α = α2 – α1 + Δφ, ω = α / Δt.

3.2 Реализация алгоритма

Реализуем алгоритм стабилизации при наведении на цель. Пусть Δt= 10 мсек, r= 1 м, h = 4 м. На рисунке 4.2.1 изображён график изменения углового положения платформы.


Рис 4.2.1 График изменения углового положения платформы

Происходят затухающие колебания платформы. При этом необходимо, чтобы движения ротора компенсировали данные колебания.

Необходимое угловое положение ротора при заданном угловом положении платформы определяется по формуле:

. (4.2.1)

При этом мы не можем считать по этой формуле, так как положение платформы в следующий момент времени мы определяем с ошибкой по положению и угловой скорости платформы в данный момент времени. На рисунке 4.2.2 изображён график движения ротора с ошибкой.

Рис 4.2.2 График изменения углового положения ротора


На каждом шаге мы определяем отклонение углового положения ротора от идеального, определяемого формулой (4.2.1).

График изменения данной ошибки показан на рисунке 4.2.3. Видно, что данная ошибка достаточно мала по сравнению со значениями углов.