Документация Engee

Блок-схемы для моделирования и симуляции динамических систем

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

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

Примеры динамических систем:

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

  • Вы говорите в мегафон — звук вашего голоса обрабатывается, и транслируется многократно усиленным. Здесь блоком можно представить мегафон: голос (звуковая волна источника) — это его вход, а то, что слышат окружающие (звуковая волна на приемнике) — выход.

  • Вы толкаете тележку — тележка движется. Блоком будет тележка: сила, которую вы прикладываете — это вход, а положение тележки — это выход.

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

Например, чтобы смоделировать мегафон, который умножает свои входные данные на константу, воспользуемся блоком Gain из библиотеки Math Operations.

gain

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

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

Чтобы имитировать вход синусоидальной волны в мегафон в Engee, включите источник Sine Wave.

block diagrams 1

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

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

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

В качестве примера снова рассмотрим мегафон. На каждом временном шаге Engee должен вычислять значение синусоиды, передавать его на вход блока Gain (представляющего сам мегафон), а затем вычислять значение его выхода.

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

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

Engee обрабатывает данные трех категорий:

  • Signals — значения на входах и выходах блока, вычисленные во время моделирования.

  • States — внутренние значения, представляющие динамику блока, вычисленные во время моделирования.

  • Parameters — значения, влияющие на поведение блока, которые задает пользователь.

Значения сигналов и состояний вычисляются на каждом шаге счета Engee. Значения параметров задаются при построении модели (хотя иногда их можно изменять во время моделирования).