Engee на старт!
4.15K subscribers
475 photos
74 videos
1 file
285 links
Engee - российская среда динамического моделирования и технических расчётов. Лучшая замена MATLAB/Simulink/Amesim.
Группа общения и поддержки пользователей: https://t.me/engee_julia_chat
Download Telegram
⚡️ Автоматизация проектирования цифровых фильтров в Engee

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

CIC-фильтр — это архитектура без умножений, идеальная для высокоскоростной децимации и интерполяции, а RRC-фильтр — основа современных систем связи, которая формирует импульсы, минимизируя межсимвольные искажения.

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


Нам была поставлена задача — автоматически получить оптимизированные аппаратные реализации этих фильтров, полностью исключив ручное написание RTL-кода.

👉 Особенности реализации

Разработаны модели двух фильтров:
🔹CIC-дециматор 5-го порядка с блоком управления валидными сигналами;
🔹RRC-фильтр с коэффициентом сглаживания 0.2 в двух структурных формах: прямой и транспонированной.

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

👉 Что сделано в Engee

1️⃣ Расчёт коэффициентов фильтров и автоматическая сборка моделей.
2️⃣ Для RRC-фильтра так же построили и сравнили две реализации, подтвердив преимущество транспонированной формы для ПЛИС.
3️⃣ Сгенерировали готовый Verilog-код для обеих моделей с помощью встроенных инструментов кодогенерации.

Такая автоматизация позволяет:
🌟Сократить время разработки с недель до часов.
🌟Минимизировать риск ошибок при переходе на «железо».
🌟Быстро исследовать архитектуры без ручного кодирования.
🌟Легко адаптировать фильтры под новые параметры.

🔗 Полные проекты с моделями и кодом доступны в каталоге примеров Engee.
1️⃣CIC
2️⃣RRC

Вы можете загрузить модели и адаптировать их под свои задачи. Успешных проектов!

🎓 Школа моделирования с 18.02
Please open Telegram to view this post
VIEW IN TELEGRAM
👍161310🔥1
⚡️ Моделирование сложных данных: модель Гауссовой смеси

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

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

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

Суть метода
Каждый компонент смеси — это обычный многомерный гауссиан со своими параметрами:
🔹 Вектор средних значений — центр кластера
🔹 Ковариационная матрица — отображается фигурой формы «колокола»
🔹 Вес компонента — его вклад в общую смесь

Что сделано в приложенном проекте
1️⃣ Создана двухкомпонентная смесь для двумерных данных:
Первый компонент: центр в точке (1, 2), вытянутая форма
Второй компонент: центр в точке (-3, -5), форма окружности
Оба компонента равновероятны

2️⃣ Построен объект модели в Engee с помощью MixtureModel из пакета Distributions:
using Distributions

mu = [[1.0, 2.0], [-3.0, -5.0]]
sigma = [[2.0 0.0; 0.0 0.5], [1.0 0.0; 0.0 1.0]]
p = [0.5, 0.5]
gm = MixtureModel([MvNormal(μ, Σ) for (μ, Σ) in zip(mu, sigma)], p)

3️⃣ Визуализирована функция плотности вероятности и кумулятивная функция распределения с помощью интерактивной библиотеки plotly.

Открыть проект и проверить модель на своих данных 🔗

Результаты моделирования
Что показывает модель:
✔️ Два чётких пика в точках центров компонентов
✔️ Разная форма кластеров: эллиптическая и сферическая
✔️ Плавный переход между компонентами
✔️ Полная вероятностная модель — можно считать вероятность для любой точки

🎓 Школа моделирования с 18.02
Please open Telegram to view this post
VIEW IN TELEGRAM
15🎉65🥰5👍3
Engee вне браузера: управление расчетами через внешний API

В декабрьском релизе в Engee появилась поддержка внешнего HTTP API с авторизацией через Personal Access Token. Это позволяет работать с Engee не только через веб-интерфейс, но и напрямую из ваших скриптов, сервисов и внутренних инструментов.

Проще говоря, Engee можно встроить в ваш инженерный контур как вычислительный сервис.

Что можно делать через внешний API

