Мехатронная колебательная система с компьютерным управлением

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    642,83 kb
  • Опубликовано:
    2011-10-20
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Мехатронная колебательная система с компьютерным управлением

Санкт-Петербургский Государственный Политехнический Университет

Факультет Технической Кибернетики

Кафедра автоматики и вычислительной техники

ДИПЛОМНЫЙ ПРОЕКТ

Тема: Мехатронная колебательная система с компьютерным управлением.

Направление: 220200 - Автоматизация и управление

Специальность: 220201 - Управление и информатика в технических системах


Выполнил, студент гр.6081/2 Э.А. Сичевая

Руководитель, доцент А.Г. Леонтьев

Консультанты:

По экономике, к. э. н., доцент  Л.И. Горчакова

По безопасности жизнедеятельности  В.П. Малышев

По нормоконтролю С.А. Нестеров


Санкт-Петербург 2009

Реферат


стр.____, рис.39, табл.5, черт.2

ПРЯМОЕ КОМПЬЮТЕРНОЕ УПРАВЛЕНИЕ, ДВУЗВЕННЫЙ МИНИРОБОТ, СИСТЕМА, СЕРВОПРИВОД, ОБЪЕКТ УПРАВЛЕНИЯ, КОЛЕБАТЕЛЬНАЯ СИСТЕМА ТИПА "КАЧЕЛИ", ВСТРОЕННАЯ МОДЕЛЬ

Разработана система прямого компьютерного управления. Объектом управления является двузвенный мини-робот на качелях (колебательная система типа "качели"). В качестве исполнительного механизма используется сервопривод фирмы Hitec HS-85BB+. Обратная связь с объектом управления организована через встроенную программную модель.

Содержание

Реферат

Введение

1. Слабоуправляемые мехатронные колебательные системы

1.1 Понятие о слабоуправляемой динамической системе

1.2 Мехатронные колебательные системы

1.3 Постановка задачи

2. Разработка структуры мехатронной колебательной системы и ее аппаратного обеспечения

2.1 Структура и функциональная схема системы (компьютерное прямое управление через LPT порт)

2.2 Разработка принципиальных схем объекта управления

3. Математическая модель системы

3.1 Модель объекта управления в пакете MatLab

3.2 Модель системы управления с обратной связью

3.3 Особенности дискретной модели объекта управления

4. Разработка алгоритмов и программ прямого компьютерного управления электромеханическим объектом

4.1 Состав ПО

4.2 Структура ПО

4.3 Алгоритмы и программы прямого компьютерного управления

4.4 Экспериментальные исследования системы

5. Экономическое обоснование проекта

5.1 Назначение разработанной системы

5.2 Исходные данные

5.3 Расчёт затрат

5.4 Перспективы использования разработки

6. Охрана труда и техника безопасности

6.1 Введение

6.2 Основные вредные и опасные факторы при работе с компьютером и способы борьбы с ними

6.3 Расчет освещенности рабочих мест

6.4 Требования к параметрам дисплея

Заключение

Список использованных источников

Приложение 1. Техническое задание

Приложение 2. Описание программы

Приложение 3. Текст программы

Приложение 4. Программа и методика испытаний

Приложение 5. Текст программы тестовой модели

Приложение 6. Текст программы программного управления сервоприводом

Введение


Большинство существующих систем управления предполагает использование обратной связи для получения информации о текущем состоянии объекта, в соответствии с которой формируется сигнал управления. Однако в некоторых случаях снятие информации о положении объекта бывает затруднено. Сложности могут быть связаны с труднодоступностью объекта управления или с необходимостью дополнительных затрат на электронное согласование непосредственно системы управления и объекта управления. Такая задача становится актуальной при рассмотрении компьютерного управления.

Однако в случае сложных объектов программное управление неприемлемо. Здесь на помощь может прийти моделирование объекта. В частности, использование модели объекта для организации обратной связи.

1. Слабоуправляемые мехатронные колебательные системы


1.1 Понятие о слабоуправляемой динамической системе


Управляемость - одно из важнейших свойств системы управления, описывающее возможность перевода системы из одного состояния в другое. Наряду с наблюдаемостью, наличие этого свойства у объектов управления позволяет рассчитывать оптимальное управление с помощью простых математических операций.

Состояние линейной системы управляемо, если существует такой вход, который переводил бы начальное состояние в конечное состояние (начало координат) за конечный интервал времени. Для линейных систем существует критерий управляемости в пространстве состояний.

Пусть существует система порядка n с n компонентами вектора состояния), p входами и q выходами, записанная в виде:


Где


Здесь x - "вектор состояния", y - "вектор выхода", u - "вектор входа", A - "матрица системы", B - "матрица входа", C - "матрица управления", D - "сквозная матрица".

Для неё можно составить матрицу управляемости:


Согласно критерию управляемости если ранг матрицы управляемости равен , система является полностью управляемой.

В случае представления объекта управления моделью типа “вход - выход" условием его управляемости является отсутствие общих корней полиномов А (s) и B (s), то есть система управляема, если и только если алгебраические уравнения


не имеют общих корней.

Данное условие может быть проверено как непосредственным вычислением корней полиномов, так и косвенным путем.

Многочлены A (s) и B (s) передаточной функции H (s) =B (s) /A (s) имеют, по крайней мере, один общий корень, если их результант, то есть определитель порядка (m+n), det (R) =0, где матрица


Таким образом, система, описываемая передаточной функцией H (s) считается управляемой, если ее результант отличен от нуля. Результант имеет порядок m+n, где m - порядок числителя, n - порядок знаменателя.

Результант формируется следующим образом:

а) первые m строк результанта - коэффициенты полинома знаменателя ak (k=0,1,.,n). При этом коэффициенты rii=a0 (i=1,2.,m); вправо от а0 по строке записываются коэффициенты в строке - нулевые. Общее число коэффициентов в строке - (n+m).

б) следующие n строк результанта формируются аналогично с использованием коэффициентов полинома числителя bk (k=0,1,.,m).

Для дискретных систем, представленных в виде векторно-матричной модели, справедливо иное соотношение.

 (1.1.)

Состояние  системы (1.1.) управляемо, если и только если ранг матрицы |Ф-nГ Ф-n+1Г Ф-1Г| равен размерности пространства состояний n.

В том случае, если условие управляемости не выполняется, система является слабоуправляемой, или неуправляемой и точное решение задачи оптимального управления не представляется возможным. Для решения таких задач могут применяться приближенные методы [7], однако в общем случае унифицированного подхода не существует.

Другими словами, в слабоуправляемых системах обычно количество управляемых координат меньше количества степеней свободы. У них явно выражено собственное движение. Большинство колебательных систем - слабоуправляемые.

колебательная система компьютерное управление

1.2 Мехатронные колебательные системы


В простейшем виде мехатронную колебательную систему можно представить как управляемый математический маятник переменной длины, где управление колебаниями осуществляется изменением длины маятника путем перемещения точечной массы по невесомому стержню.

Кинематическая схема маятника и структура системы управления в общем виде показаны на рис.1.1 а, б соответственно.

а) б)

Рис.1.1. Кинематическая схема (а) и структура (б) системы

Рассмотрим возможные подходы к синтезу задатчика движения, обеспечивающего колебания маятника с определенной амплитудой. Колебательные движения маятника описываются следующим дифференциальным уравнением 2-го порядка:

 (1.2.)

где:

 - обобщенная сила (момент) инерции,

 - кориолисова сила,

 - момент, создаваемый весом,

 - трение.

Раскачивание происходит за счет кориолисовой силы:


которой можно управлять, перемещая массу  по координате  согласованно с изменением угла .

При малых и средних колебаниях, когда  и при отсутствии трения () получим уравнение движения в упрощенном виде:

 (1.3.)

Рассмотрим два способа синтеза задатчика с обратной связью для рассматриваемой колебательной мехатронной системы: синергетический и логический.

Потребуем, чтобы “качели" раскачивались так же, как происходят колебания в генераторе Ван-Дер-Поля, описываемом нелинейным дифференциальным уравнением следующего вида (применительно к нашему случаю):

 (1.4.)

кстати, очень похожим на уравнение качелей (1.3.).

Фазовый портрет генератора Ван-Дер-Поля показан на рис.1.2.

Рис.1.2. Фазовый портрет генератора Ван-Дер-Поля

Как видно из рис.1.2., система имеет установившийся цикл - аттрактор, форма и величина которого зависит от параметров  и .

Исходя из синергетического принципа управления будем строить задатчик так, чтобы изображающая точка “качелей” в фазовом пространстве стремилась к аттрактору, задаваемому генератором Ван-Дер-Поля. Для этого необходимо, чтобы ускорение, задаваемое уравнением (1.4.):


равнялось фактическому ускорению системы, получаемому из уравнения (1.2.):


Приравняв эти уравнения друг другу, получим требуемое управление :

 (1.5.)

