Это - третий рабочий процесс, который запускает трехфазный постоянный магнит синхронный двигатель (PMSM) с помощью ориентированного на поле управления (FOC) с обратной связью. Для получения дополнительной информации о FOC, смотрите Ориентированное на поле управление (FOC). Рабочий процесс использует хост и целевую модель. Модель хоста является пользовательским интерфейсом к плате оборудования контроллеров. Можно запустить модель хоста на хосте - компьютере. Прежде чем вы запустите модель хоста на хосте - компьютере, создадите и развернете целевой алгоритм модели (интегрированный с драйверами оборудования) к плате оборудования контроллеров. Модель хоста использует последовательную передачу, чтобы управлять целевым алгоритмом модели и запустить двигатель.
Расширьте foc_qep
папка, чтобы получить доступ к этим файлам.
current_control_algorithm.slx
(предназначайтесь для модели для токового контроллера),
speed_control_algorithm.slx
(предназначайтесь для модели для контроллера скорости),
foc_qep_data.m
(скрипт инициализации модели, сопоставленный с целевыми моделями)
foc_qep_host.slx
(разместите модель),
Перед использованием этого рабочего процесса завершите Регулирование без обратной связи и Калибровочную и Квадратурную Калибровку Смещения Энкодера Смещения ADC, чтобы вычислить смещения датчика положений и ADC. Обновите смещения в этих переменных, доступных в скрипте инициализации модели foc_qep_data.m
:
Переменные inverter.CtSensAOffset и inverter.CtSensBOffset (ADC возмещает для Ia и датчиков тока Ib),
pmsm.PositionOffset (смещение положения для квадратурного датчика энкодера)
После того, как вы открываете MATLAB® проект, дважды кликните current_control_algorithm.slx
файл в foc_qep
папка.
Выберите Modeling> Model Settings> Model Settings, чтобы открыть диалоговое окно Configuration Parameters.
В области Solver Selection вкладки Solver обновите поля Type и Solver.
Во вкладке Hardware Implementation диалогового окна Configuration Parameters сконфигурируйте параметры согласно своему оборудованию.
Получите параметры двигателя и инвертора. Целевая модель использует параметры двигателя по умолчанию, которые можно заменить на значения или от моторной таблицы данных или от других источников.
Однако можно использовать оборудование блока управления приводом, чтобы оценить параметры для двигателя, который вы хотите использовать при помощи инструмента оценки параметра Motor Control Blockset. Для инструкций смотрите Оценку Параметры PMSM Используя Специальное оборудование. Инструмент оценки параметра обновляет переменную motorParam (в рабочем пространстве MATLAB) с предполагаемыми параметрами двигателя.
Обновите параметры двигателя и инвертора. Если вы получаете параметры двигателя из таблицы данных или из других источников, обновляете параметры двигателя и инвертора в скрипте инициализации модели (foc_qep_data.m
) сопоставленный с Simulink® модель. Для инструкций смотрите Оценочные Усиления Управления от Параметров двигателя.
Если вы используете инструмент оценки параметра, вы можете обновить параметры инвертора, но не обновляете параметры двигателя в скрипте инициализации модели. Скрипт автоматически извлекает параметры двигателя из обновленной переменной рабочей области motorParam.
В панели инструментов Simulink целевой модели выберите Apps> Embedded Coder, чтобы открыть приложение Embedded Coder.
В панели инструментов Simulink выберите C Code> Code Interface> Default Code Mappings, чтобы открыть диалоговое окно Code Mappings - C.
В диалоговом окне Code Mappings - C откройте вкладку Functions.
Для перечисленной функции C кликните по гиперссылке в соответствии со столбцом Function Preview, чтобы открыть диалоговое окно Configure C Initialize Function Interface.
Используйте диалоговое окно Configure C Initialize Function Interface, чтобы сконфигурировать интерфейс и аргументы функции C.
Нажмите Apply и OK, чтобы завершить конфигурирование функции C.
Повторите шаги 10 - 12 для всех перечисленных функций.
В панели инструментов Simulink целевой модели выберите C Code> Generate Code> Build, чтобы создать модель и сгенерировать .c
файл для целевой модели для токового контроллера.
Это изображение показывает пример функции C, доступной в сгенерированном коде токового контроллера.
Примечание
Сгенерированная функция C использует интерфейс, который вы сконфигурировали на шаге 11.
Для получения дополнительной информации о системе на модуль, используемой в алгоритме, смотрите систему в относительных единицах.
Повторите шаги 1 - 14 для целевой модели для контроллера скорости (speed_control_algorithm.slx
) сгенерировать контроллер скорости код.
Можно использовать программное обеспечение генерации кода, поддержанное производителем оборудования, чтобы сгенерировать код для драйверов оборудования. Например, для ссылочного контроллера STM32F302R8 и инвертора X-NUCLEO-IHM07M1, можно использовать программное обеспечение генератора кода инициализации STM32CubeMX STM32Cube, чтобы сконфигурировать периферию и сгенерировать код С для драйверов оборудования. Пример также включает FOC_QEP.ioc
файл (созданный программным обеспечением STM32CubeMX) содержащий данные об инициализации аппаратного обеспечения для ссылочного оборудования.
В качестве альтернативы можно также использовать вручную записанный код драйвера.
Интегрируйте код для скорости и токовых контроллеров.
Вызовите функции алгоритма управления из кода драйвера с помощью сконфигурированных параметров функции алгоритма управления. Это изображение показывает вызов алгоритма регулировки скорости C функция.
Используйте возвращаемое значение от вызова функции завершить интеграцию драйвера с алгоритмом регулятора.
Для получения дополнительной информации о структуре кода и потоке программного управления, используемом примерами Motor Control Blockset™, смотрите Поток Программного управления Примеров Motor Control Blockset.
Просмотрите интегрированный пример кода main.c
доступный в foc_qep\STM32Code
папка как ссылка.
Завершите аппаратные связи.
Используйте генерацию кода и программное обеспечение развертывания, поддержанное производителем оборудования, чтобы скомпилировать, создать, и сгенерировать двоичный файл (например, .HEX
) файл из интегрированного кода. Используйте программное обеспечение, чтобы высветить двоичный файл к целевому компьютеру.
Например, для ссылочного контроллера STM32F302R8 и инвертора X-NUCLEO-IHM07M1, используйте генератор кода инициализации STM32CubeMX STM32Cube, чтобы сгенерировать и высветить двоичный файл.
Выполните эти шаги, чтобы определить смещение квадратурного датчика энкодера, присоединенного к трехфазному PMSM:
Кликните по гиперссылке host model в целевой модели, чтобы открыть связанную модель хоста. Можно также дважды кликнуть foc_qep_host.slx
файл в foc_qep
папка.
Во вкладке Serial 1 диалогового окна параметров блоков для блока Host Serial Setup выберите Port name и введите Baud rate для последовательной передачи.
Для получения дополнительной информации о последовательной передаче между хостом и целевыми моделями, смотрите Целевую Хостом Коммуникацию.
Нажмите Run на вкладке Simulation, чтобы запустить модель хоста.
Убедитесь, что текущим положением переключателя ползунка Motor Control является Open Loop. Поверните переключатель ползунка Motor Start / Stop к положению Start, чтобы начать запускать моторное регулирование без обратной связи использования.
Прежде, чем ввести управление с обратной связью, введите задающую скорость для двигателя в поле Speed Reference (RPM). Рекомендуется, чтобы вы установили скорость на значение, которое является приблизительно половиной расчетной скорости двигателя.
Поверните переключатель ползунка Motor Control к положению Closed Loop, чтобы начать запускать моторное использующее ориентированное на поле управление с обратной связью.
Наблюдайте Ia и сигналы скорости в осциллографе времени.