Робастное управление электромеханическими системами манипуляционного робота под действием неопределенной нагрузки тема диссертации и автореферата по ВАК РФ 05.09.03, кандидат наук Чан Данг Хоа

  • Чан Данг Хоа
  • кандидат науккандидат наук
  • 2019, ФГАОУ ВО «Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им. В.И. Ульянова (Ленина)»
  • Специальность ВАК РФ05.09.03
  • Количество страниц 168
Чан Данг Хоа. Робастное управление электромеханическими системами манипуляционного робота под действием неопределенной нагрузки: дис. кандидат наук: 05.09.03 - Электротехнические комплексы и системы. ФГАОУ ВО «Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им. В.И. Ульянова (Ленина)». 2019. 168 с.

Оглавление диссертации кандидат наук Чан Данг Хоа

ВВЕДЕНИЕ

ГЛАВА 1: МАТЕМАТИЧЕСКАЯ МОДЕЛЬ СИСТЕМЫ УПРАВЛЕНИЯ ЭЛЕКТРОПРИВОДАМИ РОБОТА - МАНИПУЛЯТОРА

1.1. Уравнение движения робота - манипулятора

1.1.1. Методы построения уравнений движения робота - манипулятора

1.1.2. Общая форма уравнения движения манипулятора

1.2. Математическая модель системы управления электроприводами робота-манипулятора

1.2.1. Математическая модель системы управления электроприводами робота-манипулятора без учёта нелинейного электромагнитного возмущения двигателя

1.2.2. Математическая модель системы управления электроприводами робота-манипулятора с учётом нелинейного электромагнитного возмущения БДПМ

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

29

1.3.1. Метод оптимального управления нелинейной САУ на основе линейного квадратного регулятора (ЛКР)

1.3.2. Метод робастного управления нелинейной САУ на основе Тэта^

1.3.3. Управления нелинейной САУ с применением искусственной нейронной сети

1.4. Выводы по первой главе

ГЛАВА 2: РАЗРАБОТКА СИСТЕМЫ ОПТИМАЛЬНОГО УПРАВЛЕНИЯ ЭЛЕКТРОПРИВОДОМ НА ОСНОВЕ БЕСКОЛЛЕКТОРНОГО ДВИГАТЕЛЯ С ПОСТОЯННЫМИ МАГНИТАМИ

2.1. Разработка системы линейного оптимального управления электроприводом на основе БДПМ без учёта нелинейного электромагнитного возмущения двигателя

2.2. Разработка системы линейного оптимального управления электроприводом на основе БДПМ с учётом нелинейного электромагнитного возмущения двигателя

2.2.1. Обзор методов управления для минимизации возмущений крутящего момента БДПМ

2.2.2. Разработка системы линейного оптимального управления электроприводом на основе БДПМ с учётом нелинейного электромагнитного возмущения двигателя с применением преобразования Фурье фазных токов

2.3. Исследование модели электропривода на основе БДПМ

2.4. Выводы по второй главе

ГЛАВА 3: РАЗРАБОТКА СИСТЕМЫ РОБАСТНОГО УПРАВЛЕНИЯ МЕХАНИЧЕСКИМИ РОБОТАМИ-МАНИПУЛЯТОРАМИ

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

3.2. Разработка системы линейного оптимального управления роботами-манипуляторами на основе линейного квадратного регулятора (ЛКР)

3.3. Разработка системы робастного управления роботами-манипуляторами на основе робастного Тэта-0

3.4. Синтезирование системы нейронного управления роботами-манипуляторами на основе робастного управления Тэта^

3.4.1. Конструкция робастного контроллера на основе ИНС

3.4.2. Метод обучения Байесовской регуляризации обратного распространения для процесса обучения ИНС (Байесовская регрессия)

3.5. Выводы по третьей главе

ГЛАВА 4: РАЗРАБОТКА СИСТЕМЫ РОБАСТНОГО УПРАВЛЕНИЯ ЭЛЕКТРОПРИВОДАМИ ДЛЯ ТРЁХЗВЕННОГО РОБОТА-МАНИПУЛЯТОРА

4.1. Математическая модель трёхзвенного робота-манипулятора

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

4.2.1. Математическая модель линейной системы управления электроприводами на основе БДПМ с помощью компенсатора момента

4.2.2. Математическая модель нелинейной системы управления электроприводами на основе БДПМ с помощью компенсатора момента [79]

4.3. Выводы по четвёртой главе

ГЛАВА 5: МОДЕЛИРОВАНИЯ СИСТЕМЫ УПРАВЛЕНИЯ ЭЛЕКТРОПРИВОДАМИ РОБОТА-МАНИПУЛЯТОРА

5.1. Моделирование механики робота-манипулятора в среде SolidWorks

5.2. Моделирование бесколлекторного двигателя с постоянными магнитами в среде Matlab/Simulink

5.2.1. Моделирования структурных частей бесколлекторного двигателя с постоянными магнитами

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

5.3. Моделирование системы оптимального, робастного и нейронного управления двух звенными роботами-манипуляторами в среде Matlab/Simulink

5.3.1. Моделирование системы оптимального, робастного управления двух звенными роботами-манипуляторами

5.3.2. Моделирование системы нейронного управления двух звенными роботами-манипуляторами

5.4. Моделирование системы управления электроприводами трёхзвенного робота-манипулятора в среде Matlab/Simulink

5.4.1. Моделирования структурных частей системы управления электроприводами трёхзвенного робота-манипулятора

5.4.2. Исследование линейной системы управления электроприводами трёхзвенного робота-манипулятора с ЛКР компенсатора момента

5.4.3. Исследование линейной системы управления электроприводами трёхзвенного робота-манипулятора сробастным компенсатором момента (по методу Тэта^)107

5.4.4. Исследование линейной системы управления электроприводами трёхзвенного робота-манипулятора с нейронным компенсатором момента

5.4.5. Исследования влияния электромагнитных возмущений двигателей на выходные качества системы управления электроприводами робота-манипулятора

5.4.6. Исследования нелинейной системы управления электроприводами для трёхзвенного робота-манипулятора с ЛКР компенсатором момента

5.4.7. Исследования нелинейной системы управления электроприводами для трёхзвенного робота-манипулятора с робастного компенсатора момента

5.4.8. Исследования нелинейной системы управления электроприводами для

трёхзвенного робота-манипулятора с нейронным компенсатором момента

5. 5. Выводы по пятой главе

ЗАКЛЮЧЕНИЕ

СПИСОК ЛИТЕРАТУРЫ

ПРИЛОЖЕНИЕ А: Текст программы для вычисления регулятора робастного управления роботами-манипуляторами

ПРИЛОЖЕНИЕ Б: Текст программы вычисления компенсатора момента применения искусственной нейронной сети для робота-манипулятора на основе робастного управления

ПРИЛОЖЕНИЕ Г: Текст программы блоков моделирования системы управления электроприводами робота-манипулятора

СПИСОК СОКРАЩЕНИЙ И УСЛОВНЫХ ОБОЗНАЧЕНИЙ

БДПМ - бесколлекторный двигатель с постоянными магнитами ВКМ - возмущение крутящего момента ГА - генетический алгоритм Г-Я-Б - Гамильтон-Якоби-Беллман

ДУЗС- дифференциальное уравнение зависит от состояния переменных

Д-Х - представление Денавита-Хартенберга

ИНС - искусственная нейронная сеть

КПД - коэффициент полезного действия

ЛКР - линейный квадратный регулятор

ПИ - пропорционально-интегральный регулятор

ПИД - пропорционально-интегральный дифференциальный регулятор

ПУКМ - прямое управление крутящим моментом

РМ - робот-манипулятор

САУ - система автоматического управления

УЛ - уравнение Ляпунова

ШИМ - широтно-импульсная модуляция

ЭВМ - электронно-вычислительная машина

ЭДС - электродвижущая сила

Рекомендованный список диссертаций по специальности «Электротехнические комплексы и системы», 05.09.03 шифр ВАК

Введение диссертации (часть автореферата) на тему «Робастное управление электромеханическими системами манипуляционного робота под действием неопределенной нагрузки»

ВВЕДЕНИЕ

Актуальность темы исследования. Задачи компенсации неопределенных возмущений для нелинейного класса систем автоматического управления имеют большое значение и являются предметом активных исследований на протяжении последних десятилетий. Для решения этих задач предложено несколько принципиально разных подходов, таких как: 1) робастное управление роботами-манипуляторами, рассмотренными с точки зрения оптимального управления, связь между робастной стабилизацией неопределенных динамических систем; 2) проблема оптимального управления с использованием функции Ляпунова, гарантирующая замкнутую стабильность неопределенной динамической системы; 3) решение стационарного уравнения Гамильтона-Якоби-Беллмана (Г-Я-Б) для оптимальной управляемой системы с модифицированной функцией критерия качества, включая границы неопределенности; 4) робастная стабилизация задачи нелинейного управления при определенном согласующем условии эквивалентна задаче оптимального управления через точность определения функции критерия качества, которая отражает границы неопределенности. Эти задачи освещены отечественными учёными, такими как: Борцов Ю. А., Соколовский Г. Г., Уткин В.А., Андронов А. А., Понтрягин Л.С., Красовский Н. Н., Малкин И. Г., Черноусько Ф.Л., и др., - а также и зарубежными: Haddad, Wassim M., Lin F., Olbrot A. W., Xin M., Balakrishnan S. N., Tumer M.C., Bates D.G., Aghili F., Holtz J., Springob L., Miraoui A., и др.

Проектирование современных систем автоматического управления, отвечающих критериям качества системы управления, особенно её высокоскоростным диапазонам, является большой проблемой для повышения энергетической эффективности современных систем управления. Для преодоления этих проблем существует множество решений, которые ученые изучили, а затем предложили два основных направления: первое - построение системы с помощью высококачественного оборудования, уменьшение коэффициента редуктора; второе - настройка современных алгоритмов управления, таких как: адаптивное управление, робастное управление или нечеткое управление, а также недавно разработанные интеллектуальные алгоритмы, основанные на искусственной нейронной сети (ИНС) и генетических алгоритмах (ГА) для компенсации, прямого управления для устранения нежелательных эффектов, вызванных возмущениями или другими ограничениями для улучшения качества системы. Однако

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

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

Объект исследования. Трёхзвенный манипуляционный робот с электроприводами на основе БДПМ под действием неопределенной нагрузки.

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

Задачи исследования поставлены в работе, следующие:

- Разработать математическую модель электропривода управления манипуляционными роботами на основе БДПМ с учетом нелинейных электромагнитных возмущений двигателя и неопределенных возмущений нагрузки;

- Разработать метод оптимального и робастного управления манипуляционными роботами;