Структура системы с задатчиком, реализующим зависимость (1.5.), показана на рис.1.3.

Рис.1.3. Структура синергетической системы управления

Задатчик позволяет регулировать амплитуду и форму (манеру) колебаний изменением параметров соответственно  и .

Применение концепции обратных задач динамики позволяет создать несколько иную структуру системы управления, в которой равенство задающего ускорения  и фактического ускорения  обеспечивается за счет введения обратной связи по ускорению. Структура такой системы показана на рис.1.4.

Рис. 1.4. Структура мехатронного генератора с параметрическим возбуждением типа "качелей", построенного согласно концепции обратных задач динамики (ОЗД)

Другой способ формирования управляющего воздействия - логический.

Рассмотрим временную диаграмму “идеального" раскачивания “качелей” при помощи перемещения массы с постоянным ускорением, изменяющимся по закону, как показано на рис.1.5.

На основе временной диаграммы может быть получена логическая функция, связывающая знаки угловой скорости  и угла  со знаком ускорения  (см. табл.1.1.).

Рис.1. 5. Временная диаграмма возбуждения качелей

Таблица 1.1.

Связь знака угловой скорости ω и угла φ со знаком ускорения sign x’’.



1 2 3 4

+ +

- + +

+ +


Из этой таблицы видно, что логический генератор колебаний должен реализовывать функцию неравнозначности (сумма по модулю 2), т.е.:


Тогда задатчик колебаний можно представить в виде двух функциональных узлов: логического задатчика знака ускорения и регулятора амплитуды колебаний. Схема такой системы показана на рис.1.6.

Рис.1.6. Система управления колебаниями с логическим задатчиком

Рассмотрим другой характерный пример мехатронной колебательной системы - двузвенный активный маятник типа "гимнаст на турнике".

Кинематическая схема управляемого активного двузвенного маятника и структурная схема системы управления им показаны на рис.1.7 а и б соответственно.

а) б)

Рис.1. 7. Кинематическая схема активного двузвенного маятника (а)

Целью управления является возбуждение колебаний путем управления углом между звеньями, связывающим независимые координаты - углы отклонения звеньев от вертикали.

По аналогии с выводом уравнения динамики пассивного двузвенного маятника, сделанном в (1.2.), можно сформулировать уравнения динамики активного маятника:

 (1.6. a)

 (1.6., б)

которые описывают движение верхнего (1-го) звена (1.6., а) и нижнего (2-го) звена (1.6., б) математического двузвенного маятника под действием электромагнитного момента МЭ, создаваемого двигателем, установленным между звеньями.

Введем следующие упрощения:

) l1 = l2 = l, m1 = m2 = m - симметрия,

) ρ = 0 - отсутствие трения,

)  - малое, тогда sin α = α, cos α = 1 - мягкое раскачивание.

Сведем оба уравнения к одному, исключив MЭ:


Учитывая, что α = φ2 - φ1, т.е. φ2 = α + φ1, исключим из этого уравнения φ2. Получим:

 (1.7.)

Заданное движение определяется уравнением Ван-Дер-Поля, которое можно представить в следующем виде:


где  - задаваемое ускорение, φ0 - амплитуда колебаний, а ε - интенсивность раскачивания (манера колебаний).

Подставив  в уравнение процесса (1.7.), получим в явном виде требуемое управление при управлении по ускорению:


где:


Структура системы управления показана на рис.1.8.

Рис. 1.8. Система управления двузвенным активным маятником

Исходя из концепции ОЗД, попробуем упростить систему, вводя обратную связь по ускорению . При этом получим структуру, показанную на рис.1.9, где функция  также получается из уравнения Ван-Дер-Поля:


Рис.1.9. Система управления двузвенным активным маятником

Аналогичным образом может быть решена задача стабилизации маятника в верхнем неустойчивом положении (стойка гимнаста на руках). Видимо, здесь возможно только динамическое равновесие, заключающееся в стабилизации малых колебаний около точки равновесия φ1 = π, что может быть достигнуто (видимо) соответствующим выбором значений φ0 и ε.

Есть идея осуществить декомпозицию синергетического задатчика колебаний (рис.1.8.) и представить его как управляемый терминальный задатчик угла α. Тогда система будет иметь следующий вид (рис.1.10.):

Рис.1.10. Система управления двузвенным активным маятником

Терминальный задатчик реализует достижение очередной локальной цели - перемещение звена на заданный угол αi за заданное время Ti. В простейшем случае это может быть сделано движением с постоянным ускорением αi’’=const. Задатчик локальных целей может быть нечетким. Его задача - вырабатывать локальные цели в зависимости от сложившейся ситуации по достижении предыдущей цели. О достижении предыдущей цели информирует дискриминатор состояния.

1.3 Постановка задачи


В данной работе решается задача создания системы управления слабоуправляемым объектом. Объектом управления является двузвенный мини-робот, представляющий из себя мехатронную колебательную систему типа "качели".

Особенностью разрабатываемой системы управления является организация обратной связи с использованием не непосредственно объекта управления, а его модели - с другой. Идея использования обратной связи через модель обусловлена использованием персональной ЭВМ для формирования управляющего воздействия, то есть прямое компьютерное управление. В этом случае осложнено получение информации о текущем положении объекта, поскольку это требует дополнительных преобразований уровня. Таким образом, управляющий сигнал подается непосредственно с порта ввода-вывода управляющей ЭВМ (для этого удобнее всего использовать LPT порт).

Исходя из специфики задачи, управляющая ЭВМ должна поддерживать процессы реального времени.

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

В качестве исполнительного механизма будет использован сервопривод фирмы Hitec HS-85BB+.

2. Разработка структуры мехатронной колебательной системы и ее аппаратного обеспечения

 

2.1 Структура и функциональная схема системы (компьютерное прямое управление через LPT порт)


Структурная схема разрабатываемой системы управления представлена на рис.2.1 и 2.2 На рисунке представлен возможные варианты связи системы управления, реализованной на персональной ЭВМ, и объекта управления, представляющего собой колебательную систему типа "качели". Мы будем использовать первый вариант, как единственный физически реализуемый в наших условиях.

Рис.2.1. Связь объекта управления с управляющей ЭВМ (первый вариант)

Рис.2.2. Связь объекта управления с управляющей ЭВМ (второй вариант)

Как уже отмечалось, основная идея проекта заключается в прямом компьютерном управлении объектом. Управление осуществляется через параллельный порт (что позволяет не производить дополнительных преобразований уровней и подавать управляющий сигнал непосредственно на исполнительный механизм). При этом обратной связи с реальным объектом нет, регулирование производится с использованием внутренней модели.

