Современные технические системы постепенно усложняются, а традиционные подходы к разработке становятся неэффективны. Одним из вариантов решения этой проблемы является внедрение модельно-ориентированного проектирования (МОП) для разработки систем и программного обеспечения. Однако, прежде чем инвестировать средства в МОП, необходимо обосновать получаемые выгоды. В данной статье кратко коснемся того, что же такое МОП, чем он отличается от традиционного подхода и в чем его преимущества, а также рассчитаем ожидаемую экономию трудочасов от применения МОП по сравнению с традиционным подходом к разработке. Тут вы не найдете исчерпывающих объяснений по всем перечисленным вопросам, материал представляет собой больше «быстрый взгляд» на методологию со ссылками, где можно почитать подробнее.
Глубокиенейронные сети (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, который удалось разработать меньше чем за два месяца. Итак, начнем с описания процесса разработки, который мы использовали.
Всем привет. В продолжение темы описания авиационных систем "для чайников" (тут и тут), я подготовил новый текст про шасси и колёсные тормоза самолётов.
Привет, Хабр! В этой статье я хочу максимально просто и доступно рассказать про то, как доказывается, что ваши средства разработки и верификации подходят для создания систем повышенной надежности. Это очень важный и далеко не самый простой вопрос, и моя цель — ответить на него как можно более понятным языком. В самой статье я обобщил указания из отраслевых стандартов, таких как КТ-178 или Р-331 (встраиваемое ПО в авиации), ГОСТ Р ИСО 26262-8 (встраиваемое ПО в автомобилестроении). Так что добро пожаловать под кат.
Всем привет. Недавно я читал ликбез очередному студенту на тему общего устройства оборудования самолёта. Вводный рассказ, хоть и отработанный до автоматизма, отнял пару часов времени и выявил необходимость ещё в двух-трёх вводных. Но лень — двигатель прогресса и я наконец дозрел до оформления всех этих «лекций» в печатном виде. А там, где есть внутренняя методичка, недалеко и до публикации на Хабре: вдруг, кому ещё интересно почитать будет.
Перед началом изложения хочу оговориться, что моя основная специализация — бортовое оборудование, так что из моего описания может вполне получиться «идеальный самолёт для технолога». Тех, кого этот подход не пугает, а также всех тех, кому интересно зачем в кабине экипажа нужны все эти кнопки и ручки — прошу оценить первую публикацию «Силовая установка».
За время работы в отрасли авиастроения у меня и коллег накопился большой опыт по разработке и созданию стендов полунатурного моделирования бортового оборудования самолётов (Hardware-In-the-Loop, HIL) и стендов быстрого прототипирования (Model-In-the-Loop, MIL). Данная публикация — это попытка свести наш опыт в одну публикацию. Получившийся текст оказался довольно подробным, но вырезать что-то рука не поднимается. К тому же при сокращении местами может пропасть причинно-следственная связь. Итак, здесь будет рассказываться:
О применяемых инструментах автоматизации разработки стенда и его сопровождения;
О программном обеспечении и аппаратуре имитационного комплекса;
О подходах к построению стенда HIL и MIL стендов;
О различных приемах, ускоряющих создание стенда и упрощающих его модернизацию и эксплуатацию.
В данной статье будут подниматься темы построения пользовательских слоёв нейронных сетей, использование автоматического дифференцирования и работы со стандартными слоями глубокого обучения нейронных сетей в MATLAB на основе классификатора с использованием пространственной трансформационной сети.
Заключающая статья серии, посвященной автоматизированным способам настройки ПИД-регуляторов в среде Simulink, в которой мы рассмотрим применение блока автоматической настройки Closed-Loop PID Autotuner.
Среда Simulink предоставляет возможность исследования нелинеаризуемых систем и настройки их регуляторов с помощью метода гармонического анализа. Одним из инструментов, использующих данный метод, является Frequency Response Based PID Tuner.