- Разработать робастное управление манипуляционным роботом на основе искусственной нейронной сети;

- Разработать систему робастного управления электроприводами на основе бесколлекторного двигателя с постоянными магнитами (БДПМ) для трёхзвенного робота-

манипулятора с применением робастного компенсатора момента и с применением нейронного компенсатора момента.

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

- Проанализирован электромагнитный процесс БДПМ и синтезирован оптимальный контроллер для БДПМ с учетом электромагнитного возмущения двигателя;

- Синтезировано робастное управление роботом-манипулятором под действием неопределенной нагрузки;

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

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

Теоретическая и практическая значимость диссертационной работы состоит в том, что метод робастного управления может быть использованы для построения алгоритмов управления широким классом электромеханических систем, на которые действуют неопределённые возмущения и изменяются параметры САУ. При этом применение предложенных в диссертации методов робастного управления позволяет уменьшить объем вычислений для синтеза алгоритмов компенсации действия возмущений. Материалы в диссертации могут быть использованы при применении методов синтеза робастной компенсации момента РМ под действием неопределенных возмущений в различных электромеханических системах.

Методология и методы исследования. Для решения поставленных задач в работе использованы методы современной теории систем автоматического управления, методы робастного оптимального управления нелинейными объектами, компьютерные методы исследования на базе стандартных программных продуктов, моделирование в среде МайаЬ^тиНпк.

Положения, выносимые на защиту.

- Математическая модель электропривода управления манипуляционными роботами на основе БДПМ с учетом нелинейного электромагнитного возмущения из-за вращения ротора двигателя;

- Метод и алгоритм робастного управления манипуляционными роботами под действием неопределенной нагрузки;

- Метод синтезирования нейронного контроллера для манипуляционного робота на основе робастного управления;

- Синтезирование системы управления электроприводами при сочетании преобразователей Фурье с нейронным компенсатором момента для трёхзвенного робота-манипулятора под действием неопределенной нагрузки.

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

Апробация результатов. Основные положения диссертационной работы изложены и обсуждены во время проведения конференции: международная научная конференция «ММЕТ NW 2018» в Санкт-Петербургском государственном технологическом университете (10-14.09.2018 г.); конференция молодых исследователей России по электротехнике и электронике IEEE «2019 ElConRus» в Санкт-петербургском государственном электротехническом университете (28-31.01.2019); двух научно-технических конференциях профессорско-преподавательского состава СПбГЭТУ «ЛЭТИ», Санкт Петербург, Россия, в 2016, 2017 г.

Публикации. По материалам диссертационной работы: опубликовано 12 печатных работ: из них - 4 статьи в рецензируемых журналах, рекомендованных ВАК РФ, - 2 патента на программы для ЭВМ РФ, - 2 статьи, индексируемых на базе Scopus (IEEE), -4 публикации в других изданиях и материалах различных конференций.

Структура и объем работы. Диссертационная работа состоит из введения, пяти глав с выводами, заключения, списка литературы и приложения. Общий объем диссертации 168 с., в том числе 124 с. основного текста, 109 рисунков, 10 таблиц, 3 приложения и список литературы из 88 наименований на 8 страницах.

В первой главе представлено описание метода построения уравнения движения РМ по методу Лагранжа; проанализирована и построена математическая модель электропривода РМ на основе БДПМ; анализированы обзор оптимальных методов управления РМ, а также ограниченность имеющихся результатов и актуальные задачи

исследования динамики движения робота-манипулятора; приведены метод робастного управления нелинейной системой автоматического управления и подход управления нелинейной САУ на основе применения искусственной нейронной сети.

Во второй главе проанализировано влияние электромагнитных возмущений к крутящему моменту БДПМ и предложена математическая модель электропривода на основе БДПМ с учётом нелинейного электромагнитного возмущения БДПМ. Предложен метод оптимального управления на основе максимального принципа с помощью преобразования Фурье фазных токов и углового поворота ротора в контуре управления моментом БДПМ. Проведены анализ условия применения и оценка эффективности этого метода по сравнению с традиционной моделью БДПМ.

В третьей главе проведены системы линейного оптимального управления на основе ЛКР и на основе робастного управления Тэта^ для двухзвенного РМ; проанализирована конструкция нейронного контроллера и синтезирован нейронный контроллер на основе робастной управления Тэта^.

В четвёртой главе представлена математическая модель трёхзвенного робота-манипулятора; построена математическая модель системы линейного оптимального управления электроприводами для трёхзвенного РМ на основе применения компенсатора момента, соответствующей двум случаям: без учёта и с учетом электромагнитных возмущений БДПМ; проанализированы основы построения компенсатора момента на основе вычисления момента робота-манипулятора при сочетании пропорционально-дифференциального регулятора с линейным квадратичным регулятором и с робастным управлением Тэта^.

В пятой главе проведено моделирование модели, разработаны в главах 2, 3 и 4 в среде МаЙаЬ^тиНпк; проведены моделирование БДПМ, моделирование динамической системы плоского двухзвенного РМ; показана эффективность преобразователя Фурье и проанализированы результаты методов оптимального и робастного управления Тэта^; проведен синтез нейронного контроллера двухзвенного РМ на основе робастного управления Тэта^; проведены моделирование системы управления электроприводами трёхзвенного робота-манипулятора, исследование линейной и нелинейной системы управления электроприводами трёхзвенного РМ с компенсатором момента по ЛКР, с робастным компенсатором момента по методу Тэта^ и с нейронным компенсатором момента;

ГЛАВА 1: МАТЕМАТИЧЕСКАЯ МОДЕЛЬ СИСТЕМЫ УПРАВЛЕНИЯ ЭЛЕКТРОПРИВОДАМИ РОБОТА - МАНИПУЛЯТОРА

В настоящей главе представлено описание метода построения уравнения движения робота-манипулятора по методу Лагранжа. Проанализирована и построена математическая модель электропривода робота-манипулятора на основе БДПМ. Представлены аналитический обзор оптимальных методов управления роботами-манипуляторами, а также ограниченность имеющихся результатов и актуальные задачи исследования динамики движения робота-манипулятора. Приведены методы оптимального, робастного управления нелинейной системой автоматического управления и подход управления нелинейной САУ на основе применения искусственной нейронной сети.

1.1. Уравнение движения робота - манипулятора

1.1.1. Методы построения уравнений движения робота - манипулятора

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

и и 1 с» х Г

смысле, что они описывают динамику движения одной и той же физической системы. К ним относятся уравнения, полученные Уникером [1], [2] с помощью метода Лагранжа -Эйлера; рекуррентные уравнения, полученные Холлербахом [3] с помощью того же метода; уравнения, полученные Лух [4] методом Ньютона - Эйлера; уравнения, полученные Ли [5] с применением обобщённых уравнений Д'Аламбера. Все эти уравнения различны по форме, поскольку были получены для разных целей. Некоторые из них обеспечивают минимальное время вычисления управляющих моментов в сочленениях манипулятора, другие используются при синтезе и анализе законов управления, третьи применяются для моделирования движения манипулятора с помощью ЭВМ.

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

собой твёрдые тела, этот подход приводит к системе нелинейных дифференциальных уравнений второго порядка. Бьецци [1], пользуясь для описания кинематической цепи матрицами преобразования координат и уравнениями Лагранжа, показал, что уравнения динамики движения стэндфордского шестизвенного манипулятора существенно нелинейные и отражают эффекты, связанные с действием сил инерции, обусловленных ускоренным движением звеньев, действием кориолисовых и центробежных сил, а также действием силы тяжести. Более того, действующие в сочленения силы и моменты зависят от параметров манипулятора, мгновенных значений присоединённых переменных, скоростей и ускорений, а также перемещаемого манипулятором груза. Уравнения Лагранжа обеспечивают строгое описание динамики состояния манипулятора и могут быть использованы для разработки усовершенствованных законов управления в пространстве присоединённых переменных.

Полное описание движения манипулятора можно получить, применяя метод Лагранжа для неконсервативных систем. Описав кинематику манипулятора с помощью матричного представления Денавита-Хартенберга (Д-Х), можно, пользуясь формализмом Лагранжа, получить уравнение динамики. Такое совместное использование Д-Х - представления и метода Лагранжа приводит к компактной векторно-математической форме уравнений движения, удобной для аналитического исследования и допускающей реализацию на ЭВМ [6, 7].

Уравнение динамики движения манипулятора основано на следующем:

На описании взаимного пространственного расположения систем координат /-ого и (/-1)-ого звеньев с помощью матрицы преобразования

однородных координат 1Л /-1. Эта матрица преобразует координаты произвольной точки относительно /-й системы координат в координаты этой же точки относительно (/-1)-й системы координат.

На использовании уравнения Лагранжа-Эйлера

'дЬ

сИ

Щ/.

дЬ / ; / = 1, п, (1.1)

дЧ/

где Ь - функция Лагранжа (Ь = К - Р), К - полная кинетическая энергии манипулятора; Р -полная потенциальная энергия манипулятора; ^ -обобщённые координаты манипулятора; ¿11 -первая производная по времени обобщённых координат; т/ -

обобщённые силы (или моменты), создаваемые в / -м сочленении для реализации заданного движения / -ого звена.

Для того чтобы воспользоваться уравнением Лагранжа - Эйлера, необходимо выбрать систему обобщённых координат. Обобщённые координаты представляют собой набор координат, обеспечивающий полное описание положения рассматриваемой физической системы в абсолютной системе координат. Существуют различные системы обобщённых координат, пригодные для описания простого манипулятора с вращательными и поступательными сочленениями. Однако поскольку углы поворотов в сочленениях непосредственно доступны измерению с помощью потенциометров или других датчиков, то они составляют наиболее естественную систему обобщённых координат. В этом случае обобщённые координаты совпадают с присоединёнными переменными манипулятора. В частности, если / -е сочленение вращательное, то qi = в^, если же / -е сочленение поступательное, то qi = di.

Для описания вращательных и поступательных связей между соседними звеньями Денавит и Хартенберг предложили матричный метод последовательного построения систем координат, связанных с каждым звеном кинематической цепи. Смысл представления Д-Х состоит в формировании однородной матрицы преобразования, имеющей размерность 4x4 и описывающей положение системы координат каждого звена относительно системы координат предыдущего звена. Это даёт возможность последовательно преобразовать координаты схвата манипулятора из системы отсчёта, связанной с последним звеном, в базовую систему отсчёта, являющейся инерциальной системой координат для рассматриваемой динамической системы [6, 7, 8]. Кроме базовой системы координат для каждого звена на оси его сочленения определяется ортонормированная декартова система координат (х^, у, ), где I = 1, п, а п равно числу

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

