Обновить
32K+

Matlab *

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

4,67
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Автоматизация циклических испытаний с Engee

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели5.8K

Циклические испытания материалов – это задача, где важны не только механика установки, но и качество программного контура: нужно управлять нагружением, синхронно снимать данные с датчиков, сохранять результаты и видеть процесс в реальном времени.

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

Читать далее

Новости

Интеграция ML и инженерного моделирования: кейс прогнозирования износа газопроводов

Уровень сложностиСредний
Время на прочтение32 мин
Охват и читатели8.1K

Привет Хабр!

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

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

В этой статье мы подробно разберём, как машинное обучение помогает решать проблему прогнозирования износа газопроводов.

Читать далее

Анализ САУ гребной дизель-электрической установки

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели10K

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

Читать далее

Итеративное декодирование LDPC/турбо, полярные коды — разбираем на C++ и сравниваем с MATLAB

Уровень сложностиСредний
Время на прочтение18 мин
Охват и читатели8.6K

Когда моделируешь помехоустойчивые коды, декодер обычно остаётся чёрным ящиком: пишешь 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‑кривые на одни графики.

Читать далее

Коды исправления ошибок в сотовой связи: от GSM до 5G — симулируем в MATLAB

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели8.1K

В 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-кривая, а в финале — всё на одном графике.

Читать далее

Разработка параметризируемого модуля CORDIC-алгоритма на System Verilog

Уровень сложностиСредний
Время на прочтение19 мин
Охват и читатели14K

В далеком 2011 году автором была опубликована статья «Реализация CORDIC‑алгоритма на ПЛИС» [1]. В той статье приводится сначала математическое описание алгоритма, его суть. Показан пример расчета поворота вектора на плоскости сначала «на бумажке» согласно алгоритму, а затем сравнение результатов с расчетом «по калькулятору». Затем, показано создание структурной схемы проекта с rtl‑описанием CORDIC‑алгоритма и приведены листинги каждого модуля. Помимо этого были приведены основы создания проекта в среде ModelSim.

Автор считает, что эта статья оказалась полезной для новичков в области программирования ПЛИС, так как на протяжении долгого периода времени, после публикации статьи приходили письма с вопросами и уточнениями на данную тему. Даже сейчас я часто встречаю на различных форумах на тему ПЛИС ссылки на данную работу. Но! Если математическая часть алгоритма однозначно является полезной, а также основы создания и структурированного ведения проекта для новичка, то использовать данное rtl‑описание в различных проектах, адаптируя модули проекта по свои нужды крайне неудобно и неуклюже. По крайней мере, автор, когда заглядывает в это свое создание в прошлом, морщится и чувствует себя неловко.

Поэтому появилось желание представить тот модуль CORDICа (для генерации гармонического сигнала в сфере радиолокации и связи), который автор использует в данный момент в различных проектах. Весь алгоритм реализован в одном sv‑модуле, а, значит, его намного легче переносить из проекта в проект. Также он более прост в восприятии.

Читать далее

Бониана: приложение к браслету

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели6.8K

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

Выберем для этого проект с светофорами. На сайте имеется следующее его описание:

«Цель этого примера — разработать модель управления перекрестком, состоящим из двух автомобильных и одного пешеходного потоков, которые управляются двумя трёхсекционными и одним двухсекционным светофорами соответственно. Алгоритм переключения секций будет определяться согласно временной диаграмме. Управляющий алгоритм будет реализован при помощи нескольких блоков Chart, а снятие входных и формирование выходных сигналов — блоками C-Function

На рис. 1 показана структурная схема проекта в Engee. На ней несколько блоков, где основные — блок Commn_Counter, который моделирует временные такты диаграммы, блок Traffic_Lights, реализующий управление, заметим, сразу двумя светофорами и блок Crosswalk для светофора потока пешеходов. Временная диаграмма работы светофоров показана на рис. 2.

Читать далее

IPMSM — синхронный двигатель с инкорпорированными магнитами: физика анизотропии и оптимальное управление

Уровень сложностиСложный
Время на прочтение22 мин
Охват и читатели11K

Среди синхронных двигателей с постоянными магнитами существует конструктивное разделение, которое на первый взгляд кажется деталью производства, а на самом деле определяет всю физику машины и логику её управления. Речь идёт о расположении магнитов в роторе: снаружи или внутри.