Через API вы можете:
🔹Запускать и останавливать сессии Engee программно
Без ручного входа в интерфейс — удобно для автоматизации и серверных сценариев.
🔹Выполнять команды языка моделирования удаленно
Например, запускать параметрические прогоны, тестовые сценарии или серии расчётов.
🔹Передавать файлы и забирать результаты
Загружать входные данные, выгружать результаты, архивировать проекты и расчетные пакеты.
🔹Интегрировать Engee в собственные системы
Встраивать расчёты в CI/CD, внутренние инструменты, веб-сервисы или скрипты автоматизации.

Для упрощения старта подготовлен пример на Python с пользовательским классом EngeeManager, который показывает типовые сценарии работы с API. Его можно использовать как заготовку и адаптировать под свои задачи.

Авторизация: под разные сценарии

Поддерживаются два режима доступа:
🟡Personal Access Token (PAT)
Подходит для скриптов, CI/CD, серверных сервисов и фоновых задач.
🟡OAuth 2.0
Для веб- и десктопных приложений, где требуется интерактивная авторизация пользователя.

Асинхронное выполнение для долгих расчётов

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

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

Практические сценарии

Вот несколько типовых применений, которые уже напрашиваются:
⭐️Регрессионное тестирование моделей
Автоматический прогон тестов после каждого коммита.
⭐️Сервисы на базе цифровых двойников
Загрузка данных → расчёт в Engee → возврат прогнозов или характеристик.
⭐️Облачная расчётная лаборатория
Интеграция с LMS или внутренними порталами для проверки и выполнения инженерных заданий.
⭐️Инженерные боты и планировщики
Автоматический запуск сессий, подготовка окружения, ночные прогоны и пакетные расчёты.

Внешний API превращает Engee из «среды в браузере» в полноценный вычислительный компонент, который можно встроить в инженерную инфраструктуру и процессы автоматизации.

Документация по API доступна тут, примеры — в Сообществе Engee. Если вы уже используете API — будет полезно поделиться сценариями и практиками.

🎓 Школа моделирования с 18.02
Please open Telegram to view this post
VIEW IN TELEGRAM
177👍7🎉3
Друзья,

Пятница — самое время сохранить себе что-нибудь полезное на выходные 😊
Нашего Директора по технологиями, Дениса Жегалина
, пригласили в подкаст «Багрепорт» поговорить про системное моделирование без маркетинговых слайдов и общих слов.

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

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

Ссылка на выпуск: https://t.me/RedBarn_ru/9652
🎧 Слушать на Яндекс Музыке

Видеоверсии:

📹 ВК видео
📹 YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍6👏5🔥3
📊 Про графики для отчётов по ГОСТу и нормоконтроля в Engee

Почти в каждом проекте рано или поздно возникает одна и та же история: расчёты есть, результаты есть, а дальше начинается «доведение до вида» для отчёта. Шрифты, сетка, подписи, легенды — и внезапно на один график уходит больше времени, чем на сам расчет.

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

В посте показано:
🔹Как задавать оформление прямо при построении графика. Быстро, но раздувает код.
🔹Как вынести оформление в тему и применять ее ко всем графикам проекта. Остаются вопросы предвычисления таких свойств, как пределы осей.
🔹Как сделать собственный тип графика, настроенный специально под отчёты и протоколы испытаний. Полная автоматизация настроек графиков.

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

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

👉 Пост и типовой проект — здесь

Если у вас есть свои «больные места» с графиками (АЧХ, осциллограммы, серые шкалы под печать, шрифты) — напишите, разберём отдельными примерами.

🎓 Школа моделирования с 18.02
🧑‍💻 Расписание тренингов
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍11721
🧠 Что скрывает запись мозга? Практический разбор обработки ЭЭГ-сигналов

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


В Сообществе Engee есть готовый проект, который шаг за шагом показывает этот процесс на реальных данных. Проект реализован на специализированной библиотеке EngeeDSP и использует формат EDF - отраслевой стандарт для обмена медицинскими данным.

Проект — это полный инженерный пайплайн:
🔹импорт и визуализация многоканальной ЭЭГ из EDF
🔹первичный спектральный анализ для диагностики артефактов и сетевой помехи
🔹режекторная фильтрация 60 Гц средствами EngeeDSP
🔹полосовая фильтрация для выделения δ / θ / α / β-диапазонов
🔹БПФ для анализа спектра и контроля качества фильтрации
🔹частотно-временной анализ для работы с нестационарными фрагментами
🔹корреляционный анализ между каналами для оценки связности

