12
Руководство пользователя
×

7.7.1 Арифметические выражения

Арифметическое выражение состоит из операндов, соединенных знаками математических операций. В качестве операндов могут использоваться:
      числа;
      скаляры;
      датчики;
      массово-инерционные характеристики;
      функции, описанные пользователем;
      стандартные математические функции;
      арифметические выражения.
Функция может задаваться выражением. Если в состав этого выражения входит аргумент функции, то перед его именем необходимо ставить знак «#».
При использовании в выражении функции необходимо сразу после имени функции в круглых скобках указать значения всех ее аргументов. Причем функция может быть любой, как стандартной математической, так и определенной пользователем.
В выражениях допускаются следующие знаки математических операций:
      « + » – сложение или унарный знак «плюс» перед операндом;
      « — » – вычитание или унарный знак «минус» перед операндом;
      « * » – умножение;
      « / » – деление.
Операции выполняются в обычном алгебраическом порядке. Например, сначала замена знака (унарный знак «минус» перед операндом), затем умножение или деление, после чего сложение или вычитание. На каждом уровне операции выполняются слева направо. Для изменения обычного порядка вычислений можно использовать круглые скобки «(» и «)».
Последовательная запись двух знаков операций недопустима. То есть вместо 2*—2 следует писать —2*2 или 2*(—2). Нельзя пропускать знак операции умножения. Например, запись (A+B)(C+D) будет признана некорректной. Запись AB не подразумевает выражение A*B, а будет интерпретирована как отдельный скаляр с именем AB.
В записи выражения символы пробела и табуляции игнорируются.
При вычислении выражения определяется его размерность и проверяется совместимость размерностей элементов, его составляющих. Выражение, используемое для задания скаляра или функции при создании объекта с предопределенной размерностью, должно иметь эту же размерность.
Число, определяющее значение скаляра или функции, задается в виде действительного десятичного числа, которое может иметь знак, мантиссу и порядок. Допускается использование в мантиссе десятичной точки. Порядок должен выражаться целым числом. Если после числа не определена единица измерения, то число считается безразмерным, кроме тех случаев, когда его размерность заранее известна. При создании объекта, имеющего параметр с предопределенной размерностью, пользователь может не указывать единицы измерения для этого параметра. В таком случае значению параметра автоматически приписывается единица измерения, используемая по умолчанию для соответствующих величин.
Пример
scalar a=7;
scalar b=a;
scalar c=sin(1.7), d=23[m]*a+1.57[in];
scalar a1=17.0, a2=19, X= -1.1e-3, Y=7E9;
 
set length=m;
/* Устанавливается единица измерения длины по умолчанию. */
point p=(1, 1[cm], 1[in]);
/* Точка p имеет координаты (1[m], 0.01[m], 0.0254[m]) */
 
scalar A=1[m];
function f1() = 3;
/* f1 - константная функция без аргументов, возвращающая безразмерную величину, равную 3. */
function f2() = 5[m];
/* f2 - константная функция без аргументов, возвращающая величину равную 5 [m].*/
function f3() = A*25[m];
/* f3 - константная функция без аргументов, возвращающая величину размерности [m2]. */
function f4(X[]) = #X*#X;
/* f4 - функция с одним безразмерным аргументом, возвращающая безразмерную величину. */
function f5(X[kg]) = 5*A*#X;
/* f5 - функция с одним аргументом размерности [kg], возвращающая величину размерности [kg*m]. */
function f6(X[kg],Y[s]) = 5*A*#X/(#Y*#Y);
/* f6 - функция с двумя аргументами размерности [kg] и [s], возвращающая величину размерности [kg*m/s2]. */
function f7(X[rad]) = cos(#X/1[rad])+sin(3*#X/1[rad]);
/* f7 - функция с одним аргументом, использующая стандартные математические функции. */
function f8(X[kg],Y[s]) = f6(#X,#Y)*5/A;
/* f8 - функция с двумя аргументами, ссылающаяся на ранее определенные функции и скаляры. */