В цифровой обработке сигналов критически важно быстро и без ошибок перейти от математического алгоритма к готовой реализации на ПЛИС. Engee позволяет автоматизировать процесс создания двух ключевых для систем связи фильтров: CIC-дециматора и формирующего фильтра Найквиста (RRC).
CIC-фильтр — это архитектура без умножений, идеальная для высокоскоростной децимации и интерполяции, а RRC-фильтр — основа современных систем связи, которая формирует импульсы, минимизируя межсимвольные искажения.
Такие фильтры применяются в системах связи, радиолокации и измерительной технике, где критичны быстродействие, точность и экономия аппаратных ресурсов.
Нам была поставлена задача — автоматически получить оптимизированные аппаратные реализации этих фильтров, полностью исключив ручное написание RTL-кода.
Разработаны модели двух фильтров:
Ключевой момент — вся цепочка от математических параметров до схемы строится через командное управление Engee, что исключает ошибки ручного кодирования.
Такая автоматизация позволяет:
Вы можете загрузить модели и адаптировать их под свои задачи. Успешных проектов!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16 13❤10🔥1
В анализе данных часто встречаются распределения с несколькими пиковыми значениями — например, распределение времени отклика веб-сервера или потребление энергии устройством в разных режимах работы. Обычное нормальное распределение с такой задачей не справится.
Модель Гауссовой смеси — это гибкая вероятностная модель, которая аппроксимирует сложное, многомодальное распределение как взвешенную сумму нескольких простых нормальных распределений.
Такие модели применяются в кластеризации, распознавании образов, обработке сигналов и финансовом моделировании, где данные естественно группируются вокруг нескольких отдельных центроидов.
Каждый компонент смеси — это обычный многомерный гауссиан со своими параметрами:
Первый компонент: центр в точке (1, 2), вытянутая форма
Второй компонент: центр в точке (-3, -5), форма окружности
Оба компонента равновероятны
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)Открыть проект и проверить модель на своих данных
Что показывает модель:
Please open Telegram to view this post
VIEW IN TELEGRAM
Engee вне браузера: управление расчетами через внешний API
В декабрьском релизе в Engee появилась поддержка внешнего HTTP API с авторизацией через Personal Access Token. Это позволяет работать с Engee не только через веб-интерфейс, но и напрямую из ваших скриптов, сервисов и внутренних инструментов.
Проще говоря, Engee можно встроить в ваш инженерный контур как вычислительный сервис.
Что можно делать через внешний API
Через API вы можете:
🔹 Запускать и останавливать сессии Engee программно
Без ручного входа в интерфейс — удобно для автоматизации и серверных сценариев.
🔹 Выполнять команды языка моделирования удаленно
Например, запускать параметрические прогоны, тестовые сценарии или серии расчётов.
🔹 Передавать файлы и забирать результаты
Загружать входные данные, выгружать результаты, архивировать проекты и расчетные пакеты.
🔹 Интегрировать Engee в собственные системы
Встраивать расчёты в CI/CD, внутренние инструменты, веб-сервисы или скрипты автоматизации.
Для упрощения старта подготовлен пример на Python с пользовательским классом
Авторизация: под разные сценарии
Поддерживаются два режима доступа:
🟡 Personal Access Token (PAT)
Подходит для скриптов, CI/CD, серверных сервисов и фоновых задач.
🟡 OAuth 2.0
Для веб- и десктопных приложений, где требуется интерактивная авторизация пользователя.
Асинхронное выполнение для долгих расчётов
Для задач, которые не укладываются в стандартный таймаут HTTP-запроса, доступен асинхронный режим:
🔻 отправляете задание и получаете ID задачи;
🔻 периодически проверяете статус;
🔻 забираете результат после завершения.
Это удобно для многовариантных расчетов, оптимизации, серий имитационных прогонов и других тяжелых сценариев.
Практические сценарии
Вот несколько типовых применений, которые уже напрашиваются:
⭐️ Регрессионное тестирование моделей
Автоматический прогон тестов после каждого коммита.
⭐️ Сервисы на базе цифровых двойников
Загрузка данных → расчёт в Engee → возврат прогнозов или характеристик.
⭐️ Облачная расчётная лаборатория
Интеграция с LMS или внутренними порталами для проверки и выполнения инженерных заданий.
⭐️ Инженерные боты и планировщики
Автоматический запуск сессий, подготовка окружения, ночные прогоны и пакетные расчёты.
Внешний API превращает Engee из «среды в браузере» в полноценный вычислительный компонент, который можно встроить в инженерную инфраструктуру и процессы автоматизации.
Документация по API доступна тут, примеры — в Сообществе Engee. Если вы уже используете API — будет полезно поделиться сценариями и практиками.
🎓 Школа моделирования с 18.02
В декабрьском релизе в Engee появилась поддержка внешнего HTTP API с авторизацией через Personal Access Token. Это позволяет работать с Engee не только через веб-интерфейс, но и напрямую из ваших скриптов, сервисов и внутренних инструментов.
Проще говоря, Engee можно встроить в ваш инженерный контур как вычислительный сервис.
Что можно делать через внешний API
Через API вы можете:
Без ручного входа в интерфейс — удобно для автоматизации и серверных сценариев.
Например, запускать параметрические прогоны, тестовые сценарии или серии расчётов.
Загружать входные данные, выгружать результаты, архивировать проекты и расчетные пакеты.
Встраивать расчёты в CI/CD, внутренние инструменты, веб-сервисы или скрипты автоматизации.
Для упрощения старта подготовлен пример на Python с пользовательским классом
EngeeManager, который показывает типовые сценарии работы с API. Его можно использовать как заготовку и адаптировать под свои задачи.Авторизация: под разные сценарии
Поддерживаются два режима доступа:
Подходит для скриптов, CI/CD, серверных сервисов и фоновых задач.
Для веб- и десктопных приложений, где требуется интерактивная авторизация пользователя.
Асинхронное выполнение для долгих расчётов
Для задач, которые не укладываются в стандартный таймаут HTTP-запроса, доступен асинхронный режим:
Это удобно для многовариантных расчетов, оптимизации, серий имитационных прогонов и других тяжелых сценариев.
Практические сценарии
Вот несколько типовых применений, которые уже напрашиваются:
Автоматический прогон тестов после каждого коммита.
Загрузка данных → расчёт в Engee → возврат прогнозов или характеристик.
Интеграция с LMS или внутренними порталами для проверки и выполнения инженерных заданий.
Автоматический запуск сессий, подготовка окружения, ночные прогоны и пакетные расчёты.
Внешний API превращает Engee из «среды в браузере» в полноценный вычислительный компонент, который можно встроить в инженерную инфраструктуру и процессы автоматизации.
Документация по API доступна тут, примеры — в Сообществе Engee. Если вы уже используете API — будет полезно поделиться сценариями и практиками.
Please open Telegram to view this post
VIEW IN TELEGRAM
Друзья,
Пятница — самое время сохранить себе что-нибудь полезное на выходные 😊
Нашего Директора по технологиями, Дениса Жегалина, пригласили в подкаст «Багрепорт» поговорить про системное моделирование без маркетинговых слайдов и общих слов.
Обсудили, зачем сначала строят модель, а не сразу идут в железо, где моделирование реально экономит время и деньги, и в каких случаях без натурных испытаний всё равно никуда.
Хороший формат, чтобы спокойно послушать на выходных и разложить по полочкам, где моделирование действительно работает, а где от него ждать чудес не стоит.
Ссылка на выпуск: https://t.me/RedBarn_ru/9652
🎧 Слушать на Яндекс Музыке
Видеоверсии:
📹 ВК видео
📹 YouTube
Пятница — самое время сохранить себе что-нибудь полезное на выходные 😊
Нашего Директора по технологиями, Дениса Жегалина, пригласили в подкаст «Багрепорт» поговорить про системное моделирование без маркетинговых слайдов и общих слов.
Обсудили, зачем сначала строят модель, а не сразу идут в железо, где моделирование реально экономит время и деньги, и в каких случаях без натурных испытаний всё равно никуда.
Хороший формат, чтобы спокойно послушать на выходных и разложить по полочкам, где моделирование действительно работает, а где от него ждать чудес не стоит.
Ссылка на выпуск: https://t.me/RedBarn_ru/9652
🎧 Слушать на Яндекс Музыке
Видеоверсии:
Please open Telegram to view this post
VIEW IN TELEGRAM
Почти в каждом проекте рано или поздно возникает одна и та же история: расчёты есть, результаты есть, а дальше начинается «доведение до вида» для отчёта. Шрифты, сетка, подписи, легенды — и внезапно на один график уходит больше времени, чем на сам расчет.
Мы выложили в Сообществе разбор, как в Engee навести порядок с оформлением графиков и сделать это не вручную, а системно.
В посте показано:
Отдельно сделали типовой проект, в котором уже настроены шрифты, сетка, палитры и структура — его можно взять за основу и подстроить под свои требования и стандарты.
Идея простая: требования к оформлению описываются один раз, дальше вы просто строите графики и не возвращаетесь к ручной правке каждый раз.
Если у вас есть свои «больные места» с графиками (АЧХ, осциллограммы, серые шкалы под печать, шрифты) — напишите, разберём отдельными примерами.
Please open Telegram to view this post
VIEW IN TELEGRAM
🧠 Что скрывает запись мозга? Практический разбор обработки ЭЭГ-сигналов
В Сообществе Engee есть готовый проект, который шаг за шагом показывает этот процесс на реальных данных. Проект реализован на специализированной библиотеке EngeeDSP и использует формат EDF - отраслевой стандарт для обмена медицинскими данным.
Проект — это полный инженерный пайплайн:
🔹 импорт и визуализация многоканальной ЭЭГ из EDF
🔹 первичный спектральный анализ для диагностики артефактов и сетевой помехи
🔹 режекторная фильтрация 60 Гц средствами EngeeDSP
🔹 полосовая фильтрация для выделения δ / θ / α / β-диапазонов
🔹 БПФ для анализа спектра и контроля качества фильтрации
🔹 частотно-временной анализ для работы с нестационарными фрагментами
🔹 корреляционный анализ между каналами для оценки связности
С точки зрения платформы здесь важно не только «что считается», но и как это реализовано в Engee:
✔️ вся цепочка обработки описана через функции библиотеки EngeeDSP
✔️ параметры фильтров и преобразований зафиксированы и воспроизводимы
✔️ пайплайн легко масштабируется на другие записи и каналы
✔️ тот же шаблон применим к ЭКГ, ЭМГ, вибрации, акустике и другим временным рядам
По сути, это референс-проект, который показывает, как использовать Engee как основу для стандартных процессов ЦОС в лаборатории, НИОКР или прикладных задачах.
👉 Статья в Сообществе
Обработка ЭЭГ – лишь частный случай. Биомедицинская инженерия работает с широким спектром сигналов (ЭКГ, ЭМГ, биорадиолокация и др.) и задач – от фильтрации до классификации с помощью ИИ. Исследуйте возможности EngeeDSP и других библиотек Engee для решения своих уникальных задач. Удачи в исследованиях и хороших выходных!
🎓 Школа моделирования с 18.02
🧑💻 Расписание бесплатных тренингов
Расшифровка сигналов головного мозга – ключ к диагностике, нейроинтерфейсам фундаментальным исследованиям. Электроэнцефалография (ЭЭГ) регистрирует эту активность, однако полезный биосигнал требует предварительной обработки для выделения из фоновых артефактов. Для его анализа применяются методы цифровой обработки.
В Сообществе Engee есть готовый проект, который шаг за шагом показывает этот процесс на реальных данных. Проект реализован на специализированной библиотеке EngeeDSP и использует формат EDF - отраслевой стандарт для обмена медицинскими данным.
Проект — это полный инженерный пайплайн:
С точки зрения платформы здесь важно не только «что считается», но и как это реализовано в Engee:
По сути, это референс-проект, который показывает, как использовать Engee как основу для стандартных процессов ЦОС в лаборатории, НИОКР или прикладных задачах.
👉 Статья в Сообществе
Обработка ЭЭГ – лишь частный случай. Биомедицинская инженерия работает с широким спектром сигналов (ЭКГ, ЭМГ, биорадиолокация и др.) и задач – от фильтрации до классификации с помощью ИИ. Исследуйте возможности EngeeDSP и других библиотек Engee для решения своих уникальных задач. Удачи в исследованиях и хороших выходных!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥6 6🎉3 2
Релиз 26.01 – новое в январе ❄️☃️ 🌨️
Когда за окном мороз и метель, самое время греться хорошими новостями. В онлайн-версии Engee вышел новый релиз — с обновлениями, которые должны упростить работу, убрать пару шероховатостей и добавить новых возможностей для технических расчетов и динамического моделирования.
Ниже — список ключевых изменений, которые вошли в этот релиз.
Самое важное:
🌟 Пакеты поддержки Arduino и STM32;
🌟 Интеграция с ЛОГОС и Euler;
🌟 Частоты дискретизации 2.0;
🌟 Упрощение работы с simout;
🌟 Блоки для поддержки ARINC-429;
А еще:
✔️ Новые блоки и функции в библиотеках Базовая, Спутниковые системы, РЧ, Навигация, Смешанный сигнал, Электричество, Гидравлика, ЦОС, Аэрокосмические системы и Оборудование;
✔️ Расширение функциональности Редактора данных моделей ;
✔️ Поддержка передачи параметров в StartCode блока C Function;
✔️ Поддержка внешних артефактов в блоках C Function;
✔️ Новые статьи в Документации и новые Примеры;
Подробности — в разделе
Что нового 26.01.
Важно! Школа системного моделирования будет проходить уже на этом релизе Engee. Поэтому имеет смысл посмотреть релиз-ноты, разобраться с обновлениями и заранее освоить новые возможности — именно в таком виде они будут использоваться в учебных материалах и заданиях.
🤩 Регистрация в Школу всё ещё открыта, можно присоединиться.
👤 Также подтвержден очный базовый тренинг в феврале. Группа набирается, свободные места пока есть — если планировали участвовать, лучше регистрироваться заранее.
Когда за окном мороз и метель, самое время греться хорошими новостями. В онлайн-версии Engee вышел новый релиз — с обновлениями, которые должны упростить работу, убрать пару шероховатостей и добавить новых возможностей для технических расчетов и динамического моделирования.
Ниже — список ключевых изменений, которые вошли в этот релиз.
Самое важное:
А еще:
Подробности — в разделе
Что нового 26.01.
Важно! Школа системного моделирования будет проходить уже на этом релизе Engee. Поэтому имеет смысл посмотреть релиз-ноты, разобраться с обновлениями и заранее освоить новые возможности — именно в таком виде они будут использоваться в учебных материалах и заданиях.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🎉8 5❤4🫡2🆒1
Друзья,
Иногда лучше всего о платформе говорят не анонсы и релизы, а то, как её используют инженеры в своей повседневной творческой работе.
Уважаемые коллеги из Научного инжинирингового центра Андрея Чепиги используют Engee как основную среду для проектирования приводов и систем управления и выложили ряд своих проектов в Сообщество Engee, сделав их доступными для всех участников и удобными для совместного обсуждения и развития.
Сегодня хотим поделиться с Вами их проектами в области приводов, электромеханики и силовой электроники. Среди них:
🔹 модель синхронного генератора с постоянными магнитами;
🔹 модель синхронного реактивного электродвигателя;
🔹 многофазные электродвигатели: теория и моделирование;
🔹 модель трёхуровневого преобразователя 3L-NPC.
Каждый проект включает не только сами модели, но и подробное видео с разбором теории и практики, что особенно удобно для изучения и обсуждения решений.
Эти проекты хорошо показывают, как Engee становится общим языком для инженеров: модели читаемы, воспроизводимы и понятны коллегам с разной ролью — от расчетчиков и разработчиков алгоритмов до специалистов по системам управления. Такой формат упрощает совместную работу, передачу знаний и развитие инженерных решений.
Хорошего вам просмотра и солнечных выходных!☀️
🎓 Школа моделирования с 18.02
🧑💻 Расписание бесплатных тренингов
Иногда лучше всего о платформе говорят не анонсы и релизы, а то, как её используют инженеры в своей повседневной творческой работе.
Уважаемые коллеги из Научного инжинирингового центра Андрея Чепиги используют Engee как основную среду для проектирования приводов и систем управления и выложили ряд своих проектов в Сообщество Engee, сделав их доступными для всех участников и удобными для совместного обсуждения и развития.
Сегодня хотим поделиться с Вами их проектами в области приводов, электромеханики и силовой электроники. Среди них:
Каждый проект включает не только сами модели, но и подробное видео с разбором теории и практики, что особенно удобно для изучения и обсуждения решений.
Эти проекты хорошо показывают, как Engee становится общим языком для инженеров: модели читаемы, воспроизводимы и понятны коллегам с разной ролью — от расчетчиков и разработчиков алгоритмов до специалистов по системам управления. Такой формат упрощает совместную работу, передачу знаний и развитие инженерных решений.
Хорошего вам просмотра и солнечных выходных!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤8👍4 1
Media is too big
VIEW IN TELEGRAM
Engee + Git = единый процесс разработки
🔥 Друзья, до старта Школы системного моделирования остаётся совсем немного времени — уже на следующей неделе начинаем занятия.
Сейчас мы активно готовим материалы для школы, и в процессе записали отдельное видео про работу с Git в Engee. Поняли, что тема важная и полезная не только для участников ШСМ, поэтому решили поделиться ею со всем сообществом.
В видео разбираем основы использования Git прямо в Engee:
✔️ как вести разработку моделей и расчётов аккуратно и прозрачно;
✔️ как фиксировать изменения и понимать, что и зачем было сделано;
✔️ как спокойно экспериментировать, не боясь «сломать» рабочую версию;
✔️ как уйти от папок вида model_final_v3_really_final.
Смотрите приложенное видео, разбирайтесь, пробуйте у себя в проектах.
🔗 Запасная ссылка
И да, если вы планировали присоединиться к Школе системного моделирования — самое время. Обучение стартует совсем скоро, регистрация ещё открыта.
Будет интересно!
Сейчас мы активно готовим материалы для школы, и в процессе записали отдельное видео про работу с Git в Engee. Поняли, что тема важная и полезная не только для участников ШСМ, поэтому решили поделиться ею со всем сообществом.
В видео разбираем основы использования Git прямо в Engee:
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
Мы создали два демо-проекта, которые показывают гравитацию в действии:
1️⃣ В первом одинаковые частицы движутся под действием разного ускорения свободного падения: от 1.62 м/с² на Луне до 24.79 м/с² на Юпитере.
2️⃣ Во втором проекте планеты взаимодействуют по закону Ньютона, а изменение массы Солнца влияет не только на орбиты, но и на температуру планет.
Ключевой момент — оба проекта используют точные физические законы и численные методы интегрирования, что гарантирует достоверность расчётов.
👉 Что сделано в Engee
1️⃣ Реализовали численное интегрирование движения частиц с разными гравитационными постоянными.
2️⃣ Построили систему взаимодействующих тел с расчётом взаимных гравитационных сил.
3️⃣ Добавили термодинамический модуль, связывающий массу Солнца, его светимость и температуру планет.
4️⃣ Создали анимации, наглядно показывающие разницу в динамике движения тел и изменение условий в системе.
🔗 Полные проекты с кодом и анимациями доступны в Сообществе:
🔹 Моделирование движения частиц
🔹 Моделирование Солнечной системы
Результаты моделирования:
✔️ Частицы на Юпитере стремительно падают и энергично отскакивают, а на Луне — медленно парят.
✔️ Увеличение массы Солнца всего в 10 раз приводит к разогреву Земли до +1600°C.
✔️ Орбиты планет меняются при изменении параметров системы.
✔️ Визуализация делает сложные физические законы интуитивно понятными.
Практическая польза:
🟡 Наглядное изучение законов гравитации и небесной механики.
🟡 Проверка гипотез о влиянии параметров звёзд на планетарные системы.
🟡 Использование подобных скриптов в образовательных курсах по физике и астрономии.
🟡 Эти проекты могут стать основой для более сложных астрофизических симуляций.
Вы можете загрузить проекты и изменить параметры — например, попробовать добавить новую планету или изменить гравитационную постоянную.
🎓 Школа моделирования с 18.02
🧑💻 Расписание бесплатных тренингов
Гравитация — это не просто цифра в учебнике, а сила, которая определяет движение всего во Вселенной. Как поведёт себя один и тот же объект на разных планетах? Что произойдет с Солнечной системой, если изменить массу Солнца? Engee позволяет наглядно исследовать эти вопросы.
Мы создали два демо-проекта, которые показывают гравитацию в действии:
Ключевой момент — оба проекта используют точные физические законы и численные методы интегрирования, что гарантирует достоверность расчётов.
👉 Что сделано в Engee
🔗 Полные проекты с кодом и анимациями доступны в Сообществе:
Результаты моделирования:
Практическая польза:
Вы можете загрузить проекты и изменить параметры — например, попробовать добавить новую планету или изменить гравитационную постоянную.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍10 3 3❤2
Media is too big
VIEW IN TELEGRAM
Фигуры Лиссажу
Как инженеру проверить соотношение частот двух сигналов, если под рукой нет осциллографа? В 1855 году Жюль-Антуан Лиссажу для этого собирал сложные оптические установки с камертонами и зеркалами. Сегодня достаточно открыть браузер.
Мы создали интерактивное приложение на фреймворке Genie, которое превращает ваш браузер в цифровой осциллограф. Два генератора, фазовращатель и параметрический дисплей — всё в одном окне без единого провода.
Что сделано в Engee:
x = sin(a·t + φ), y = sin(b·t), где a и b — частоты, φ — фазовый сдвиг.
Результаты моделирования:
Практическая польза:
Вы можете запустить приложение и поэкспериментировать с параметрами. Попробуйте подобрать соотношение a:b = 5:4 — получится фигура, похожая на бант. Или выставьте φ = π и наблюдайте, как окружность превращается в линию с обратным наклоном.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥5 5❤4
Как проверить алгоритм управления на реальном микроконтроллере, если сам двигатель существует только в виде математической модели? Ответ — полунатурное моделирование (HIL).
Контекст задачи
Разработана система автоматического регулирования тока для двигателя постоянного тока. Наша цель — перенести ПИ-регулятор на реальный микроконтроллер STM32F446 и, применяя технологию HIL, добиться идентичности результатов при имитационном и полунатурном моделированиях.
Что сделали в Engee
Результаты симуляции
В то время как "чистое" имитационное моделирование показывало идеальную отработку, HIL позволило выявить иную картину. График тока показал увеличенное перерегулирование, а установившееся значение оказалось меньше заданного.
В чем польза для инженера
Подобные динамические и статические ошибки мгновенно сигнализируют о неэффективной настройке регулятора для работы с реальным "железом". Технология HIL позволила нам наглядно увидеть задержки и искажения, которые вносит электронная схема передачи аналоговых сигналов, еще до подключения реального привода. Теперь эти элементы цепи можно перенести в исходную модель Engee, чтобы скорректировать алгоритм.
Полный проект и все материалы для самостоятельного воспроизведения сценария тестирования доступны в Сообществе Engee.
♦️ С наступающим 23 февраля, друзья!
Пусть инженерный характер остается железным, решения точными, а воля — стальной даже в самых сложных задачах.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍9❤4🕊3🎉2 2🆒1
🔧 Тестирование кода в Engee без ручной рутины
Тестирование ПО-в-контуре (SIL) – важный элемент рабочего процесса кодогенерации. Ведь нам необходимо проверить, что модель и код считаются одинаково.
Обычный процесс SIL-тестирования выглядит так: включили настройку создания проверочной Си-функции, сгенерировали код, запустили скрипт, вставили Си-функцию, запустили симуляцию, сравнили результаты. Это занимает время. А если моделей много, то легко запутаться что с чем сравнивать, что уже сделано, а что еще надо проверить. Надо как-то избавится от этой головной боли. В идеале хочется нажать кнопку и пойти пить кофе, а тестирование выполнится само собой.
Что будем использовать
Слышим тестирование - применяем библиотеку Test.jl.
А что тестируем? Надо проверить сразу несколько вещей:
1️⃣ Код вообще генерируется?
2️⃣ Создается ли проверочная Си-функция?
3️⃣ Эквивалентность работы модели и кода
Чтобы не рушить тестовую обвязку модели будем делать ее копию. И это тоже предмет тестирования. Для работы с моделями будем использовать программное управление моделями.
Как это работает?
Используя Test.jl, создадим наборы тестов, которые будут выполнять наше тестирование поэтапно:
А все манипуляции с моделями спрячем в отдельный модуль SILAutomation.
⚠️ ВАЖНО - Как правильно сравнить сигналы
Нельзя просто сравнить два сигнала численно и сказать, что они равны. Надо проверить, что они синхронизированы по времени, а значения не различаются больше чем на ошибку. Написали такую функцию:
Что мы получили в итоге
В результате сделали утилиту, которая
✅ запускает и проверяет генерацию кода
✅ Собирает обвязку SIL
✅ Запускает симуляции тестов и корректно сравнивает результаты
Теперь можно спокойно запускать тесты и идти пить кофе, а Engee все сделает за вас!
📎 Скачать себе все файлы утилиты можно тут
🎓 Школа моделирования уже стартовала!
🧑💻 Расписание бесплатных тренингов
Тестирование ПО-в-контуре (SIL) – важный элемент рабочего процесса кодогенерации. Ведь нам необходимо проверить, что модель и код считаются одинаково.
Обычный процесс SIL-тестирования выглядит так: включили настройку создания проверочной Си-функции, сгенерировали код, запустили скрипт, вставили Си-функцию, запустили симуляцию, сравнили результаты. Это занимает время. А если моделей много, то легко запутаться что с чем сравнивать, что уже сделано, а что еще надо проверить. Надо как-то избавится от этой головной боли. В идеале хочется нажать кнопку и пойти пить кофе, а тестирование выполнится само собой.
Что будем использовать
Слышим тестирование - применяем библиотеку Test.jl.
А что тестируем? Надо проверить сразу несколько вещей:
Чтобы не рушить тестовую обвязку модели будем делать ее копию. И это тоже предмет тестирования. Для работы с моделями будем использовать программное управление моделями.
Как это работает?
Используя Test.jl, создадим наборы тестов, которые будут выполнять наше тестирование поэтапно:
@testset verbose = true "SIL" begina
@testset "Code Generation" begin
@test SILAutomtion.buildCUT(CUT)==true
@test isfile(CUT*"_verification.engee")
end
SILAutomation.buildCUT(CUT)a
SILAutomtion.buildSILHarness(SIL_Harness,CUT, MIL_Harness)a
@testset "SIL Equality" begin
(MR,SR) = SILAutomtion.runSims(MIL_Harness,SIL_Harness)a
(sync,equal) = SILAutomtion.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Что мы получили в итоге
В результате сделали утилиту, которая
Теперь можно спокойно запускать тесты и идти пить кофе, а Engee все сделает за вас!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍7🥰4👏2❤1
Когда спектр сигнала меняется во времени (например, в ЛЧМ-сигналах), классическое БПФ за весь интервал наблюдения даёт лишь усреднённую картину и не позволяет увидеть эволюцию частотного состава. Решение — использовать STFT (Short-Time Fourier Transform).
В новом проекте сообщества подробно разобрана реализация STFT в Engee с помощью блоков библиотеки EngeeDSP и инструментов интерактивной визуализации.
Структура модели и ключевые параметры:
• Вычисляется БПФ (блок 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