С точки зрения платформы здесь важно не только «что считается», но и как это реализовано в Engee:

✔️вся цепочка обработки описана через функции библиотеки EngeeDSP
✔️параметры фильтров и преобразований зафиксированы и воспроизводимы
✔️пайплайн легко масштабируется на другие записи и каналы
✔️тот же шаблон применим к ЭКГ, ЭМГ, вибрации, акустике и другим временным рядам

По сути, это референс-проект, который показывает, как использовать Engee как основу для стандартных процессов ЦОС в лаборатории, НИОКР или прикладных задачах.

👉 Статья в Сообществе

Обработка ЭЭГ – лишь частный случай. Биомедицинская инженерия работает с широким спектром сигналов (ЭКГ, ЭМГ, биорадиолокация и др.) и задач – от фильтрации до классификации с помощью ИИ. Исследуйте возможности EngeeDSP и других библиотек Engee для решения своих уникальных задач. Удачи в исследованиях и хороших выходных!

🎓 Школа моделирования с 18.02
🧑‍💻 Расписание бесплатных тренингов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥66🎉32
Релиз 26.01 – новое в январе ❄️☃️🌨️

Когда за окном мороз и метель, самое время греться хорошими новостями. В онлайн-версии Engee вышел новый релиз — с обновлениями, которые должны упростить работу, убрать пару шероховатостей и добавить новых возможностей для технических расчетов и динамического моделирования.
Ниже — список ключевых изменений, которые вошли в этот релиз.

Самое важное:
🌟Пакеты поддержки Arduino и STM32;
🌟Интеграция с ЛОГОС и Euler;
🌟Частоты дискретизации 2.0;
🌟Упрощение работы с simout;
🌟Блоки для поддержки ARINC-429;

А еще:
✔️Новые блоки и функции в библиотеках Базовая, Спутниковые системы, РЧ, Навигация, Смешанный сигнал, Электричество, Гидравлика, ЦОС, Аэрокосмические системы и Оборудование;
✔️Расширение функциональности Редактора данных моделей ;
✔️Поддержка передачи параметров в StartCode блока C Function;
✔️Поддержка внешних артефактов в блоках C Function;
✔️Новые статьи в Документации и новые Примеры;

Подробности — в разделе
Что нового 26.01.

Важно! Школа системного моделирования будет проходить уже на этом релизе Engee. Поэтому имеет смысл посмотреть релиз-ноты, разобраться с обновлениями и заранее освоить новые возможности — именно в таком виде они будут использоваться в учебных материалах и заданиях.

🤩 Регистрация в Школу всё ещё открыта, можно присоединиться.

👤 Также подтвержден очный базовый тренинг в феврале. Группа набирается, свободные места пока есть — если планировали участвовать, лучше регистрироваться заранее.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🎉854🫡2🆒1
Друзья,

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

Уважаемые коллеги из Научного инжинирингового центра Андрея Чепиги используют Engee как основную среду для проектирования приводов и систем управления и выложили ряд своих проектов в Сообщество Engee, сделав их доступными для всех участников и удобными для совместного обсуждения и развития.

Сегодня хотим поделиться с Вами их проектами в области приводов, электромеханики и силовой электроники. Среди них:
🔹модель синхронного генератора с постоянными магнитами;
🔹модель синхронного реактивного электродвигателя;
🔹многофазные электродвигатели: теория и моделирование;
🔹модель трёхуровневого преобразователя 3L-NPC.

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

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

Хорошего вам просмотра и солнечных выходных! ☀️

🎓 Школа моделирования с 18.02
🧑‍💻 Расписание бесплатных тренингов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥138👍41
Media is too big
VIEW IN TELEGRAM
Engee + Git = единый процесс разработки

🔥 Друзья, до старта Школы системного моделирования остаётся совсем немного времени — уже на следующей неделе начинаем занятия.

Сейчас мы активно готовим материалы для школы, и в процессе записали отдельное видео про работу с Git в Engee. Поняли, что тема важная и полезная не только для участников ШСМ, поэтому решили поделиться ею со всем сообществом.