Функционально систему управления может быть разделена на три части (рис.2.3.): собственно формирователь управляющего сигнала (на рис. обозначено как "Система управления"), программная модель объекта управления (на рис. обозначена как "Модель ОУ") и преобразователь, функции которого будут описаны ниже. управляющего сигнала (на рис. разделена на три части: на персональной ЭВМ, и объекта управления, представляющего собой

Рис.2.3. Структурная схема системы управления

В соответствии с математическим представлением объекта управления, приведенной в главе 1, его можно представить в виде блока, на вход которого подается управляющее воздействии x и x’, фактически являющееся положением подвеса маятника, а на выходе получается угол поворота маятника φ и φ’ (рис.2.4.).

Рис.2.4. Модель объекта управления

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

Рис.2.5. Геометрическая модель объекта управления

В соответствии с рис.2.5 угол поворота сервопривода и положение подвеса связаны следующей формулой:

 (2.1.)

Это преобразование производится в вышеобозначенном "преобразователе". Так же преобразователь производит формирование управляющего ШИМ сигнала и передачу его на LPT-порт, к которому подключен сервопривод.

2.2 Разработка принципиальных схем объекта управления


Как было отмечено при постановке задачи, управление исполнительным механизмом (сервоприводом Hitec HS-85BB+) будет осуществляться через параллельный (LPT) порт.

Выходной уровень выводов порта является TTL уровнем с уровнем высокого напряжения от 2,4 до 5В, и уровнем низкого напряжения от 0 до 0,8В. LPT-порт имеет 8 data-выводов, 8 управляющих выводов и 9 выводов (см. рис.2.6), подтянутых к нулевому уровню [1]. Будем рассматривать только data-выводы. Управляющие выходы имеют некоторые отличия, однако для наших целей 8 data-выводов (на рис. обозначены как D0-D7) достаточно.

Рис.2.6 Назначение выводов lpt-порта

В таблице 2.1 приведены электронные характеристики выводов параллельного порта.

Таблица 2.1.

Электронные характеристики выводов параллельного порта

Выходное напряжение выводов (высокий уровень)

2,4 - 5,5 Вольт

Выходной ток (высокий уровень)

14 мА

Выходное напряжение (низкий уровень)

0 - 0,8 Вольт

Выходной ток (низкий уровень)

14 мА

Скорость нарастания выходного напряжения

0,05 - 0.40 В/нсек

Максимальная частота передачи

150 кБайт/сек


Исходя из характеристик порта, минимальный период, с которым мы можем изменять значение выхода, равен:

мкс.

Сервопривод Hitec HS-85BB+ хорош тем, что в него встроена следящая система отработки заданного угла поворота, что позволяет не использовать внешние датчики поворота и обратные связи для стабилизации заданного угла, что немаловажно для п0остроения заявленной выше системы управления. В таблице 2.2 приведены технические характеристики этого привода.

Таблица 2.2.

Технические характеристики сервопривода Hitec HS-85BB+

Напряжение питания

4,8 В

6 В

Напряжение управляющего сигнала

~3-4 В

Скорость поворота (без нагрузки)

60° за 0,19 сек

60° за 0,14 сек

Момент нагрузки

19,8 кгс/см

24,7 кгс/см

Угол поворота

180°

Потребляемый ток при вращении

700 мА

Масса

152г


На рис.2.7 представлен внешний вид привода (габаритные характеристики приведены в мм).

Рис.2.7. Внешний вид сервоприводов Hitec HS-85BB+

Подключение сервопривода производится 3х-проводной шиной, включающей силовое напряжение питания, общий провод и сигнал управления. Сигнал управления предполагается подавать с параллельного порта, выходное напряжение LPT выводов позволяет делать это без дополнительных преобразований уровня.

Для управления сервоприводом используется ШИМ-кодированный сигнал, скважность которого определяет заданный угол поворота. Временные характеристики сигнала управления показаны на рис.2.8.

Рис.2.8. Временная диаграмма управляющего сигнала

Как показано на рисунке, управляющий сигнал должен иметь частоту 50Гц, что достижимо при быстродействии параллельного порта.

Минимальный период импульса 0,9 мс, максимальный - 1,5 мс. В этом промежутке кодируется абсолютное значение угла от 0° до 180° (в абсолютных величинах).

Электрическая схема подключения объекта управления представлена на рис.2.9.

Рис.2.9. Электрическая схема подключения сервопривода

3. Математическая модель системы

 

3.1 Модель объекта управления в пакете MatLab


Смоделируем объект управления с системе MatLab (используется набор инструментов Simulink). Модель объекта представлена на рис.3.1.

Произведем моделирования объекта в идеальных условиях (без учета трения). Результаты моделирования - на рис.3.2.

Рис.3.1. Модель объекта управления в пакете MatLab

Рис.3.2. Результаты моделирования в отсутствии трения

Имеем незатухающие колебания с амплитудой, равной начальному значению - что свидетельствует о корректности построенной модели.

Теперь произведем моделирование объекта с учетом трения. Коэффициент трения возьмем равный 0.15. Результаты моделирования в этом случае представлены на рис.3.3.

Рис.3.3. Результаты моделирования при коэффициенте трения равном 0,15

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

 

3.2 Модель системы управления с обратной связью


Рассмотрим два способа синтеза задатчика с обратной связью для рассматриваемой колебательной мехатронной системы: синергетический и логический.

Синергетический задатчик колебаний

Структура такой системы показана на рис.3.4.

Рис.3.4. Структура мехатронного генератора с параметрическим возбуждением типа "качели"

Произведем моделирование системы в среде MatLab. Структура системы в наборе инструментов Симулинк представлена на рис.3.5 Результаты моделирования - на рис.3.6.

Рис.3.5. Структура системы с синергетическом задатчиком.

Рис.3.6. Результаты моделирования

Имеем незатухающие негармонические колебания. Вид колебаний зависит от задаваемых параметров генератора Ван-Дер-Поля ε и А0.

Логическое управление колебаниями

Произведем моделирование логического задатчика управляющего воздействия в среде MatLab. Структура системы и результаты моделирования представлены на рис.3.7 и 3.8 соответственно.

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

Рис.3.12. Структура системы с логическим упралвением

Рис.3.13. Результаты моделирования

 

3.3 Особенности дискретной модели объекта управления


Для реализации программной модели объекта управления необходимо численно решить уравнение его математической модели. Использование специализированных библиотек осложняется нелинейностью уравнения, поэтому была получена итерационная формула исходя из методов численного интегрирования и дифференцирования.

В качестве метода интегрирования был выбран метод трапеций, дающий более точный результат, чем метод треугольников, но не требующий дополнительных начальных условий, как методы более высокого порядка. Получили следующие формулы для итерационного вычисления:

,

,

.

Было произведено моделирование объекта управления с целью уточнения параметров моделирования. Текст программы, использовавшейся для моделирования, приведен в приложении 6. Параметр модели, требующий настройки - это период дискретизации или шаг интегрирования. Ниже приведены результаты моделирования.

Моделирование производилось для системы без трения, в этом случае возможно оценить качество - как разницу между фактической амплитудой колебаний и заданным начальным состоянием системы.

На рис.3.7 - 3.10. приведены графики полученных колебательных процессов для разных значений шага интегрирования. Минимальный шаг интегрирования, который следует установить, равен 0,02 - это период, с которым необходимо выдавать управляющий сигнал для сервопривода. Будем уменьшать период квантования на порядок до тех пор, пока не достигнем желаемого качества переходного процесса.

Рис.3.7 Колебательный процесс при h = 0.02

Рис.3.8. Колебательный процесс при h=0.002

Рис.3.9. Колебательный процесс при h=0.0002

Рис.3.10. Вид колебательного процесса при h = 0.00002

Как видно из диаграмм, при шаге интегрирования меньше 0.0002 колебательный процесс имеет неустойчивый характер. Таким образом, будем выбирать шаг меньше или равный 0.0002. Оценим максимальную относительную погрешность вычисления. Для шага 0.0002 она равна 0.15 и для шага 0.00002 она равна 0.05.15% - погрешность, неприемлемая при построении систем управления - следовательно, принимаем шаг интегрирования равным 0.00002.

4. Разработка алгоритмов и программ прямого компьютерного управления электромеханическим объектом


4.1 Состав ПО


Как уже было представлено на рис.2.3., систему управления можно представить в виде трех взаимодействующих блоков. Соответственное деление на блоки так же прослеживается и в программном обеспечении. То есть управляющая система реализуется в виде трех модулей: модуль, производящий расчет управляющего сигнала, виртуальная модель объекта управления, включающая визуальное представление виртуальном модели и драйвер, производящий преобразование задающего воздействия (формируемого в виде угла поворота двигателя) в ШИМ сигнал, передаваемый на объект управления.

Поскольку программное обеспечение призвано производить управление объектов в реальном масштабе времени, необходимо, чтобы управляющая ЭВМ работала под управлением системы реального времени. Операционной системой реального времени (ОСРВ, Real Time Operating System - RTOS) называется программная среда, которая обеспечивает поддержку выполнения прикладных программ, выступая, таким образом, в качестве своеобразного интерфейса между программным обеспечением и аппаратными средствами. ОСРВ предоставляет прикладным программам необходимый набор стандартных сервисов (интерфейсов, функций), позволяющий программам наиболее простым способом взаимодействовать друг с другом и с аппаратурой. Благодаря тому что часто используемые функции реализуются с помощью ОСРВ, программы становятся менее объемными и сложными, а сам процесс программирования - менее трудоемким. От обычных операционных систем операционные системы реального времени отличаются тем, что обеспечивают поддержку выполнения задач, в которых большую роль играет соблюдение заданного времени реакции на то или иное внешнее событие.

В настоящее время существует широкий спектр операционных систем, поддерживающих выполнение процессов в реальном времени. В основном это специализированные ОС, представляющие минимальный набор сервисов, предназначенные для встраиваемых приложений. Из "пользовательских" систем, поддерживающих реальное время с одной стороны - и более-менее полноценный пользовательских интерфейс с другой, предполагающих установку на персональную ЭВМ, можно отметить QNX, DOS и Linux. QNX предоставляет возможность полноценной работы с реальным временем - однако эта операционная система предполагает коммерческое использование. DOS - операционная система, в которой реальное время может быть реализовано за счет однозадачности и таймеров - однако с этой точки зрения она видится неудовлетворительной для пользователя. Linux - открытая свободно распространяемая операционная система, начиная с версии ядра 2.6 предоставляет возможность организации реального времени.

Для запуска процесса в реальном времени необходимо произвести следующие операции:

) установить интервал системного квантования времени (time slice) равным 1 мс (в этом случае мы будем иметь возможность отмерять интервал времени от 0,9 до 2,1 мс с периодом в 20 мс, необходимый для управления сервоприводом).

) выставить управляющему процессу приоритет реального времени. В этом случае конкуренция за процессорное время будет производиться только среди процессов реального времени, готовых к исполнению. И только в случае отсутствия таковых, на выполнение будут отправляться обычные процессы.

