В предыдущей статье про модельно ориентированное проектирование было показано, что не все методики одинаково полезны. И объясняется как делать правильно, что бы не было потом мучительно больно. Но в конце статье был поставлен вопрос, провокационный как Шарон Стоун на допросе у следователей:
Модельно ориентированное проектирование это конечно хорошо, но как доказать, что модель соответствует объекту? Какие ваши доказательства?
Общий ответ на данный вопрос еще готовится, но про частный зато реальный и свежий пример могу привести прямо сейчас. Оказался тут у меня в руках, как всегда случайно, текст от ведущего специалиста нашей страны по электроприводу Калачева Юрия Николаевича, вместе с его любезным согласием на публикацию. Данный текст еще готовится к публикации в специализированных издания, но читатели хабра увидят его первые.
Далее под катом
Калачев Ю. Н., Ланцев В.Ю., Окулов Е.В.
Электропривод с бесколлекторным двигателем постоянного тока
(практика применения моделирования и кодогенерации в АО «Аэроэлектромаш»)
Ура, товарищи!!! Свершилось!!!
«Рабоче-крестьянская революция, о необходимости которой всё время говорили большевики, совершилась!»
Наконец мы увидели плоды прогрессивных тенденций произросшие в отечественном приводостроении.
В статье рассматривается технология проектирования электропривода с использованием моделирования и кодогенерации. (Правильное модельно ориентированное проектирование)
Что касается моделирования – это вопрос для наших приводщиков не новый. А вот автоматическую кодогенерацию программы контроллера электропривода из его модели, и в мировом масштабе, мало кто пробо-вал.…
Мы смеем утверждать, что эта полезная тенденция (автоматического написания программы другой программой) будет активно развиваться в будущем цифровом мире …. Выиграет тот — кто начнет раньше.
Хотим оговориться, что кодогенерация, на наш взгляд не отменяет и не заменяет программиста, а только помогает ему. При этом, естественно, считаем, что СИ-код сгенерированной программы должен быть для него открыт.
Так и поступаем, результат автоматической генерации кода — код Си, открытый для просмотра и анализа.
В нашем случае, объектом управления являлся некий электропривод с бесколлекторным двигателем постоянного тока (БДПТ), вал которого соединен с редуктором, превращающим вращение в поступательное движение штока.
Задача электропривода достаточно стандартная – позиционировать вал штока, желательно побыстрее и поточнее … Часто такие привода используются для управления рулями беспилотных летательных аппаратов.
Блок управления устройством был спроектирован и изготовлен в отделе электропривода АО «Аэроэлектромаш» на базе микроконтроллера 1986ВЕ1Т (АО «ПКК Миландр»). Необходимо было создать алгоритмику и программу управления контроллера с целью дальнейшего ее использо-вания в практических задачах.
Работа была выполнена совместно специалистами компании «3В-сервис» и сотрудниками отдела электропривода АО «Аэроэлектромаш».
Первая задача, которая стояла перед нашим коллективом – идентификация объекта управления. Для этого были проведены некоторые измерения характеристик двигателя, которые оказались достаточно специфичными.
Например, измеренная ЭДС двигателя имела весьма причудливую форму, представленную на Рис.1.
Рисунок 1. Измеренная ЭДС двигателя.
Если читатель знаком с программой Simulink, то ему известно, что там, в модели двигателя с постоянным и магнитами, имеется возможность выбора синусоидальной или трапецеидальной ЭДС.
Ну, и куда бедному крестьянину податься? Где здесь синус, и где трапеция? (Правильные средства моделирования должны быть открытыми!). В среде SimInTech можно учесть даже такие неидеальности двигателя. Нами была задана форма ЭДС представленная на Рис.2
Рисунок 2. ЭДС двигателя созданная в SimInTech
Найдите два отличия в Рис.1 и Рис.2. Мы нашли одно – цвет.
Следующей особенностью двигателя оказался его существенный зубцовый момент, обусловленный геометрией магнитопровода статора и отсутствием скоса пазов у магнитов ротора. Момент был измерен экспе-риментально и введен в модель. График зубцового момента показан на Рис.3.
Рисунок 3. Зубцовый момент.
Кроме того в модели двигателя были учтены потери на намагничивание, что отсутствует в математических моделях у других разработчиков моделирующих программ.
Далее работа электропривода сравнивалась с результатами моделирования в тестовых режимах. Ниже на Рис. 4 и 5 приведены результаты опыта холостого хода (максимальная частота без нагрузки).
Рисунок 4. Холостой ход. Реальный двигатель.
Рисунок 5. Tок фазы холостой ход. Результат моделирования.
Вывод:
Осциллограммы реального и модельного холостого хода совпадают. Визуально разницы не видно.
После успешного опыта холостого хода был проведен опыт динамического воздействия на двигатель с присоединенным редуктором. В этом опыте на обмотки двигателя подавалось постоянное напряжение с реверсом на частоте 30 Гц. При этом выходное звено совершало колебания с той же частотой. На Рис.6 приведены результаты этого опыта:
Рисунок 6. Реальный двигатель под нагрузкой
(Сигналы снимались с помехами. Высокочастотное дрожание и размытие – это помехи в сигналах датчиков положения и тока).
Полученные данные сравнивались с моделью привода, работающей в аналогичном режиме (Рис.7).
Рисунок 7. Работа модели под нагрузкой
Выводы:
• Перемещения штока в реальности и на модели полностью совпадают
• Пиковые значения реального тока двигателя и модели совпадают с точностью до погрешности измерений.
Вид верифицированной модели силовой и механической части электропривода построенной на стандартных элементах библиотек программы SimInTech представлен на Рис.8.
Рисунок 8. Схема комплексной модели электроопривода, включая механическую часть.
Она и состоит из моделей:
- силового IJBT-инвертора
- двигателя с датчиком положения ротора (ДПР)
- механической передачи
- датчика тока
- нагружателя
Убедившись, что поведение модели соответствует поведению реального изделия, по результатам моделирования можно выбрать необходимую структуру системы регулирования (СУ) и произвести ее настройку для разных типов, перечисленных в техническом задании, входных воздействий.
В нашем случае хорошие результаты показала двухконтурная система регулирования положения с демпфирующей связью по скорости. Вид модели этой структуры представлен на Рис.9.
Рисунок 9. Расчетная схема программы управления электроприводом.
При дальнейшем использовании кодогенерации нет необходимости в ручном кодировании алгоритмов системы регулирования — готовый проект в среде разработке Keil uVision создается автоматически. После сборки бинарного образа программы ее можно транслировать в наш процессор (1986ВЕ1Т).
Заметим, что блоки модели «Выбор Ключей», «Инициализация периферии», «АЦП», «АЦП SSP2» в режиме моделирования реализуют соответствующие математические модели, а при кодогенерации заменяются библиотеками работы с периферией используемого процессора.
После выбора структуры СУ и ее настройки нам оставалось:
• осуществить автоматическую кодогенерацию программы
• записать полученную программу в контроллер
• зафиксировать великолепный результат
По Рис.10 можно сравнить работу модели и реального привода. В качестве задания по положению использовалась синусоида частотой 3 Гц и амплитудой 3мм.
Для получения данных с контроллера в его программе была предусмотрена специальная часть, обеспечивающая считывание внутренних сигналов по последовательному интерфейсу. Пользователь во время работы привода в окне SimInTech видит результаты работы встроенного ПО.
Рисунок 10. Сравнение работы модели и реального привода.
Ну, здесь даже цвет одинаковый ….
Ура, товарищи!!! Свершилось!!!
Автор: Вячеслав