В видео разбираем основы использования Git прямо в Engee:
✔️ как вести разработку моделей и расчётов аккуратно и прозрачно;
✔️ как фиксировать изменения и понимать, что и зачем было сделано;
✔️ как спокойно экспериментировать, не боясь «сломать» рабочую версию;
✔️ как уйти от папок вида model_final_v3_really_final.

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


Смотрите приложенное видео, разбирайтесь, пробуйте у себя в проектах.
🔗 Запасная ссылка

И да, если вы планировали присоединиться к Школе системного моделирования — самое время. Обучение стартует совсем скоро, регистрация ещё открыта.

Будет интересно
!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍10🤩4🤗1
This media is not supported in your browser
VIEW IN TELEGRAM
🌌 Моделирование гравитации и космической динамики в Engee

Гравитация — это не просто цифра в учебнике, а сила, которая определяет движение всего во Вселенной. Как поведёт себя один и тот же объект на разных планетах? Что произойдет с Солнечной системой, если изменить массу Солнца? Engee позволяет наглядно исследовать эти вопросы.


Мы создали два демо-проекта, которые показывают гравитацию в действии:

1️⃣В первом одинаковые частицы движутся под действием разного ускорения свободного падения: от 1.62 м/с² на Луне до 24.79 м/с² на Юпитере.

2️⃣Во втором проекте планеты взаимодействуют по закону Ньютона, а изменение массы Солнца влияет не только на орбиты, но и на температуру планет.

Ключевой момент — оба проекта используют точные физические законы и численные методы интегрирования, что гарантирует достоверность расчётов.

👉 Что сделано в Engee

1️⃣Реализовали численное интегрирование движения частиц с разными гравитационными постоянными.
2️⃣Построили систему взаимодействующих тел с расчётом взаимных гравитационных сил.
3️⃣Добавили термодинамический модуль, связывающий массу Солнца, его светимость и температуру планет.
4️⃣Создали анимации, наглядно показывающие разницу в динамике движения тел и изменение условий в системе.

🔗 Полные проекты с кодом и анимациями доступны в Сообществе:
🔹Моделирование движения частиц
🔹Моделирование Солнечной системы

Результаты моделирования:
✔️Частицы на Юпитере стремительно падают и энергично отскакивают, а на Луне — медленно парят.
✔️Увеличение массы Солнца всего в 10 раз приводит к разогреву Земли до +1600°C.
✔️Орбиты планет меняются при изменении параметров системы.
✔️Визуализация делает сложные физические законы интуитивно понятными.

Практическая польза:
🟡Наглядное изучение законов гравитации и небесной механики.
🟡Проверка гипотез о влиянии параметров звёзд на планетарные системы.
🟡Использование подобных скриптов в образовательных курсах по физике и астрономии.
🟡Эти проекты могут стать основой для более сложных астрофизических симуляций.

Вы можете загрузить проекты и изменить параметры — например, попробовать добавить новую планету или изменить гравитационную постоянную.

🎓 Школа моделирования с 18.02
🧑‍💻 Расписание бесплатных тренингов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍10332
Media is too big
VIEW IN TELEGRAM
🟦 Интерактивное приложение-осциллограф:
Фигуры Лиссажу

Как инженеру проверить соотношение частот двух сигналов, если под рукой нет осциллографа? В 1855 году Жюль-Антуан Лиссажу для этого собирал сложные оптические установки с камертонами и зеркалами. Сегодня достаточно открыть браузер.


Мы создали интерактивное приложение на фреймворке Genie, которое превращает ваш браузер в цифровой осциллограф. Два генератора, фазовращатель и параметрический дисплей — всё в одном окне без единого провода.

Что сделано в Engee:

1️⃣Реализована параметрическая модель сигналов:
x = sin(a·t + φ), y = sin(b·t), где a и b — частоты, φ — фазовый сдвиг.
2️⃣Построен реактивный интерфейс на Genie: три слайдера управляют частотами и фазой.
3️⃣Созданы интерактивные оси с автоматическим построением разных типов фигур, например: прямая, окружность, эллипс или сложная кривая.

Результаты моделирования:

При a = b, φ = 0 получается прямая линия под 45° — сигналы синфазны.
При a = b, φ = π/2 получается идеальная окружность — сдвиг ровно четверть периода.
При a = 1, b = 2, φ = 0 фигура превращается в "знак бесконечности" — частота b вдвое выше a.
При a = 2, b = 3, φ = π/2 возникает трёхлепестковая кривая — классический узор Лиссажу.
Обновление графика при движении слайдеров почти мгновенно, что создает эффект работы с реальным органом управления осциллографа.

