Электродвигатели широко применяются в области малых приводов в бытовой электронике и промышленных приводах, таких как различные производственные машины и оборудование, роботы и манипуляторы и т. д. Кроме того, они все больше заменяют двигатели внутреннего сгорания в электромобилях, создание и улучшение которых является одной из ключевых технических тем современности.
Для разработки электроприводов необходимы современные инструменты, которые включают методы компьютерного моделирования и симуляции, связи и искусственного интеллекта.
Современные электроприводы основаны на сложной электронике. Кроме силовых элементов, обеспечивающих питание привода, они также включают микропроцессоры и системы управления с соответствующим программным обеспечением, которые регулируют их работу. Это позволяет управляемому приводу работать более эффективно и надежно.
Как же команды разработчиков программируют эти элементы управления и устройства? Отличие от классического подхода к программированию состоит в том, что программы не «программируются», а моделируются. Это означает, что вместо написания кода на низком уровне, разработчики используют более высокий уровень абстракции, который представляет собой исполняемое математическое описание алгоритма. Часто это описание имеет вид наглядной графической схемы.
Такая модель, как и программа, содержит процедуру, которая принимает входные данные и преобразует их в выходные данные. Например, она может получать данные о текущем положении и скорости ротора электродвигателя, требуемой скорости и крутящем моменте, и определять поведение силовой электроники, чтобы привод выполнял заданные функции, при этом обеспечивая экономичность и безопасность.
Однако, в отличие от программы, модель не обязательно должна соответствовать формальным требованиям языка программирования, таким как объявления функций или переменных данных, а главное, она не должна быть «подогнана» под конкретный процессор, который в конечном итоге будет выполнять задачу в управляющей электронике привода.
Именно абстракция, то есть отделение алгоритма от конкретного оборудования, является одним из основных преимуществ программирования с использованием моделей, известного как Model-Based Design. Это позволяет легко переносить разработанную функцию с одной процессорной платформы на другую, не требуя существенных изменений модели.
Программная модель может содержать любые алгоритмы, которые разработчик хочет включить в нее. Модели могут включать в себя как распространенные и проверенные годами алгоритмы управления системами, так и современные инструменты искусственного интеллекта, такие как глубокие нейронные сети, способные решать сложные задачи принятия решений и прогнозирования.
Как же тогда программная модель попадает в процессор управляющей электроники привода? Для этого используется метод автоматической генерации исходного кода, обычно на языке C.
В модели задается способ генерации кода, а также может быть выбран тип целевого процессора для использования оптимальных функций и структуры программного кода. Затем исходный код генерируется «одним нажатием кнопки».
Сгенерированный код, который может быть сертифицирован, затем используется непосредственно в целевом процессоре.
Помимо исходного кода на языке C, привычного для микропроцессоров, можно генерировать код на HDL (Hardware Description Language), предназначенный для мощных программируемых вентильных матриц (FPGA), или код на языке CUDA для графических вычислительных устройств.
Прежде чем целевой код сможет быть сгенерирован из модели программы (алгоритма), необходимо убедиться, что модель работает правильно и эффективно. Для этого применяется компьютерное моделирование, которое позволяет имитировать работу модели с различными входными данными, соответствующими реальным сценариям, и анализировать ее выходные данные и поведение.
Преимущество моделирования в том, что оно позволяет быстро и безопасно проверить большое количество ситуаций, не требуя физического подключения к реальному приводу. При этом используются другие модели – математические модели поведения двигателя и силовой электроники, которые описывают их физические свойства и характеристики.
Модели приводов создаются с помощью тех же инструментов моделирования, что и модели алгоритмов. Существуют готовые библиотеки отдельных элементов с разным уровнем детализации, которые можно использовать в зависимости от цели и сложности моделирования. Имитационная модель привода, по сути, является цифровым аналогом реального устройства.
Моделирование и проверка не ограничиваются виртуальным пространством компьютера разработчика. С помощью специализированных компьютеров с рядом входных и выходных интерфейсов, так называемых симуляторов, можно моделировать поведение привода в реальном времени.
К симулятору подключается реальный процессор или блок управления, который получает сигналы от модели привода и отправляет сигналы на модель силовой электроники. Таким образом, можно тестировать программу управления так, как если бы она была подключена к реальному приводу, но без риска повреждения или разрушения дорогостоящего оборудования.
В симуляторе можно легко создавать различные и даже экстремальные сценарии и проверять в них работоспособность и надежность всей электроники разрабатываемого привода. Таким образом, в реальный привод попадает уже отлаженная и тщательно протестированная программа управления.
А как насчет классического программирования? Разработка современных приводов – это процесс, в котором часто приходится комбинировать различные устройства и технологические процессы. То же самое касается и программирования их электроники. Поэтому необходимо уметь совмещать моделирование программ с их классическим написанием, ручным созданием программ на языке C.
Это могут быть программы, созданные ранее, которые выгодно повторно использовать, или же разработчик просто предпочитает создать определенную часть кода вручную.
Модели поддерживают интеграцию существующих фрагментов кода, поэтому можно комбинировать модель с рукописным кодом. Полученный в результате сгенерированный код затем содержит эти рукописные части как часть всей программы. Таким образом, речь идет не о выборе между моделированием и программированием, а о гибком сочетании обоих подходов.
В статье кратко описаны процедуры, по которым в настоящее время «программируются» электроприводы, как создается программное обеспечение для их управления и как все проверяется перед реальным использованием.
Программирование электроприводов является сложной и интересной задачей, которая требует применения современных инструментов и методов. Использование моделей, генерации кода, моделирования и симуляции позволяет разработать эффективные и надежные приводы, которые могут работать в различных сферах и областях.
Тот же подход к программированию применяется и во многих других областях, таких как системы управления батареями, системы помощи водителю автомобиля, аэронавтика или любая другая отрасль, где методы моделирования и симуляции используются для повышения качества и надежности получаемого устройства.
Андрей Повный