4.2 Структура ПО


Структура ПО представлена на рис.4.1.

Рис.4.1 Структура ПО

Подсистема формирования управляющего воздействия, математическая модель объекта управления и драйвер сервопривода реализуются с использованием языка С и встроенного компилятора Linux GCC. Графическое представление модели реализуется с использованием Open GL библиотеки GLUT. Отметим, что графическая оболочка не требует приоритета реального времени, в реальном времени работают только модель объекта, формирователь управляющего воздействия и драйвер.

 

4.3 Алгоритмы и программы прямого компьютерного управления


Компьютерное управление может осуществляться тремя способами:

программное управление

управление с использование модели в реальном времени

управление с превентивным моделированием.

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

Управление с использованием модели в реальном времени позволяет избежать дополнительных затрат на организацию обратной связи с объекта управления, одновременно позволяя имитировать ее наличие для формирователя управляющего воздействия.

Управление с превентивным моделированием включает в себя элементы первых двух типов: оно предполагает организацию программного управления с использованием данных, полученных при помощи внешней модели. Эти данные могут быть получены либо с использованием пакета MatLab, либо любого другого пакета, позволяющего производить построение и исследование моделей объектов.

Как уже отмечалось при постановке задачи, в нашем случае используется второй вариант, то есть управление с использованием модели в реальном времени.

Учитывая специфику исполнительного механизма, управляющий сигнал необходимо формировать каждые 20 мс - период управляющего ШИМ-сигнала для используемого сервопривода. Соответственно, вычислять положение модели необходимо так же каждый 20 мс.

На рис.4.2 представлен алгоритм выработки управляющего воздействия. Значение управляющего сигнала вычисляется в соответствии с логическим вариантом управления, представленном в разделе 1.2 Алгоритм формирования управляющего воздействия представлен на рис.4.3.

Рис.4.2. Схема алгоритма выработки управляющего воздействия

Рис.4.3. Схема алгоритма вычисления величины управляющего сигнала

В каждом 20-миллисекундном интервале вычисления управляющего воздействия производиться вычисление текущего положения модели. Алгоритм вычисления текущего положения модели приведен на рис.4.3 Шаг интегрирования h задается в конфигурационном файле программы.

Рис.4.4. Схема алгоритма вычисления текущего положения модели

 

4.4 Экспериментальные исследования системы


В первую очередь необходимо было убедиться, что существует возможность управления сервоприводом под операционной системой Linux. Для этого был проведен эксперимент, целью которого было продемонстрировать корректное движение сервопривода при подаче сигнала управления с LPT-порта. Схема эксперимента представлена на рис.4.5.

Рис.4.5. Схема эксперимента

В соответствии с принятым алгоритмом управления (см. рис.1.5), расстояние от центра масс "человека на качелях" до подвеса должно меняться с частотой, в два раза превышающей частоту собственных колебаний маятника. Для упрощения наблюдений примем пилообразный сигнал управления (см. рис.4.6).

Рис.4.6. График формирования управляющего воздействия

Для осуществления эксперимента был принят вариант программного управления по таблице, содержащей заранее посчитанные значения угла поворота сервопривода в соответствии с исходными данными о системе.

В листинге 4.1 представлен текст программы для реализации испытания.

Листинг 4.1 L

/************************************************************************

*porttest. c: содержит тестовую программу для исследования возможности

*управления сервоприводом с параллельного порта компьютера с

*использованием средств операционной системы Linux

*

*Автор: Сичевая Э. А.

*

***********************************************************************/

#include <stdio. h>

#include <stdlib. h>

#include <unistd. h>

#include <sched. h>

#include <errno. h>

#include <pthread. h>

#define LPT_BASE 0x378

#define ARRAYSZ 40

#define EXEC_TIME 3000;

/* таблица значений угла поворота сервопривода */angle_var [40] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18, 19,20, 19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};main ()

{index, exec_cycles;i, n;inc = 0;timespec TimeSpec;sched_param SchedParam;timespec ttt, ret;

/*обнуляем значения структур*/(&SchedParam, 0, sizeof (struct sched_param));(&TimeSpec, 0, sizeof (struct timespec));(&ttt, 0, sizeof (struct timespec));(&ret, 0, sizeof (struct timespec));. sched_priority = 2;("start");

/*выставляем дисциплину управления*/(sched_setscheduler (0, SCHED_FIFO, &SchedParam))

{("Error while setting scheduler parameters, exiting. \n");- 1;

}

/*получаем привелегии для доступа к устройствам ввода-вывода*/(ioperm (LPT_BASE, 1, 1))

{("Error while obtaining IO permissions, exiting. \n");- 1;

}

/*инициализируем переменные перед стартом управления*/_cycles = EXEC_TIME;= 0;= 0;. tv_sec = 0;. tv_nsec = 15000000;. tv_sec = 0;. tv_nsec = 15000;(exec_cycles--)

{

/*выводим 1 в 1 дата-вывод LPT-порта*/(0x01, LPT_BASE);

/*ждем до окончания импульса в зависимости от выводимого угла (по таблице angle_var) */(i = 0; i < (angle_var [index] + 100); i++)

{(&TimeSpec, &ret);

}(0x00, LPT_BASE);(! (exec_cycles % 2))= (index + 1) %40;

/*засыпаем на 15 мс*/(&ttt, NULL);

}("exit");0;

}

Испытания показали, что при соблюдении заявленных производителем сервопривода временных характеристик сигнала управления, а так же при выполнении процесса задатчика с приоритетом реального времени, сервопривод успешно отрабатывает заданный угол.

Следующим шагом исследования была тестовая разработка программы управления, формирующей управляющий сигнал в соответствии с информацией о положении модели (см. раздел 3.3). Текст программы приведен в приложении 5. В целях упрощения процедуры анализа полученных данных разработка производилась в пакете Visual Studio (Visual C++).

Данная программа производит вычисление управляющего сигнала и выводит последовательность в файл. Шаг интегрирования в вычислениях выбирается таким же, как и для программной модели и задается в конфигурационном файле test_zadatchik. ini, который считывается при загрузке программы.

5. Экономическое обоснование проекта


5.1 Назначение разработанной системы


В дипломном проекте микропроцессорная система реализована на базе сервопривода Hitec HS-85BB+. Данная система предназначена в первую очередь для обучения студентов основам организации прямого компьютерного управления, в дальнейшем рассматривается возможность изготовления программируемых игрушек на основе данной системы. Однако на данном этапе система изготавливается в единственном экземпляре и устанавливается в лаборатории "Электромеханические системы" в 9 корпусе.

Таким образом, с точки зрения экономического обоснования, данный проект требует расчета стоимости выполнения.

 

5.2 Исходные данные


Для оценки стоимости проекта необходимо выполнить расчет следующих показателей: прямой производственной зарплаты, затрат на материалы, комплектующие, энергию и составить смету общих затрат. Исходные данные для расчетов представлены в таблицах 5.1 и 5.2.

Таблица 5.1.

Исходные данные для расчета прямой производственной зарплаты.

Ставка минимального размера оплаты труда (МРОТ)

1100 р

Ставка единого социального налога

26%

Эффективный фонд времени разработчика в месяц (Тэф разр)

168 час/мес

Время на разработку системы, в том числе:

время на создание алгоритма

100 час

время на решение

100 час

время на отладку

200 час

время на сборку

10 час

Балансовая стоимость ЭВМ

8000 руб

Срок службы ЭВМ

5 лет

Эффективный фонд времени использования ЭВМ в году

2000

Удельные расходы на обслуживание приборов

150 руб. /мес

Стоимость 1 кВт/час

1,44

Мощность ЭВМ

1 кВт

Тарифный коэффициент (разряд по единой тарифной сетке оплаты труда - 8)

2,02


Таблица 5.2.

Исходные данные для расчета затрат на материалы, комплектующие, энергию.

Наименование материала

Норма расхода

Цена единицы, руб.

Затраты, руб.

Материалы

Крепёжные изделия

0,2 кг

60

12

Провод монтажный

4 м

17

68

Покупные изделия (комплектующие)

Сервопривод Hitec HS-85BB+

1

980

980

Разъём МРН22-2

3

10

30


5.3 Расчёт затрат


Затраты вычисляются по формуле

з = к + и,

где К - единовременные затраты заказчика; И - текущие издержки заказчика.

К = КАЛ + КОТЛ + К РЕШ,

где КАЛ - затраты на создание алгоритма (и программы и т.д.);

КОТЛ - затраты на отладку (программы, методики);

КРЕШ - затраты на решение (на исследование).

Эти три составляющие включают оплату труда разработчика. Для организаций бюджетной сферы расчеты заработной платы работников основываются на МРОТ (см. табл.5.1.) и тарифных коэффициентах, устанавливаемых законодательно:

ЗП = МРОТ * R * (T/Tэф. разр), (5.1.)

где ЗП - зарплата работника; R - тарифный коэффициент разработчика (табл.5.1.); Т - время, затраченное на разработку; Tэф. разр - месячный объем рабочего времени разработчика.

Рассчитаем заработную плату для каждой из стадий разработки.

ЗПал = 1100*2,02* (100/168) = 1350 руб

ЗПреш = 1100*2,02* (100/168) = 1350 руб

ЗПотл = 1100*2,02* (200/168) = 2700 руб

Таким образом,

Кал = ЗПал (1 + Кдоп) (1 + Котч),

где ЗПал - заработная плата разработчика алгоритма (программы и т.д.); Кдоп - коэффициент дополнительной заработной платы (устанавливается руководством организации - в нашем случае он равен 0); Котч - коэффициент, учитывающий отчисление на социальное обеспечение (устанавливается правительственными органами).

Кал = 1350* (1 + 0,265) = 1700 руб.

Коэффициент отладки и амортизация:

Котл = ЗПотл + Аотл+ Сотл + Зм. э

Аотл = (Цэвм сл · Тэф) ·Тотл

где Тэф - эффективный фонд времени используемого оборудования или ЭВМ в году;

Тсл - срок службы ЭВМ;

Тотл - длительность отладки, ч;

Цэвм - балансовая стоимость ЭВМ, руб.;

Зм. э - затраты на материалы, эл/эн и другие (в нашем случае не поддаются оценке).

Аотл = (8000/ (5 * 2000)) *100 = 80 руб

Котл = 2700 + 80 = 2780 руб

Креш = ЗПреш + (Цэвм/ (Тсл ·Тэф)) Треш,

где ТрЕШ - время решения задачи.

Креш = 1350 + (8000/10000) *100 = 1430 руб.

Итого единовременные затраты заказчика составят:

К = 1700 + 2780 + 1430 = 5910 руб.

И = И3 + См + Иэ + Слаб+ Ин

где И3 - прямая зарплата;

Им - материальные издержки;

Иэ - расходы на электроэнергию;

Слаб - экспериментальные расходы;

Ин - накладные расходы (как правило, более 60% от И3).

Прямая зарплата вычисляется по общей формуле для вычисления заработной платы (5.1.). При этом учитывается время разработчика, затраченное на сборку изделия.

ИЗ = 1100*2,02* (10/168) = 140 руб.

Стоимость материалов определяется как:

,

где Стр - транспортно-заготовительные расходы,

Сматi - оптовая цена единицы 1-го материала,мi - норма расхода 1-го материала.

руб.

Стоимость покупных изделий определяется как:

,

Где Стр-транспортно-заготовительные расходы

СПИ I-оптовая цена единицы i-ого изделияПИ I-норма расхода i-го изделия

руб.

Им. = Смат + Спи = 90 + 1120 = 1210 руб.

Расходы на электроэнергию:

ИЭ = P*t*ЦкВт = 1*400*1,44 = 576 руб.

Экспериментально-производственные расходы Слаб - это расходы на обслуживание приборов, рассчитываемые по следующей формуле:


где К - коэффициент использования приборов = 0,5;- время на выполнение работы = 2 месяца;

Получаем:

Илаб = 0,5*2*150 =150 руб.

Смета затрат на лабораторную установку приведена в таблице 5.3

Таблица 5.3.

Смета затрат на разработку лабораторной установки

Наименование статьи расхода

Сумма, руб.

Единовременные затраты

5910

Заработная плата (на сборку установки), СЗ

140

Отчисления на социальные нужды, 26% от суммарной заработной платы

1440

Накладные расходы, 60% от заработной платы

3630

Материалы, Им

1210

Расходы на электроэнергию ИЭ

576

Экспериментально-производственные расходы, Слаб

150

Итого

10060


Расчётная себестоимость системы составляет 10060 руб.

 

5.4 Перспективы использования разработки


Как уже отмечалось выше, данная система изготавливается в единичном экземпляре для использования в качестве лабораторного стенда и не подлежит продаже, поэтому расчет экономической эффективности и договорной цены продукта произведен не был.

В дальнейшем эта система может быть использована как основа для производства управляемых детских игрушек-роботов.

6. Охрана труда и техника безопасности

 

6.1 Введение


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

 

6.2 Основные вредные и опасные факторы при работе с компьютером и способы борьбы с ними


Работа с компьютером связана прежде всего с восприятием изображения на экране и с одновременным различением текста рукописных или печатных материалов, с выполнением машинописных графических работ и других операций, что способствует зрительному утомлению, которое усиливается из-за бликов, мерцаний и других отклонений визуальных параметров экрана и световой среды помещения.

Эта работа характеризуется повышенным уровнем эмоционального напряжения, что связано с высокой концентрацией внимания, с определенным визуальным дискомфортом, с ответственностью за качество выполняемого задания. Кроме того, длительная работа в неизменной статической позе приводит к перенапряжению различных групп мышц, а однотипные движения на клавиатуре развивают воспалительные процессы в суставах и мышцах рук.

Таким образом, к основным вредным и опасным факторам при работе с компьютером можно отнести:

·        Повышенное зрительное напряжение

·        Нервное напряжение

·        Костно-мышечное напряжение

·        Электромагнитные поля

·        Шум, выделение вредных веществ

Рассмотрим влияние более подробно факторы, вызывающие зрительное напряжение.

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

Зрительная система человека плохо приспособлена к рассматриванию картинки на экране дисплея. В течение многих миллионов лет она приспосабливалась для восприятия предметов исключительно в отраженном свете. Появление электронно-лучевой трубки было сопряжено для человека с большими проблемами, так как изображение является результатом свечения экрана, т.е. приходится смотреть на источник света - дисплей. И хотя глаза человека способны приспосабливаться к интенсивности света, что достигается в первую очередь изменением диаметра зрачка, а так же изменением чувствительности сетчатки, это как выяснилось, тяжелая зрительная работа. С другой стороны, пользователь вынужден в процессе работы переносить свой взгляд с экрана на бумагу и обратно.

Сильно влияют на зрительную работу технические характеристики дисплеев: разрешающая способность, яркость, контрастность, частота обновления (для ЭЛТ-мониторов). Эти параметры могу негативно сказаться на зрении, если не учитывать их при выборе устройства или при его установке.

В комплексе причин, отрицательно влияющих на зрение оператора, в первую очередь следует выделить недостаточную контрастность изображения на экране, связанную с пространственной и временной нестабильностью, излишней яркостью монитора, а так же блики и отраженный свет на его поверхности. Визуальные эргономические параметры при работе с компьютером задаются ГОСТ Р 50948-96. В данном документе содержатся допустимые значения характеристик дисплея, таких как контрастность изображения, неравномерность яркости элементов, временная и пространственная нестабильность изображения, а так же эргономических параметром, например, угол линии наблюдения и др. Значения основных визуальных эргономических параметров ВДТ приведены в таблице 6.1.

Таблица 6.1.

Основные визуальные эргономические параметры ВДТ

Наименование параметра

Пределы значений параметров


Минимум (не менее)

Максимум (не более)

Яркость знака (яркость фона), измеренная в темноте, кд/м2

35 (10)

120 (150)

Внешняя освещенность экрана, лк

100 (100)

250 (500)

Угловой размер знака, угл. мин

16 (16)

60 (60)


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

Согласно Санитарным правилам, освещение в помещениях с ПК должно быть смешанным: естественным и искусственным. Мониторы следует размещать так, чтобы светящиеся экраны не попадали в поле зрения других операторов, и на экранах отсутствовала прямая и отраженная блесткость естественного или искусственного освещения. Так же согласно этим правилам, искусственное освещение должно осуществляться системой общего равномерного освещения. В качестве источников света при искусственном освещении должны применяться люминесцентные лампы типа ЛБ. Освещенность на поверхности стола должна быть 300-500 лк. При этом яркость светящихся поверхностей (окна, светильники и тд.), находящихся в поле зрения, должна быть не более 200 кд/м2.

Для благоприятных условий работы необходимо обеспечить достаточно равномерное распределение яркости на рабочей поверхности и в пределах окружающего пространства. Если в поле зрения находятся поверхности, значительно отличающейся между собой по яркости, то при переводе взгляда с ярко освещенной на слабо освещенную поверхность глаз вынужден переадаптироваться, что ведет к утомлению зрения. Равномерность яркости достигается прежде всего системой общего освещения, а также соответствующей окраской потолка, стен и оборудования. Специалисты рекомендуют, чтобы стены, оборудование, мебель имели матовое покрытие с коэффициентом отражения 0,7-0,8 от потолка и более низким от стен и пола (0,: и 0,3 соответственно). Достигается это окраской потолка в белый цвет, а стен - в светло-желтые и оранжево-желтые цвета.

Рассчитаем требования к освещенности рабочего места.

 

