Моделирование инерциальных навигационных датчиков в MATLAB

В этой работе рассматриваются средства MATLAB для генерации показаний виртуальных инерциальных MEMS датчиков.

Математическое моделирование и одноимённый ЯП

В этой работе рассматриваются средства MATLAB для генерации показаний виртуальных инерциальных MEMS датчиков.

Релейная защита и автоматика (РЗА) является главным элементом безопасности любой энергосистемы. Сбои в работе питания, возникновение коротких замыканий, неселективная работа защит могут остановить не только работу предприятия, но и целых городов и даже стран, как было в истории с блэкаутом в Испании в 2025 году [1]. Поэтому, чтобы избежать таких случаев, от РЗА требуются максимального быстродействия, точности и надежности.
Модели REPEAT VISION позволяют подробно изучить структурные схемы и принципы действия защит, а также проводить эксперименты, моделирование аварийных случаев и подключение к терминалам защит. Ранее мы писали о моделировании электроприводов в REPEAT VISION [2]. Давайте разберем, как моделирование систем РЗА применяют для тестирования и предупреждения аварийных ситуаций на примере высокочастотной дифференциально-фазной защиты (ДФЗ) линий электропередач.

В данной статье будет рассматриваться задача многомерной интерполяции с помощью нейронной сети. Нейронная сеть построена с помощью среды математического моделирования Engee. Данная задача имеет серьезное практическое применение так как нарушение целостности трубопровода связано с большими экономическими последствиями или даже может привести к техногенной катастрофе (в случае если трубопровод промышленный). Основная проблема обнаружения места утечки что нельзя напрямую зафиксировать факт утечки и определить её можно только алгоритмически измеряя косвенные параметры (давление, скорость потока жидкости или газа в трубопроводе, температура). Для повышения точности измерений данные параметры измеряются на всём протяжении трубопровода. Наиболее простой и распространенный способ. Но у данного способа есть существенный недостаток, он позволяет определить только участок трубопровода и для более точного определения места утечки нужен другой (более точный) алгоритм поиска.
В качестве наиболее важных параметров, описывающих процесс транспортировки нефтепродукта в трубопроводе, были выбраны следующие: избыточное давление в трубопроводе и расход нефтепродукта. Во-первых, эти параметры
наиболее существенно изменяются при возникновении утечки. Во-вторых, они
легко поддаются измерению датчиками и не требуется больших затрат на установку и эксплуатацию датчиков давления и расхода.

Есть код, который физики передают друг другу с 2002 года. Кристиан Мэтцлер из Бернского университета написал набор MATLAB‑функций для расчёта рассеяния Ми, физики, из‑за которой небо голубое, а молоко белое. В 2009-м Стивен Жак обернул его для тканевой оптики, и с тех пор эти полторы сотни строк разошлись по тысячам работ, от атмосферных исследований до лазерной медицины.

В современном мире электропривод является крупнейшим потребителем электрической энергии, обеспечивая более 60% мирового энергопотребления. Причём это касается не только промышленности. Мы сталкиваемся с ним постоянно: от обычных приводов вентиляторов до сложных систем управления электромобилями. Поэтому при разработке и исследованиях электропривода моделирование является одной из важнейших составляющих в области электротехнических комплексов и систем.
REPEAT VISION – это среда для проектирования, математического моделирования и создания цифровых двойников. В прошлый раз мы уже писали о следующих моделях:
· Трёхмассовая тепловая модель асинхронного тягового двигателя [1];
· Система управления батареей [2];
· Статический тиристорный компенсатор (СТК) [3];
· Статический синхронный компенсатор (СТАТКОМ) на базе преобразователя напряжения [4].
В данной статье мы рассмотрим библиотеки для проектирования электрического привода, инструменты для анализа результатов моделирования и разберём конкретные примеры на REPEAT VISION.

В данной статье рассмотрим функциональность Engee для построения моделей электропривода из физических блоков (не используя блоки с переменной Лапласа и математические блоки). В качестве нагрузки для инвертора выбрано параллельное включение резистора и асинхронного двигателя, асинхронный двигатель вращает маховик через понижающий редуктор, на каждом этапе проводятся измерения угловых скоростей. Исследуемую схему можно условно разбить на части: постоянное напряжение (источник постоянного напряжения), переменное напряжение (инвертор, трансформатор, асинхронный двигатель), механическое вращение (ротор двигателя, редуктор, маховик). Построение схемы начну с настройки инвертора, для его настройки не буду сразу подключать всю запланированную нагрузку, вместо этого будет использоваться чисто активная нагрузка, это ускорит процесс моделирования и сделает минимальными переходные процессы в схеме

