Проверка совместимых размеров и согласованных единиц измерения
C = checkUnits( проверки expr)expr для совместимых размеров и согласованных единиц измерения и возвращает структуру, содержащую поля Consistent и Compatible. Поля содержат логические 0 (false) или логическое 1 (true) в зависимости от результатов проверки.
expr имеет совместимые размеры, если все термины имеют одинаковые размеры, например длину или время. expr имеет согласованные единицы измерения, если все единицы измерения одного размера могут быть преобразованы друг в друга с коэффициентом преобразования 1.
Проверьте размеры уравнения или выражения. Размеры проверяются на правильность уравнения или выражения.
Проверка размеров уравнения
кг
с помощью checkUnits с опцией 'Compatible'. MATLAB ® предполагает, что символьные переменные безразмерны. checkUnits функция возвращает логические 0 (false), поскольку размеры уравнения несовместимы.
u = symunit; syms A B eqn = A*u.m/u.s == B*u.kg/u.s; checkUnits(eqn,'Compatible')
ans = logical 0
Заменить u.kg с u.m с помощью subs и повторите проверку. Поскольку размеры теперь совместимы, checkUnits возвращает логический 1 (true).
eqn = subs(eqn,u.kg,u.m); checkUnits(eqn,'Compatible')
ans = logical 1
Проверка единиц на непротиворечивость является более строгой проверкой, чем совместимость. Единицы измерения согласуются, когда все единицы измерения одного размера могут быть преобразованы друг в друга с коэффициентом преобразования 1. Например, 1 Ньютон соответствует 1 кг м/с2, но не 1 кг см/с2.
Показать, что 1 Ньютон согласуется с 1 кг м/с2 путем проверки expr1 но не с 1 кг см/с2 путем проверки expr2.
u = symunit; expr1 = 1*u.N + 1*u.kg*u.m/u.s^2; expr2 = 1*u.N + 1*u.kg*u.cm/u.s^2; checkUnits(expr1,'Consistent')
ans = logical 1
checkUnits(expr2,'Consistent')
ans = logical 0
Показать разницу между совместимостью и согласованностью, показав, что expr2 имеет совместимые размеры, но непротиворечивые единицы измерения.
checkUnits(expr2,'Compatible')
ans = logical 1
Проверьте несколько уравнений или выражений, поместив их в массив. checkUnits возвращает массив, элементы которого соответствуют элементам ввода.
Проверьте несколько уравнений на наличие совместимых размеров. checkUnits прибыль [1 0], что означает, что первое уравнение имеет совместимые размеры, а второе уравнение - нет.
u = symunit; syms x y z eqn1 = x*u.m == y*u.m^2/(z*u.m); eqn2 = x*u.m + y*u.s == z*u.m; eqns = [eqn1 eqn2]; compatible = checkUnits(eqns,'Compatible')
compatible = 1×2 logical array 1 0
Проверка совместимых размеров и согласованных единиц уравнения или выражения с помощью checkUnits.
Определите уравнения для смещения движущегося снаряда по оси X и оси Y. Проверьте их устройства на совместимость и непротиворечивость.
u = symunit; g = 9.81*u.cm/u.s^2; v = 10*u.m/u.s^2; syms theta x(t) y(t) x(t) = v*cos(theta)*t; y(t) = v*sin(theta)*t + (-g*t^2)/2; S = checkUnits([x y])
S =
struct with fields:
Consistent: [1 0]
Compatible: [1 1]Второе уравнение имеет совместимые размеры, но противоречивые единицы измерения. Это несоответствие потому, что g неправильно использует см вместо м. Переопределить g и проверьте уравнения еще раз. Второе уравнение теперь имеет согласованные единицы.
g = 9.81*u.m/u.s^2; y(t) = v*sin(theta)*t + (-g*t^2)/2; S = checkUnits([x y])
S =
struct with fields:
Consistent: [1 1]
Compatible: [1 1]findUnits | isUnit | newUnit | separateUnits | str2symunit | symunit | symunit2str | unitConversionFactor