В этом примере показано, как использовать 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 для контроллера.
Созданный код состоит из трех сгенерированных глобальных функций:
void Controller_Init (void): эта функция должна вызываться для выполнения процедур инициализации.
void Current_Controller (void): эта функция реализует текущий контроллер и должна вызываться из задачи, выполняющейся через 50e-6 секунд.
void Speed_Controller (void): эта функция реализует контроллер скорости и должна вызываться из задачи, выполняющейся через 500-6 секунд.
Чтобы указать прототип функции, см. раздел Настройка генерации кода C для функций точек входа модели.
Входы в алгоритм управления ВОК:
ExternalInputs_mcb_pmsm_foc: Это структура с эталоном скорости и сигналом для включения двигателя.
SensorSigs: Это массив с
счетчиками ADC
, счетчиками 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).
Дополнительные сведения о необходимых аппаратных соединениях см. в разделе Аппаратные подключения.
Найдите смещение квадратурного кодера. Дополнительные сведения см. в разделе Калибровка смещения квадратурного кодера для двигателя PMSM.
Создайте и загрузите исполняемый файл в целевой объект для mcb_pmsm_foc_system модели.
Откройте главную модель mcb_host_model_f28069m используя ссылку на главную модель, доступную в mcb_pmsm_foc_system модели.
Обновите имя COM-порта для цели в блоке настройки последовательного хоста модели хоста.
Щелкните Выполнить (Run) на вкладке Моделирование (Simulation), чтобы запустить главную модель.
Для запуска двигателя установите переключатель Пуск/Останов (Motor Start/Stop) в положение Вкл (On).
Измените опорную скорость и отслеживайте эффекты в окне области.