Привет, Хабр! Продолжаем нашу серию статей о суррогатном моделировании, на этот раз расскажем, как мы применили нейросети при создании сложных технических систем – приспособили GRU в качестве суррогатной модели. Реальный кейс для клиента в рамках реального проекта.
Поставим нейросети обучение на службу проектировщику. Полетели!
Однажды мне прилетела задача реализовать DMR на ПЛИС. Опустившись на дно интернета, я нашел лишь мануал ETSI и пару примеров по генерации кода – с этого начался мой тернистый путь изучения данной тематики. Недавно наткнулся на мем, и тут нахлынули воспоминания...
Продолжаем серию постов об одном очень полезном методе из мира машинного обучения, цель которого – существенно ускорить инженерное проектирование. Мы с вами уже научились обучать легкие модели на замену мощным и детальным инженерным пакетам для симуляции сложных систем. Теперь научимся делать так, чтобы наши суррогатные модели точно отражали изучаемое явление в нужных пределах, при этом требовали бы как можно меньше данных и очень быстро обучались.
Тема супер интересная, поэтому мы сделали перевод отличной статьи авторства Шуая Гуо, и на ее основе делимся своим опытом и кодом на MATLAB, чтобы вы могли все попробовать сами.
Продолжаем ускорять инженерное проектирование при помощи суррогатных моделей. Суррогатное моделирование – это обучение статистической модели, которая послужит дешевым, но точным заменителем тяжелой имитационной модели при выполнении самых разных задач проектирования. Мы дополнили исходную статью своим кодом, который вы легко запустите и сами оцените мощь этого подхода.
Представьте, что кто-то создал для нас очень детальную имитационную модель сложнейшей системы (спасибо!). Теперь нам её эксплуатировать, мы же проектировщики, так что поищем оптимальную конфигурацию (миллион комбинаций параметров), прогнав для каждой из них по миллиону экспериментов (погода, реакция всяких агентов и просто для накопления статистики...). И тут нас настигает понимание того, что задача будет решаться несколько недель. Потратить время на упрощение модели вручную, или задействовать машинное обучение?
Так вышло, что испытания релейной защиты обязательно проводят на специальных комплексах в режиме реального времени. Внутри этих комплексов находятся цифровые двойники электроэнергетических объектов. Чтобы разобраться как и зачем их туда загружают, мы прольем свет на всеми любимый и ненавистный стандарт МЭК 61850 и поделимся своим опытом моделирования энергосистем на КПМ РИТМ.
Что вам важнее в DL-проекте, удобство или производительность? Посмотрим на проблему глазами инженера-разработчика сложных систем с элементами искусственного интеллекта. Как типичный инструментарий в этой сфере справляется с обучением и выполнением?
В этой статье мы запустим пару нейросетей в MATLAB и сравним быстродействие ResNet с opensource-фреймворками. Так что, если хотите обсудить, в чем (кроме удобства) коммерческий фреймворк может выиграть у опенсорса, добро пожаловать!
Современные технические системы постепенно усложняются, а традиционные подходы к разработке становятся неэффективны. Одним из вариантов решения этой проблемы является внедрение модельно-ориентированного проектирования (МОП) для разработки систем и программного обеспечения. Однако, прежде чем инвестировать средства в МОП, необходимо обосновать получаемые выгоды. В данной статье кратко коснемся того, что же такое МОП, чем он отличается от традиционного подхода и в чем его преимущества, а также рассчитаем ожидаемую экономию трудочасов от применения МОП по сравнению с традиционным подходом к разработке. Тут вы не найдете исчерпывающих объяснений по всем перечисленным вопросам, материал представляет собой больше «быстрый взгляд» на методологию со ссылками, где можно почитать подробнее.
Глубокиенейронные сети (DNN) способны решать сложные задачи в областях, связанных со встроенными системами, таких как обработка изображений и естественного языка. Чтобы эффективно реализовать DNN на конкретной платформе ПЛИС для заданного критерия стоимости, например, энергоэффективности, необходимо учитывать огромное количество параметров проектирования, начиная с топологии и заканчивая конечной аппаратной реализацией. Необходимо учитывать и эффективно исследовать взаимозависимости между различными уровнями проектирования, что делает поиск оптимизированных решений вручную едва ли возможным.
Автоматический, целостный подход к проектированию может значительно улучшить качество реализации DNN на ПЛИС. С этой целью мы представляем метод исследования межслойного пространства проектирования.
В прошлой статье мы поговорили, почему без системы контроля версий эффективно выполнять инженерные проекты невозможно и с чего начать работу с Git.
Теперь погрузимся в Git поглубже. Раскроем еще одно из его ключевых достоинств – возможность эффективно работать в команде над одним проектом, вносить изменения, не мешая другим, и отслеживать прогресс коллег.
Если вы студент, работаете в академической сфере или на производстве, вы, вероятно, сталкивались с ситуациями, когда вам нужно было объединить работу с более чем одного языка программирования. Это обычное дело в инженерных и научных приложениях, особенно когда они связаны с несколькими командами и нуждаются в общем оборудовании. В этом материале хочу поделиться некоторыми полезными советами, которые помогут эффективно использовать MATLAB и Python вместе.
Сейчас почти все офисные, торговые и промышленные объекты снабжены системами видеонаблюдения. Можно использовать видео с существующих камер для распознавания огня, и тем самым еще дополнительно повысить безопасность объектов.
В ряде случаев распознавание огня по камере может происходить в разы быстрее, чем при использовании штатных систем на основе пожарных извещателей, да и количество камер на объектах сейчас такое, что они смотрят практически в каждый уголок)
Всем привет, дорогие хабровчане! Сегодня я хочу поделиться своей «больной» идеей реализовать калькулятор на ПЛИС на основе конечного автомата. Почему больной? Потому что уж очень мудрёно получается: всё-таки реализация автоматов на ПЛИС – дорогая практика в смысле ресурсов. Почему хочу поделиться? Потому что вишенкой на торте в этом проекте является автоматическая генерация кода с помощью такого мощного средства, как HDL Coder в MATLAB, что в купе со Stateflow очень интересно смотрится: создание железного кода на основе графического составления графа системы – ни это ли верх мечтаний разработчика, которому необходимо реализовать сложнейший граф с кучей разных переходов и условий ?!
Итак, задачу перед собой я поставил следующую: у меня есть «китайский» кит с FPGA Spartan 6 на борту и старенький клавиатурный интерфейс PS/2. Я собираюсь залить проект калькулятора-автомата на ПЛИС вместе с выбранным интерфейсом и с клавиатуры осуществлять ввод данных. Вывод результата и текущего ввода будем наблюдать на 8-ми cемисегментных дисплеях, которые также имеются на отладочной плате.
В первой части мы познакомимся с пакетом Stateflow, как собиралась модель в SIMULINK и сгенерируем HDL-описание. Во второй части мы немного скорректируем проект для получения синтезируемого HDL кода.
Около десяти лет я хотел реализовать эту глупую идею – измерить ускорение руки человека, чтобы подсчитать, сколько раз он дает пять в течение дня. Я не знал, как решить данную задачу, используя классические подходы к разработке алгоритмов, основанные на знакомых мне правилах, поэтому проект приостановили. Но когда я делал серию видеороликов MATLAB Tech Talk по Deep Learning, я понял, что Deep Learning идеально подходит для решения этой проблемы!
В предыдущей статье я рассказал, как создается модель векторного управления СДПМ, и определил параметры двигателя по экспериментальным данным.
В этой статье мы заставим вращаться двигатель так, как нам нужно, т.е. займемся настройкой контуров управления, и, разумеется, проведем эксперимент, воспользовавшись сгенерированным из модели кодом.
Мне очень досадно наблюдать, как суровые инженеры, которые программируют микроконтроллеры для самонаводящихся ракет, не могут настроить систему контроля версий, чтобы работать комфортно, эффективно и командно.
Я хочу показать инженерам, как можно без боли контролировать изменения скриптов MATLAB и моделей Simulink, попытаюсь донести матлаберам, не знакомым с системой контроля версий (а таких большинство), что для вас это необходимый инструмент на каждый день.
Сжатие видео с камеры является важной задачей как при трансляции данных через сеть Интернет, так и при передаче данных через радиоканал. Это позволяет в разы сократить объем передаваемой информации при небольшой потере детализации в исходном видео. Сейчас самым популярным алгоритмом для сжатия видео является кодек h264. Хотя уже существует следующая реализация кодека – h265, но он имеет большую вычислительную сложность алгоритма и пока не нашел столь широкого применения, и его реализацию можно оставить на потом :)
Модельно-ориентированное проектирование - это что?
При разработке алгоритма для ПЛИС можно выделить два основных подхода: написать алгоритм сразу на языке описание аппаратуры VHDL/Verilog/SystemC или использовать более высокоуровневые средства проектирования. Во втором случае вначале строится эталонная модель алгоритма в MATLAB/Simulink, тестируется, верифицируется и постепенно подготавливается к автоматической генерации HDL кода из алгоритма. Конечно, мы выбрали второй вариант, т. е. наш план – на основе MATLAB кода сделать эталонную модель алгоритма Simulink, а после – адаптировать ее к автоматической генерации кода и получить HDL для ПЛИС.
Всем привет! На Хабр есть несколько статей, в которых рассказывается об использовании модельно-ориентированного проектирования (МОП) при разработке различных систем, в том числе и системы управления электродвигателем.
Мне тоже захотелось попробовать этот подход в деле при том, что в лаборатории давно пылился отладочный комплект на базе микроконтроллера серии C2000 от Texas Instuments, да еще и с синхронным двигателем с постоянными магнитами (СДПМ) в придачу.
В этой и последующей статьях я хотел рассказать, как с помощью МОП я создал адекватную модель объекта управления (трехфазного двигателя), промоделировал алгоритм векторного управления, настроил регуляторы и автоматически сгенерировал код для микроконтроллера из модели.
Скорее всего кто-то из читателей уже слышал о генерации HDL кода из моделей Simulink, а также есть немало людей кто задается вопросом насколько это эффективно.
Чтобы ответить на этот вопрос, в этой статье я покажу процесс разработки в целом, который помимо генерации HDL кода, включает разработку через моделирование с оптимизацией на уровне алгоритмов и непрерывное тестирование.
Сделаю это на примере разработки LDPC декодера стандарта DVB-T2, который удалось разработать меньше чем за два месяца. Итак, начнем с описания процесса разработки, который мы использовали.
Всем привет. В продолжение темы описания авиационных систем "для чайников" (тут и тут), я подготовил новый текст про шасси и колёсные тормоза самолётов.