Используйте Motor Control Blockset, чтобы сгенерировать код для пользовательской цели

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

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

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

  • MATLAB®

  • Simulink®

  • MATLAB® Coder™

  • Simulink® Coder™

  • Motor Control Blockset™

  • Embedded Coder®

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

Проверьте поведение алгоритма при помощи системной симуляции

Этот раздел показывает вам, как проверить контроллер в системной симуляции с обратной связью.

Системная модель mcb_pmsm_foc_system испытательный стенд состоит из тестовых воздействий, встраиваемого процессора, силовой электроники и моторного оборудования. Чтобы видеть сигналы, используйте кнопку Data Inspector на вкладке Simulation панели инструментов 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 Процессор / Последовательный Получает, реализует ссылочные входные параметры для симуляции.

open_system('mcb_pmsm_foc_system/Embedded Processor');

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

open_system('mcb_pmsm_foc.slx');

Контроллер, планирующий

Первичный метод управления ориентирован на поле на управление. У контроллера есть внешний контур низкого процента, который контролирует скорость. Это также имеет более высокий внутренний цикл уровня, который управляет током. Подсистема Регулировки скорости реализует ПИ-контроллер для скорости. Текущая подсистема Управления преобразует сигналы ADC (или текущая обратная связь) к на стоимости единицы и передает их базовому алгоритму регулятора. Кроме того, это также измеряет значения скорости и положения от quardature импульсов энкодера.

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

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

Сгенерируйте код С, чтобы интегрировать контроллер во встраиваемое приложение

Этот раздел показывает вам, как сгенерировать и визуально смотреть функцию кода С для контроллера.

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

  • пустой Controller_Init (пусто): Эта функция должна быть вызвана, чтобы выполнить стандартные программы инициализации.

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

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

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

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

  • ExternalInputs_mcb_pmsm_foc: Это - структура со ссылкой скорости и сигналом включить двигатель.

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

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

  • Обязанность PWM: Это - массив с Рабочими циклами PWM для трех фаз и сигнала включить PWM.

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

Параметры для алгоритма управления FOC:

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

  • IsOffset, IbOffset: Это переменные datastore, которые содержат калибровочные смещения ADC.

Интегрирование периферийного устройства

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

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

  • Подсистема mcb_pmsm_foc_system/Embedded Процессор/Оборудование Init находит, что калибровка ADC возмещает и предоставляет их алгоритму управления.

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

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

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

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

Протестируйте поведение сгенерированного кода

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

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

  • Откройте модель mcb_pmsm_foc_host_model_f28069m хоста с помощью ссылки модели хоста, доступной в mcb_pmsm_foc_system модели.

  • Обновите имя COM-порта для цели в блоке Host Serial Setup модели хоста.

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

  • Смените положение переключателя Motor Start / Stop к На, чтобы начать запускать двигатель.

  • Измените Задающую скорость и контролируйте эффекты в окне scope.

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