Современная электроника №6/2019

ИНЖЕНЕРНЫЕ РЕШЕНИЯ 59 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 6 2019 Рис. 2. Подсистема управления двигателем У ПРАВЛЕНИЕ СОСТОЯНИЕМ ДВИГАТЕЛЯ Подсистема микропрограммыMC под- держивает автомат управления для каж- дого из двух двигателей [4]. На рисунке 1 приведена структурная схема автомата управления двигателем. В синих круж- ках показаны состояния, стрелками – возможные переходымежду ними. Неко- торые API, вызываемые из приложения, приводят к изменению состояния: ● MC_StartMotor1(), MC_StartMotor2(): запуск двигателя – переключение с IDLE в IDLE_START; ● MC_StopMotor1(), MC_StopMotor2(): остановка двигателя – переключение в ANY_STOP; ● AcknowledgeFaultMotor1(), Acknow- ledgeFaultMotor2(): подтверждение ошибки и готовность двигателя к за- пуску – переключение в STOP_IDLE. Управление двигателямииизменение их состоянийосуществляется с помощью функцийTSK_MediumFrequencyTaskM1() и TSK_MediumFrequencyTaskM2(). В таблице представленыописания состо- яний автомата. API УПРАВЛЕНИЯ ДВИГАТЕЛЯМИ API управления двигателем являет- ся основным интерфейсом в библио- теке управления двумя двигателями с помощью одного STM32 MCU. API пред- лагает один набор функций для каж- дого из двигателей. В функции опре- делён дескриптор, указывающий на номер двигателя, которому она пред- назначена. Основными задачами API являются запуск, остановка и контроль вращения двигателей. Контроль вращения двига- теля достигается путём программиро- вания тока, крутящего момента или задания скорости с помощью пропор- ционально-интегральных регуляторов (ПИД-регуляторов) подсистемы управ- ления двигателем. Эти параметры долж- ны быть установлены до запуска дви- гателя. Значения крутящего момента или скорости программируются как линейные изменения от текущих до заданных показателей. Запрограмми- рованное задание или линейное изме- нение выполняется сразу, если двига- тель вращается и находится в устой- чивом состоянии (машина находится в состоянии RUN). В противном слу- чае команда буферизуется до тех пор, пока автомат двигателя не перейдёт в состояние RUN. Одновременно может быть запрограммирован только один темп, т.е. последний темп заменяет пре- дыдущий. Предпочтительным мето- дом для привода двигателей является метод управления скоростью или кру- тящим моментом. Контроль крутящего момента является режимом управления по умолчанию. Также в API есть функ- ции для получения значений различ- ных параметров и переменных состо- яния подсистемы MC. Дескрипторы, через которые можно получить доступ к параметрамMC, определены в файлах mc_config.c и mc_config.h . П ОДСИСТЕМА УПРАВЛЕНИЯ ДВИГАТЕЛЕМ Подсистема управления двигате- лем – это библиотека микропрограмм, которая создаётся в результате конфи- гурации и генерирования проекта в MotorControl Workbench 5.3.3. Затем пользователи создают свой собствен- ный код с помощью функций интер- фейса API. Подсистема программно- го обеспечения управления двигате- лем показана на рисунке 2. На схеме представлены основные и дополни- тельные функциональные блоки, а также отражено их взаимодействие. Выделяются три основных функцио- нальных блока. Блок цикла FOC является ядром алго- ритма FOC. Его цель – рассчитать фаз- ные напряжения и получить рабочие циклы широтно-импульсной модуля- ции (ШИМ) для управления транзи- сторами инвертора. Блок выполняет все математические преобразования, необходимые для перехода от измерен- ных фазных токов I a , I b , I c к токам I q , I d и затем обратно – от напряжения U q , U d к созданию рабочих цикловШИМ. Значе- ния I q , I d , сопоставленные со значения- Состояния автомата управления двигателем Состояние Описание ICL WAIT Ожидание ограничителя пускового тока IDLE Двигатель не вращается, но готов к запуску или выравниванию энкодера IDLE ALIGNMENT Переходное состояние после команды выравнивания ALIGN CHARGE BOOT CAP Зарядка запускающих конденсаторов инвертора перед калибровкой ALIGN OFFSET CALIB Калибровка смещения токов перед выравниванием энкодера ALIGNMENT Энкодер правильно выровнен IDLE START Проходное состояние после команды старта двигателя CHARGE BOOT CAP Зарядка запускающих конденсаторов инвертора OFFSET CALIB Калибровка смещения токов START Состояние начала процедуры запуска START RUN Переходное состояние перед запуском двигателя RUN Работа двигателя ANY STOP Переходное состояние перед остановкой двигателя STOP Переходное состояние после остановки двигателя STOP IDLE Переходное состояние между STOP и IDLE FAULT NOW Состояние ошибки, переход к состоянию FAULT OVER FAULT OVER Состояние ошибки, ожидание подтверждения пользователем или сброс ошибки и переход к STOP IDLE Обозначения: Необязательный компонент Обязательный компонент Контур безопасности Защита от перенапря- жения Защита отпонижен- ного напряжения Защита от пере- грузки по току Защита от пере- грева Защит- ные проце- дуры Ограничитель пускового тока Выпрямитель Тормоз- ной резис- тор Трёхфазный инвертор Цикл эталонных вычислений Максимальный крутящий момент на ампер Управление скоростью и крутящим моментом Ослаб- ление потока Положи- тельная обратная связь Управление оборотами Режим разомкнутого контура Интер- фейс пользо- вателя Блок мате- матических преобразований Измерение тока Одно из 1 шунт 3 шунта Изолированный датчик тока Обратная связь по скорости и положению Одно из ФАПЧ CORDIC Датчик Холла Энкодер Режим контура АС М Датчик напря- жения шины Приложение

RkJQdWJsaXNoZXIy MTQ4NjUy