Встроенные функции и ключевые слова Vensim PLE

В Vensim PLE есть ряд функций (они здесь не рассматриваются), определяющих типы переменных. Доступ к ним обеспечивает Редактор уравнений, с помощью которого можно выбирать тип и подтип переменной. Наиболее важной среди них является функция INTEG, которая позволяет задать переменную-уровень.

Таблица встроенных функций

A FUNCTION OF (#,A,B,C,,,) Показывает отношения «генезиса» (автоматически реализуется инструментом построения диаграмм).
ABS (A) Функция модуля (абсолютная величина A).
ACTIVE INITIAL (A,N) Определяет дополнительную переменную с различными активным и начальным значениями
DELAY FIXED (I,T,N) Задерживает значение входной переменной на фиксированное время T,начиная с момента N.
DELAY1 (I,T) Экспоненциальная задержка первого порядка величины Iна время T,сохраняющая I.
DELAY1I (I,T,N) То же, что DELAY1, но, начиная с момента N.
DELAY3 (I,T) Экспоненциальная задержка третьего порядка величины Iна время T,сохраняющая I.
DELAY3I (I,T,N) То же, что DELAY3, но, начиная с момента N.
EXP (X) Равна e (2.718...) в степени X.
IFTHEN ELSE (cond,X,Y) Равна X,если condition(условие) ≠ 0, иначе − Y.
INITIAL (A) Функция инициализации A(сохраняется как константа).
INTEG (R,N) Функция численной интеграции R, начиная с момента N(задает Уровень).
INTEGER (X) Равна целой части Х.
LN (X) Натуральный логарифм X.
MAX (A,B) Максимум из Aи B.
MIN (A,B) Минимум из Aи B
MODULO (X,B) Равна остатку от деления Хна В.
PULSE (A,B) Импульсная функция амплитуды 1.0, начинающая в момент Aпродолжительностью Bединиц времени.
RAMP (S,T1,T2) Равна 0 до момента Т1, затем линейно возрастающая с наклоном Sдо момента Т2, затем − константа.
RANDOM NORMAL (m,x,h,r,s) Равна значению нормально распределенной случайной величины между mи xс математическим ожиданием hи дисперсией r,полученному с использованием датчика (источника) s.
RANDOM UNIFORM (m,x,s) Генератор значений случайной величины, равномерно распределенной на интервале от mдо x, s –источник псевдослучайных чисел.
SIN (X) Синус величины X,измеренной в радианах.
SMOOTH (X,T) Функция экспоненциального сглаживания первого порядка величины Xза время T.
SMOOTH3 (X,T) Функция экспоненциального сглаживания третьего порядка величины Xза время T.
SMOOTH3I (X,T,N) Функция экспоненциального сглаживания третьего порядка величины Xза время T,начиная с момента N.
SMOOTHI (X,T,N) Функция экспоненциального сглаживания первого порядка величины Xза время T,начиная с момента N.
SQRT (X) Корень квадратный из X.
STEP (H,T) Функция шага: равна 0 до момента T,а затем − H.
WITH LOOKUP (x,(L#)) Равна значению yдля пар (x,y)таблицы L#,соответствующему х.
XIDZ (A,B,X) Равна X,если B= 0, иначе − A / B.
ZIDZ (A,B) Равна (0.0), если B= 0, иначе − A / B.

 

В Vensim PLE также есть специальные встроенные функции, предназначенные для проверки правдоподобия модели (автоматической проверки адекватной реакции модели на изменение условий имитации), т.е. для проверки того, «что будет, если…», и оценки жизнесообразности получаемых результатов. Имена подобных функций в пакете начинаются с RC (Контроль Реалистичности).

Детальное описание отдельных функций

A FUNCTION OF (#,A,B,C,...)

Замечание: Эта функция создается автоматически инструментом построения диаграмм, и ее использование не предполагается при написании уравнений модели

A FUNCTION OF отражает только наличие связей между переменными, она не описывает форму связи и, следовательно, не может быть вычислена. Эта функция недоступна в Редакторе Уравнений. В Текстовом Редакторе за уравнением, использующим функцию A FUNCTION OF, могут следовать одно или два уравнения, содержащие синтаксические ошибки или неполные причинные списки. В отличие от других функций, у функции A FUNCTION OF неопределенное число аргументов.

ACTIVE INITIAL(active eq, initial eq)различает активные и начальные уравнения.

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

Замечание: В редакторе формул (Equation Editor) функция ACTIVE INITIAL вводится автоматически, если выбрать тип Auxiliary (Дополнительная переменная) и подтип Initial.

ACTIVE INITIAL (входн. ед., входн. ед.) --> те же ед.

Пример.

Capacity = Integ (capacity adjust, target capacity)

target capacity = Capacity*adjust from utilization

Здесь начальное значение переменной Capacity требует значения переменной target capacity, которое, в свою очередь, требует значения Capacity. Поэтому для переменной target capacity должно использоваться уравнение:

target capacity = ACTIVE INITIAL (Capacity*adjust from utilization, 100)

Это позволит присвоить переменной Capacity начальное значение 100; первое значение target capacity будет равно Capacity*adjust from utilization, т.е. в общем случае не будет равно 100; начальное выражение используется только для вычисления начальных значений переменных состояния (уровней).

DELAY1 (input, delay time) – экспоненциальная задержка.

DELAY1I (input, delay time, initial value) – экспоненциальная задержка с заданным начальным значением.

Значение функции DELAY равно задержанному значению входной переменной. Экспоненциальная задержка первого порядка эквивалентна следующим уравнениям:

DELAY1=LV/delay time

LV=INTEG (input-DELAY1,input*delay time)

Таким образом, если входная переменная input принимает значения 50, 55, 60, и т.д., а время задержки составляет 3, то переменные LV и DELAY1 будут принимать значения:

Time input LV DELAY1
0 50 150 50
1 55 150 50
2 60 155 51.6667
3 65 163.3333 54.4444

 

Функция DELAY1I отличается тем, что можно произвольно задать начальное значение LV:

DELAY1I=LV/delay time

LV=INTEG (input-DELAY1I,initial value*delay time)

См. также: DELAY3, DELAY3I, SMOOTH, SMOOTH3

DELAY1 (ед., время) --> единицы.

DELAY1I (ед., время, ед.) --> единицы.

Единицы измерения входных переменных соответствуют единицам измерения выходных переменных. Время задержки должно быть кратным временному шагу (TIME STEP) и измеряться в тех же единицах. Для функции DELAY1I единицы измерения начальных значений должны соответствовать единицам измерения входной переменной.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: