Дипломная работа
На тему:
«Система сканированияи стабилизации изображения»
Содержание
Введение
1. Постановка задачи
1.1 Общая формулировказадачи
1.2 Системы координатсамолёта
1.2.1 Географическаясистема координат
1.2.2 Система координатцентра масс самолёта
1.2.3 Самолётная системакоординат
1.2.4 Взаимосвязьразличных систем
2. Математическая модель
2.1 Функционированиесистемы
2.1.1 Измерители угловойскорости
2.1.2 Датчики угла
2.1.3 Двигатели
2.2 Моделирование работысистемы
3. Алгоритм управления поодной оси
3.1 Алгоритм управления поодной оси
3.1.1 Алгоритмстабилизации при наведении на определённую цель
3.1.2 Алгоритмстабилизации при сканировании
3.2 Реализация алгоритма
Заключение
Приложение
Список использованнойлитературы
аэрофотосьемкаизображение сканирование стабилизация
Введение
Аэрофотосъёмка — фотографированиетерритории с высоты от сотен метров до десятков километров при помощи аэрофотоаппарата,установленного на атмосферном летательном аппарате (самолёте, вертолёте, дирижаблеи пр. или их беспилотном аналоге).
Аэрофотоаппара́т (АФА) — специализированныйоптико-механический прибор для аэрофотосъёмки, установленный на атмосферном летательномаппарате.
Особенности АФА
Значительное удаление от объектовсъёмки, зачастую низкая температура окружающей среды и высокая влажность (из-завысоты съёмки), сильные динамические механические нагрузки (вследствие полёта),быстрая смена объектов съёмки —снимаемой территории —накладывают отпечаток на особенностиаэрофотоаппаратов: большой формат кадра, высокая скорость съёмки (скорость работызатвора и перемотки фотоплёнки в плёночных аппаратах), наличие аммортизирующегомеханизма или пространственно стабилизированной платформы (например, гироплатформы),большое фокусное расстояние объектива и большая светосила, высокая геометрическаяточность объектива, работа в автоматическом режиме по программе, задаваемой с командногопульта, а в последнее время и наличие комплекса спутникового позиционирования дляопределения координат центров проектирования.
Первый в мире АФА для маршрутнойи площадной съёмки с самолёта был изобретён русским военным инженером В. Ф. Потте.Фотоаппарат полковника Поте В. Ф. был создан специально для съемки с самолёта. Егоиспытания прошли летом 1911 г. на Гатчинском аэродроме. Это был первый в мире полуавтоматическийплёночный аэрофотоаппарат с однодисковым затвором. Цикл работы аэрофотоаппаратаосуществлялся автоматически. Съёмка проводилась на катушечную фотопленку с форматомкадра 13 х 18 см. Объектив имел фокусное расстояние 21 см и относительное отверстие1:4,5. Во время Первой мировой войны аэрофотоаппарат использовался для разведывательныхаэрофотосъёмок. Конструкция фотоаппарата Потте в то время была лучшей в мире. Ониспользовался в нашей стране до конца 1920-х годов. Им были выполнены первые производственныеаэрофотосъёмки с целью создания топографических карт.
Полученные при аэрофотосъемке снимкиособенно применимы в картографии, определении границ землевладений, видовой разведке,археологии, изучении окружающей среды, производстве кинофильмов и рекламных роликови др.
Аэрофотосъемка имеет несколько важныхвозможностей для съемки заданной местности. Плоскость аэрофотоаппарата может заниматьгоризонтальное или наклонное положения. Эти аэрофотосъемки называются плановымии перспективными соответственно. Так же возможно фотографирование на цилиндрическуюповерхность или вращающимся объективом. Такая съемка называется панорамной.
В основном, аэрофотосъемка выполняетсяоднообъективным фотоаппаратом, но если требуется увеличить площадь снимка, используютсямногообъективные аэрофотоаппараты.
Фотографирование могут производитьодиночными аэроснимками, по определённому направлению или по площади. Последниеназванны маршрутными и площадными аэрофотосъеками соответственно.
/>Для корректного прокладывания маршрута при аэрофотосъемке частьучастка местности, сфотографированного на одном снимке, обязательно должна бытьфотографированна и на другом. Эту особенность аэрофотоснимков называют продольнымперекрытием. Продольное перекрытие — это отношение площади, сфотографированной надвух соседних снимках, к площади, изображенной на каждом отдельном снимке, выраженноев процентах. Обычно значение продольного перекрытия на аэрофотоснимках составляет60%, хотя в особенных случаях данные значения могут быть изменены в соответствиямис требованиями к этим снимкам.
Если требуется провести аэрофотосъемкуобширного по ширине участка, то фотографирование заданной площади производят сериейпараллельных маршрутов, также имеющих между собой поперечное перекрытие. В даннойфотосъемке стандартное значение перекрытия обычно составляет 30%.
Для проведения аэрофотосъемки задаетсявысота полёта относительно фотографируемой местности, фокусное расстояние камерыаэрофотоаппарата, сезон, время и порядок прокладывания маршрутов.
1. Постановка задачи
1.1 Общая формулировка задачи
СПСИ – система приводов стабилизацииизображения, используемая на самолёте при сканировании поверхности Земли. В даннойдипломной работе будет описано устройство данной системы, составлена математическаямодель.
Задачей данного дипломного проектаявляется разработка алгоритма стабилизации изображения по одной оси при сканированииизображения по этой оси. А также программная реализация данного алгоритма на языкеС++.
1.2 Системы координатсамолёта
1.2.1 Географическая системакоординат
Земная базовая систем координат OgXg0Yg0Zg0. Эта система координат ориентирована по основным направлениямна поверхности Земли. Начало систем Og координат фиксировано и связано с некоторой точкой на поверхностиЗемли, принадлежащей маршрутной траектории самолёта. Ось OgXg0 расположена в плоскости горизонта и всегда направлена на Север.Ось OgYg0 перпендикулярна осиOgXg0 и направлена по вертикалиместа вверх. Ось OgZg0 перпендикулярна плоскостиOgXg0Yg0 и ее положительное направление выбирается таким образом, чтобысистема координат была правой. Эта система координат используется при анализе траекторийдвижения центра масс самолёта.
1.2.2 Система координат центрамасс самолёта
Вторая координатная система OXgYgZg — полусвязанная неподвижная система координат.Она характеризуется тем, что ее начало всегда совмещено с центром масс самолётаи перемещается с ним в пространстве. Оси полусвязанной неподвижной системы координатпри произвольном движении самолёта всегда остаются параллельными сами себе. Координатныеоси полусвязанной системы координат либо параллельны соответствующим осям базовойсистемы координат так, как показано на рис. 1, либо повернуты в горизонтальной плоскостина постоянный угол курса самолёта.
1.2.3 Самолётная системакоординат
Третья координатная система OXYZ,используемая при математическом описании движения самолёта, полностью связана сего корпусом, перемещается и вращается вместе с ним. Поэтому такая система получиланазвание подвижной или связанной системы координат. Начало 0 связанной системы осейкоординат помещено в центр масс (ц.м.) самолета, ось 0X направлена от хвостовойк носовой части самолета, ось 0Y перпендикулярна оси 0X и направлена вверх в плоскостисимметрии, ось 0Z перпендикулярна плоскости симметрии самолета и направлена в сторонуправой консоли крыла.
/>
Рис.2.1 Связанная система координат самолёта
Ориентация связанной системы координатотносительно полусвязанной неподвижной системы координат определяется тремя угламиЭйлера: угол рысканья ψ; угол тангажа θ; угол крена γ.
Углом рыскания ψ называетсяугол между осью OXg и проекцией осиOX связанной системы координат на горизонтальную плоскость OXgZg.
Углом тангажа θ называется уголмежду горизонтальной плоскостью OXgZg и продольной осью OX самолёта.
Углом крена γ называется уголмежду вертикальной плоскостью OXgYg и диаметральнойплоскостью самолёта OXY.
/>
Рис.2.2 Углы рыскания, тангажа и кренасамолёта
1.2.4 Взаимосвязь различных систем
/>
Рис.2.3 Схема, поясняющая взаимодействие трехсистем координат: географической, центра масс самолета и самолетной
Заданную угловую ориентацию самолётаотносительно осей полусвязанной неподвижной системы координат можно получить, выполнивтри последовательных поворота, которые следует проводить в предположении, что вначальный момент углового движения самолёта координатные оси OXgYgZg и OXYZ совпадают.
Первый поворот на угол ψ осуществимотносительно оси OYg (в начальный моментвремени с ней совпадает ось OY). При этом оси OX и OZ, оставаясь в плоскости OXgZg, займутнекоторое промежуточное положение OX' и OZ'.
Пусть /> — направляющие орты полусвязаннойнеподвижной системы координат OXgYgZg; /> - направляющие ортыпромежуточной системы координат OX'YgZ'.
Направляющие орты /> связаны с ортами /> следующими соотношениями:
/> (1)
Это координатное преобразование задаетсяс помощью так называемой матрицы направляющих косинусов, которая в данном случаеимеет вид
/> (2)
Другая (векторно-матричная) формазаписи системы равенств(1)
/>. .
Второй поворот осей координат произведемотносительно оси OZ' на угол θ. В результате чего координатные оси OX' и OYg займут положение OX'' и OY''. Направляющиеорты /> второй промежуточной системыкоординат OX''Y''Z' связаны с ортами /> следующимиравенствами
/>(3)
Здесь матрица направляющих косинусовимеет вид
/>(4)
и тогда уравнения (3) можно переписатьв векторно — матричной форме
/>
Третий поворот координатных осейосуществим относительно оси OX'' на угол γ. При этом ось OY'' займет положение OY, а ось OZ' — OZ, ось OX'' совпадет сосью OX. Орты /> связаннойсистемы координат определяются через орты промежуточной системы координат OX''Y''Z' с помощью равенств
/>(5)
Матрица направляющих косинусов третьегоповорота координатной системы в соответствии с (5) будет
/> (6)
а уравнения (5) в векторно — матричнойформе записи перепишутся следующим образом
/>.
С учетом полученных выше равенствпоследовательно получаем,
/>/>
где /> -это матрица преобразований векторных величин, заданных в полусвязанной неподвижнойсистеме координат OXgYgZg, в векторные величины в связанной системе координат OXYZ. Непосредственноевычисление матрицы A дает следующийрезультат
/>
Здесь следует отметить, что матрицаA является ортогональной, т.е. />.
2. Математическая модель
2.1 Функционирование системы
СПСИ – система приводов стабилизацииизображения. Ниже на рисунке приведена схема данной системы.
/>
Рис 3.1.1 Схема СПСИ.
С помощью зеркала и объектива происходитсканирование поверхности Земли c самолета во времяполёта. При сканировании зеркало вращается с некоторой угловой скоростью между заданнымиуглами, а с помощью объектива происходит фиксирование изображения.
При этом во время полёта самолётнеустойчив и происходят колебания относительно осей вращения. Углы рыскания, тангажаи крена постоянно меняются. Поэтому для получения правильного изображения необходимотакже изменять положение зеркала. Для этого имеются специальные приводы по разнымосям зеркала. Они вращаются с помощью двигателей ДБМ. Информацию о необходимом углеповорота по данной оси получают с помощью датчиков угловой скорости – ДУС, а такжес помощью датчиков угла – ДУ.
ОЭП-ЛМД – фотоприёмник.
Все устройства связаны по интерфейсуRS-485.
/>
Рис 3.1.2 Схема подключения по RS-485.2.1.1 Измерители угловой скорости
Датчик ТИУС700 содержит в себе источниксвета (суперлюминесцентный диод СЛД), деполяризатор, три фото- приемных устройства(УФП), волоконные разветвители (1:1 и 1:2), разделяющие излучение на три канала,три кольцевых интерферометра Саньяка, чувствительных к трем ортогональным осям,и блока электроники, предназначенного для управления режимом работы СЛД, обработкисигналов с фотодетектора, управления фазовым модулятором и передачи информации овеличине угловой скорости по интерфейсу RS-485.Кольцевой интерферометр Саньяка состоит из многофункциональногоинтегрально-оптического элемента (МИОЭ) и волоконного контура.
В ТИУС используется один излучательна три волоконных контура. Использование трех УФП позволяет вести непрерывную обработкусигнала с трех каналов независимыми блоками цифровой обработки (БЦО). Каждый изБЦО формирует напряжения для получения пилообразной компенсирующей ступенчатой модуляциисвета для компенсации разности фаз Саньяка и для внесения постоянного фазового сдвигамежду встречными световыми волнами на π/2 рад, с помощью вспомогательной фазовоймодуляции.
Аналоговый сигнал о наличии угловойскорости (сигнал рассогласования) с УФП поступает на аналогово-цифровой преобразовательАЦП. Высокоскоростной АЦП под управлением цифрового автомата, реализованного наПЛИС, преобразует аналоговый сигнал в цифровой и передает в ПЛИС. В ПЛИС цифровойсигнал с АЦП демодулируется и полученный цифровой код со знаком, соответствующийзнаку сигнала рассогласования, поступает на цифровой интегратор. Код с итегратораиспользуется для получения наклона фазовой «пилы», соответствующего скорости вращения.Преобразованный в цифро-аналоговом преобразователе (ЦАП) сигнал в виде ступенчатогопилообразного напряжения поступает на МИОЭ. Контур обратной связи замыкается с помощьюпилообразной фазовой модуляции. Амплитуда фазовой модуляции автоматически поддерживаетсяу значения /> рад. В этом случае, как известно,разность фаз Саньяка компенсируется сигналом с частотой f, определяемой соотношением:
/>,
где Ω — скорость вращения,D-диаметр ВК, n – эффективный показательпреломления моды в волокне, λ – длина волны в вакууме.
В приборе используются два способаопределения скорости вращения.
В первом способе происходит непосредственноеизмерение частоты следования спадов «пилы». При этом, появление каждого спада соответствуетприращению угла поворота канала ТИУС вокруг оси, перпендикулярной ВК, на />//>рад.
Для увеличения разрешающей способностиприбора применяется способ измерения скорости вращения по наклону фазовой «пилы».Этот способ реализован для исполнения приборов с интерфейсом RS-485./>
2.1.2 Датчики угла
Принцип работы преобразователей угловыхперемещений основан на регистрации относительной величины прошедшего через растровоесопряжение потока оптического излучения как координатной-периодической функции взаимногоуглового положения регулярного растра шкалы и растров окон анализатора.
Преобразователь имеет два кинематическисвязанных функциональных звена: радиальную растровую шкалу 1, жестко связанную свалом преобразователя, и растровый анализатор 2 неподвижного считывающего узла.Радиальная растровая шкала (далее везде лимб) содержит две концентрические информационныедорожки: регулярного растра и референтной метки Б.
Растровый анализатор содержит окнаинкрементного считывания и референтную метку Д. Окна позиционно согласованы с дорожкойрегулярного растра лимба и имеют внутри растры A, А, B, В с шагом, равным шагу регулярногорастра лимба. При этом, в каждой паре окон растры смещены друг относительно другана величину равную половине их шага, а взаимный пространственный сдвиг растров междупарами окон составляет четверть шага растров. Последовательно с растровыми окнамирасположено прозрачное окно Г. Референтная метка Д позиционно согласована с дорожкойреферентных меток лимба. Считывающий узел решает задачу реализации оптических растровыхи кодовых сопряжений, информативно соответствующих величине углового перемещения,и задачу считывания, обработки и анализа текущих значений оптически информативныхпараметров указанных сопряжений.
/>
Рис
/>
Рис
Конструктивно эти задачи решает инкрементныйузел преобразователя перемещений. Первую из них решает механическая часть этогоузла, обеспечивая необходимую точность растрового сопряжения лимба и анализатора,а также сносность последних по отношению к оси вращения вала. Вторую — реализуютосветители, фотоприемники и плата электрической схемы выделения и обработки информациио перемещении. Излучающий диод 3, конденсор 7, формирующий параллельный пучок лучейосветителя, окна А, А, В, В анализатора и фотоприемник 6 образуют так называемыйканал считывания. Требование повышенной точности преобразователей перемещений диктуетприменение двух или четырех диаметрально расположенных каналов считывания./>
2.1.3 Двигатели
Двигатель ДБМ (Двигатель БесконтактныйМоментный) изначально проектировался для создания на их основе малогабаритных безредукторныхсистем. Конструктивно двигатель ДБМ представляет собой электрическую машину встраиваемоготипа (поставляется в виде двух отдельных компонентов — статора и ротора). При этомнеобходимое взаимное положение и крепление статора и ротора должно обеспечиватьсяконструкцией механизма, в который встраивается двигатель. По типу электрическоймашины двигатель ДБМ относится к классу вентильных электродвигателей.
Электропривод серии ЭДБМ представляетсобой функционально завершенное устройство, интегрированное в единую конструкцию,включающее в себя электродвигатель встраиваемого (ДБМ), систему управления и датчикположения ротора.
/>/>
Рис.1Вид электропривода состороны блока управления. Рис.2. Вид электропривода со стороны двигателя
Электропривод имеет сквозное осевоеотверстие, что позволяет применять его в конструкциях с проходным валом. Небольшойразмер в осевом направлении позволяет легко встраивать электропривод в различныеустройства и агрегаты./>2.2 Моделирование работысистемы
Рассмотрим более подробно работуданной системы.
Сигналы управления приводами вырабатываютсяпошагово: шаги задаются моментами приема информации, поступающей с периодом 12.8мс.
Вся активная работа приводов разделяетсяна отдельные фазы, из них выделяется фаза сканирования, остальные фазы относятсяк вспомогательному движению. Длительность всех фаз занимает целое число шагов.
Вначале работы система ожидает сигнал- «начало шага».
Когда сигнал «начало шага»принят, то осуществляется прием и преобразование данных, необходимых на каждом шаге.К этой информации относятся: — угол крена, угол тангажа, угол рыскания, высота полёта,скорость самолёта. Период приёма этой информации 12.8 мс – этим определяется длинашага.
Затем происходит приём следующихданных – параметр перекрытия, угол захвата – угловой размер снимаемой полосы.
После этого производится планированиесъемки. Определяются основные опорные точки:
1) Начальное положение;
2) Стартовая точка;
3) Начало сканирования;
4) Конец сканирования.
Вся активная работа приводов разделенана следующие фазы:
1) Начальная установка (setup, движениеОЭП (изображения) из произвольного положения в точку старта, которая несколько отличаетсяот точки – начало сканирования);
2) Топтание на месте (marktime, ожиданиеначала съёмки в точке старта);
3) Разгон (start, движение ОЭП източки старта в точку – начало сканирования, осуществляется при подаче сигнала “Съемка”);
4) Сканирование (scan, движение ОЭПиз точки – начало сканирования в точку — конец сканирования);
5) Реверс (revers, движение ОЭП източки – конец сканирования в точку — начало сканирования);
6) Возвращение в исходное состояние(reset, движение ОЭП из точки – конец сканирования в точку начального положения).
Для каждой фазы движения приводов(кроме фазы Топтание на месте) рассчитывается ее продолжительность в виде числашагов отводимых на ее выполнение:
1) N_setup;
2) N_start;
3) N_scan;
4) N_revers;
5) N_reset.
По окончании планирования начинаетсяфаза — “начальная установка”.
Принимаются и преобразуются данныес датчиков угловой скорости и с датчиков углового положения.
По данным, полученным ранее, и податчикам угловой скорости аппарата пошагово вычисляются матрицы поворота горизонтальнаясистема координат связанная система координат.
В течение N_setup шагов происходитдвижение изображения ОЭП из исходного положения в стартовое положение:
Следующей устанавливается фаза “топтаниена месте”. В течение неопределенного количества шагов, пока не получен сигнал «Съемка»,производится удержание изображения ОЭП в стартовом положении, не смотря на возмущение.
При получении сигнала «Съемка»начинается фаза “разгон”. В течение N_start шагов приводы разгоняются из стартового положения до положения- начало сканирования.
Следующая фаза – фаза “сканирование”,в течение N_scan шагов осуществляетсясканирование:
После сканирование, если сигнал «Съемка»есть, то начинается следующая фаза — “реверс”. В течение N_reversшагов приводы совершают реверсивное движение доположения — начало сканирования,- и опять начинается фаза сканирования.
Если же после сканирования сигнал«Съемка» отсутствует, то начинается фаза “возвращение”. В течение N_resetшагов приводы возвращают изображение ОЭП в начальное положение.
Теперь опишем принцип управленияприводом:
1. Сигналы управления приводом.
На вход контроллера периодически(с периодом dT = 12.8 мс) подаём рассчитанные нами:
— значения углов поворота ротораUA(n) в радианах;
— значения угловой скорости UW(n).
2. Контроллер работает с тактом,имеющим период dt = 1 мс. На каждом такте – i, />,где /> (ceil(x) – наименьшее целоечисло, не меньшее x), контроллер пересчитывает воздействия по формулам:
/>
То есть контроллер экстраполируетполученные значения на весь интервал до получения следующего значения.
3. Контроллеру доступны квантованныеданные датчика угла поворота ротора – qA(i).
4. Каждый такт i контроллер вычисляетсигнал управления приводом
/>,
(m=2,…,10).
Здесь Ka и Kw коэффициенты. Воздействиевычисляется как функция от разности реального и требуемого угла поворота ротораи разности реальной и требуемой угловых скоростей.
5. Модель управления приводом имеетвид:
/>
где A(i) – истинный угол поворотаротора;
W(i) – истинная угловая скорость.
То есть угловая скорость и угол корректируютсяс учётом отличия от требуемого значения.
Теперь продемонстрируем графическисканирование.
Пусть нужно совершить два скана.На рисунке 3.2.1 изображён график требуемого углового движения ротора относительноЗемли. На графике разными цветами: синим и красным отделены этапы работы привода.Сначала начальная установка, затем разгон, затем сканирование, реверс, второе сканированиеи возвращение в исходное состояние.
/>
Рис 3.2.1 График углового движения ротора относительноЗемли
Нам необходимо, чтобы на этапе сканированияграфик изменения угла был линейным угол изменялся от -0.3 радиан до 0.3 радиан за10 секунд. То есть />.
Будем считать, что на остальных фазахизменение квадратичное. При начальной установке: />/>, т.к. при t = 0 угол равеннулю, то С1 = 0.
При разгоне: />.
При реверсе: />.
При возвращениив исходной состояние: />.
В итоге нам нужно найти 11 неизвестныхкоэффициентов для построения графиков. Фаза начальной установки длится с 0 по 1секунды. Затем с 1 по 2 секунды разгон; со 2 по 12-ю и с 16 по 26-ю секунды идётсканирование; с 12-й по 16-ю идёт реверс. И с 26-й по 27-ю секнды. Возвращение висходное состояние. Найдём коэффициенты из условий:
/>
При начале сканированиидолжна быть уже достигнута угловая скорость, с которой производится сканирование,поэтому производные угла в конце фазы реверса и разгона должны быть равны производнойугла во время сканирования, то есть 0.06.
Составим системууравнений из этих условий:
/>
Из уравнения находимкоэффициенты и строим данный график.
/>
Рис 3.2.2 График угловых колебаний платформыотносительно Земли
На рисунке 3.2.2 показан график измененияугла платформы относительно Земли. Этот график моделирует колебания самолёта вовремя полёта. На нём также выделены этапы работы.
Этот график является случайным, егобудем строить как произведение функции косинуса на степенную функцию со случайнымикоэффициентами.
/>
Рис 3.2.3 График углового движения ротора относительноплатформы
На последнем рисунке 3.2.3 показанграфик углового движения ротора относительно платформы. Система стабилизации скомпенсировалаколебания платформы, чтобы выполнялось требуемое движение ротора относительно Земли.График является разностью между первым и вторым графиком.
Приведём код вычисления значенийпервого и второго графиков:
A = [1 1 0 00 0 0 0 0 0 0;
2 1 0 0 0 00 0 0 0 0;
0 0 1 1 1 00 0 0 0 0;
0 0 4 2 1 00 0 0 0 0;
0 0 4 1 0 00 0 0 0 0;
0 0 0 0 0 14412 1 0 0 0;
0 0 0 0 0 25616 1 0 0 0;
0 0 0 0 0 321 0 0 0 0;
0 0 0 0 0 00 0 676 26 1;
0 0 0 0 0 00 0 54 1 0;
0 0 0 0 0 00 0 729 27 1];
b = [-0.35 0-0.35 -0.3 0.06 0.3 -0.3 0.06 0.3 0 0];
for i=1:11
k(i) = det([A(:,1:(i-1))b' A(:,(i+1):11)])/det(A);
end
a1=k(1);b1=k(2);a2=k(3);b2=k(4);c2=k(5);a3=k(6);b3=k(7);c3=k(8);a4=k(9);b4=k(10);c4=k(11);
for i=1:2701
t(i) = (i-1)/300;
m = t(i);
x1(i) = (k(1)*m^5- k(2)*10 * m^4 + k(3)*100 * m^3 — k(4)*1000 * m^2 + k(5)*10000 * m — k(6)*100000)* cos(m * 3);
end
x1 = x1 / max(x1)* (0.01 + 0.015 * rand);
3. Алгоритм управления по одной оси
3.1 Алгоритм управления по одной оси
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. Видно, что данная ошибка достаточно мала по сравнению со значениямиуглов.
/>
Рис 4.2.3 График ошибки углового положенияротора
Теперь найдём значения отклоненияположения луча от точки А, в которой он должен находится.
У нас есть формула, которая определяетзначение угла поворота ротора, в зависимости от того в какую точку указывает луч:
/>, где х – координата точки.
Из этой формулымы можем найти значение х, подставляя в качестве φ значение углового положенияплатформы в данный момент, а в качестве α – значение реального угла поворотаротора в данный момент:
/>
На рисунке 4.2.4показан график изменения ошибки. Максимальная ошибка получилась меньше 1мм.
/>
Рис 4.2.4 График отклонения положения лучаот точки А
/>Заключение/>
В представленной дипломной работебыла описана система сканирования и стабилизации изображения.
Рассмотрены системы координат, используемыепри описании движения самолёта, такие как: географическая система координат, системакоординат центра масс самолёта и самолётная система координат. А также выведенаформула перехода из координат центра масс к координатам самолётной системы.
Описаны принципы функционированияданной системы, алгоритм её работы. Проведено моделирование результатов работы системыпо описанному алгоритму.
Были разработаны алгоритмы стабилизациипо одной оси при сканировании по этой оси и наведении на цель, а также программнаяреализация этих алгоритмов.
Получены результаты работы данныхалгоритмов.
Приложение
void CDiplom1Dlg::OnBnClickedStartButton()
{
int iInstallResult;
double ft;
iInstallResult=SetTimer(1,10, NULL);
if(iInstallResult==FALSE)
{
MessageBox((LPCTSTR)L«Cannotinstall timer»,
(LPCTSTR)L«Errormessage»,
MB_OK+MB_ICONERROR);
}
m_XPrev = m_Graph.left+ 5;
m_XPrev2 = m_Graph3.left+ 5;
m_YPrev = m_Graph.bottom- 5 * 16 — 2 — 60;
m_YPrev3 = m_Graph3.bottom- 5 * 16 — 2;
m_YPrev4 = m_Graph4.bottom- 5 * 16 — 2;
ft = atan( sin(3.1415926/6)/(4- cos(3.1415926/6)) );
m_ftPrev = 30;
m_YPrev2 = m_Graph2.bottom- 5 * 16 — 2 + 2 * (unsigned long)floor(ft*57.29578);
OnBnClickedClearButton();
DrawGrid(1);
DrawGrid(2);
DrawGrid(3);
DrawGrid(4);
m_Time = 0;
}
void CDiplom1Dlg::OnTimer(UINT_PTRnIDEvent)
{
double ft,t,t1,ft1,ft2,w,fi,dx;
m_Time += 0.01;
t = m_Time;
t1 = t;
ft = 30 * exp(-0.2*t)* cos(t*(2*3.1415926));
ft1 = — atan(sin(ft * 3.1415926/180)/(4 — cos(ft * 3.1415926/180)) );
w = (- 6 * exp(-0.2*(t-0.01))* cos((t-0.01)*(2*3.1415926)) -
30 * (2*3.1415926)* exp(-0.2*(t-0.01)) * sin((t-0.01)*(2*3.1415926)) ) * 3.1415926/180;
fi = m_ftPrev* 3.1415926/180 + w / 100;
ft2 = — atan(sin(fi)/(4 — cos(fi)) );
dx = sin(ft* 3.1415926/180) — tan(-ft2) * (4 — cos(ft * 3.1415926/180));
if ((fmod(t,0.0625)0.0575))
{
m_XNext = m_XPrev+ 1;
m_XNext2 = m_XPrev2+ 1;
m_YNext = m_Graph.bottom- 5 * 16 — 2 — 2*(unsigned long)floor(ft);
m_YNext2 = m_Graph2.bottom- 5 * 16 — 2 — (unsigned long)floor(2*ft2*57.29578);
m_YNext3 = m_Graph3.bottom- 5 * 16 — 2 — (unsigned long)floor(80*(ft1-ft2)*57.29578/0.025);
m_YNext4 = m_Graph4.bottom- 5 * 16 — 2 — (unsigned long)floor(80*1000*dx);
DrawLine();
m_XPrev = m_XNext;
m_XPrev2 = m_XNext2;
m_YPrev = m_YNext;
m_YPrev2 = m_YNext2;
m_YPrev3 = m_YNext3;
m_YPrev4 = m_YNext4;
}
m_ftPrev = ft;
if (m_XNext== m_Graph.left + 245)
OnBnClickedStopButton();
CDialog::OnTimer(nIDEvent);
}
void CDiplom1Dlg::DrawGrid(intnumG)
{
unsigned longy_b;
unsigned longy_t;
unsigned longx_l;
unsigned longx_r;
unsigned longx[16],y[11],f[11],s1,s2;
double dx,dy;
int i;
if (numG ==1)
{
y_b = m_Graph.bottom- 2;
y_t = m_Graph.top- 2;
x_l = m_Graph.left+ 5;
x_r = m_Graph.right;
}
if (numG ==2)
{
y_b = m_Graph2.bottom- 2;
y_t = m_Graph2.top- 2;
x_l = m_Graph2.left+ 5;
x_r = m_Graph2.right;
}
if (numG ==3)
{
y_b = m_Graph3.bottom- 2;
y_t = m_Graph3.top- 2;
x_l = m_Graph3.left+ 5;
x_r = m_Graph3.right;
}
if (numG ==4)
{
y_b = m_Graph4.bottom- 2;
y_t = m_Graph4.top- 2;
x_l = m_Graph4.left+ 5;
x_r = m_Graph4.right;
}
CClientDC dc(this);
dx = (x_r — x_l) / 15;
dy = (y_b — y_t) / 10;
s1 = floor(dx);
s2 = floor(dy);
COLORREF m_PenColor= RGB(0,0,255);
CPen m_Pen;
m_Pen.CreatePen(2/*PS_SOLID*/,1, m_PenColor);
dc.SelectObject(&m_Pen);
for (i=0;i
{
x[i] = x_l +i * s1;
y[i] = y_b — i * s2;
}
for (i=11;i
x[i] = x_l +i * s1;
for (i=0;i
{
dc.MoveTo(x[i],y[0]);
dc.LineTo(x[i],y[10]);
dc.MoveTo(x[0],y[i]);
dc.LineTo(x[15],y[i]);
}
for (i=11;i
{
dc.MoveTo(x[i],y[0]);
dc.LineTo(x[i],y[10]);
}
m_Pen.DeleteObject();
m_Pen.CreatePen(PS_SOLID,1, m_PenColor);
dc.SelectObject(&m_Pen);
dc.MoveTo(x[0],y[0]);
dc.LineTo(x[0],y[10]);
dc.MoveTo(x[0],y[5]);
dc.LineTo(x[15],y[5]);
m_Pen.DeleteObject();
m_ResultsEdit.Format(L«bottom= %d, top = %d, left = %d, right = %d, dx = %d, dy = %d»,y_b,y_t,x_l,x_r,s1,s2);
UpdateData(FALSE);
}
void CDiplom1Dlg::DrawLine(void)
{
CClientDC dc(this);
COLORREF m_PenColor= RGB(255,0,0);
CPen m_Pen;
m_Pen.CreatePen(0,1, m_PenColor);
dc.SelectObject(&m_Pen);
dc.MoveTo(m_XPrev,m_YPrev);
dc.LineTo(m_XNext,m_YNext);
dc.MoveTo(m_XPrev,m_YPrev2);
dc.LineTo(m_XNext,m_YNext2);
dc.MoveTo(m_XPrev2,m_YPrev3);
dc.LineTo(m_XNext2,m_YNext3);
dc.MoveTo(m_XPrev2,m_YPrev4);
dc.LineTo(m_XNext2,m_YNext4);
m_Pen.DeleteObject();
}
список использованной литературы
1.Самарский А. А., Михайлов А. П. «Математическое моделирова-
ние:Идеи. Методы. Примеры» Физматлит, 2001 г, 320 с;
2.aqua.sm.bmstu.ru/study/student/Library/CoodrSys.htm;
3.Проектирование следящих систем. Колл. авторов. Под ред. Л.В. Рабиновича.М.: Машиностроение,1969.-500 с.
4.Следящие приводы. В 2-х кн. Под ред. Б.К. Чемоданова.-М.: Энергия, 1976.-384 с.,ил.
5.ru.wikipedia.org;
6.www.optolink.ru;
7.www.modem-techno.ru;
8.www.skbis.ru.