Это - второй рабочий процесс, который использует алгоритм, чтобы вычислить перемещение между d - ось ротора и положением импульса индекса, как обнаружено квадратурным датчиком энкодера, присоединенным к постоянному магниту синхронному двигателю (PMSM). Рабочий процесс использует хост и целевую модель. Модель хоста является пользовательским интерфейсом к плате оборудования контроллеров. Можно запустить модель хоста на хосте - компьютере. Прежде чем вы запустите модель хоста на хосте - компьютере, создадите и развернете целевой алгоритм модели (интегрированный с драйверами оборудования) к плате оборудования контроллеров. Модель хоста использует последовательную передачу, чтобы управлять целевым алгоритмом модели и запустить двигатель.
Расширьте qep_calibration
папка, чтобы получить доступ к этим файлам.
qep_calibration_algorithm.slx
(предназначайтесь для модели),
qep_calibration_data.m
(скрипт инициализации модели, сопоставленный с целевой моделью)
qep_calibration_host.slx
(разместите модель),
После того, как вы открываете MATLAB® проект, дважды кликните qep_calibration_algorithm.slx
файл в qep_calibration
папка.
Выберите Modeling> Model Settings> Model Settings, чтобы открыть диалоговое окно Configuration Parameters.
В области Solver Selection вкладки Solver обновите поля Type и Solver.
Во вкладке Hardware Implementation диалогового окна Configuration Parameters сконфигурируйте параметры согласно своему оборудованию.
В панели инструментов 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 использует интерфейс, который вы сконфигурировали.
Для получения дополнительной информации о системе на модуль, используемой в алгоритме, смотрите систему в относительных единицах.
Можно использовать программное обеспечение генерации кода, поддержанное производителем оборудования, чтобы сгенерировать код для драйверов оборудования. Например, для ссылочного контроллера STM32F302R8 и инвертора X-NUCLEO-IHM07M1, можно использовать программное обеспечение генератора кода инициализации STM32CubeMX STM32Cube, чтобы сконфигурировать периферию и сгенерировать код С для драйверов оборудования. Этот пример также включает FOC_QEP.ioc
файл (созданный программным обеспечением STM32CubeMX) содержащий данные об инициализации аппаратного обеспечения для ссылочного оборудования.
В качестве альтернативы можно также использовать вручную записанный код драйвера.
Вызовите функции алгоритма управления из кода драйвера с помощью сконфигурированных параметров функции алгоритма управления. Это изображение показывает вызов алгоритма регулировки скорости C функция.
Используйте возвращаемое значение от вызова функции завершить интеграцию драйвера с алгоритмом регулятора.
Для получения дополнительной информации о структуре кода и потоке программного управления, используемом примерами Motor Control Blockset™, смотрите Поток Программного управления Примеров Motor Control Blockset.
Просмотрите интегрированный пример кода main.c
доступный в qep_calibration\STM32Code
папка как ссылка.
Завершите аппаратные связи.
Используйте генерацию кода и программное обеспечение развертывания, поддержанное производителем оборудования, чтобы скомпилировать, создать, и сгенерировать двоичный файл (например, .HEX
) файл из интегрированного кода. Используйте программное обеспечение, чтобы высветить двоичный файл к целевому компьютеру.
Например, для ссылочного контроллера STM32F302R8 и инвертора X-NUCLEO-IHM07M1, используйте генератор кода инициализации STM32CubeMX STM32Cube, чтобы сгенерировать и высветить двоичный файл.
Выполните эти шаги, чтобы определить смещение квадратурного датчика энкодера, присоединенного к трехфазному PMSM:
Кликните по гиперссылке host model в целевой модели, чтобы открыть связанную модель хоста. Можно также дважды кликнуть qep_calibration_host.slx
файл в qep_calibration
папка.
Во вкладке Serial 1 диалогового окна параметров блоков для блока Host Serial Setup выберите Port name и введите Baud rate для последовательной передачи.
Для получения дополнительной информации о последовательной передаче между хостом и целевыми моделями, смотрите Целевую Хостом Коммуникацию.
Нажмите Run на вкладке Simulation, чтобы запустить модель хоста.
Поверните переключатель ползунка Calibration к положению Start, чтобы запустить калибровочный процесс путем выполнения двигателя.
Наблюдайте сигнал position в осциллографе времени.
После того, как калибровочный процесс завершен, концы симуляции и двигатель останавливается автоматически. Модель отображает вычисленное значение смещения энкодера в поле QEP offset (pu).
Проверяйте если position
сигнал имеет положительный наклон. Выполните эти шаги, если наклон отрицателен:
Поверните переключатель ползунка Calibration к положению Stop, чтобы остановить калибровочный процесс и прекратить запускать двигатель.
Отключите предоставление напряжения постоянного тока от оборудования.
Обменяйтесь любыми двумя моторными связями фазы и затем повторно подключите предоставление напряжения постоянного тока к оборудованию.
Следуйте за шагами 4 и 5, чтобы запустить калибровочный алгоритм снова и определить значение смещения энкодера.
Пример автоматически сохраняет вычисленное значение смещения в переменной PositionOffset, доступной в базовом рабочем пространстве.
Обновите вычисленное значение смещения в переменной pmsm.PositionOffset, доступной в скрипте инициализации модели, соединенном с Ориентированным на поле Управлением.