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

DELAY3I (input, delay time, initial value) – экспоненциальная задержка третьего

Порядка с начальным значением.

Действие функции эквивалентно уравнениям:

DELAY3=LV3/DL

LV3=INTEG (RT2-DELAY3,DL*IN)*)

RT2=LV2/DL

LV2=INTEG (RT1-RT2,LV3)

RT1=LV1/DL

LV1=INTEG (input-RT1,LV3)

18

DL=delay time/3

*)Для функции DELAY3I это уравнение имеет вид:

LV3=INTEG (RT2-DELAY3I,initial value*DL)

Для единиц измерения справедливы те же ограничения, что и у функции DELAY1. Наглядно действие функции DELAY3 иллюстрирует следующий пример:

S = STEP (10,40)

DS = DELAY3 (S,20)

DSI = DELAY3I (S,20,5)

Функция STEP (10,40) генерирует импульс на 40-м шаге с амплитудой 10. Приводимый ниже график показывает, как трансформируется этот импульс в случае экспоненциальной задержки третьего порядка переменной S с помощью u функции DELAY3 и DELAY3I (c начальным значением 5) (Рис. 13).

 

Рис. 2. Иллюстрация выполнения функции DELAY3

EXP (X) − то же, что функция POWER (e,X), где e=2.718… EXP (безразмерн.) --> безразмерн. (аргумент должен быть безразмерным).

Примеры:

EXP(1.0) равняется 2.718282

EXP(0.0) равняется 1.0

EXP(-10.0) равняется 4.540E-5

EXP(10.0) равняется 22026.46

EXP(LN(10.0))равняется 10.0 (по определению)


IF THEN ELSE (cond, X, Y) – Традиционный оператор «если-то».

Равняется второму аргументу (X), если условие (cond) истинно; и третьему аргументу (Y), если условие ложно. Условие должно быть Булевым выражением или выражением, или переменной, которые могут интерпретироваться как Булевы. Вычисляется только то значение, которому будет равно значение функции, поэтому второе выражение может быть ошибочным. При задании условия в этом операторе могут использоваться логические операции И, ИЛИ, НЕ – они записываются в операторе как:AND:,:OR:,:NOT:

IF THEN ELSE (безразмерн., ед., ед.) --> ед.

Примеры

IF THEN ELSE (1.0<2.0, 3.0, 4.0) равняется 3.0

IF THEN ELSE (1.0>2.0, 3.0, 4.0) равняется 4.0

IF THEN ELSE (X = 0.0, 1.0, 1.0 / X) равно 1/X пока X равен 1.0. Если X равен 0.0,

Vensim PLE не будет пытаться вычислить 1/X, и ошибка вычисления не возникнет.

INITIAL (A) – начальное значение [ переменная].

Данная функция равняется начальному значению A, которое сохраняется все время моделирования. Она используется для «запоминания» и сохранения начального значения переменной. Для ее описания используется тип Initial в Редакторе уравнений.

Initial (unit) --> unit.

Пример:

x init = INITIAL (x)

Здесь переменная x init устанавливается равной первому (начальному) значению переменной x.

INTEG (rate, initial value) –численное интегрирование.

Функция равна результату численного интегрирования темпа. Аргумент initial value равен значению уровня (т.е. переменной, стоящей в левой части уравнения) в начальный момент имитации.

Ограничения: имя функции INTEG должно следовать непосредственно за знаком равенства в записи уравнения типа «уровень». Функция INTEG будет выбрана автоматически, если в Редакторе уравнений выбрать тип переменной Level (Уровен ь) и подтип Normal (для переменных, помещенных на диаграмме в прямоугольные рамки, это принято по умолчанию).

INTEG (unit/time, unit) --> unit.

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

Примеры:

Правильно:

L = INTEG (R * SUM(A[ S1! ]),0.0)

L = INTEG (MAX(A, B),C)

Неправильно:

L = A + INTEG (R, 0.0)

L = INTEG (B, 0.0) + 1.0

L = 2.0 * INTEG (R, 0.0) + 1.0

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

L = INTEG (R, 0.0)

aux = A + L


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



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