Циклические испытания материалов – это задача, где важны не только механика установки, но и качество программного контура: нужно управлять нагружением, синхронно снимать данные с датчиков, сохранять результаты и видеть процесс в реальном времени.
В совместном проекте внедрения с Институтом физики твердого тела (ИФТТ) РАН мы проверяли, можно ли использовать Engee как основу для автоматизации установки циклических испытаний композитных материалов. Перед нами стояла прикладная задача: реализовать сбор данных с тензодатчика и датчика перемещения и управление сервоприводом.

Привет Хабр!
Современное нефтегазовое производство требует всё более совершенных инструментов для прогнозирования состояния оборудования и предотвращения аварийных ситуаций. Особенно это касается газопроводов-шлейфов — критически важных элементов инфраструктуры, обеспечивающих транспортировку газа от скважин до установок комплексной подготовки газа.
Проблема износа трубопроводов становится всё более актуальной. Эрозионное воздействие потока газа, содержащего воду с механическими примесями, может привести к серьёзным последствиям, вплоть до аварийных ситуаций. Традиционные методы диагностики и принятия решений уже не справляются с растущей сложностью задач.
В этой статье мы подробно разберём, как машинное обучение помогает решать проблему прогнозирования износа газопроводов.

В данной статье рассмотрена модель корабельного привода который состоит из дизельной установки, генератора и электродвигателя вращающего винт, модель построена с помощью Engee

Когда моделируешь помехоустойчивые коды, декодер обычно остаётся чёрным ящиком: пишешь ldpcDecode(llr, cfg, 30), comm.TurboDecoder или dvbs2ldpc(1/2) — и получаешь красивый «водопад» BER, не заглядывая внутрь. А самое интересное в современных кодах именно там: не в том, как закодировать, а в том, как декодер из зашумлённого сигнала достаёт правильные биты.
Первая часть заканчивалась предложением: «если интересно разобрать итеративное декодирование LDPC/турбо в деталях или полярные коды с последовательным отменением — пишите в комментариях». Написали — так что эта статья и есть ответ на запрос из комментариев. Читать первую часть необязательно: там мы прошли эволюцию кодов в сотовой связи от GSM до 5G по BER‑кривым в MATLAB, а всё нужное я напомню по ходу. Здесь — вскрываем сами декодеры.
Эта часть открывает ящик. Разберём три декодера, на которых держится всё современное кодирование:
— belief propagation — итеративный обмен сообщениями по графу, ядро LDPC и всего 5G eMBB;
— BCJR + итеративный обмен мнениями — то, что сделало турбо‑коды возможными;
— successive cancellation — последовательное отменение в полярных кодах.
Чтобы видеть каждую строчку, MATLAB‑тулбокс не годится — он прячет алгоритм. Поэтому весь разбор идёт по коду небольшой библиотеки, которую я написал специально для этого — fec‑cpp: header‑only C++17, без единой внешней зависимости, только STL. Её можно прочитать целиком за вечер, и каждый декодер в ней — полсотни строк, которые делают ровно то, что написано в учебнике. Рядом с каждым разбором будет и MATLAB‑эквивалент — чтобы видеть контраст: одна строка тулбокса против явного алгоритма. А в конце — большое сравнение: прогоним обе реализации по одинаковым кодам и наложим их BER‑кривые на одни графики.

В 1992 году первый GSM-звонок прошёл по цифровому каналу с BER около 10⁻³ — и всё равно был разборчивым. Сейчас 5G держит BER ниже 10⁻⁵ при вдвое меньшей энергии. За 30 лет не изменились ни физика канала, ни формула Шеннона — изменились коды.
Каждое поколение сотовой связи — это смена схемы помехоустойчивого кодирования:
1G (1981): аналог, никакого канального кодирования 2G GSM (1992): свёрточный код R=1/2, K=5 + декодер Витерби 2G IS-95 / CDMA (1995): свёрточный R=1/2, K=9, полиномы [753 561] 3G UMTS (2001): турбо-коды (PCCC, R=1/3) — прыжок BER на 3–4 дБ 4G LTE (2009): турбо + хвостово-скусанные свёрточные для управляющих каналов 5G NR (2019): LDPC для данных (eMBB), полярные коды для управления
Статья идёт по этой цепочке. К каждому коду — числовой пример, рабочий MATLAB-скрипт и BER-кривая, а в финале — всё на одном графике.