Поскольку вращательное сочленение имеет только одну степень свободы, каждая система координат (х^, у1,) манипулятора соответствует (1.1) (/ + 1)-у сочленению и связана с / -м звеном. Когда силовой привод возбуждает движение в / -м сочленении, / -е звено начинает двигаться относительно (/ -1) -ого звена. Поскольку / -я система координат связана с / -м звеном, она движется вместе с ним. Таким образом, п -я система координат движется вместе с последним п -м звеном манипулятора. Базовой является

нулевая система координат (х0,Уо, 2о), представляющая собой инерциальную систему координат манипулятора.

Каждая система координат формируется на основе следующих трёх правил:

1) ось -1 направлена вдоль оси / -ого сочленения;

2) ось х/ перпендикулярна оси ^и направлена от неё;

3) ось у/ дополняет оси х/, 1/ до правой декартовой системы координат.

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

ДХ - представление твёрдых звеньев зависит от четырёх геометрических параметров, соответствующих каждому звену. Эти четыре параметра полностью описывают любое вращательное или поступательное движение и определяются в соответствии с рисунком 1.1 следующим образом:

в/ - присоединённый угол, на который надо повернуть ось х/-1 вокруг оси 1/-1, чтобы она стала со-направленной с осью х/ (знак определяется в соответствии с правилом правой руки);

Рисунок 1.1 Система координата звена и её параметры С/ - расстояние между пересечением оси 1/-1 с осью х/ и началом (/ -1)- й системы

координат, отсчитываемое вдоль оси ;

а/ - линейное смещение - расстояние между пересечением оси 2/-1 с осью х/ и началом /-й системы координат, отсчитываемое вдоль оси х/, т. е. кратчайшее расстояние между осями 21-1 и 21;

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

Для вращательных сочленений параметры d/, а/ и щ являются характеристиками сочленения, постоянными для данного типа робота. В то же время в/ является переменной величиной, изменяющейся при движении (вращении) / -ого звена относительно (/ - 1)-ого. Для поступательных сочленений в1, а/ и щ - характеристики сочленения, неизменные для данного робота, а d/ переменная величина.

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

Шаг 1. Формирование базовой системы координат. Сформировать правую ортонормированную систему координат (х0,уд,20), связанную с основанием, ось 20 вдоль оси 1 -ого сочленения к «плечу» манипулятора. Оси х0 и у0 выбираются произвольно при условии их перпендикулярности оси 20

Шаг 2. Начало и цикл. Для всех / , / = 1, п -1 выполнить шаги 3-6.