6.3 Расчет освещенности рабочих мест


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

К одним из таких требованиям, предъявляемым к условиям работы в помещении, относятся нормы освещенности рабочих мест.

Для освещения помещений общественных зданий, к которым относится учебная лаборатория, как правило, применяют люминесцентные лампы. При этом необходимо обеспечить следующие характеристики освещения:

нормируемая освещенность - 300 лк;

показатель дискомфорта - < 40;

коэффициент пульсации освещения < 15 %.

Для освещения рабочих мест в учебной лаборатории можно использовать некоторые светильники серии ЛСО, ЛПО и другие. Для расчетов возьмем светильник типа ЛСО 02-2Х40/Р-02, который имеет следующие параметры:

·        тип лампы ЛБ40;

·        класс светораспределения Р;

·        тип КССД;

·        КПД 65%;

·        защитный угол 30°;

·        степень защиты 20;

·        климатическое исполнение У4.

Расчет количества светильников

Количество светильников указанного типа должны обеспечивать необходимую нормируемую освещенность рабочих мест (300 лк). Для расчета числа светильников используется формула:

= ЕnКзSz/ФлUОУ,

где

·        Фл - общий световой поток, лм,

·        z - неравномерность освещения,

·        S - площадь помещения, м2,Кз - коэффициент запаса,

·        Еn - необходимая нормируемая освещенность, лк,

·        Uoy - коэффициент использования.

Параметры лаборатории:= 40 м2, Кз = 1,5 (в случае разрядных ламп), Еn = 300 лк,

Параметры светильников:= 1.1 (для люминесцентных ламп при расположении их в виде линий).

Для определения Uoy необходимо знать индекс помещения iп, коэффициенты отражения потолка, стен и пола, соответственно, рп, рс и рр.

Для заданного помещения эти значения равны:п =1.25, рп = 0.7, рс = 0,3, рр = 0.1.

Для этих значений и КСС светильника типа Д по соответствующим таблицам было найдено значение Uoy = 0.5.

Светильник ЛСО 02-2Х40/Р-02 состоит из двух ламп ЛБ40 со световым потоком 3200 лм, поэтому общий световой поток светильника Фл = 2x3200 лм= 6400 лм.

Расчет п по формуле 5.1:

= (300 лк*1.5*40 м2*1.1) / (6400 лм*0.5) ≈ 6.

Таким образом, для обеспечения нормальной освещенности рабочих мест учебной лаборатории необходимы 6 светильников типа ЛСО 02-2Х40/Р-02.

 

6.4 Требования к параметрам дисплея


При разработке данного проекта использовался планшетный компьютер (ноутбук) с ЖК дисплеем фирмы Fujitsu. Размер дисплея - 13,3 дюйма (33,78 см). Рабочая разрешающая способность дисплея - 1024х768, что соответствует стандарту XGA. Яркость монитора - 280 кд/м2, что позволяет выставить наиболее комфортную яркость и соответствует приведенным выше требованиям к ВДТ. Частота обновления эквивалентна 120 Гц для ЭЛТ-мониторов (по требованиям приемлемая частота обновления - 75 Гц). Размер пикселя - 0,269 мм.

С позиций гигиены зрения компьютер предлагают устанавливать так, чтобы, подняв глаза от экрана, можно было увидеть самый удаленный предмет в комнате. Возможность перевести взгляд на дальнее расстояние - один из самых эффективных способов разгрузки зрительной системы во время работы с компьютером.

Ноутбук позволяет устанавливать дисплей наиболее удобным для пользователя образом. В процессе работы ноутбук был установлен на расстоянии 90 см от пользователя, что соответствует эргономическим требованиям.

Заключение


В процессе работы над проектом было произведено моделирование и произведена реализация и функциональное тестирование отдельных модулей компьютерной системы управления мехатронным колебательным объектом типа "качели", представляющим собой слабоуправляемую систему.

В процессе моделирования, которое производилось с использованием системы MatLab был выбран логический алгоритм управления. Была спроектирована и протестирована программная модель объекта управления, необходимая для организации виртуальной обратной связи.

Была произведена реализация логического задатчика управления и его функциональное тестирование.

В результате была доказана принципиальная возможность компьютерного управления слабоуправляемым объектом.

Список использованных источников


1.       Новиков Ю.В., Калашников О.А., Гуляев С.Э. Разработка устройств сопряжения для персонального компьютера типа IBM PC. Практ. Пособие - М: ЭКОМ., 1997 - 224 с.

2.       Колесников А.А. Синергетическая теория управления: концепция, методы, тенденции развития // Известия ТРТУ. Тематический выпуск "Синергетика и проблемы управления", 2001, № 5б с 7-27

.        Топчиев Б.В. Синергетическое управления мобильными роботами. "Нелинейный мир", вып. № 4, т.2, 2004г.

.        Малаян К.Р. Безопасность при работе с компьютером - СПб: Издательство СПбГПУ, 2002 - 124с.

.        Изерман, Р. Цифровые системы управления: Пер. с англ. - М: Мир, 1984 - 542 с.

.        Цыпкин, Яков Залманович. Теория нелинейных импульсных систем - М: Наука, 1973 - 414 с.

.        Черноусько Ф.Л., Акуленко Л.Д., Соколов Б.Н. Управление колебаниями - М: Наука, 1980 - 384с.

Приложение 1. Техническое задание


Программа "control_system"

Техническое задание

Листов 3

РП.68124-01

Аннотация

Данный документ содержит задание на разработку программы управления мехатронным колебательным объектом типа "качели".

.        Введение

Программа "control_system. c" предназначена для управления двузвенным мини-роботом. В качестве исполнительного механизма используется сервопривод фирмы Hitec HS-85BB+. Для разработки, загрузки и запуск программы необходима ЭВМ с установленной ОС Linux с версией ядра 2.6.

.        Основания для разработки

Программа разрабатывается для лаборатории "Электромеханические системы".

.        Назначение разработки

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

.        Требования к программе

         Требования к функциональным характеристикам

Программа должна выполнять следующие функции:

)        вычислять текущее положение объекта управления, используя его математическую модель

2)      рассчитывать управление двигателем мини-робота по заранее известному закону (логический закон управления)

)        выдавать на LPT-порт ЭВМ управляющий сигнал в соответствии с рассчитанным значением управления.

)        считывать из конфигурационного файла параметры управления

         Требования к надежности

Программа должна выполняться в режиме реального времени. Это осуществляется при помощи средств операционной системы.

Условия эксплуатации

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

Требования к составу и параметрам технических средств

Программа должна быть рассчитана на использование на ЭВМ типа РС с процессором класса Pentium III 800 МГц и выше, ОЗУ 128 МВ, подсистемой графического вывода типа SVGA. Обязательно наличие операционной системы Linux с ядром версии не ниже 2.6 Связь с сервоприводом HS-85BB+ осуществляется с помощью специального кабеля.

Требования к транспортировке и хранению

Для транспортировки и хранения должны быть использованы накопители на основе гибких магнитных дисках класса 3,5 дюйма, отформатированные на 1.44МВ.

.        Требования к программной документации

С программой должны быть предоставлены следующие программные документы:

)        Техническое задание

2)      Описание программы

)        Текст программы

)        Программа и методика испытаний

6.       Технико-экономические показатели

С помощью программы должна быть достигнута возможность включения в цикл лабораторных работ работы по изучению прямого компьютерного управления. Программа не направлена на получение прямой экономической выгоды.

.        Стадии и этапы разработки

Программа должна быть разработана в срок до 31.12.2008 года.

.        Порядок контроля и приемки

Основные параметры приёмки:

1) стабильность работы при нескольких перезапусках (не менее 10 раз). Более подробно способ проверки описан в документе "Программа и методика испытаний".

2) Стабильность работы при различных параметрах запуска.

Приложение 2. Описание программы


Программа "control_system"

Описание программы

Листов 2

РП.68124-01.13 01

Аннотация

Данный документ содержит описание программы, которая предназначена для управления двузвенным мини-роботом, представляющим собой колебательную мехатронную систему типа "качели". Документ содержит описание структуры программы, способов запуска программы, а так же форматов входных данных, необходимых для корректной работы программы, и формате данных-результатов работы программы.

.        Общие сведения

Программа "control_system" предназначена для управления двузвенным мини-роботом типа "качели", с исполнительным механизмом - сервоприводом Hitec HS-85BB+. Программа разработана на языке C. Для разработки, загрузки запуска программы необходима ЭВМ с установленной на ней операционной системой Linux с версией ядра не ниже 2.6.1.1 Так же ЭВМ должна быть оснащена параллельным (LPT) портом.

.        Функциональное назначение

Программа "control_system" предназначена для управления двузвенным мини-роботом. Программа получает данные о положении робота из встроенной виртуальной модели, формирует управляющее воздействие в соответствии с логическим алгоритмом управления движением маятника переменной длины и выдает управляющее воздействие через LPT-порт на исполнительный элемент (сервопривод).