Практическая польза:

🔹 Замена дорогостоящему лабораторному оборудованию. Изучайте работу осциллографа удалённо и бесплатно.
🔹 Наглядное пособие для курсов по радиофизике, электротехнике и теории волн.
🔹 Инструмент для проверки гипотез: как изменится фигура, если частоты относятся как 3:4? Достаточно подвинуть слайдеры.
🔹 Основа для более сложных симуляций. Можно добавить амплитуды, шумы или нелинейности, дополнив скрипт на Julia.

Вы можете запустить приложение и поэкспериментировать с параметрами. Попробуйте подобрать соотношение a:b = 5:4 — получится фигура, похожая на бант. Или выставьте φ = π и наблюдайте, как окружность превращается в линию с обратным наклоном.

📎 Исследуйте приложение в Сообществе Engee

🎓 Школа моделирования с 18.02
🧑‍💻 Расписание бесплатных тренингов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥554
🦾 В преддверии 23 февраля, для инженеров с железным характером мы подготовили сегодня по-настоящему «железный» пример.

Как проверить алгоритм управления на реальном микроконтроллере, если сам двигатель существует только в виде математической модели? Ответ — полунатурное моделирование (HIL).


Контекст задачи
Разработана система автоматического регулирования тока для двигателя постоянного тока. Наша цель — перенести ПИ-регулятор на реальный микроконтроллер STM32F446 и, применяя технологию HIL, добиться идентичности результатов при имитационном и полунатурном моделированиях.

Что сделали в Engee
Имитационное моделирование: Сначала настроили регулятор на модульный оптимум исключительно в программной среде, получив ожидаемые графики переходного процесса с заданным сигналом амплитудой 0,5 В и периодом 2 с.
Генерация кода: Из подсистемы ПИ-регулятора в Engee мы автоматически сгенерировали С-код.
Работа с железом: Полученный код собрали и загрузили в микроконтроллер через VS Code с использованием PlatformIO.
Сборка цепи: Связали аналоговые входы и выходы терминала КПМ РИТМ (модуль GP-LC-45) с выводами STM32F446. При этом ШИМ-выход микроконтроллера подключили к ЦАП через каскадный RC-фильтр нижних частот с частотой среза 7 кГц.
HIL-симуляция: Физическая модель контура тока рассчитывалась в реальном времени на КПМ РИТМ, получая управляющие сигналы напрямую от аппаратного микроконтроллера.

Результаты симуляции
В то время как "чистое" имитационное моделирование показывало идеальную отработку, HIL позволило выявить иную картину. График тока показал увеличенное перерегулирование, а установившееся значение оказалось меньше заданного.

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

♦️С наступающим 23 февраля, друзья!

Пусть инженерный характер остается железным, решения точными, а воля — стальной даже в самых сложных задачах.


🎓 Школа моделирования уже стартовала!
🧑‍💻 Расписание бесплатных тренингов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍94🕊3🎉22🆒1
🔧 Тестирование кода в Engee без ручной рутины

Тестирование ПО-в-контуре (SIL) – важный элемент рабочего процесса кодогенерации. Ведь нам необходимо проверить, что модель и код считаются одинаково.

Обычный процесс SIL-тестирования выглядит так: включили настройку создания проверочной Си-функции, сгенерировали код, запустили скрипт, вставили Си-функцию, запустили симуляцию, сравнили результаты. Это занимает время. А если моделей много, то легко запутаться что с чем сравнивать, что уже сделано, а что еще надо проверить. Надо как-то избавится от этой головной боли. В идеале хочется нажать кнопку и пойти пить кофе, а тестирование выполнится само собой.

Что будем использовать
Слышим тестирование - применяем библиотеку Test.jl.
А что тестируем? Надо проверить сразу несколько вещей:
1️⃣Код вообще генерируется?
2️⃣Создается ли проверочная Си-функция?
3️⃣Эквивалентность работы модели и кода
Чтобы не рушить тестовую обвязку модели будем делать ее копию. И это тоже предмет тестирования. Для работы с моделями будем использовать программное управление моделями.