Двигатель с постоянными магнитами на поверхности ротора (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.

Читать далее

Как российское судостроение осваивает Engee

Время на прочтение7 мин
Охват и читатели7.3K

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

 

Читать далее

Постобработка параметров траектории ЛА для оценки размеров области его вероятного положения

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели7.6K

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

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

Читать далее

Браслет для Бони

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели28K

Возможно, на мой предвзятый взгляд, нынче автоматным программированием (АП) называют любое программирование, в которое вводят состояния (а параллельным – где используют потоки). Но не все, что с колесами – машина, а с крыльями – самолет. И далеко не всегда то, что «выглядит» как автомат, «плавает» как автомат и «крякает» как автомат им является. Это ясно, если руководствоваться математическим определением конечного автомата (КА). Только соответствие этому позволяет  считать программирование автоматным. Подробнее же об АП рассказано в [1].

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

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

Читать далее

Идентификация объектов управления в Engee: пример идентификации модели поезда в АО “МТЗ ТРАНСМАШ им. А.А. Егоренкова”

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели5.6K

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

Читать далее

Использование оптимального фильтра Калмана для оценки параметров ЛА

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели6.3K

В данной статье будем реализовывать оптимальный фильтр Калмана с помощью среды моделирования Engee.

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

Читать далее

Ближайшие события

Моделирование футбольной зональной опеки: кинематика точки на службе у защитника

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели6.9K

Представьте: 80-я минута, счёт 1:1. Нападающий соперника получает мяч на фланге и уходит в рывок вдоль бровки. Защитник бежит рядом, чуть левее — между нападающим и центром поля. Где-то в центре полузащитник соперника уже прицеливается для прострела.

И в этот момент защитник должен принять решение — молниеносно, без калькулятора, без времени на раздумья: я контролирую ситуацию или мне нужна помощь партнёра?

Опытный защитник решает это интуитивно. Но что именно стоит за этой интуицией? Оказывается — вполне конкретная математика. Причём такая, которую проходят в школе.

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

Задача, которую мы разберём в этой статье, даёт конкретный ответ на конкретный вопрос: окажется ли нападающий в зоне контроля защитника в момент приёма паса — и когда защитнику нужно звать партнёра?

Для решения не понадобится ничего сверхъестественного: уравнения прямыхрасстояние между точкамитри геометрических условия. Весь необходимый аппарат вы уже проходили — просто, возможно, не думали, что он помогает принимать решения на футбольном поле.

В конце статьи мы реализуем модель в среде Engee на языке Julia — с визуализацией зоны контроля в начальный момент и через время t1​.

Читать далее

АСУ ТП для нефтепровода 20 лет спустя. Старые программы в новые контролеры

Уровень сложностиПростой
Время на прочтение30 мин
Охват и читатели9.4K

Перекличка эпох. Буквально недавно я опубликовал очередную cool-story о лихих математиках из лихих 90-х, как получил живое свидетельство алгоритмов управления прямиком из тех легендарных времен.

Заливаем алгоритмы, созданные 20 лет назад для АСУ ТП нефтепровода, в современные контроллеры .

По работе сейчас нужно сделать стенд-демонстратор. Задача – показать, как, используя среду математического моделирования, можно заливать одни и те же технологические алгоритмы АСУ ТП в контроллеры от разных производителей и на разных аппаратных платформах. Идея в том, чтобы спроектировать алгоритм в SimInTech один раз, а потом, при смене контроллера (привет санкциям и старушке Шапокляк фон дер Ляйен), уже ничего не нужно проектировать заново: ни этот же самый алгоритм, ни создавать его заново в другой среде разработки. Открываем SimInTech с готовым проектом – и пожалуйста:

«…нажми на кнопку – получишь результат,

И твоя мечта осуществится.

Что ж ты не рад?

Тебе больше не к чему стремиться!»

А вот если алгоритм в среде разработки Siemens, то тут уже фигушки, нужно его опять пересобирать в среде разработки от другого производителя. А нам её ещё нужно найти, что нетривиальная задача. Если все разработчики автоматики, за редким исключением, собирали свои алгоритмы в различных импортных Codesys, запрещённых нашими немецкими партнёрами из ЕС.

«…а ещё вчера все вокруг говорили: Siemens – друг, Siemens наш немецкий друг…»

На этом месте возник у меня вопрос: а что, собственно, взять в качестве примера для стенда-демонстратора? Первая мысль, конечно, обратиться к текущим проектам в которых нас привлекают как консультантов:

Читать далее

ОДК-СТАР: Engee замещает MATLAB/Simulink

Время на прочтение6 мин
Охват и читатели5.5K

Продолжаем цикл статей о движении двигателестроительных компаний по пути импортозамещения зарубежного ПО. Сегодня снова расскажем о применении среды математического моделирования Engee в процессах разработки систем управления газотурбинными двигателями.

Если мы говорим, что само по себе двигателестроение - это наукоёмкая отрасль, и работают в ней буквально десяток компаний в мире, то разработка электронных блоков управления этими двигателями - ещё более узкая отрасль промышленности. В России этим занимаются только пара-тройка компаний и одна из них - пермская ОДК-СТАР из контура Объединённой Двигателестроительной Корпорации. Проектирование систем управления двигателями - их непосредственная специализация, а номенклатура продукции включает системы автоматического управления не только авиационными двигателями, но также и ракетными, морскими двигателям и промышленными турбинами.

Читать далее

Фильтр Калмана: от простого к сложному

Время на прочтение16 мин
Охват и читатели14K

Фильтра Калмана много не бывает! По этой теме издано несколько книг, опубликовано большое количество статей, в том числе на Хабре. Разработанный в 1960-х годах алгоритм оценки состояния динамических систем по сегодняшний день считается одним из лучших, получает все более широкое применение в различных технических системах: от радиолокации до электрокардиографии.

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

Все модели, которые я буду использовать и описывать, выполнены на языке Matlab – среде, изначально созданной для работы с матрицами. Гарантированно они будут работать на версии R2016b и выше.

Читать далее

Траектория манёвра летательного аппарата: от школьной геометрии до реального полёта

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели12K

Представьте: летательный аппарат следует по заданному маршруту на постоянной высоте. Курс выдержан, скорость стабильна. Но впереди — следующая точка маршрута, и она в стороне от текущего направления. Нужно повернуть.

Казалось бы, что тут сложного? Повернул — и летишь дальше. Но у летательного аппарата фиксированного типа есть одно жёсткое ограничение: минимальный радиус разворота. Он не может крутануться на месте. Любой манёвр — это дуга с конкретным радиусом, продиктованным физикой: скоростью, аэродинамикой, конструкцией.

Отсюда возникает задача, которую система управления должна решить заранее: как именно проложить траекторию разворота? Где заканчивается прямолинейный полёт и начинается дуга? Где дуга переходит обратно в прямую, ведущую к цели? Какова длина этой дуги — чтобы автопилот знал, сколько лететь по ней?

Именно эту задачу мы и разберём. Для её решения не понадобится ничего сверхъестественного — только геометрия 9–11 класса: касательная к окружности, теорема Пифагора, подобие треугольников. Весь необходимый аппарат вы уже проходили — просто, возможно, не думали, что он управляет реальными летательными аппаратами.

И вот что интересно: задача достаточно простая, чтобы школьник старших классов не только разобрался в математике, но и самостоятельно построил модель в среде динамического моделирования. Именно это мы и сделаем в конце статьи — разберём реализацию в Engee, с которой вполне справится любой, кто знаком с основами программирования.

В статье мы пройдём путь от постановки задачи через математику — к реализации модели и выбору оптимальной траектории манёвра.

Читать далее

Синхронный реактивный двигатель — спящий гигант электропривода: моделирование и оптимальное управление

Уровень сложностиСложный
Время на прочтение18 мин
Охват и читатели5K

Среди всего многообразия электрических машин переменного тока синхронный реактивный электродвигатель (СРД, от английского Synchronous Reluctance Motor, SynRM) занимает особое место. С одной стороны, принцип его работы был известен ещё в XIX веке и казался инженерам того времени малоперспективным. С другой — именно этот тип машин за последние два десятилетия переживает настоящий ренессанс и активно вытесняет асинхронные двигатели в задачах промышленного привода.

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

Ключом к реализации потенциала SynRM стали два взаимосвязанных достижения: развитие силовой электроники, позволившей строить высококачественные частотные преобразователи, и разработка алгоритмов управления с оптимизацией по критерию максимального момента на ампер (MTPA — Maximum Torque Per Ampere). Без этих инструментов SynRM остаётся малоэффективным. Вместе с ними — становится конкурентоспособным решением для широкого круга промышленных задач.

В настоящей статье рассматривается математическая модель синхронного реактивного двигателя и её реализация в системе моделирования Engee. Особое внимание уделяется физике анизотропии магнитного сопротивления, математическому описанию реактивного момента и стратегии MTPA. Модель верифицирована на параметрах реальной машины мощностью 300 кВт с последующим анализом переходных процессов при разгоне и набросе нагрузки.

Читать далее

Моделирование многофазных электродвигателей: любое число фаз без изменения структуры модели

Уровень сложностиСложный
Время на прочтение27 мин
Охват и читатели11K

Многофазные электрические машины активно вытесняют трёхфазные в авиации, ветроэнергетике и электротранспорте — меньший ток на фазу, встроенная отказоустойчивость, сниженные пульсации момента. Но моделировать их негде: ни MATLAB, ни другие стандартные пакеты не предоставляют готовых блоков для машин с числом фаз больше трёх.

Мы решили эту задачу в Engee. Ключевой элемент — параметрическая модель на основе обобщённой трансформации Кларка, которая автоматически строит матрицы прямого и обратного преобразования для любого числа фаз. Задаёте n = 6 — получаете шестифазную машину. Меняете на n = 12 — двенадцатифазную. Схема не меняется.

В статье — полная реализация: математическая модель машины в осях d-q, скрипт построения матриц трансформации с проверкой взаимной обратности, система векторного управления с каскадными ПИ-регуляторами, результаты моделирования шестифазного СДПМ мощностью 800 кВт. Разбираем переходные процессы при разгоне и набросе нагрузки, анализируем форму токов и энергетический баланс. Весь код прилагается.

Читать далее
1
23 ...