Квадратурная калибровка смещения энкодера

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

Расширьте qep_calibration папка, чтобы получить доступ к этим файлам.

Сгенерируйте код для алгоритма управления Используя Embedded Coder

  1. После того, как вы открываете MATLAB® проект, дважды кликните qep_calibration_algorithm.slx файл в qep_calibration папка.

  2. Выберите Modeling> Model Settings> Model Settings, чтобы открыть диалоговое окно Configuration Parameters.

  3. В области Solver Selection вкладки Solver обновите поля Type и Solver.

  4. Во вкладке Hardware Implementation диалогового окна Configuration Parameters сконфигурируйте параметры согласно своему оборудованию.

  5. В панели инструментов Simulink целевой модели выберите Apps> Embedded Coder, чтобы открыть приложение Embedded Coder.

  6. В панели инструментов Simulink выберите C Code> Code Interface> Default Code Mappings, чтобы открыть диалоговое окно Code Mappings - C.

  7. В диалоговом окне Code Mappings - C откройте вкладку Functions.

  8. Для перечисленной функции C кликните по гиперссылке в соответствии со столбцом Function Preview, чтобы открыть диалоговое окно Configure C Initialize Function Interface.

  9. Используйте диалоговое окно Configure C Initialize Function Interface, чтобы сконфигурировать интерфейс и аргументы функции C.

  10. Нажмите Apply и OK, чтобы завершить конфигурирование функции C.

  11. Повторите шаги 10 - 12 для всех перечисленных функций.

  12. В панели инструментов Simulink целевой модели выберите C Code> Generate Code> Build, чтобы создать модель и сгенерировать .c файл для целевой модели.

Это изображение показывает пример сгенерированного кода для функции C.

Примечание

  • Сгенерированная функция C использует интерфейс, который вы сконфигурировали.

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

Получите код С для драйверов оборудования

Можно использовать программное обеспечение генерации кода, поддержанное производителем оборудования, чтобы сгенерировать код для драйверов оборудования. Например, для ссылочного контроллера STM32F302R8 и инвертора X-NUCLEO-IHM07M1, можно использовать программное обеспечение генератора кода инициализации STM32CubeMX STM32Cube, чтобы сконфигурировать периферию и сгенерировать код С для драйверов оборудования. Этот пример также включает FOC_QEP.ioc файл (созданный программным обеспечением STM32CubeMX) содержащий данные об инициализации аппаратного обеспечения для ссылочного оборудования.

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

Интегрируйте код алгоритма управления с кодом драйвера

  1. Вызовите функции алгоритма управления из кода драйвера с помощью сконфигурированных параметров функции алгоритма управления. Это изображение показывает вызов алгоритма регулировки скорости C функция.

  2. Используйте возвращаемое значение от вызова функции завершить интеграцию драйвера с алгоритмом регулятора.

Для получения дополнительной информации о структуре кода и потоке программного управления, используемом примерами Motor Control Blockset™, смотрите Поток Программного управления Примеров Motor Control Blockset.

Просмотрите интегрированный пример кода main.c доступный в qep_calibration\STM32Code папка как ссылка.

Разверните интегрированный код в оборудование

  1. Завершите аппаратные связи.

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

    Например, для ссылочного контроллера STM32F302R8 и инвертора X-NUCLEO-IHM07M1, используйте генератор кода инициализации STM32CubeMX STM32Cube, чтобы сгенерировать и высветить двоичный файл.

Управляйте двигателем Используя хост модель Simulink

Выполните эти шаги, чтобы определить смещение квадратурного датчика энкодера, присоединенного к трехфазному PMSM:

  1. Кликните по гиперссылке host model в целевой модели, чтобы открыть связанную модель хоста. Можно также дважды кликнуть qep_calibration_host.slx файл в qep_calibration папка.

  2. Во вкладке Serial 1 диалогового окна параметров блоков для блока Host Serial Setup выберите Port name и введите Baud rate для последовательной передачи.

    Для получения дополнительной информации о последовательной передаче между хостом и целевыми моделями, смотрите Целевую Хостом Коммуникацию.

  3. Нажмите Run на вкладке Simulation, чтобы запустить модель хоста.

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

  5. Наблюдайте сигнал position в осциллографе времени.

    После того, как калибровочный процесс завершен, концы симуляции и двигатель останавливается автоматически. Модель отображает вычисленное значение смещения энкодера в поле QEP offset (pu).

  6. Проверяйте если position сигнал имеет положительный наклон. Выполните эти шаги, если наклон отрицателен:

    • Поверните переключатель ползунка Calibration к положению Stop, чтобы остановить калибровочный процесс и прекратить запускать двигатель.

    • Отключите предоставление напряжения постоянного тока от оборудования.

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

    • Следуйте за шагами 4 и 5, чтобы запустить калибровочный алгоритм снова и определить значение смещения энкодера.

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

Обновите вычисленное значение смещения в переменной pmsm.PositionOffset, доступной в скрипте инициализации модели, соединенном с Ориентированным на поле Управлением.

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