exponenta event banner

Использовать блок управления двигателем для создания кода настраиваемого целевого объекта

В этом примере показано, как использовать Blockset™ управления двигателем с любым процессором.

Пример показывает Вам, как моделировать и сгенерировать код из системной модели, настроенной для процессора Texas Instruments™ C2000™ F28069M. В модели системы используется реализация полевого управления (FOC), которую можно запустить на любом процессоре. Часть алгоритма модели отделяется от уровня драйвера с помощью ссылочной модели, которую можно развернуть на любом устройстве.

Необходимые продукты

  • MATLAB ®

  • Симулинк ®

  • MATLAB ® Coder™

  • Simulink ® Coder™

  • Blockset™ управления двигателем

  • Встроенный кодер ®

  • Designer™ с фиксированной точкой (только для последовательной связи)

Проверка поведения алгоритма с помощью моделирования системы

В этом разделе показано, как проверить контроллер при моделировании системы с замкнутым контуром.

Испытательный стенд mcb_pmsm_foc_system модели системы состоит из тестовых входов, встроенного процессора, силовой электроники и аппаратного обеспечения двигателя. Для просмотра сигналов используйте кнопку «Инспектор данных» на вкладке «Моделирование» панели инструментов Simulink. Эту модель можно использовать для тестирования контроллера и изучения его ожидаемого поведения.

Эта команда используется для открытия модели.

open_system('mcb_pmsm_foc_system.slx');

ПРИМЕЧАНИЕ: Эта модель поддерживает только вычисления с плавающей запятой.

Выполните моделирование и просмотрите в инспекторе данных записанные в журнале сигналы эталонной скорости (Speed_Reference) и измеренной скорости двигателя (Speed_Motor).

Архитектура модели

В этом разделе описывается архитектура модели и содержатся следующие подразделы:

  • Спецификация данных

  • Разделение контроллера с испытательного стенда

  • Планирование контроллера

Архитектура модели облегчает моделирование системы и формирование алгоритмического кода.

Спецификация данных

Файл определения данных создает данные, необходимые для моделирования и создания кода. Этот файл данных автоматически запускается в рамках обратного вызова InitFcn модели стенда системного тестирования.

edit('mcb_algorithm_workflow_data.m')

Другой файл данных mcb_pmsm_foc_qep_f28069LaunchPad_data.m определяет параметры двигателя и инвертора.

Обновите параметры двигателя и инвертора для конфигурации оборудования в этом файле. Например, обновите параметры двигателя в mcb_SetPMSMMotorParameters функций, который вызывается из этого файла.

Разделение контроллера с испытательного стенда

В модели стенда для тестирования системы встроенный процессор моделируется как комбинация периферийных устройств и программного обеспечения контроллера. Блок mcb_pmsm_foc_system/Embedded Processor/Serial Receive реализует эталонные входы для моделирования.

open_system('mcb_pmsm_foc_system/Embedded Processor');

В этом примере отдельная модель включает в себя программное обеспечение контроллера. Модель программного обеспечения контроллера содержит подсистемы управления скоростью и управления током алгоритма ВОК.

open_system('mcb_pmsm_foc.slx');

Планирование контроллера

Основным методом управления является полевое управление. Контроллер имеет низкоскоростной внешний контур, который управляет скоростью. Он также имеет внутренний контур с более высокой скоростью, который управляет током. Подсистема управления скоростью реализует контроллер PI для скорости. Подсистема управления током преобразует сигналы АЦП (или текущую обратную связь) в значения на единицу и передает их в алгоритм контроллера ядра. Кроме того, он также измеряет значения скорости и положения из импульсов кватурного кодера.

Алгоритм контроллера вычисляет напряжения. Затем напряжения преобразуются в сигнал возбуждения. Внешний контур контроллера скорости выполняется после каждого экземпляра периода времени, используемого для запуска контура управления током. Можно просмотреть переменные, которые задают скорость и текущее время выборки контура управления, используя следующие команды:

