Создание формулы
Формулу можно создать в программе Vissim во встроенном редакторе формул в следующих случаях.
- Если необходимо определить атрибуты и выбрать тип источника данных Формула (Создать определенные пользователем атрибуты).
- Если в списке атрибутов отобразить столбец Формула и нажать в нем на кнопку
(Атрибуты статических маршрутов ТС), (Атрибуты статических пешеходных маршрутов), (Вкладка Входящие пассажиры.)
Редактор формул предлагает следующие функции.
| Символ | Описание |
|---|---|
|
|
Вставить операнд (например, атрибут): открытие окна с атрибутами типа объектов сети, выбранного в поле Тип объекта, и выбор атрибута в качестве терма. Терм вставляется синим цветом. |
| Символ | Описание |
|---|---|
|
|
Вставить оператор (например, +, -, *, /): выбор оператора, соединяющего один терм с другим. Оператор вставляется черным цветом. |
| Символ | Описание |
|---|---|
|
|
Вставить функцию (например, мин., макс., эксп.): открытие окна Вставить функцию и выбор функции для формулы. Функция вставляется сине-зеленым цветом. |
|
Возможные функции: |
|
|
Округлить до меньшего (x) |
Наибольшее целое число, меньшее или равное x. В позиции курсора вставляется FLOOR(). |
|
Абс (x) |
Абсолютная сумма x. |
|
Обрезать (x) |
Обрезка x знаков после запятой. В позиции курсора вставляется TRUNCATE(). |
|
ArcSin (x) |
Арксинус x. |
|
ArcCos (x) |
Арккосинус x. |
|
ArcTan (x) |
Арктангенс x. |
|
Округлить до большего (x) |
Наименьшее целое число, большее или равное x. В позиции курсора вставляется CEIL(). |
|
Cosinus (x) |
Косинус x. |
|
Exp (x) |
Создание экспоненты х. В позиции курсора вставляется EXP(). |
|
Деление (x; y) |
Целое частное при делении x на y. |
|
Статистика GEH (x; y) |
Статистика GEH для x и y. В позиции курсора вставляется GEH(;). GEH-статистика представляет собой распространенную в транспортном моделировании эмпирическую формулу для анализа значений. Формула выглядит следующим образом:
где: M: смоделированные значения. C: подсчитанные значения. |
|
Обратная величина (x) |
Соответствует 1/x. В позиции курсора вставляется RECIPROCAL(). |
|
Log (x) |
Натуральный логарифм х. В позиции курсора вставляется LN(). |
|
Макс (x; y) |
Максимум от x и y. |
|
Мин (x; y) |
Минимум от x и y. |
|
Мод (x; y) |
x modulo y |
|
Степень (x; y) |
Соответствует x^y. В позиции курсора вставляется POW(;). |
|
Процент (x; y) |
Соответствует 100*x/y. В позиции курсора вставляется PERCENT(;). |
|
Округл (x; p) |
Округление x до p знаков после запятой. p является опциональным значением. В позиции курсора вставляется ROUND(;). |
|
Sin (x) |
Синус x. |
|
Текст после числа ("x") |
Конвертирует последовательность знаков в число с плавающей запятой. В позиции курсора вставляется STRTONUM(). |
|
Tan (x) |
Тангенс x. |
|
Если (b; w; f) |
Обусловленное ответвление. Выводит w, если b верно. Выводит f, если b ошибочно. В позиции курсора вставляется IF(;;). |
|
Корень (x) |
Квадратный корень из х. В позиции курсора вставляется SQRT(). |
|
Число после текста (x) |
Конвертирует число с плавающей запятой в последовательность знаков. В позиции курсора вставляется NUMTOSTR(). |
| Символ | Описание |
|---|---|
|
|
Вставить Tablelookup: открытие окна Вставить Tablelookup и вставка в формулу функции типа TableLookup- Вы выбираете значение атрибута типа объекта сети и далее редактируете его в формуле. Функция TableLookup вставляется сине-зеленым цветом.
Наряду с типами объектов сети можно выбрать дополнительные типы объектов. Например, Настройки сети (NETPARA) с пользовательским значением. При этом используйте для условия функции TableLookup, например значение 1 для ВЕРНО.
|
|
Функция TableLookup в поле ввода должна соответствовать следующей схеме. TableLookup(<тип объекта> <название переменной>;(<условие>);(<результат>) Элементы состоят из: TableLookup(<тип объекта: имя на английском прописными буквами> <введенное имя переменной>; (<условие, например <введенное имя переменной>[<краткое имя атрибута на английском языке>]=<свойство>>);(<результат, например <обозначение>[<краткое имя атрибута>]>)) |
| Символ | Описание |
|---|---|
|
|
Вставить скобки: вставка открывающих и закрывающих скобок
|
Цикл имитации может повлиять на данные, полученные на основе формул
Если выбранные для формулы атрибуты основываются на динамических данных, которые могут изменяться во время цикла имитации, то могут изменяться также значения определенного пользователем атрибута, если они отображаются во время цикла имитации в списке результатов или списке атрибутов.
Редактирование формул на полях, отмеченных как несущественные
Например, во время цикла имитации несущественные атрибуты могут стать релевантными за счет функций СОМ. Поэтому можно редактировать формулы и на полях, отмеченных как несущественные.
Вставка разрыва строки
- Вставьте \\n в нужной позиции внутри цепочки символов.
- За пределами цепочки символов нажмите Enter в нужном положении.
Синтаксические ошибки отмечены красным цветом
Vissim выделяет синтаксические ошибки в формуле красным цветом. Сообщение под полем ввода для формулы дает указания о возможной причине синтаксической ошибки.
Порядок действий при последовательном сравнении в формулах
При создании формулы, содержащей последовательные сравнения, учитывайте то, что в формулах булевой алгебры они не являются ассоциативными, а объединяются и анализируются в группах по два.
Пример:
1 < 4 < 2 объединяются и анализируются как (1 < 4) < 2:
где (1 < 4) = верно
верно = 1
Для формулы действительно следующее условие:
1 < 2
Разный тип данных в формуле и атрибуте
Если результатом формулы является число, а атрибут цели — строка символов, число преобразуется Vissim в строку символов.