.        Описание логической структуры

Описание алгоритма работы программы приведено в подразделе 4.3.

.        Используемые технические средства

Программа рассчитана на использование на ЭВМ типа РС с процессором класса Pentium III 800 МГц и выше, ОЗУ 128 МВ, подсистемой графического вывода типа SVGA. Обязательно наличие операционной системы Linux с ядром версии не ниже 2.6 Связь с сервоприводом HS-85BB+ осуществляется с помощью специального кабеля.

.        Вызов и загрузка

Включение питания системы осуществляется следующим образом:

·        Включается ЭВМ с помощью кнопки питания

·        Включается монитор

·        Загружается операционная система Linux

·        Если объект управления не подключен к LPT-порту - подключается объект управления.

·        Поворотом тумблера включается блок питания. О включении должна сигнализировать красная лампа на блоке питания

·        Установка готова к работе.

Вызов программы осуществляется следующим образом:

·        Если программа отсутствует на ЭВМ - необходимо скопировать ее. Каталог, в котором находится программа, далее абсолютный путь к этой директории обозначим как %homedir.

·        Проверить конфигурационный файл "control_system. cfg" и внести необходимые изменения

·        В linux shell (bash, kshell или другом) запустить программу “%homedir/control_system. exe [time]". time - опциональный параметр запуска программы, определяющий время выполнения программы. По умолчанию программа будет выполняться 5 минут.

.        Выходные данные

В качестве выходных данных в работе программы в выходной файл "control_system. dat" выводятся последние 1000 точек в следующем формате:

метка_времени положениеу правление

где положение - текущее положение системы (угол поворота маятника), управление - угол поворота сервопривода в момент времени, обозначенный в метке_времени (измеряется в миллисекундах с момента старта программы).

Приложение 3. Текст программы


Программа "control_system"

Текст программы

Листов 4

РП.68124-01.12 01

Аннотация

Данный документ содержит текст программы "control_system", которая предназначена для управления двузвенным мини-роботом, представляющим собой колебательную системы типа "качели". Документ содержит тексты основного файла "control_system. c", написанного на языке C.

Текст программы

/*********************************************************************

*

* control_system. c: программа управления сервоприводом

*

*

* Автор: Сичевая Э. А.

*

********************************************************************/

#include <stdio. h>

#include <stdlib. h>

#include <unistd. h>

#include <sched. h>

#include <errno. h>

#include <sys/io. h>

#include <pthread. h>

#include <math. h>

#define ge 9.8 // ускорение свободного падения

#define f00.5 // значение по умолчанию для начального угла

#define x04 // значение по умолчанию для начальной длины подвеса

#define dx00 // начальная скорость подвеса

#define ro0.15 // значение по умолчанию коэффициента трения

#define hd0.0002 // значение по умолчанию для шага интегрирования

#define md0.5 // значение по умолчанию для массы подвеса

// значения по умолчанию для геометрических параметров объекта управления

#define l110

#define l210

#define L22

Структура для хранения информации о текущем положении точки,

а также текущем и предыдущем значении первой и второй производной

*/struct {val;d [2];d2 [2];

} point_data;SU_Regulator (point_data*, point_data*);SU_Converter (double x);main (int argc, char* argv [])

{

/* Для значений положения и угла */_datax, f;iter, i;h, m;timespec TimeSpec;sched_param SchedParam;timespec ttt, ret;*pFOut;nNumIter, nDivider;= 1000000;= 100;= hd;= md;

/*

открываем выходной файл для перезаписи

*/( (pFOut = fopen ("output. dat","w")) == NULL)

{( (pFOut = fopen ("output. dat","a")) == NULL)

{("Cannot open file. failed");- 1;

}

}

/*обнуляем значения структур*/(&SchedParam, 0, sizeof (struct sched_param));(&TimeSpec, 0, sizeof (struct timespec));(&ttt, 0, sizeof (struct timespec));(&ret, 0, sizeof (struct timespec));. sched_priority = 2;

/*

производим вычисления

*/

/*выставляем дисциплину управления*/(sched_setscheduler (0, SCHED_FIFO, &SchedParam))

{("Error while setting scheduler parameters, exiting. \n");- 1;

}

/*получаем привелегии для доступа к устройствам ввода-вывода*/(ioperm (LPT_BASE, 1, 1))

{("Error while obtaining IO permissions, exiting. \n");- 1;

}

/*

устанавливаем начальные значения

*/. d2 [0] = 0;. d [0] = dx0;. val = x0;. d2 [0] = 0;. d [0] = 0;. val = f0;. tv_sec = 0;. tv_nsec = 15000000;. tv_sec = 0;. tv_nsec = 66666; // количество микросекунд, приходящихся на 1 градус(iter = 0; iter < nNumIter; iter++)

{

/*выводим 1 в 1 дата-вывод LPT-порта*/(0x01, LPT_BASE);

/*ждем до окончания импульса в зависимости от выводимого угла (по таблице angle_var) */(i = 0; i < (int) f. val; i++)

{(&TimeSpec);

}(0x00, LPT_BASE);

/*

вычисления текущего положения модели

*/. d2 [1] = x. d [0] *f. d [0] /x. val - ge*f. val/x. val - (ro * f. d [0]) / (m*x. val*x. val);. d [1] = f. d [0] + h/2 * (f. d2 [1] +f. d2 [0]);. val = f. val + h/2 * (f. d [1] + f. d [0]);. d2 [0] = f. d2 [1];. d [0] = f. d [1];(! (iter % nDivider))

{_Regulator (&x, &f);(pFOut, "%i \t %f \t %f \t %f \t %f \t\n", iter, f. val, x. val, x. d [1], SU_Converter (x. val));

}

/*засыпаем на 15 мс*/(&ttt, NULL);

}0;

}

/**************************************************************************

*

* void SU_Regulator (point_data* x, point_data* f)

* Описание функции: Функция регулятора. Производит вычисление

*значения управляющего сигнала.

*

* Входные параметры: f - указатель на структуру типа point_data, в

*которой хранятся значения угла подвеса,

*его скорости и ускорения

* Выходные параметры: x - указатель на структуру типа point_data, в

*которой хранятся значения положения подвеса,

*его скорости и ускорения - сигнал управления

*

**************************************************************************/SU_Regulator (point_data* x, point_data* f)

{_f, /* амплитуда колебаний */_ampl, /* коэффициент усиления регулятора ускорения */_ampl, /* дополнительный коэфициент */_reg; /* управление */,/* Знак скорости изменения угла */,/* Знак угла */x; /* Знак ускорения изменения положения подвеса */_ampl = 5;_ampl = 0.3;

/* Вычисляем знаки углов */= (f->d [1] > 0);= (f->val> 0);x = sDf ^ sF; /* XOR */x = sD2x * 2 - 1; /* Приводим к базису (1; - 1) */

/* Вычисляем амплитуду угла */_f = (k_ampl*A_ampl) * (A_ampl - fabs (f->val));>d2 [1] = ampl_f*sD2x;>d [1] = x->d [0] + h/2 * (x->d2 [1] + x->d2 [0]);>val = x->val + h/2 * (x->d [1] + x->d [0]);>d2 [0] = x->d2 [1];>d [0] = x->d [1];_reg = f->d [1] * x->d [1];;

}

/**************************************************************************

*

* void SU_Regulator (point_data* x, point_data* f)

* Описание функции: Функция преобразования значения положения подвеса

*в угол поворота исполнительного механизма.

*

* Входные параметры: x - значение положения подвеса

*

* Выходные параметры: фактический угол поворота исполнительного механизма

*

**************************************************************************/SU_Converter (double x)

{acos ( ( (l1*l1) + (l2*l2) - (L-x) * (L-x)) / (2*l1*l2));

}

Приложение 4. Программа и методика испытаний


Программа "control_system"

Программа и методика испытаний

Листов 2

РП.68124-01.51 01

Аннотация

Данный документ содержит методику испытаний программы "control_system", которая предназначена для управления двузвенным мини-роботом типа "качели". Испытания программы представлены в пункте 4.4 пояснительной записки.

.        Объект испытания

Объектом испытания выступает программа "control_system". Программа "control_system" предназначена для управления двузвенным мини-роботом типа "качели".

.        Цель испытаний

Цель испытаний - соотсве6тствие программы техническому заданию.

.        Требования к программе

Программа должна соответствовать функциональным характеристикам, приведенным в техническом задании.

.        Требования к программной документации

К моменту испытаний должны быть представлены следующие программные документы:

) Техническое задание

) Описание программы

) Программа и методика испытаний

.        Средства и порядок испытаний

Для проведения испытаний необходимо иметь все технические средства, указанные в описании программы.

.        Программа и методика испытаний