fprintf('Current loop sample time = %f seconds\n', Ts)
fprintf('Speed loop sample time  = %f seconds\n', Ts_speed)

Создание кода C для интеграции контроллера во встраиваемые приложения

В этом разделе показано, как создать и визуально проверить функцию кода C для контроллера.

Созданный код состоит из трех сгенерированных глобальных функций:

  • void Controller_Init (void): эта функция должна вызываться для выполнения процедур инициализации.

  • void Current_Controller (void): эта функция реализует текущий контроллер и должна вызываться из задачи, выполняющейся через 50e-6 секунд.

  • void Speed_Controller (void): эта функция реализует контроллер скорости и должна вызываться из задачи, выполняющейся через 500-6 секунд.

Чтобы указать прототип функции, см. раздел Настройка генерации кода C для функций точек входа модели.

Входы в алгоритм управления ВОК:

  • ExternalInputs_mcb_pmsm_foc: Это структура с эталоном скорости и сигналом для включения двигателя.

  • SensorSigs: Это массив с${I_a}$ счетчиками ADC${I_b}$, счетчиками ADC, счетчиками положения квадратурного кодера и фиксатором индекса квадратурного кодера.

Выходы алгоритма управления ВОК:

  • PWM Duty: это массив с рабочими циклами PWM для трех фаз и сигналом для включения PWM.

  • DebugSignals: это массив сигналов, которые можно регистрировать при выполнении алгоритма управления.

Параметры алгоритма управления ВОК:

  • PI_params: Это структура, которая содержит PI получает Kp_i, Ki_i, Kp_speed и Ki_speed.

  • IsOffset, IbOffset: это переменные хранилища данных, которые содержат смещения калибровки АЦП.

Аппаратная интеграция периферийных устройств

  • Аппаратные периферийные устройства интегрированы с алгоритмом управления в подсистеме процессора mcb_pmsm_foc_system/Embedded.

  • Прерывание АЦП используется для планирования генерируемого кода. Прерывание срабатывает через 50e-6 секунд.

  • Подсистема mcb_pmsm_foc_system/Embedded Processor/Hardware Init находит смещения калибровки АЦП и предоставляет их алгоритму управления.

  • Подсистема mcb_pmsm_foc_system/Embedded Блоки драйверов процессора/датчика реализует периферийные устройства АЦП и квадратурного кодера.

  • Подсистема mcb_pmsm_foc_system/Embedded Processor/Serial Receive имеет последовательные блоки для приема входных данных пользователя от модели хоста, когда сгенерированный код выполняется на целевом устройстве.

  • Периферийные устройства подсистемы mcb_pmsm_foc_system/Embedded процессора/инвертора имеют периферийные устройства драйвера PWM и блок последовательной передачи для передачи данных на хост-компьютер. Вся эта периферия используется от Пакета Поддержки Instruments™ C2000™ Техаса.

При использовании пользовательского процессора можно реализовать логику драйвера с помощью пользовательского кода. Созданный код для алгоритма управления можно интегрировать с собственным кодом драйвера в предпочтительной интегрированной среде разработки (IDE).

Тестовое поведение сгенерированного кода

Дополнительные сведения о необходимых аппаратных соединениях см. в разделе Аппаратные подключения.

  • Создайте и загрузите исполняемый файл в целевой объект для mcb_pmsm_foc_system модели.

  • Откройте главную модель mcb_host_model_f28069m используя ссылку на главную модель, доступную в mcb_pmsm_foc_system модели.

  • Обновите имя COM-порта для цели в блоке настройки последовательного хоста модели хоста.

  • Щелкните Выполнить (Run) на вкладке Моделирование (Simulation), чтобы запустить главную модель.

  • Для запуска двигателя установите переключатель Пуск/Останов (Motor Start/Stop) в положение Вкл (On).

  • Измените опорную скорость и отслеживайте эффекты в окне области.