В далеком 2011 году автором была опубликована статья «Реализация CORDIC‑алгоритма на ПЛИС» [1]. В той статье приводится сначала математическое описание алгоритма, его суть. Показан пример расчета поворота вектора на плоскости сначала «на бумажке» согласно алгоритму, а затем сравнение результатов с расчетом «по калькулятору». Затем, показано создание структурной схемы проекта с rtl‑описанием CORDIC‑алгоритма и приведены листинги каждого модуля. Помимо этого были приведены основы создания проекта в среде ModelSim.
Автор считает, что эта статья оказалась полезной для новичков в области программирования ПЛИС, так как на протяжении долгого периода времени, после публикации статьи приходили письма с вопросами и уточнениями на данную тему. Даже сейчас я часто встречаю на различных форумах на тему ПЛИС ссылки на данную работу. Но! Если математическая часть алгоритма однозначно является полезной, а также основы создания и структурированного ведения проекта для новичка, то использовать данное rtl‑описание в различных проектах, адаптируя модули проекта по свои нужды крайне неудобно и неуклюже. По крайней мере, автор, когда заглядывает в это свое создание в прошлом, морщится и чувствует себя неловко.
Поэтому появилось желание представить тот модуль CORDICа (для генерации гармонического сигнала в сфере радиолокации и связи), который автор использует в данный момент в различных проектах. Весь алгоритм реализован в одном sv‑модуле, а, значит, его намного легче переносить из проекта в проект. Также он более прост в восприятии.

На сайте Engee в разделе «Библиотека конечных автоматов» в наглядной форме представлены КА [1]. Полюбопытствуйте. Вполне достаточно для первого знакомства. Там есть раздел «Материалы Engee по Конечным автоматам», в который помещены проекты, демонстрирующие качества КА на практике. Сейчас это три проекта — «Регулирование температуры воздуха», «Электростеклоподъемник для автомобиля» и «Управление перекрестком». Подобно проекту браслета из первой части статьи [2] на их примере покажем возможности автоматного программирования (АП) в среде ВКПа в сравнении с автоматами Engee или, что будет точнее, в сравнении с моделью Харелла, реализованной здесь.
Выберем для этого проект с светофорами. На сайте имеется следующее его описание:
«Цель этого примера — разработать модель управления перекрестком, состоящим из двух автомобильных и одного пешеходного потоков, которые управляются двумя трёхсекционными и одним двухсекционным светофорами соответственно. Алгоритм переключения секций будет определяться согласно временной диаграмме. Управляющий алгоритм будет реализован при помощи нескольких блоков Chart, а снятие входных и формирование выходных сигналов — блоками C-Function.»
На рис. 1 показана структурная схема проекта в Engee. На ней несколько блоков, где основные — блок Commn_Counter, который моделирует временные такты диаграммы, блок Traffic_Lights, реализующий управление, заметим, сразу двумя светофорами и блок Crosswalk для светофора потока пешеходов. Временная диаграмма работы светофоров показана на рис. 2.

Среди синхронных двигателей с постоянными магнитами существует конструктивное разделение, которое на первый взгляд кажется деталью производства, а на самом деле определяет всю физику машины и логику её управления. Речь идёт о расположении магнитов в роторе: снаружи или внутри.
Двигатель с постоянными магнитами на поверхности ротора (SPMSM) – прост и предсказуем. Магнитный зазор равномерен, индуктивности по обеим осям одинаковы, момент создаётся единственным способом. Управлять им несложно.
Двигатель с инкорпорированными постоянными магнитами IPMSM (Interior Permanent Magnet Synchronous Motor) – устроен принципиально иначе. Магниты утоплены в тело ротора, что нарушает симметрию магнитной цепи. Возникает анизотропия: магнитное сопротивление ротора различается по двум взаимно перпендикулярным направлениям. Следствие – дополнительный источник момента, реактивный, существующий исключительно за счёт разницы индуктивностей по осям d и q.
Именно эта анизотропия делает IPMSM привлекательным для тягового привода. Широкий диапазон ослабления поля, высокая удельная мощность, возможность использовать реактивный момент для снижения токовой нагрузки – всё это следствие одного конструктивного решения: магниты внутри, а не снаружи.
Реализовать потенциал IPMSM позволяет стратегия MTPA – Maximum Torque Per Ampere. Она находит оптимальное распределение вектора тока статора между осями d и q: такое, при котором заданный момент достигается при минимальной амплитуде тока. Меньший ток – меньше потерь в меди, меньше нагрев, меньше нагрузка на инвертор.
В настоящей статье рассматривается физика анизотропии IPMSM, математическая модель машины в системе координат d‑q и стратегия MTPA как задача оптимизации с аналитическим решением. Модель реализована в системе моделирования Engee и верифицирована сравнением режимов FOC и MTPA на параметрах макетного образца IPMSM.

