Запрос консультации

Моделирование объекта управления на разных уровнях абстракции

Разработка сложных технических систем строится на создании детализированных точных математических моделей объекта управления. При этом избыточная детализация приводит к тому, что модели рассчитываются медленно, серьезно затрудняя разработку. В то же время, использование быстрых и грубых моделей не позволяет учитывать тонкие эффекты, необходимые при разработке и отладке системы управления.  

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

Мы используем высокоуровневые динамические модели для линейного анализа и синтеза регуляторов, а затем проверяем разработанные алгоритмы управления на «тяжелых» детализированных моделях, учитывающих нелинейности, внешние возмущения, шумы и погрешности. Такой подход позволяет быстро подбирать законы управления, сохраняя возможность всесторонне их тестировать и отлаживать на точных моделях.


Анализ линейных и нелинейных систем

Линейный анализ систем – это одна из основных задач при разработке систем управления. Затрудняется его проведение тем, что модели сложных объектов зачастую существенно нелинейны, что не позволяет применять линейный анализ напрямую. 

Мы работаем в профессиональной инфраструктуре инженерного моделирования с продвинутыми инструментами линейного анализа, с помощью которых в сложных нелинейных моделях подбираем рабочие точки, автоматизировано линеаризуем модели, получаем необходимые графики и характеристики. Это позволяет выполнить линейный анализ даже сложных моделей за короткое время, ускоряя тем самым процесс разработки.  

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

Автоматизированный синтез и оптимизация регуляторов

Разработка алгоритма управления – это главный и ответственный этап создания САУ. Синтез алгоритма управления требует одновременного учета и контроля десятков частотных и временных параметров системы, которые при ручном синтезе «на бумаге» реализовать сложно. В результате затрачивается много времени, а регуляторы редко получаются оптимальными по заданным критериям. Не говоря уже о том, что синтезированный классическими методами регулятор требуется вручную донастраивать с учетом нелинейностей объекта управления.  

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

Разработка адаптивных регуляторов

Управление сложными системами с помощью классических линейных регуляторов становится все более затруднительным, ведь к ним предъявляются жесткие требования вплоть до подстройки под изменяющееся окружение и условия работы. Эта проблема спровоцировала появление большого количества адаптивных методов управления, использовать которые далеко не так просто, как классическое линейное управление.  

Мы успешно применяем адаптивное управление в своих проектах, ведь в работе мы полагаемся не только на знание предметной области, но и на использование профессиональных инструментов разработки САУ. Это позволяет без особых усилий применять такие подходы, как семейства регуляторов, Gain Scheduling, адаптивное управление с прогнозирующими моделями и другие.


Нейросетевые САУ (reinforcement learning)

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

Синтезируют такие регуляторы методом машинного обучения с подкреплением. Этот метод относится к группе методов обучения без учителя и поэтому опирается не на данные, а на большое количество виртуальных экспериментов. Регулятор, по сути, методом проб и ошибок учится управлять объектом, что требует использования точной математической модели объекта и эффективных инструментов для проведения колоссального количества симуляций в различных сценариях. 

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

Разработка верхнеуровневой САУ

Помимо замкнутых контуров, системы управления включают в себя алгоритмы принятия решений, планировщики, обработчики внешних событий, отказов и другую верхнеуровневую дискретно-событийную логику, которая лучше всего строится на базе машин состояний. При этом описание конечных автоматов в коде это не просто неэффективный подход, он также затрудняет отладку, поиск ошибок и оптимизацию логики. 

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

Затем с помощью автоматической генерации кода мы переносим конечный автомат вместе с остальными алгоритмами управления на микроконтроллеры или ПЛИС, проводим интерактивную отладку и автоматизированную верификацию прямо на целевой платформе. 

Быстрое прототипирование и HIL

Математические алгоритмы автономных систем приходится отлаживать не только на моделях, но и в составе физических прототипов. Путь дискретизации, портирования и адаптации кода алгоритма под прототип, даже при применении автосинтеза кода, может быть неоправданно затратным и рисковым, в случае если по результатам теста на прототипе потребуются структурные изменения алгоритмов.   

Чтобы срезать риски затрат на очередные модификации или избежать ситуации “вынужденного принятия текущих ограничений прототипа”, мы применяем подход быстрого прототипирования с помощью переконфигурируемых машин реального времени. Такие профессиональные программно-аппаратные конструкторы позволяют перебрать и применить новые алгоритмы в жестком реальном времени к физическим объектам управления за считанные минуты. Это позволяет сосредоточиться на оценке самого алгоритма в реальных условиях еще до его дискретизации и аппаратной оптимизации, избегая ручного написания кода.   

Не стоит забывать, что “сырые” алгоритмы тестировать на объектах управления попросту опасно, кода речь идет о беспилотных автомобилях и летательных аппаратах. Эти же переконфигурируемые программно-аппаратные стенды решают для нас задачу HiL-тестирования – когда среда, сценарии и объект управления имитируются на комплексе полунатурного моделирования в реальном времени для тестирования, отладки и предварительной калибровки ЭБУ. 


Аппаратная реализация алгоритмов

Если вы переносите алгоритм на встраиваемые системы путем ручного написания кода, то знаете, насколько этот процесс трудоемкий, а особенно при изменении требований в процессе отладки. Проходят месяцы, прежде чем вам удается запустить первую версию своего алгоритма на встраиваемом вычислителе, чтобы оценить, будет ли он работать, и отладить ошибки, к которым примешиваются ошибки кодирования.  

При реализации систем управления на смену ручному кодированию давно пришел подход автоматической генерации исходного кода. Это позволяет получать из сложных алгоритмов C/C++, CUDA и HDL-код не за месяцы, а за считанные дни, и избавляет от ошибок ручного кодирования. Вы можете быть уверены, что полученный исходный код соответствует исходному алгоритму и убедиться в этом путем симуляции. Такой способ получения встраиваемого кода даёт преимущество с точки зрения изменения и настройки алгоритмов в течение всего проекта, а также даёт гибкость в выборе элементной базы. Например, иногда требуется освободить ресурсы микропроцессора, перебросив часть обработки на ПЛИС, или наоборот. Генераторы кода позволяют реализовывать и проверять проектные решения в минимальные сроки.  

Инструментами кодогенерации мы владеем на глубоком экспертном уровне, многократно подтверждали нашим заказчикам возможности получения из моделей оптимизированного исходного кода для микроконтроллеров, ПЛИС, GPU, ПЛК, а также полунатурных стендов. Весь сгенерированный код – читаем, трассируем к требованиям, снабжён тестовыми векторами. При этом мы используем инструменты верификации и интерактивной отладки алгоритмов непосредственно на целевой платформе, что повышает качество разработанных систем. Мы обучаем наших клиентов кодогенерации на профессиональных тренингах, а также путем выполнения совместных проектов с передачей экспертизы по тонкой настройке генератора кода. 


${message}

${message}