Регистры | Registers

постройка сложный функций

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

Регистры могут быть passive или interactive. Задайте их состояние на панели «Functional», отметив «Interactive»

По умолчанию, регистры -passive.

Пассивный Регистр

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

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

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

Свойства

Метка

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

🧙♂ Регистры поддерживают формулы из библиотеки math.js.

Интерактивные регистры

Регистр становится интерактивным, когда на панели «Properties» в разделе «Functional» отмечен флажок «Interactive».

После установки флажка «Interactive» регистры становятся доступными для редактирования во время пошаговых запусков. Используйте стрелки вверх и вниз для взаимодействия и изменения значения регистра.

Свойства

Метка

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

Ограничения

Используйте minimum иmaximum для установки значений, которые может принимать регистр.

Значение

После установки флажка «Interactive» для регистров становятся доступны два свойства:

  • Initial Vaue - значение, которое регистр имеет при запуске диаграммы.

  • Step Value - значение, которое изменят регистр при взаимодействие

В приведенном выше примере интерактивный регистр имеет заданное начальное значение 3 (Initial Value) и значение шага 2 (Step Value). При каждом взаимодействии регистр изменяет свое значение (в реальном времени во время пошагового прогона диаграммы) на +-2.

Показать на графике

Установите флажок «Show in Chart» (опция также доступна в контекстном меню при щелчке правой кнопкой мыши), чтобы отобразить значения, принимаемые регистром на каждом временном шаге при запуске диаграммы.

Примеры

1. Умножение целевого значения

В приведенном выше примере мы умножаем целевое значение. Для этого мы используем интерактивный регистр со значением шага, равным значению цели (Step Value и начальное значение источника). Чтобы иметь множитель целого числа x, мы использовали «100%» в качестве метки на соединении состояния.

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

2. Использование math.js

Базовые операции

  1. add(a,b) складывает а и b

  2. subtract(a,b) вычитает b из a

  3. multiply(a,b) умножает a на b

  4. divide(a,b)делит a на b

Экспоненциальные функции

  1. square(a) возвращает квадрат а

  2. cube(a) возвращает куб а

  3. sqrt(a) возвращает корень а

  4. cbrt(a) возвращает кубический корень а

  5. pow(a,b) возводит а в степень b

🧙♂ Дополнительные примеры использования функций math.js с регистрами см. на общедоступной диаграмме: Framework: Register and math.js functions, или File > New from Template > Framework: Register and math.js functions

3. Условные операторы

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