В первую очередь необходимо произвести частичное функциональное тестирование программы. Убедиться, что программа производит управления сервоприводом в заданной последовательности от 0 до 180 градусов включительно. Убедиться, что программа формирует корректный управляющий сигнал.

.        Представление результатов испытаний

Представление удобнее всего делать с помощью графиков, формируемых из данных, выводимых в файл результатов программы.

Приложение 5. Текст программы тестовой модели


/*********************************************************************

*

* control_model. cpp: файл содержит функции, используемые для исследования

*корректности модели робота и дискретной системы

*управления.

*

* Автор: Сичевая Э. А.

*

********************************************************************/

#include "stdafx. h"

#include "math. h"

#define ge 9.8

#define f00.5

#define x04

#define dx00

#define ro0.15

#define h0.0002

#define m0.5

#define h0.0002

#define l11

#define l21

#define L4

/*

Структура для хранения информации о текущем положении точки,

а также текущем и предыдущем значении первой и второй производной

*/struct {val;d [2];d2 [2];

} point_data;SU_Regulator (point_data*, point_data*);SU_Converter (double x);main (int argc, char* argv [])

{

/* Для значений положения и угла */_datax, f;iter;*pFOut;nNumIter, nDivider;

/*

считываем аргументы командной строки,

иначе - заполняем значениями по умолчанию

*/= 1000000;= 100;

/*

устанавливаем начальные значения

*/. d2 [0] = 0;. d [0] = dx0;. val = x0;. d2 [0] = 0;. d [0] = 0;. val = f0;

/*

открываем выходной файл для перезаписи

*/( (pFOut = fopen ("output. dat","w")) == NULL)

{( (pFOut = fopen ("output. dat","a")) == NULL)

{("Cannot open file. failed");- 1;

}

}

/*

производим вычисления

*/(iter = 0; iter < nNumIter; iter++)

{

/*

вычисления текущего положения модели

*/. d2 [1] = x. d [0] *f. d [0] /x. val - ge*f. val/x. val - (ro * f. d [0]) / (m*x. val*x. val);. d [1] = f. d [0] + h/2 * (f. d2 [1] +f. d2 [0]);. val = f. val + h/2 * (f. d [1] + f. d [0]);. d2 [0] = f. d2 [1];. d [0] = f. d [1];(! (iter % nDivider))

{_Regulator (&x, &f);(pFOut, "%i \t %f \t %f \t %f \t %f \t\n", iter, f. val, x. val, x. d [1], SU_Converter (x. val));

}

}0;

}

/**************************************************************************

*

* void SU_Regulator (point_data* x, point_data* f)

* Описание функции: Функция регулятора. Производит вычисление

*значения управляющего сигнала.

*

* Входные параметры: f - указатель на структуру типа point_data, в

*которой хранятся значения угла подвеса,

*его скорости и ускорения

* Выходные параметры: x - указатель на структуру типа point_data, в

*которой хранятся значения положения подвеса,

*его скорости и ускорения - сигнал управления

*

**************************************************************************/SU_Regulator (point_data* x, point_data* f)

{_f, /* амплитуда колебаний */_ampl, /* коэффициент усиления регулятора ускорения */_ampl, /* дополнительный коэфициент */_reg; /* управление */,/* Знак скорости изменения угла */,/* Знак угла */x; /* Знак ускорения изменения положения подвеса */_ampl = 5;_ampl = 0.3;

/* Вычисляем знаки углов */= (f->d [1] > 0);= (f->val> 0);x = sDf ^ sF; /* XOR */x = sD2x * 2 - 1; /* Приводим к базису (1; - 1) */

/* Вычисляем амплитуду угла */_f = (k_ampl*A_ampl) * (A_ampl - fabs (f->val));>d2 [1] = ampl_f*sD2x;>d [1] = x->d [0] + h/2 * (x->d2 [1] + x->d2 [0]);>val = x->val + h/2 * (x->d [1] + x->d [0]);>d2 [0] = x->d2 [1];>d [0] = x->d [1];_reg = f->d [1] * x->d [1];;

}

/**************************************************************************

*

* void SU_Regulator (point_data* x, point_data* f)

* Описание функции: Функция преобразования значения положения подвеса

*в угол поворота исполнительного механизма.

*

* Входные параметры: x - значение положения подвеса

*

* Выходные параметры: фактический угол поворота исполнительного механизма

*

**************************************************************************/SU_Converter (double x)

{acos ( ( (l1*l1) + (l2*l2) - (L-x) * (L-x)) / (2*l1*l2));

}

Приложение 6. Текст программы программного управления сервоприводом


/*********************************************************************

*

* model. cpp: программа управления сервоприводом

*

*

* Автор: Сичевая Э. А.

*

********************************************************************/

#include "stdafx. h"

#include <math. h>

#define ge 9.8 // ускорение свободного падения

#define f00.5 // значение по умолчанию для начального угла

#define x04 // значение по умолчанию для начальной длины подвеса

#define dx00 // начальная скорость подвеса

#define ro0.15 // значение по умолчанию коэффициента трения

#define h0.0002 // значение по умолчанию для шага интегрирования

#define m0.5 // значение по умолчанию для массы подвеса

// значения по умолчанию для геометрических параметров объекта управления

#define l110

#define l210

#define L22

/*

Структура для хранения информации о текущем положении точки,

а также текущем и предыдущем значении первой и второй производной

*/struct {val;d [2];d2 [2];

} point_data;SU_Regulator (point_data*, point_data*);SU_Converter (double x);main (int argc, char* argv [])

{

/* Для значений положения и угла */_datax, f;iter, i;h, m;*pFOut;nNumIter, nDivider;= 1000000;= 100;

/*

открываем выходной файл для перезаписи

*/( (pFOut = fopen ("output. dat","w")) == NULL)

{( (pFOut = fopen ("output. dat","a")) == NULL)

{("Cannot open file. failed");- 1;

}

}

/*

производим вычисления

*/

/*

устанавливаем начальные значения

*/. d2 [0] = 0;. d [0] = dx0;. val = x0;. d2 [0] = 0;. d [0] = 0;. val = f0;(iter = 0; iter < nNumIter; iter++)

{

/*

вычисления текущего положения модели

*/. d2 [1] = x. d [0] *f. d [0] /x. val - ge*f. val/x. val - (ro * f. d [0]) / (m*x. val*x. val);. d [1] = f. d [0] + h/2 * (f. d2 [1] +f. d2 [0]);. val = f. val + h/2 * (f. d [1] + f. d [0]);. d2 [0] = f. d2 [1];. d [0] = f. d [1];(! (iter % nDivider))

{_Regulator (&x, &f);(pFOut, "%i \t %f \t %f \t %f \t %f \t\n", iter, f. val, x. val, x. d [1], SU_Converter (x. val));

}

}0;

}

/**************************************************************************

*

* void SU_Regulator (point_data* x, point_data* f)

* Описание функции: Функция регулятора. Производит вычисление

*значения управляющего сигнала.

*

* Входные параметры: f - указатель на структуру типа point_data, в

*которой хранятся значения угла подвеса,

*его скорости и ускорения

* Выходные параметры: x - указатель на структуру типа point_data, в

*которой хранятся значения положения подвеса,

*его скорости и ускорения - сигнал управления

*

**************************************************************************/SU_Regulator (point_data* x, point_data* f)

{_f, /* амплитуда колебаний */_ampl, /* коэффициент усиления регулятора ускорения */_ampl, /* дополнительный коэфициент */_reg; /* управление */,/* Знак скорости изменения угла */,/* Знак угла */x; /* Знак ускорения изменения положения подвеса */_ampl = 5;_ampl = 0.3;

/* Вычисляем знаки углов */= (f->d [1] > 0);= (f->val> 0);x = sDf ^ sF; /* XOR */x = sD2x * 2 - 1; /* Приводим к базису (1; - 1) */

/* Вычисляем амплитуду угла */_f = (k_ampl*A_ampl) * (A_ampl - fabs (f->val));>d2 [1] = ampl_f*sD2x;>d [1] = x->d [0] + h/2 * (x->d2 [1] + x->d2 [0]);>val = x->val + h/2 * (x->d [1] + x->d [0]);>d2 [0] = x->d2 [1];>d [0] = x->d [1];_reg = f->d [1] * x->d [1];;

}

/**************************************************************************

*

* void SU_Regulator (point_data* x, point_data* f)

* Описание функции: Функция преобразования значения положения подвеса

*в угол поворота исполнительного механизма.

*

* Входные параметры: x - значение положения подвеса

*

* Выходные параметры: фактический угол поворота исполнительного механизма

*

**************************************************************************/SU_Converter (double x)

{acos ( ( (l1*l1) + (l2*l2) - (L-x) * (L-x)) / (2*l1*l2));

}

Похожие работы на - Мехатронная колебательная система с компьютерным управлением

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!