Шаг 3. Формирование осей сочленения. Направить ось 2{ вдоль оси движения

(вращательного или поступательного) / +1 -ого сочленения.

Шаг 4. Формирование начала /-й системы координат. Расположить начало / -й системы координат на пересечении осей 21 и 21-1 или на пересечении общей нормали к осям 2{ и 2{-1 с осью 2/ .

Шаг 5. Формирование оси хi. Выбрать единичный вектор хi следующим образом:

(2, 1 X 2, ) _

х1 = + ..—-т. или вдоль общего перпендикуляра к осям 21 и 2^-1, если они параллельны.

Ь-1х Ч

Шаг 6. Формирование оси Положить = +(2Х Х'), получив тем самым

1К' х х; ||

правостороннюю систему координат.

Шаг 7. Формирование системы координат схвата. Как правило, п -е сочленение является вращательным. Сформировать ось 2п , направив её вдоль оси 2п-1 и от робота. Выбрать ось хп так, чтобы она была перпендикулярна осям 2п-1 и 2п .

Шаг 8. Определение параметров звеньев и сочленений. Для каждого I(I = 1,2,...,п -1) выполнить шаги 9-12.

Шаг 9. Определение di . Расстояние di - от начала (I -1) -й системы координат до

пересечения оси 21-1 с осью х, и началом I -й системы координат, отсчитываемой вдоль оси 2{-1. Если I -е соединение - поступательное, то di - присоединённая переменная.

Шаг 10. Определение а1 - расстояния между пересечением оси 21-1 с осью xi и началом I -й системы координат, отсчитываемой вдоль оси xi.

Шаг 11. Определение вв - угла поворота оси хi-1 вокруг оси 2{-1, чтобы она стала со-направленной с осью хi. Если I -е сочленение - вращательное, то в1 -присоединённая переменная.

Шаг 12. Определение сс1 - угла поворота оси 2{вокруг оси хi, чтобы она стала со-направленной с осью 21.

После построения Д-Х - координат для всех звеньев можно построить однородные матрицы преобразования, связывающие I -ю и (I -1) -ю системы координат. Из рисунка 1.1 видно, что координаты точки ц, заданные в I -й системе координат, можно преобразовать в координаты ц-1 этой же точки относительно (I - 1)-й системы координат, выполняя последовательность следующих операций:

1) Поворот вокруг оси 2{-1 на угол в{, чтобы ось xi-1 стала со направленной с осью х1.

2) Сдвиг вдоль оси 2{-1 на расстояние di, чтобы совместить оси хi-1 и хi.

3) Сдвиг вдоль оси xi на расстояние а1, чтобы совместить начала координат.

4) Поворот вокруг оси х/ на угол щ, в результате которого достигается совпадение систем координат.

Каждую из этих четырёх операций можно описать однородной матрицей элементарного поворота-сдвига [8], а произведение таких матриц даёт однородную матрицу сложного преобразования для смежных систем координат с номерами / и (/ -1).

Таким образом, получаем:

/-1

A i Tz ,d Tz ,0Tx ,a Tx ,a

1 0 0 0" cos 0{ - sin 0j 0 0" "1 0 0 a; 1

0 1 0 0 sin 0j cos 0; 0 0 0 1 0 0

0 0 1 d; 0 0 1 0 0 0 1 0

0 0 0 1 0 0 0 1 0 0 0 1J

i-1

A;

10 0 0

0 cos 0; - sin 0; 0

0 sin 0; cos 0; 0

0 0 0 1

cos 0i - cos di sin 0¡ sin ai sin 0¡ a; cos 0¡ sin 0i cos ai cos 0i - sin ai cos 0i ai sin 0i

(1.2)

0 sin ai cos ai di

0 0 0 1

Используя матрицу 1-1 A; , можно связать однородные координаты p; - точки p относительно i -й системы координат с однородными координатами этой точки относительно (i -1) -й системы отсчёта, связанной с (i -1) -м звеном. Эта связь устанавливается равенством:

i-1 А

Pi-1 = Ai Pi ,

(1.3)

T T

где Pi-1 = (xi -1, у;-1, zi-1,1) и Pi = (xi, у; , zi,1) ■

Однородная матрица Т;-, определяющая положение / -й системы координат относительно базовой системы координат, представляет собой произведение

последовательности однородных матриц преобразования ; 1 A; и имеет вид:

0 T; = 0 A!1 A2;-1 A; = П j -1A J =

j=1

xi у; zi Pi 0 0 0 1

R;

0

P;

1

, i = 1, n, (1.4)

где [х/,у/, X/ ] - матрица, определяющая ориентацию / -й системы координат, связанной с i-м звеном, по отношению к базовой системы координат. Это верхняя левая подматрица

матрицы Т , имеющая размерность 3 х 3; рг- - вектор, соединяющий начало базовой

системы координат с началом / -й системы координат. Это верхняя правая подматрицы 0 Т/ , имеющая размерность.

Предположим, что матрица Т имеет следующий вид:

Т

К/

0

пх 5Х ах Рх

0 1 г

Р/ п 5 а Р пу ау Ру

1 0 0 0 1 ПХ а2 Рх

0 0 0 1

(1.5)

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

Похожие диссертационные работы по специальности «Электротехнические комплексы и системы», 05.09.03 шифр ВАК

Список литературы диссертационного исследования кандидат наук Чан Данг Хоа, 2019 год

СПИСОК ЛИТЕРАТУРЫ

[1] BEJCZY, A. K. Dynamic models and control equations for manipulators / A.K. BEJCZY - Jet Propulsion Laboratory, California Institute of Technology, 1979. - 715 p.

[2] LEE, B. H. Resolved motion adaptive control for mechanical manipulators / C.S. George, B.H. LEE // Journal of dynamic systems, measurement, and control, 1984, vol. 106, no. 2, pp. 134-142.

[3] BOOK, Wayne J. Recursive Lagrangian dynamics of flexible manipulator arms / W.J. BOOK // The International Journal of Robotics Research, 1984, vol. 3, no. 3, pp. 87-101.

[4] LUH John Y.S. On-line computational scheme for mechanical manipulators / John Y.S. LUH, Michael W. WALKER, Richard PC. PAUL // Journal of Dynamic Systems, Measurement, and Control, 1980,vol. 102, no. 2, pp. 69-76.

[5] LEE C., CHUNG M. An adaptive control strategy for mechanical manipulators / C. LEE, M. CHUNG // IEEE Transactions on Automatic Control, 1984, vol.29, no. 9, pp. 837840.

[6] Ющенко, А.С. Основы управления манипуляционными роботами / С.Л. Зенкевич, А.С. Ющенко - Москва: МГТУ имени НЭ Бауман, 2004.

[7] Игнатьев, К.В. Электромеханический имитатор антиблокировочных режимов торможения транспортных колес: Дисс. кан-та техн. наук / К.В. Игнатьев - СПБ: СПБГЭТУ, 2016, 186 с.

[8] Фу К. Робототехника: Перевод с английского / К. Фу, Р. Гонсалес, К. Ли -Москва: Мир, 1989, 624 с.

[9] Шаньгин Е. Управление роботами и робототехническими: конспект лекций / Е. Шаньгин -Уфа, 2005.

[10] Tsai, Lung-Wen. Robot Analysis: The Mechanics of Serial and Parallel Manipulators / L.W. Tsai - John Wiley & Sons, Inc., 1999.

[11] Овчинников, И.Е. Вентильные электрические двигатели и привод на их основе / И.Е. Овчинников - Корона-Век, 2006.

[12] Piltan, F. Design Model Free Switching Gain Scheduling Baseline Controller with Application to Automotive Engine / F. Piltan, et al, // International Journal of Information Technology and Computer Science, 2013, vol. 5, no. 1, pp. 65-73.

[13] Piltan, F. Performance-Based Adaptive Gradient Descent Optimal Coefficient Fuzzy Sliding Mode Methodology / F. Piltan, et al, // International Journal of Intelligent Systems and Applications, 2012, vol. 4, no. 11, p. 40.

[14] Piltan, F. Design gradient descent optimal sliding mode control of continuum robots / F. Piltan, , S.T. Haghighi // IAES International Journal of Robotics and Automation, 2012, vol. 1, no .4, p. 175.

[15] V., Kokotovic P. The joy of feedback: nonlinear and adaptive / V.P. Kokotovic // IEEE Control systems, 1992, vol. 12. №. 3, pp. 7-17.

[16] Qu Z. Lyapunov direct design of robust tracking control for classes of cascaded nonlinear uncertain systems without matching conditions / Z. Qu, D.M. Dawson // Proceedings of the 30th IEEE Conference on Decision and Control- IEEE, 1991, pp. 2521-2526.

[17] Carroll J. J. Integrator backstepping techniques for the tracking control of permanent magnet brush DC motors / J.J. Carroll, D.M. Dawson // IEEE transactions on industry applications, 1995, vol. 31, no. 2, pp. 248-255.

[18] Hemati N. Robust nonlinear control of brushless DC motors for direct-drive robotic applications / N. Hemati, J.S. Thorp, M.C. Leu // IEEE Transactions on Industrial Electronics, 1990, vol. 37, no. 6, pp. 460-468.

[19] Carroll J. J. Robust tracking control of a brushless dc motor with application to direct-drive robotics / J.J. Carroll, D.M. Dawson // Proceedings IEEE International Conference on Robotics and Automation, 1993, - IEEE, pp. 94-99.

[20] Ilic M. Feedback linearizing control of switched reluctance motors / M. Ilic, R. Marino, S. Peresada, D. Taylor // IEEE Transactions on Automatic Control, 1987, vol. 32, no. 5, pp. 371-379.

[21] Taylor D.G. A feedback linearizing control for direct-drive robots with switched reluctance motors / M. Ilic, R. Marino, S. Peresada, D. Taylor // 25th IEEE Conference on Decision and Control, 1986, - IEEE, pp. 388-396.

[22] Carroll J.J. Adaptive tracking control of a switched reluctance motor turning an inertial load / J.J. Carroll, D. Dawson // American Control Conference, 1993. - IEEE, pp. 670674.

[23] Bodson M. High-performance nonlinear feedback control of a permanent magnet stepper motor / M. Bodson, J.N. Chiasson, R.T. Novotnak, & R.B. Rekowski // IEEE Transactions on Control Systems Technology, 1993, pp. 5-14.

[24] Day, M.V. On Lagrange manifolds and viscosity solutions / M.V. Day // Journal of Mathematical Systems Estimation and Control, 1998, vol. 8, pp. 369-372.

[25] Van, D. S. On a state space approach to nonlinear Hœ control / Van Der Schaft, J. Arjan // Systems & Control Letters, 1991, vol. 16, no. 1, pp. 1-8.

[26] Lukes, Dahlard L. Optimal regulation of nonlinear dynamical systems / Dahlard L. Lukes // SIAM Journal on Control, 1969, vol. 7, no.1, pp. 75-100.

[27] Bryson, Arthur Earl. Applied optimal control: optimization, estimation and control / Arthur Earl Bryson - Routledge, 2018.

[28] Xin M. A new method for suboptimal control of a class of non-linear systems / M. Xin, S. N. Balakrishnan // Optimal Control Applications and Methods, 2005, vol. 26, no. 2.

[29] Терехов В.А. Нейросетевые системы управления / Д.В. Ефимов, И.Ю. Тюкин. -Москва, 2002.

[30] Gieras, Jacek F. Advancements in electric machines / Jacek F. Gieras - Springer Science & Business Media, 2008.

[31] Grenier, D. A. park-like transformation for the study and the control of a nonsinusoidal brushless dc motor / D. Grenier, L. A. Dessaint, O. Akhrif & J. P. Louis // In Proceedings of IECON'95-21st Annual Conference on IEEE Industrial Electronics, 1995, vol. 2, pp. 836-843.

[32] Krause, Paul. Analysis of electric machinery and drive systems/ P. Krause, O. Wasynczuk, S. D. Sudhoff & S. Pekarek // Analysis of electric machinery and drive systems. - John Wiley & Sons, 2013, vol. 75.

[33] Zhu, Z. Q. Influence of design parameters on cogging torque in permanent magnet machines / Z. Q. Zhu, David Howe // IEEE Transactions on energy conversion, 2000, vol. 15, no. 4, pp. 407-412.

[34] Holtz J. Identification and compensation of torque ripple in high-precision permanent magnet motor drives / Joachim Holtz, Lothar Springob // IEEE Transactions on Industrial Electronics, 1996, vol. 43, no. 2, pp. 309-320.

[35] Toliyat H. A. DSP-based electromechanical motion control / H. A. Toliyat, S. G. Campbell. - CRC press, 2003.

[36] Murai Y. Torque ripple improvement for brushless DC miniature motors / Murai Yoshihiro, Y. Kawase, K. Ohashi, K. Nagatake & K. Okuyama // IEEE Transactions on Industry Applications, 1989, vol, 25, no. 3, pp. 441-450.

[37] Zhang C. A PWM control algorithm for eliminating torque ripple caused by stator magnetic field jump of brushless DC motors / C. Zhang, D. Bian // WCICA 2008. 7th World Congress on Intelligent Control and Automation. - IEEE, 2008, p. 6547-6549.

[38] Kun W. A novel PWM scheme to eliminate the diode freewheeling in the inactive phase in BLDC motor / W. Kun, R. Junjun, T. Fanghua & Z. Zhongchao // IEEE 35 th Annual Power Electronics Specialists Conference, 2004, vol. 3, pp. 2282-2286.

[39] Xiangjun Z. The different influences of four PWM modes on the commutation torque ripples in sensorless brushless DC motors control system / Z. Xiangjun, C. Boshi //

ICEMS 2001. Proceedings of the Fifth International Conference on Electrical Machines and Systems. - IEEE, 2001, vol. 1, pp. 575-578.

[40] Sathyan A. A low-cost digital control scheme for brushless DC motor drives in domestic applications / A. Sathyan, M. Krishnamurthy, N. Milivojevic & A. Emadi // IEEE International Electric Machines and Drives Conference. - IEEE, 2009, pp. 76-82.

[41] Nam K. Y. Reducing torque ripple of brushless DC motor by varying input voltage / K. Y. Nam, W. T. Lee, C. M. Lee & J. P. Hong // IEEE transactions on magnetics, 2006, vol. 42, no. 4, pp. 1307-1310.

[42] N'diaye A. Reduction of the torque ripples in brushless PM motors by optimization of the supply-theoretical method and experimental implementation / A. N'diaye, C. Espanet, A. Miraoui // IEEE International Symposium on Industrial Electronics. - IEEE, 2004, vol. 2, pp. 1345-1350.

[43] Su G. J. Multilevel DC link inverter for brushless permanent magnet motors with very low inductance / G. J. Su, D. J. Adams // IEEE Industry Applications Conference. 36th IAS Annual Meeting. - IEEE, 2001vol. 2, pp. 829-834.

[44] Feipeng X. A low cost drive strategy for BLDC motor with low torque ripples / X. Feipeng, L. Tiecai, T. Pinghua // ICIEA 2008. 3rd IEEE Conference on Industrial Electronics and Applications. - IEEE, 2008, pp. 2499-2502.

[45] Song J. H. Commutation torque ripple reduction in brushless DC motor drives using a single DC current sensor / J. H. Song, I. Choy // IEEE Transactions on Power Electronics, 2004, vol. 19, no. 2, pp. 312-319.

[46] Park S. H. A simple current control algorithm for torque ripple reduction of brushless DC motor using four-switch three-phase inverter / S. H. Park, T. S. Kim, S. C. Ahn & D. S. Hyun // IEEE 34th Annual Conference on Power Electronics Specialist, 2003, vol. 2, pp. 574-579.

[47] Dixon J. W. Current control strategy for brushless DC motors based on a common DC signal / J. W. Dixon, L. A. Leal // IEEE transactions on power electronics, 2002, vol. 17, no. 2, pp. 232-240.

[48] Park S. I. An improved current control method for torque improvement of high-speed BLDC motor / S. I. Park, T. S. Kim, S. C. Ahn & D. S. Hyun // Eighteenth Annual IEEE Applied Power Electronics Conference and Exposition. - IEEE, 2003, vol. 1, pp. 294299.

[49] Romeral L. Torque ripple reduction in a PMSM driven by direct torque control / L. Romeral, A. Fabrega, J. Cusido, A. Garcia & J. A. Ortega // IEEE Power Electronics Specialists Conference. - 2008, pp. 4745-4751.

[50] Ozturk S. B. Direct torque control of brushless dc motor with non-sinusoidal back-EMF / S. B. Ozturk, H. A. Toliyat // IEEE International Electric Machines & Drives Conference. - IEEE, 2007, vol. 1, pp. 165-171.

[51] Ozturk S. B. Direct torque control of four-switch brushless DC motor with non-sinusoidal back EMF / S. B. Ozturk, W. C. Alexander, H. A. Toliyat // IEEE Transactions on Power Electronics. - IEEE, 2010, vol. 25, no. 2, pp. 263-271.

[52] Kang S. J. Direct torque control of brushless DC motor with nonideal trapezoidal back EMF / S. J. Kang, S. K. Sul // IEEE Transactions on power electronics. - IEEE, vol. 10, no. 6, pp. 796-802.

[53] Lee C. K. Torque ripple reduction in brushless DC motor velocity control systems using a cascade modified model reference compensator / C. K. Lee, N. M. Kwok // Proceedings of IEEE Power Electronics Specialist Conference. - IEEE, 1993, pp. 458-464.

[54] Holtz J., Springob L., «Identification and compensation of torque ripple in high-precision permanent magnet motor drives / J. Holtz, L. Springob // IEEE Transactions on Industrial Electronics. - IEEE, 1996, vol. 43, no. 2, pp. 309-320.

[55] Hanselman D. C. Minimum torque ripple, maximum efficiency excitation of brushless permanent magnet motors / D. C. Hanselman // IEEE Transactions on Industrial Electronics. - IEEE, 1994, vol. 41, no. 3, pp. 292-300.

[56] Sozer Y. Adaptive torque ripple control of permanent magnet brushless DC motors / Y. Sozer, D. A. Torrey // IEEE Applied Power Electronics Conference and Exposition. -IEEE, 1998, vol. 1, pp. 86-92.

[57] Hillerstrom, G. Adaptive suppression of vibrations-a repetitive control approach / G. Hillerstrom // IEEE Transactions on Control Systems Technology, 1996, vol. 4, no. 1, pp. 72-78.

[58] Wang Z., Xie S., Guo Z., «A complex fuzzy controller for reducing torque ripple of brushless DC motor / Z. Wang, S. Xie, Z. Guo // International Conference on Intelligent Computing. - Springer, Berlin, Heidelberg, 2009, pp. 804-812.

[59] Aghili F. Optimal and fault-tolerant torque control of servo motors subject to voltage and current limits / F. Aghili // IEEE Transactions on Control Systems Technology, 2013, vol. 21, no. 4, pp. 1440-1448.

[60] Чан Д. Х. Синтез оптимального регулятора момента бесколлекторного двигателя с постоянными магнитами в электроприводах промышленных роботов / М. П. Белов, Д. Х. Чан, Ч. Х. Фыонг // Известия СПбГЭТУ «ЛЭТИ», 2018, Вып. 4, С. 66-72.

[61] Уайт Д. Электромеханическое преобразование энергии / Д. Уайт. - Рипол Классик, 2013.

[62] Chen Y. Torque Ripple Reduction of Brushless dc motor on current prediction and overlapping commutation / Y. Chen, J. Tang, D. S. Cai & X. Liu // PRZEGL4D ELEKTROTECHNICZNY (Electrical Review), ISSN, 0033-2097, 2012.

[63] Haddad, M. W. Optimal non-linear robust control for non-linear uncertain systems / W. M. Haddad, V. Chellaboina, J. L. Fausz & A. Leonessa // International Journal of Control, 2000, vol. 73, no. 4, pp. 329-342.

[64] Haddad, M. W. Optimal non-linear robust control for non-linear uncertain systems / W. M. Haddad, V. Chellaboina, J. L. Fausz & A. Leonessa // International Journal of Control, 2000, vol. 73, no. 4, pp. 329-342.

[65] Lin F. An LQR approach to robust control of linear systems with uncertain parameters / F. Lin, A. W. Olbrot // Proceedings of 35th IEEE Conference on Decision and Control. -IEEE, 1996, vol. 4, pp. 4158-4163.

[66] Чан Д. Х. Нелинейное оптимальное управление роботами-манипуляторами в неопределенных условиях / М. П. Белов, Д. Х. Чан, Ч. Х. Фыонг // Известия СПбГЭТУ «ЛЭТИ», 2018, Вып. 6, С. 52-59.

[67] Andreas W. Suboptimal control for the nonlinear quadratic regulator problem / W. Andreas, G. Cook. - Automatica, vol. 11, no. 1, pp. 75-84.

[68] Чан Д. Х. Интеллектуальный контроллер на основе нелинейного оптимального управления роботами-манипуляторами / М. П. Белов, Д. Х. Чан // Известия СПбГЭТУ «ЛЭТИ», 2018, Вып. 9, С. 76-86.

[69] Tran Dang Khoa. BLDC of Robotic Manipulators with Neural Torque Compensator based Optimal Robust Control / Mikhail P. Belov, Tran Dang Khoa, Dinh Dang Truong // Young Researchers in Electrical and Electronic Engineering (EIConRus), 2019 IEEE Conference, Saint-Peterburg, 2019.

[70] Шумский, С. А. Байесова регуляризация обучения / С. А. Шумский // Научная сессия МИФИ, 2002, С. 30-93.

[71] Kropotov D, Vetrov D., «On one method of non-diagonal regularization in sparse Bayesian learning / D. Kropotov, D. Vetrov // Proceedings of the 24th international conference on Machine learning. ACM, 2007, pp. 457-464.

[72] Cheng T. A neural network solution for fixed-final time optimal control of nonlinear systems / T. Cheng, F. L. Lewis, M. Abu-Khalaf. - Automatica, 2007, vol. 43, no. 3, pp. 482-490.

[73] Nakamura, Y. Advanced robotics: redundancy and optimization / Y. Nakamura. -Addison-Wesley series in electrical and computer engineering, 1991.

[74] Chen C. Self-tuning PID Control of Induction Motor Speed Control System Based on Diagonal Recurrent Neural Network / C. Chen // International Journal of Control and Automation, 2015, vol. 8, no. 10, pp. 321-334.

[75] Singh H. P. Neural network based compensator for robustness to the robot manipulators with uncertainties / H. P. Singh, N. Sukavanam, & V. Panwar // IEEE International Conference on Mechanical and Electrical Technology. - 2010, pp. 444-448.

[76] Rahman M. A. On-line self-tuning ANN-based speed control of a PM DC motor / M. A. Rahman, M. A. Hoque // IEEE Asme Transactions on Mechatronics, 1997, vol. 2, no. 3, pp. 169-178.

[77] Liu G. Robust control of induction motor speed regulation system based on fuzzy neural network generalized inverse / G. Liu, C. Teng, B. Dong, L. Chen, & Y. Jiang // Chinese Control and Decision Conference. - IEEE, 2010, pp. 2729-2732.

[78] Rubaai A. A continually online-trained neural network controller for brushless DC motor drives / A. Rubaai, R. Kotaru, M. D. Kankam // IEEE transactions on industry applications. - IEEE, 2000, vol. 36, no. 2, pp. 475-483.

[79] Moualdia A. Direct torque control based multi-level inverter and artificial neural networks of wind energy conversion system / A. Moualdia, D. Boudana, O. Bouchhida & P. Wira // IEEE 8th International Conference on Modelling, Identification and Control (ICMIC). - IEEE, 2016. pp. 49-54.

[80] Чан Д. Х. Линейное управление электроприводами робота-манипулятора с применением нейронного компенсатора момента на основе робастного управления / Д. Х. Чан, М. П. Белов // Известия СПбГЭТУ «ЛЭТИ», 2019, Вып. 2, С. 79-87.

[81] Bejczy A. K. Dynamic models and control equations for manipulators / A. K. Bejczy // Jet Propulsion Laboratory, California Institute of Technology, 1979, p. 715.

[82] Борцов Ю. А. Электромеханические системы с адаптивным и модальным управлением / Ю. А. Борцов, Н. Д. Поляхов, В. В. Путов. - Ленинград: Энергоатомиздат. Ленингр. отд-ние, 1984, p. 216.

[83] Бобцов Ю. А. Автоматизированный электропривод с упругими связями / Ю. А. Бобцов, Г. Г. Соколовский. СПб: Энергоатомиздат, 1992, p. 216.

[84] Гаврилов С. В. Управление электроприводом на основе бесколлекторного двигателя с постоянными магнитами / Гаврилов С. В., Д. Т. Занг , Н. Д. Тхань // Изв. СПбГЭТУ «ЛЭТИ», 2016, Вып. 8, С. 53-62.

[85] Nekooei M. J. Designing Fuzzy Backstepping Adaptive Based Fuzzy Estimator Variable Structure Control: Applied to Internal Combustion Engine / M. J. Nekooei, K. Jaswar & A. Priyanto // Applied Mechanics and Materials. - Trans Tech Publications, 2013, vol. 376, pp. 383-389.

[86] ВОЛЬМИР, А. С. Устойчивость упругих систем / А. С. Вольмир. -Гос. изд-во физико-математической лит-ры, 1963.

[87] Aghili F. Optimal and fault-tolerant torque control of servo motors subject to voltage and current limits / F. Aghili // IEEE Transactions on Control Systems Technology. - IEEE, 2013, vol. 21, no. 4, pp. 1440-1448.

[88] Tumer M.C. Series: Lecture Note in Control and Information Sciences / M. C. Tumer, D. G. Bates / Mathematical Methods for Robust and Nonlinear Control, 2007, vol. 367, p. 445.

ПРИЛОЖЕНИЕ А: Текст программы для вычисления регулятора робастного

управления роботами-манипуляторами

РОССИЙСКАЯ федерация

ри

2018619557

федеральная служба

по интеллектуальной собственности

(12) ГОСУДАРСТВЕННАЯ РЕГИСТРАЦИЯ ПРОГРАММЫ ДЛЯ ЭВМ

Номер регистрации (свидетельства): 2018619557

Дата регистрации: 08.08.2018

Номер и дата поступления заявки: 2018616755 02.07.2018

Дата публикации: 08.08.2018

Контактные реквизиты: ETUPLO@vandex.ru

Авторы: Чан Данг Хоа (У>(), Белов Михаил Петрович (Г1и)

Правообладатель: Федеральное государственное автономное образовательное учреждение высшего образования «Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им. В.И. Ульянова (Ленина)» (СПбГЭТУ «ЛЭТИ») (ЙУ)

Название программы для ЭВМ: Программа для вычисления манипуляторами

регулятора робастного управления робота ми-

Реферат:

Программа предназначена для расчета корректирующей матрицы для устойчивого оптимального контроллера при проектировании системы сложного нелинейного управления в промышленных приводах и робототехнике. В программе используется рекурсивный алгоритм для вычисления компонентов динамической системы, упрощения процесса расчета и проектирования нелинейного контроллера. Использование рекурсивного алгоритма позволяет сократить время вычисления оптимальных параметров контроллера. Это является важной основой для расчета и оптимизации конструкции контроллеров манипуляпионного робота в реальном времени. Область применения данной программы: оптимальное управление, робастное управление нелинейного сложного объекта. Кроме этого, программа может использована для лабораторных и студенческих занятий по направлению 13,06,01 «Электро- и теплотехника».

Язык программирования: С, МаНаЪ

Объем программы для ЭВМ: 1,584 Кб

Текст

программы для вычисления регулятора робастного управления роботами-

манипуляторами.

Текст программы в среде Matlab % моделирования робота манипулятора

function [ddql, ddq2, ddq3] = Mechatronic_RRR (dq1, dq2, dq3, q1, q2, q3, taul, tau2, tau3, mL)

Iy2=10; Iy3=5; Iz1 =15; Iz2=8; Iz3=5; Ix2=10; Ix3=5;

L1=0.49; r1=L1/3; L2=0.68; r2=L2/3; L3=1.17; r3=L3/3;

m1=27.64; m2=13.48; m3=21.47;

%%-----------матрица инерции М----------------

M11=Iy2*(sin(q2))A2 + Iy3*(sin(q2 + q3))A2 + Iz1 + Iz2*(cos(q2))A2 + Iz3*(cos(q2 + q3))A2 + m1*r1A2*(cos(q2))A2 + m3*(l2*cos(q2) + r3*cos(q2 + q3))A2+ mL*(l2*cos(q2) + l3*cos(q2 + q3))A2; M22=Ix2+Ix3+m2*l1A2+m2*r2A2+m3*l2A2+2*m3*l2*r3*cos(q3)+mL*l3A2+mL*l2*l3*cos(q3); M12=0; M13=0; M21=0; M31=0;

M23=Ix3+m3*l2A2+m3*l2*r3*cos(q3)+mL*(l3A2+l2*l3*cos(q3)); M32=M23;

M33=Ix3+m3*r3A2+mL*l3A2; M= [M11 M12 M13; M21 M22 M23; M31 M32 M33]; %% Матрица центробежных и кориолисовых G=inv(M); for n=1:3 for m=1:3 for k=1:3

X= [q1 q2 q3]; dX=[dq1 dq2 dq3]; gama_nm_k=0; for s=1:3

W=1/2*G(s,k)*(diff(M(m,s),X(n))+diff(M(s,n),X(m))-diff(M(n,m),X(s)));

gama_nm_k=W+gama_nm_k;

end

end

end end

V(n, m)=sum(gama_nm_k); end

% ------------------------------------------

G2=((m2/2)+m3)*L2*g*cos(q2)+(m3/2)*L3*g*cos(q2+q3)+mL*L3*g*cos(q2+q3); G3=m3*r3*g*cos(q2+q3) + (mL/2)*L3*g*cos(q2+q3);

G=[0; G2; G3]; %% ------------------------------------------

dq=[dq1;dq2;dq3]; tau=[tau1 ;tau2;tau3]; y=MA(-1 )*(tau-V*dq-G); ddq1=y(1);

ddq2=y(2); ddq3=y(3);

% код оптимального регулятора

function [tau1, tau2, tau3] = LQR_Regulator(dq1,mL,q1,q2,q3,dq2,dq3)

m1 = 50; m2 = 30; m3 = 20;

J1=1.141e-3; J2=3.05e-3;J3=5.05e-3;

L1=0.4; L2=0.8; L3=1.2;

r1=L1/2; r2=L2/2;r3=L3/3;

%% ----------- матрица М ----------------

M11=Iy2*(sin(q2))A2 + Iy3*(sin(q2 + q3))A2 + Iz1 + Iz2*(cos(q2))A2 + Iz3*(cos(q2 + q3))A2 + m1*r1A2*(cos(q2))A2 + m3*(l2*cos(q2) + r3*cos(q2 + q3))A2+ mL*(l2*cos(q2) + l3*cos(q2 + q3))A2; M22=Ix2+Ix3+m2*l1A2+m2*r2A2+m3*l2A2+2*m3*l2*r3*cos(q3)+mL*l3A2+mL*l2*l3*cos(q3); M12=0; M13=0; M21=0; M31=0;

M23=Ix3+m3*l2A2+m3*l2*r3*cos(q3)+mL*(l3A2+l2*l3*cos(q3)); M32=M23;

M33=Ix3+m3*r3A2+mL*l3A2;

M=[M11 M12 M13;M21 M22 M23;M31 M32 M33];

%----------переменные состояния-----------

q=[q1;q2;q3]; dq=[dq1;dq2;dq3];

R2=[1.22e-1,0.2e-3,1e-4;2.52e-4,1.118e-2,3.94e-3;4.5e-3,4.355e-3,1.55e-3]; R1=[6.5e-3,0.000045,0.0000050;0.0008,4.65e- 4,0.00012;0,0.00012,0.785418e-4];

%----------Матрицы управления по методу Тэта-D----------

T0= [0.9e-2, 1.25e-3,1.25e-3;1.25e-3, 0.10e-2,1.25e-3;1.25e-3,1.25e-3,0.10e-2];

T1 =(1-51*exp(-110*t))*M'A(-1 )*[0.125e-2, 2.5e-2, 2.5e-1;2.5e-2, 5.5e-1, 2.5e-2; 2.5e-2, 2.5e-2, 2.5e-1];

T2=(1-51*exp(-110*t))*M'A(-1 )*[0.15e-1, 0.375e-2, 0.375e-2;0.375e-2, 4.25e-1, 0.375e-2; 0.375e-2, 0.375e-2, 0.375e-1];

y=R1 a(-1 )*M'*(T0+T1 +T2)*q-R2A(-1 )*M'*(T0+T1 +T2)*dq;

tau1= y(1);

tau2= y(2);

tau3= y(3);

end

%-----------------------------------------------------------------

Текст на С языка

const ConstP rtConstP = {

{-0.21974, -5.19123 E-5, 0.34779, -0.35108, -0.13861, 0.08453, -0.01190}, { 0.23962, -3.20245E-5, -0.33466, 0.08830, 0.03384, 0.13243, 0.06311 },{ -0.61935, 0.02201, -1.27385, 2.88240, 0.36132, -1.10021, 1.07540 }, { -2.80428, -0.09238,

0.63689, -3.65488, 0.03248, 0.22854, 3.37408} };

static void PlantKhoaRRR (real_T rtu_dq1, real_T rtu_dq2, real_T rtu_dq3, real_T rtu_q2, real_T rtu_q3, real_T rtu_tau1, real_T rtu_tau2, real_T rtu_tau3, real_T rtu_mL, real_T *rty_ddq1, real_T *rty_ddq2, real_T *rty_ddq3); extern void PlantKhoaRRR_derivatives(void); static void rt_ertODEUpdateContinuousStates(RTWSolverInfo *si ){ /* Solver Matrices */

static const real_T rt_ODE3_A[3] = { 1.0/2.0, 3.0/4.0, 1.0 };

static const real_T rt_ODE3_B[3][3] = {{ 1.0/2.0, 0.0, 0.0 }, { 0.0, 3.0/4.0, 0.0 }, { 2.0/9.0, 1.0/3.0, 4.0/9.0 }}; time_T t = rtsiGetT(si);

time_T tnew = rtsiGetSolverStopTime(si); time_T h = rtsiGetStepSize(si); real_T *x = rtsiGetContStates(si);

ODE3_IntgData *id = (ODE3_IntgData *)rtsiGetSolverData(si);

real_T *y = id->y;

real_T *f0 = id->f[0];

real_T *f1 = id->f[1];

real_T *f2 = id->f[2];

real_T hB[3];

int_T i;

int_T nXc = 12; rtsiSetSimTimeStep(si,MINOR_TIME_STEP); /* Save the state values at time t in y, we'll use x as ynew. */ (void) memcpy(y, x, (uint_T)nXc*sizeof(real_T)); rtsiSetdX(si, f0); PlantKUKAR150_derivatives();

/* f(:,2) = feval(odefile, t + hA(1), y + f*hB(:,1), args(:)(*)); */ hB[0] = h * rt_ODE3_B[0][0]; for (i = 0; i < nXc; i++) { x[i] = y[i] + (f0[i]*hB[0]);} rtsiSetT(si, t + h*rt_ODE3_A[0]); rtsiSetdX(si, f1); PlantKUKAR150_step(); PlantKUKAR150_derivatives();

/* f(:,3) = feval(odefile, t + hA(2), y + f*hB(:,2), args(:)(*)); */ for (i = 0; i <= 1; i++) {

hB[i] = h * rt_ODE3_B[1][i];} for (i = 0; i < nXc; i++) { x[i] = y[i] + (f0[i]*hB[0] + f1 [i]*hB[1 ]);} rtsiSetT(si, t + h*rt_ODE3_A[1]); rtsiSetdX(si, f2); PlantKUKAR150_step(); PlantKUKAR150_derivatives(); for (i = 0; i <= 2; i++) {

hB[i] = h * rt_ODE3_B[2][i];} for (i = 0; i < nXc; i++) { x[i] = y[i] + (f0[i]*hB[0] + f1[i]*hB[1] + f2[i]*hB[2]);} rtsiSetT(si, tnew);

rtsiSetSimTimeStep(si,MAJOR_TIME_STEP);} static void PlantKhoaRRR (real_T rtu_dq1, real_T rtu_dq2, real_T rtu_dq3, real_T rtu_q2, real_T rtu_q3, real_T rtu_tau1, real_T rtu_tau2, real_T rtu_tau3, real_T rtu_mL, real_T *rty_ddq1, real_T *rty_ddq2, real_T *rty_ddq3)

{

real_T M23; real_T M[9]; real_T V13;

real_T y[3];

real_T x[9];

int32_T p2;

int32_T p3;

real_T absxi i ;

real_T absx2i;

real_T tmp[3];

real_T rtu_taui_0[3];

real_T M23_tmp;

real_T M_tmp;

real_T M_tmp_0;

real_T M23_tmp_0;

real_T M23_tmp_tmp;

real_T M23_tmp_tmp_0;

real_T M_tmp_i ;

real_T M_tmp_2;

real_T M_tmp_3;

real_T M_tmp_4;

real_T M_tmp_5;

M23_tmp = (20.0 + rtujTiL) / 2.0;

M23_tmp_tmp = M23_tmp * 0.8 * i.2;

M23_tmp_tmp_0 = cos(rtu_q3);

M23_tmp_0 = M23_tmp_tmp * M23_tmp_tmp_0;

Vi3 = (20.0 + rtu_mL) / 3.0 * i.44;

M23 = M23_tmp_0 + Vi3;

M_tmp = (M23_tmp + 5.0) * 0.640;

M_tmp_0 = (20.0 + rtu_mL) / 6.0 * i .44;

M_tmp_i = 2.0 * rtu_q2 + 2.0 * rtu_q3;

M_tmp_2 = (20.0 + rtu_mL) / 4.0;

M_tmp_3 = rtu_q2 + rtu_q3;

absxi i = 2.0 * rtu_q2 + rtu_q3;

M_tmp_4 = cos(rtu_q2);

M_tmp_5 = cos(M_tmp_3);

M[0] = ((((((((M_tmp_2+i i .6666)*0.i600+M_tmp)+M_tmp_0)+M_tmp*cos(2.0*rtu_q2))+M_tmp_0*cos(M_tmp_i))+ M23_tmp*0.4*i.2*M_tmp_5)+((20.0 + rtu_mL)+i5.0)*0.4*0.8*M_tmp_4)+M23_tmp_0) +M23_tmp_tmp*cos(absxii ); M[3] = 0.0; M[6] = 0.0; M[i] = 0.0;

M[4] = (((20.0 + rtu_mL) + i0.0) * 0.6400 + Vi3) + (20.0 + rtu_mL) * 0.8 * i.2 * M23_tmp_tmp_0;

M[7] = M23;

M[2] = 0.0;

M[5] = M23;

M[8] = Vi3;

M23_tmp_0 = sin(M_tmp_i); Vi3 = sin(M_tmp_3); M23_tmp_tmp_0 = sin(absxi i );

M_tmp = -((((M_tmp*sin(2.0*rtu_q2)+M_tmp_0*M23_tmp_0)+M_tmp_2*0.4*1.2*V13)+(M23_tmp+7.5)*0.4*0.8*sin(rtu_q2)) +M23_tmp_tmp * M23_tmp_tmp_0); M23 = M_tmp * rtu_dq1; M_tmp_0 = sin(rtu_q3); M_tmp_2 = 2.400 * M_tmp_0;

M23_tmp_0 = (M23_tmp_0 * 2.4 + V13 * 1.200) + M_tmp_2;

M23_tmp_tmp_0 *= 2.400;

M_tmp_1 = (20.0 + rtu_mL) / 12.0 * 1.2;

V13 = -((M23_tmp_0 + M23_tmp_tmp_0) * M_tmp_1 ) * rtu_dq1 ; memcpy(&x[0], &M[0], 9U * sizeof(real_T)); p2 = 3; p3 = 6;

M_tmp_3 = x[1] / x[0]; x[1] = M_tmp_3; absx11 = x[2] / x[0]; x[2] = absx11 ; x[4] -= M_tmp_3 * x[3]; x[5] -= absx11 * x[3]; x[7] -= M_tmp_3 * x[6]; x[8] -= absx11 * x[6]; if (fabs(x[5]) > fabs(x[4])) { p2 = 6; p3 = 3;

x[1] = absx11; x[2] = M_tmp_3; absx11 = x[4]; x[4] = x[5]; x[5] = absx11; absx11 = x[7]; x[7] = x[8]; x[8] = absx11;

}

M_tmp_3 = x[5] / x[4];

x[8] -= M_tmp_3 * x[7];

absx11 = (M_tmp_3 * x[1] - x[2]) / x[8];

absx21 = -(x[7] * absx11 + x[1]) / x[4];

M[0] = ((1.0 - x[3] * absx21 ) - x[6] * absx11 ) / x[0];

M[1] = absx21;

M[2] = absx11;

absx11 = -M_tmp_3 / x[8];

absx21 = (1.0 - x[7] * absx11 ) / x[4];

M[p2] = -(x[3] * absx21 + x[6] * absx11 ) / x[0];

M[p2 + 1] = absx21;

M[p2 + 2] = absx11;

absx11 = 1.0 / x[8];

absx21 = -x[7] * absx11 / x[4];

M[p3] = -(x[3] * absx21 + x[6] * absxl 1) / x[0]; M[p3 + 1] = absx21; M[p3 + 2] = absx11;

x[0] = M_tmp * rtu_dq2 - ((M23_tmp_0 + M_tmp_2) + M23_tmp_tmp_0) * M_tmp_1 * rtu_dq3; x[3] = M23; x[6] = V13; x[1] = M23;

M23_tmp_tmp *= M_tmp_0;

x[4] = -M23_tmp_tmp * rtu_dq3;

x[7] = -M23_tmp_tmp * (rtu_dq2 + rtu_dq3);

x[2] = V13;

x[5] = M23_tmp_tmp * rtu_dq2;

x[8] = 0.0;

y[0] = rtu_tau1;

y[1] = rtu_tau2;

y[2] = rtu_tau3;

tmp[0] = 0.0;

M23_tmp_tmp = M23_tmp * 1.2 * 9.8 * M_tmp_5;

tmp[1] = ((20.0 + rtu_mL) + 15.0) * 0.8 * 9.8 * M_tmp_4 + M23_tmp_tmp;

tmp[2] = M23_tmp_tmp;

for (p2 = 0; p2 < 3; p2++) {

rtu_tau1_0[p2] = (y[p2] - (x[p2 + 6] * rtu_dq3 + (x[p2 + 3] * rtu_dq2 + x[p2]* rtu_dq1))) - tmp[p2];} for (p2 = 0; p2 < 3; p2++) {

y[p2] = M[p2 + 6] * rtu_tau1_0[2] + (M[p2 + 3] * rtu_tau1_0[1] + M[p2] * rtu_tau1_0[0]);} *rty_ddq1 = y[0]; *rty_ddq2 = y[1]; *rty_ddq3 = y[2];

}

/* Model step function */

void PlantKhoaRRR_step(void) {

real_T rtb_FromWs; real_T M23; real_T M[9]; real_T y[3];

static const real_T a[9] = { 156.39947, -444.22497, 678.70862, -20.74572, 3609.32794, -5514.50759, 21.73988, -5486.22807, 21114.20121};

static const real_T b_a[9] = { 8.81322, 897.33463, -2546.80766, 6.49477, 9762.86257,-27449.35033, -17.07789, -24874.45936, 70583.94907}; real_T rtb_Addminy[7]; real_T rtb_Sum; real_T a_0[9]; real_T tmp[3]; int32_T i; int32_T i_0; real_T b_a_0[9];

real_T tmp_0[3];

real_T a_1[3];

real_T b_a_1[3];

real_T M_tmp;

real_T M_tmp_0;

real_T M_tmp_1;

real_T M23_tmp;

real_T M23_tmp_tmp;

real_T M23_tmp_0;

real_T M23_tmp_tmp_0;

int32_T a_tmp;

int32_T a_tmp_0;

if (rtmIsMajorTimeStep(rtM)) {

rtsiSetSolverStopTime(&rtM->solverInfo,((rtM->Timing.clockTick0+1)* rtM->Timing.stepSize0)); } /* end MajorTimeStep */

if (rtmIsMinorTimeStep(rtM)) { rtM->Timing.t[0] = rtsiGetT(&rtM->solverInfo);

}

rtDW.Integrator[0] = rtX.Integrator_CSTATE[0]; rtDW.Integrator[1] = rtX.Integrator_CSTATE[1];

rtDW.Integrator[2] = rtX.Integrator_CSTATE[2]; {

real_T *pDataValues = (real_T *) rtDW.FromWs_PWORK.DataPtr; real_T *pTimeValues = (real_T *) rtDW.FromWs_PWORK.TimePtr; int_T currTimeIndex = rtDW.FromWsJWORKPrevIndex; real_T t = rtM->Timing.t[0]; if (t <= pTimeValues[0]) { currTimeIndex = 0; } else if (t >= pTimeValues[9]) {

currTimeIndex = 8; } else {

if (t < pTimeValues[currTimeIndex]) { while (t < pTimeValues[currTimeIndex]) { currTimeIndex--;

}

} else {

while (t >= pTimeValues[currTimeIndex + 1]) { currTimeIndex++;

}

}

}

rtDW.FromWsJWORKPrevIndex = currTimeIndex;

/* Post output */ {

real_T t1 = pTimeValues[currTimeIndex]; real_T t2 = pTimeValues[currTimeIndex + 1];

if (t1 == t2) { if (t < t1) {

rtb_FromWs = pDataValues[currTimeIndex]; } else {

rtb_FromWs = pDataValues[currTimeIndex + 1];

}

} else { real_T f1 = (t2 - t) / (t2 - t1); real_T f2 = 1.0 - f1; real_T d1; real_T d2;

int_T TimeIndex= currTimelndex; d1 = pDataValues[TimeIndex]; d2 = pDataValues[TimeIndex + 1]; rtb_FromWs = (real_T) rtlnterpolate(d1, d2, f1, f2); pDataValues += 10;

}

}

}

rtb_Sum = (20.0 + rtb_FromWs) / 2.0;

M23_tmp_tmp = rtb_Sum * 0.8 * 1.2;

M23_tmp_tmp_0 = cos(1.0 - rtX.Integrator1_CSTATE[2]);

M23_tmp = M23_tmp_tmp * M23_tmp_tmp_0;

M23_tmp_0 = (20.0 + rtb_FromWs) / 3.0 * 1.44;

M23 = M23_tmp + M23_tmp_0;

M_tmp = (rtb_Sum + 5.0) * 0.6400;

M_tmp_0 = (1.0 - rtX.Integrator1_CSTATE[1 ]) * 2.0;

M_tmp_1 = (20.0 + rtb_FromWs) / 6.0 * 1.44;

M[0] = (((((((((20.0 + rtb_FromWs) / 4.0 + 11.6666) * 0.1600 + M_tmp) + M_tmp_1) + M_tmp * cos(M_tmp_0)) + M_tmp_1 * cos(M_tmp_0 + (1.0 - rtX.Integrator1_CSTATE[2]) * 2.0)) + rtb_Sum * 0.4 * 1.2 * cos((1.0 - rtX.Integrator1_CSTATE[1]) + (1.0 - rtX.Integrator1_CSTATE[2]))) + ((20.0 + rtb_FromWs) + 15.0) * 0.4 * 0.8 * cos(1.0 - rtX.Integrator1_CSTATE[1])) + M23_tmp) + M23_tmp_tmp * cos(M_tmp_0 + (1.0 - rtX.Integrator1_CSTATE[2])); M[3] = 0.0; M[6] = 0.0; M[1] = 0.0;

M[4] = (((20.0 + rtb_FromWs) + 10.0) * 0.6400 + M23_tmp_0) + (20.0 + rtb_FromWs) * 0.8 * 1.2 * M23_tmp_tmp_0;

M[7] = M23;

M[2] = 0.0;

M[5] = M23;

M[8] = M23_tmp_0;

tmp[0] = 1.0 - rtX.Integrator1_CSTATE[0]; tmp[1] = 1.0 - rtX.Integrator1_CSTATE[1 ]; tmp[2] = 1.0 - rtX.Integrator1_CSTATE[2]; tmp_0[0] = rtDW.Integrator[0]; tmp_0[1] = rtDW.Integrator[1]; tmp_0[2] = rtDW.Integrator[2];

for (i = 0; i < 3; i++) { a_1[i] = 0.0; b_a_1[i] = 0.0; for (i_0 = 0; i_0 < 3; i_0++) { a_tmp = i + 3 * i_0; a_0[a_tmp] = 0.0; b_a_0[a_tmp] = 0.0; a_tmp_0 = 3 * i_0 + i; a_0[a_tmp] = a_0[a_tmp_0] + a[i] * M[i_0]; b_a_0[a_tmp] = b_a_0[a_tmp_0] + b_a[i] * M[i_0]; a_0[a_tmp] = a_0[3 * i_0 + i] + a[i + 3] * M[i_0 + 3]; b_a_0[a_tmp] = b_a_0[3 * i_0 + i] + b_a[i + 3] * M[i_0 + 3]; a_0[a_tmp] = a_0[3 * i_0 + i] + a[i + 6] * M[i_0 + 6];

b_a_0[a_tmp] = b_a_0[3 * i_0 + i] + b_a[i + 6] * M[i_0 + 6]; a_1[i] += a_0[3 * i_0 + i] * tmp[i_0];

b_a_1[i] += b_a_0[3 * i_0 + i] * tmp_0[i_0]; }

y[i] = a_1[i] - b_a_1[i];

}

PlantKhoaRRR (rtDW.Integrator[0], rtDW.Integrator[1], rtDW.Integrator[2], rtX.Integrator1_CSTATE[1], rtX.Integrator1_CSTATE[2], y[0], y[1], y[2], rtb_FromWs, &rtDW.ddq1_l, &rtDW.ddq2_g, &rtDW.ddq3_c); rtDW.Integrator_l[0] = rtX.Integrator_CSTATE_c[0]; rtDW.Integrator_l[1] = rtX.Integrator_CSTATE_c[1]; rtDW.Integrator_l[2] = rtX.Integrator_CSTATE_c[2]; rtb_Sum = sin(50.0 * rtM->Timing.t[0]) * 10.0; rtb_Addminy[0] = (rtDW.Integrator_l[0] + 0.46901) * 0.10995 -1.0; rtb_Addminy[1 ] = 0.06666 * rtb_Sum -1.0;

rtb_Addminy[2] = ((1.0 - rtX.Integrator1_CSTATE_f[0]) + 0.03511) * 1.95099 -1.0; rtb_Addminy[3] = ((1.0 - rtX.Integrator1_CSTATE_f[1]) + 0.13675) * 1.77499 -1.0; rtb_Addminy[4] = ((1.0 - rtX.Integrator1_CSTATE_f[2]) + 0.05693) * 1.91033 -1.0; rtb_Addminy[5] = (rtDW.Integrator_l[1] + 3.32461) * 0.07331 -1.0; rtb_Addminy[6] = (rtDW.Integrator_l[2] + 0.58572) * 0.11889 -1.0; M23_tmp_tmp = 0.0; M23_tmp_tmp_0 = 0.0; M23_tmp = 0.0; M23_tmp_0 = 0.0; for (i = 0; i < 7; i++) { M23_tmp_tmp += rtConstP.IW111_Value[i] * rtb_Addminy[i]; M23_tmp_tmp_0 += rtConstP.IW112_Value[i] * rtb_Addminy[i]; M23_tmp += rtConstP.IW113_Value[i] * rtb_Addminy[i]; M23_tmp_0 += rtConstP. IW114_Value[i] * rtb_Addminy[i];

}

M23 = 1.0 / (exp((M23_tmp_tmp + -0.27641) * -2.0) + 1.0) * 2.0 - 1.0; M23_tmp_tmp = 2.17438 * M23; M_tmp = -2.81861 * M23; M_tmp_0 = -0.68100 * M23;

M23 = 1.0 / (exp((M23_tmp_tmp_0 + 0.042874) * (- 2.0)) + 1.0) * 2.0 - 1.0;

M23_tmp_tmp += -1.74487 * M23; M_tmp += -2.66297 * M23; M_tmp_0 += -0.61811 * M23;

M23 = 1.0 / (exp((M23_tmp + -2.52502) * -2.0) + 1.0) * 2.0 - 1.0; M23_tmp_tmp += 0.03852 * M23; M_tmp += 2.47373 * M23; M_tmp_0 += -4.17462 * M23;

M23 = 1.0 / (exp((M23_tmp_0 + 3.43687) * -2.0) + 1.0) * 2.0 - 1.0; M23_tmp_tmp += 0.05794 * M23; M_tmp += 2.56952 * M23; M_tmp_0 += -4.56946 * M23;

PlantKhoaRRR (rtDW.Integrator_l[0], rtDW.Integrator_l[1], rtDW.Integrator_l[2], rtX.Integrator1_CSTATE_f[1],

rtX.Integrator1_CSTATE_f[2], 5113.7761902529455 * ((M23_tmp_tmp + -0.15202) + 1.0) - 4956.19676, 70729.00431 * ((M_tmp - 1.25875) + 1.0) + -23894.39131, 114760.36673 * ((M_tmp_0 -0.63237) + 1.0) + -9397.12556, rtb_Sum, &rtDW.ddq1, &rtDW.ddq2, &rtDW.ddq3); if (rtmlsMajorTimeStep(rtM)) { rt_ertODEUpdateContinuousStates(&rtM->solverInfo); ++rtM->Timing.clockTick0;

rtM->Timing.t[0] = rtsiGetSolverStopTime(&rtM->solverInfo); {

rtM->Timing.clockTick1++;

}

} /* end MajorTimeStep */

}

void PlantKhoaRRR_derivatives(void) {

XDot *_rtXdot;

_rtXdot = ((XDot *) rtM->derivs); _rtXdot->Integrator_CSTATE[0] = rtDW.ddq1_l; _rtXd ot->lnteg rato r_C STATE[1 ] = rtDW.ddq2_g; _rtXdot->Integrator_CSTATE[2] = rtDW.ddq3_c; _rtXd ot->lnteg rato r_C STATE_c[0] = rtDW.ddq1; _rtXdot->Integrator_CSTATE_c[1] = rtDW.ddq2; _rtXd ot->lnteg rato r_C STATE_c[2] = rtDW.ddq3; _rtXdot->Integrator1_CSTATE[0] = rtDW.Integrator[0]; _rtXdot->Integrator1_CSTATE_f[0] = rtDW.Integrator_l[0]; _rtXdot->Integrator1_CSTATE[1] = rtDW.Integrator[1]; _rtXd ot->lnteg rator1_C STATE_f[ 1 ] = rtDW.Integrator_l[1]; _rtXdot->Integrator1_CSTATE[2] = rtDW.Integrator[2]; _rtXdot->Integrator1_CSTATE_f[2] = rtDW.Integrator_l[2];

}

/* Model initialize function */

void PlantKhoaRRR_initialize(void) {

{

/* Setup solver object */

rtsiSetSimTimeStepPtr(&rtM->solverInfo, &rtM->Timing.simTimeStep); rtsiSetTPtr(&rtM->solverInfo, &rtmGetTPtr(rtM)); rtsiSetStepSizePtr(&rtM->solverInfo, &rtM->Timing.stepSize0); rtsiSetdXPtr(&rtM->solverInfo, &rtM->derivs); rtsiSetContStatesPtr(&rtM->solverInfo, (real_T **) &rtM->contStates); rtsiSetNumContStatesPtr(&rtM->solverInfo, &rtM->Sizes.numContStates); rtsiSetNumPeriodicContStatesPtr(&rtM->solverInfo, &rtM->Sizes.numPeriodicContStates); rtsiSetPeriodicContStateIndicesPtr(&rtM->solverInfo, &rtM->periodicContStateIndices); rtsiSetPeriodicContStateRangesPtr(&rtM->solverInfo, &rtM->periodicContStateRanges);

rtsiSetErrorStatusPtr(&rtM->solverInfo, (&rtmGetErrorStatus(rtM))); rtsiSetRTModelPtr(&rtM->solverInfo, rtM);

}

rtsiSetSimTimeStep(&rtM->solverInfo, MAJOR_TIME_STEP);

rtM->intgData.y = rtM->odeY;

rtM->intgData.f[0] = rtM->odeF[0];

rtM->intgData.f[1] = rtM->odeF[1];

rtM->intgData.f[2] = rtM->odeF[2];

rtM->contStates = ((X *) &rtX);

rtsiSetSolverData(&rtM->solverInfo, (void *)&rtM->intgData); rtsiSetSolverName(&rtM->solverInfo,"ode3"); rtmSetTPtr(rtM, &rtM->Timing.tArray[0]); rtM->Timing.stepSize0 = 0.01;

/* Start for FromWorkspace: '<S5>/FromWs' */ {

static real_T pTimeValues0[] = { 0.0, 1.0, 1.0, 4.0, 4.0, 6.0, 6.0, 8.0, 8.0,10.0 } ; static real_T pDataValues0[] = { 0.0, 0.0, 20.200, 20.200, 0.2, 0.2, 30.0, 0.0, 0.0, 0.0 } ; rtDW.FromWs_PWORK.TimePtr = (void *) pTimeValues0; rtDW.FromWs_PWORK.DataPtr = (void *) pDataValues0; rtDW.FromWsJWORKPrevlndex = 0;

}

rtX. I nteg rator_CSTATE[0] = 0.01; rtX.Integrator1_C STATE[ 0 ] = 0.01; rtX. I nteg rator_CSTATE_c[0] = 0.01; rtX.Integrator1_CSTATE_f[0] = 0.01; rtX. I nteg rator_CSTATE[1 ] = 0.01; rtX.Integrator1_CSTATE[1] = 0.01; rtX. I nteg rator_CSTATE_c[ 1 ] = 0.01; rtX. I nteg rator1_CSTATE_f[1] = 0.01; rtX. I nteg rator_CSTATE[2] = 0.01; rtX.Integrator1_CSTATE[2] = 0.01; rtX. I nteg rator_CSTATE_c[2] = 0.01; rtX. I nteg rator1_CSTATE_f[2] = 0.01;}

ПРИЛОЖЕНИЕ Б: Текст программы вычисления компенсатора момента применения искусственной нейронной сети для робота-манипулятора на основе робастного

управления

российская федерация

ни

2018663662

федеральная служба

по интеллектуальной собственности

(12) ГОСУДАРСТВЕННАЯ РЕГИСТРАЦИЯ ПРОГРАММЫ ДЛЯ ЭВМ

Номер регистрации (свидетельства): 2018663662

Дата регистрации: 01.11.2018

Номер и дата поступления заявки: 2018660820 08.10.2018

Дата публикации: 01.11.2018

Контактные реквизиты: ETUPLO@yantlex.ru

Авторы: Чан Данг Хоа (УК), Белов Михаил Петрович (11и)

Правообладатель: Федеральное государственное автономное образовательное учреждение высшего образования «Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им. В.И. Ульянова (Ленина)» (СПбГЭТУ «ЛЭТИ») (Ки)

Название программы для ЭВМ:

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

Реферат:

Программа предназначена для расчета параметров компенсатора момента трёхзвенного робота-манипулятора с применением искусственной нейронной сети для устойчивой работы оптимального контроллера электропривода на основе бесколлекторного двигателя с постоянными магнитами. Программа построена на основе теории нелинейного оптимального управления нелинейным объектом, которая использует рекурсивный алгоритм для вычисления компонентов динамической системы. Программа позволяет сократить время вычисления оптимальных параметров контроллера и удовлетворить количество управления динамической системой под действием возмущений. Кроме этого, программа может применяться для лабораторных работ и студенческих занятий по специальности 05.09.03 «Электротехнические комплексы и системы».

Язык программирования: С, Ма11аЬ

Объем программы для ЭВМ: 201 Кб

Текст

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

Текст программы на Ма^аЬ

% Вход-Выход искусственной нейронной сети % q_in - input data-входные эталонные данные. % Tau_out - target data- выходные эталонные данные. x = q_in'; t = Tau_out';

% функция обучения ИНС

trainFcn = 'trainbr'; % Bayesian Regularization

backpropagation.

% создание ИНС

hiddenLayerSize = 4;

net = fitnet(hiddenLayerSize,trainFcn);

% Setup Division of Data for Training, Validation, Testing

net.divideParam.trainRatio = 70/100;

net.divideParam.valRatio = 15/100;

net.divideParam.testRatio = 15/100;

Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.