Осенью 2025 года в ЦИТМ «Экспонента» обратились инженеры АО «Концерн «НПО «АВРОРА» - флагмана отечественного судостроения, предприятия с полувековой историей и серьезным портфелем гражданских и специальных проектов. Коллеги поставили перед нами задачу: провести комплексную оценку среды Engee как платформы для модельно-ориентированного проектирования программного обеспечения для программируемых логических интегральных схем (ПЛИС) и микроконтроллеров (МК). Цель проекта – заменить зарубежные решения в реальных промышленных задачах, а далее мы расскажем подробно, как проходила эта работа, какие технические вызовы пришлось преодолевать и к каким выводам пришли инженеры с обеих сторон.

Для того чтобы определить вероятные положения летательного аппарата в окрестностях траектории необходимо использовать комплексную обработку данных полученных с различных источников, в рамках данной статьи предполагается что в основу расчета берем усредненные параметры участка траектории ЛА, известные координаты РЛС которые определяют его положение, дисперсии для каждой РЛС (в рамках данного моделирования берем две, но в произвольном случае может быть любое количество)
Подобные расчеты требуются для того чтобы определить как близко могут пролететь самолеты один относительно другого в сложных навигационных условиях (например в условиях заглушенного сигнала GPS), область вероятного положения в каждый момент времени при движении летательного аппарата будет представлять собой серию эллипсоидов, параметры данных эллипсоидов будут вычисляться с помощью скрипта на языке Engee

Возможно, на мой предвзятый взгляд, нынче автоматным программированием (АП) называют любое программирование, в которое вводят состояния (а параллельным – где используют потоки). Но не все, что с колесами – машина, а с крыльями – самолет. И далеко не всегда то, что «выглядит» как автомат, «плавает» как автомат и «крякает» как автомат им является. Это ясно, если руководствоваться математическим определением конечного автомата (КА). Только соответствие этому позволяет считать программирование автоматным. Подробнее же об АП рассказано в [1].
Среди существующих программных подходов некоторые на взгляд программистов относятся к категории АП. Это, например, варианты диаграмм Харела (Statecharts) и языков на них основанных. Например, UML (Unified Modeling Language). Именно этой теме посвящена статья на Хабре, которая описывает проектирование на базе КА в среде Engee[2]. В последней есть библиотека «Конечные автоматы» – «лучший инструмент для визуального проектирования сложной управляющей логики» [3].
Разберем данную статью, создав аналог рассмотренного в ней решения, но только на языке С++ и в среде ВКПа – классическом варианте технологии автоматного программирования. Это позволит объективно сравнить подходы, а вам, «хабравчане», останется только составить уже свое мнение о разных вариантах АП.

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

В данной статье будем реализовывать оптимальный фильтр Калмана с помощью среды моделирования Engee.
Структура навигационной системы будет представлять собой комбинацию бесплатформенной навигационной системы + спутниковой навигационной системы (СНС).

Представьте: 80-я минута, счёт 1:1. Нападающий соперника получает мяч на фланге и уходит в рывок вдоль бровки. Защитник бежит рядом, чуть левее — между нападающим и центром поля. Где-то в центре полузащитник соперника уже прицеливается для прострела.
И в этот момент защитник должен принять решение — молниеносно, без калькулятора, без времени на раздумья: я контролирую ситуацию или мне нужна помощь партнёра?
Опытный защитник решает это интуитивно. Но что именно стоит за этой интуицией? Оказывается — вполне конкретная математика. Причём такая, которую проходят в школе.
У защитника есть зона контроля — сектор пространства, в котором он способен среагировать на действия нападающего. Её размер определяется тремя физическими факторами: временем реакции, скоростью бега и углом периферийного зрения. Пока нападающий находится внутри этого сектора — защитник держит ситуацию под контролем. Как только нападающий выходит за его границу — контроль потерян, нужна подстраховка.
Задача, которую мы разберём в этой статье, даёт конкретный ответ на конкретный вопрос: окажется ли нападающий в зоне контроля защитника в момент приёма паса — и когда защитнику нужно звать партнёра?
Для решения не понадобится ничего сверхъестественного: уравнения прямых, расстояние между точками, три геометрических условия. Весь необходимый аппарат вы уже проходили — просто, возможно, не думали, что он помогает принимать решения на футбольном поле.
В конце статьи мы реализуем модель в среде Engee на языке Julia — с визуализацией зоны контроля в начальный момент и через время t1.