Как это работает?
Используя Test.jl, создадим наборы тестов, которые будут выполнять наше тестирование поэтапно:
@testset verbose = true "SIL" begin
@testset "Code Generation" begin
@test SILAutom
ation.buildCUT(CUT)==true
@test isfile(CUT*"_verification.engee")
end

SILAutomation.buildCUT(CUT)
SILAutom
ation.buildSILHarness(SIL_Harness,CUT, MIL_Harness)

@testset "SIL Equality" begin
(MR,SR) = SILAutom
ation.runSims(MIL_Harness,SIL_Harness)
(sync,equal) = SILAutom
ation.compare_signals(MR["filtered"],SR["C Function.1"])
@test sync==true
@test equal==true
end
end

А все манипуляции с моделями спрячем в отдельный модуль SILAutomation.

⚠️ ВАЖНО - Как правильно сравнить сигналы

Нельзя просто сравнить два сигнала численно и сказать, что они равны. Надо проверить, что они синхронизированы по времени, а значения не различаются больше чем на ошибку. Написали такую функцию:
function compare_signals(sig_one,sig_two)
Ds = collect(sig_one);
Rs = collect(sig_two);
Cmp = isapprox.(Ds, Rs)
issynched = all(Cmp.time)
issimilar = all(Cmp.value)
return (issynched, issimilar)
end


Что мы получили в итоге
В результате сделали утилиту, которая
запускает и проверяет генерацию кода
Собирает обвязку SIL
Запускает симуляции тестов и корректно сравнивает результаты
Теперь можно спокойно запускать тесты и идти пить кофе, а Engee все сделает за вас!

📎 Скачать себе все файлы утилиты можно тут

🎓 Школа моделирования уже стартовала!
🧑‍💻 Расписание бесплатных тренингов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍7🥰4👏21
🚀 EngeeDSP: анализируем нестационарные сигналы: от динамического спектра к спектрограмме

Когда спектр сигнала меняется во времени (например, в ЛЧМ-сигналах), классическое БПФ за весь интервал наблюдения даёт лишь усреднённую картину и не позволяет увидеть эволюцию частотного состава. Решение — использовать STFT (Short-Time Fourier Transform).


В новом проекте сообщества подробно разобрана реализация STFT в Engee с помощью блоков библиотеки EngeeDSP и инструментов интерактивной визуализации.

Структура модели и ключевые параметры:

1️⃣Генерация комплексного ЛЧМ-сигнала: подсистема Complex_LFM формирует сигнал с линейно возрастающей частотой.
2️⃣Фильтрация: спроектированный в интерактивном «Редакторе цифровых фильтров» ФНЧ ограничивает полосу сигнала.
3️⃣Подготовка кадров: блок Buffer накапливает отсчёты в векторы длиной 1024 элемента.
4️⃣Оконная обработка: к каждому вектору применяется окно Хэмминга для подавления боковых лепестков.
5️⃣БПФ и постобработка:
• Вычисляется БПФ (блок FFT) длиной 1024,
• Выделяется первая половина спектра (положительные частоты),
• Вычисляется модуль комплексного вектора в dBm и кадр записывается в переменную.

Два подхода к визуализации:

➡️ В динамике во время симуляции:
модель настроена так, что 1 секунда расчёта соответствует 1 секунде реального времени. Это позволяет, открыв окно «Визуализация сигналов», наблюдать в реальном времени:
🔹Осциллограммы комплексного сигнала (I/Q компоненты).
🔹Промежуточные «кадры» спектра на выходе пользовательской цепи обработки (тип отображения «Кадр во временной области»).
🔹Изменение спектра ЛЧМ-сигнала до и после фильтра с помощью встроенного анализатора спектра (отображение «Сигналы в частотной области»).


➡️ Программное построение спектрограммы:
после симуляции все накопленные кадры спектра собираются скриптом в матрицу размером [512 x N], где N — число кадров. Далее строится трёхмерная поверхность (частотно-временная спектрограмма) с помощью функции surface.


Что это даёт?

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

🔗 Описание, скрипт и саму модель для воспроизведения можно найти здесь: EngeeDSP: спектрограмма комплексного сигнала

🎓 Школа моделирования уже стартовала!
🧑‍💻 Расписание бесплатных тренингов
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍8🔥74😁2