Модульные преобразования и модульные системы

Преобразуйте между модулями с Symbolic Math Toolbox™. Эта страница показывает преобразования между модулями и между системами модулей, такими как SI, CGS или пользовательская модульная система.

Преобразуйте единицы

Преобразуйте между модулями при помощи unitConvert.

Преобразуйте 1,2 метра в сантиметры.

u = symunit;
len = 1.2*u.m;
len = unitConvert(len,u.cm)
len =
120*[cm]

Преобразуйте len к дюймам. Результат находится в точной символьной форме. Отдельные модули и преобразуют, чтобы удвоиться.

len = unitConvert(len,u.in)
len =
(6000/127)*[in]
[len units] = separateUnits(len);
len = double(len)
len =
   47.2441

Вычислите сила должна была ускорить массу 5 кг на уровне 2 м/с2.

m = 5*u.kg;
a = 2*u.m/u.s^2;
F = m*a
F =
10*(([kg]*[m])/[s]^2)

Преобразуйте результат в ньютон.

F = unitConvert(F,u.N)
F =
10*[N]

Совет

Используйте расширение вкладки, чтобы найти имена модулей. Введите u., нажмите Tab и продолжите вводить.

Вычислите энергию когда сила F применяется для 3 метров. Преобразуйте результат в джоуль.

d = 3*u.m;
E = F*d
E =
30*[N]*[m]
E = unitConvert(E,u.J)
E =
30*[J]

Преобразуйте E к часу киловатта.

E = unitConvert(E,u.kWh)
E =
(1/120000)*[kWh]

Температурное модульное преобразование

Температуры могут представлять или абсолютные температуры или перепад температур. По умолчанию температуры приняты, чтобы быть различиями. Преобразуйте температуры, принимающие, что температуры являются абсолютными путем определения 'Temperature' введите как 'absolute'.

Преобразуйте 23 градусы Цельсия до степеней Келвин, сначала как перепад температур и затем как абсолютная температура.

u = symunit;
T = 23*u.Celsius;
relK = unitConvert(T,u.K,'Temperature','difference')
relK =
23*[K]
absK = unitConvert(T,u.K,'Temperature','absolute')
absK =
(5923/20)*[K]

Поскольку значение 0 является безразмерным и 0 степени не могут быть представлены, преобразовать 0 степени между температурными модулями при помощи ячейки вводятся.

Преобразуйте 0 градусы Цельсия к градусам по Фаренгейту.

tC = {0,u.Celsius};
tF = unitConvert(tC,u.Fahrenheit,'Temperature','Absolute')
tF =
32*[Fahrenheit]

Преобразуйте в SI, CGS или модульные системы США

Автоматически преобразуйте в правильные модули путем преобразования в модульную систему. Далее, преобразование в производные единицы модульной системы пытается выбрать удобные модули. Доступные модульные системы включают SI, CGS и США. Для всех модульных систем см. Модульный Список Систем. Кроме того, можно задать пользовательские модульные системы.

Вычислите силу из-за 5-килограммовой массы, ускоряющейся на уровне 2 м/с2. Получившиеся модули трудно считать. Преобразуйте их в удобные модули путем определения SI и Derived опции. unitConvert автоматически выбирает правильные модули ньютона.

u = symunit;
m = 5*u.kg;
a = 2*u.m/u.s^2;
F = m*a
F =
10*(([kg]*[m])/[s]^2)
F = unitConvert(F,'SI','Derived')
F =
10*[N]

Преобразуйте F к модулям США. По умолчанию преобразованные единицы являются основными единицами. Для удобства также преобразуйте в производные единицы путем определения Derived опция. Производные единицы легче считать.

F = unitConvert(F,'US')
F =
(1250000000000/17281869297)*(([ft]*[lbm])/[s]^2)
F = unitConvert(F,'US','Derived')
F =
(20000000000000/8896443230521)*[lbf]

Преобразуйте F к производным единицам CGS.

F = unitConvert(F,'CGS','Derived')
F =
1000000*[dyn]

Преобразуйте спецификацию в SI к производным единицам США. Задайте температуры как абсолютные.

loadCell = [   3*u.kg;      % capacity
              50*u.mm;      % length
              15*u.mm;      % width
              10*u.mm;      % height
             -10*u.Celsius; % minimum temperature
              40*u.Celsius; % maximum temperature
            ];
loadCell = unitConvert(loadCell,'US','derived','Temperature','absolute')
loadCell =
 (300000000/45359237)*[lbm]
             (125/762)*[ft]
              (25/508)*[ft]
              (25/762)*[ft]
            14*[Fahrenheit]
           104*[Fahrenheit]

Если unitConvert не выбирает ваш предпочтительный модуль, затем настраивает результат с далее unitConvert команды. Здесь, дюймы более удобны, чем ноги. Преобразуйте результат в дюймы.

loadCell = unitConvert(loadCell,u.inch)
loadCell =
 (300000000/45359237)*[lbm]
             (250/127)*[in]
              (75/127)*[in]
              (50/127)*[in]
            14*[Fahrenheit]
           104*[Fahrenheit]

Точные символьные значения трудно считать. Разделите модули и преобразуйте в double.

[loadCellDouble loadCellUnits] = separateUnits(loadCell);
loadCellDouble = double(loadCellDouble)
loadCellDouble =
    6.6139
    1.9685
    0.5906
    0.3937
   14.0000
  104.0000

В качестве альтернативы аппроксимируйте результат к высокой точности при помощи vpa. vpa функция также сохраняет символьные модули, потому что она возвращает символьный выходной параметр.

loadCell = vpa(loadCell)
loadCell =
 6.6138678655463274216892140403508*[lbm]
   1.968503937007874015748031496063*[in]
  0.5905511811023622047244094488189*[in]
  0.3937007874015748031496062992126*[in]
                       14.0*[Fahrenheit]
                      104.0*[Fahrenheit]

Преобразуйте пять акров (ac), чей модуль является американским акром обзора к метрической области.

u = symunit;
area = 5*u.ac_US;
area = unitConvert(area,'SI')
area =
 
(313632000000/15499969)*[m]^2

Задайте пользовательскую модульную систему от существующей системы

Пользовательские модульные системы обеспечивают гибкость в преобразовании единиц. Можно легко задать пользовательскую модульную систему путем изменения модульной системы по умолчанию. В качестве альтернативы можно задать систему непосредственно. Для определений модульной системы основные единицы и производные единицы, видят Модульное Системное Определение.

В фотонике обычно используемые модули являются наносекундой (не уточнено), электрон-вольтом (эВ) и нанометром (нм). Задайте модульную систему с этими модулями путем изменения системы единицы СИ. Получите основные единицы SI и производные единицы при помощи baseUnits и derivedUnits. Измените модули при помощи subs.

u = symunit;
bunits = baseUnits('SI');
bunits = subs(bunits,[u.m u.s],[u.nm u.ns])
bunits =
[ [kg], [ns], [nm], [A], [cd], [mol], [K]]
dunits = derivedUnits('SI');
dunits = subs(dunits,u.J,u.eV)
dunits =
[ [F], [C], [S], [H], [V], [eV], [N], [lx], [lm], [Wb], [W], [Pa],...
 [Ohm], [T], [Gy], [Bq], [Sv], [Hz], [kat], [rad], [sr], [Celsius]]

Примечание

Не задавайте переменные под названием baseUnits и derivedUnits потому что переменные предотвращают доступ к baseUnits и derivedUnits функции.

Задайте новую модульную систему при помощи newUnitSystem.

phSys = newUnitSystem('photonics',bunits,dunits)
phSys = 
    "photonics"

Вычислите энергию фотона частоты 1 ГГц и преобразуйте результат в производные единицы phSys система. Результат находится в электрон-вольтах.

f = 1*u.GHz;
E = u.h_c*f;
E = unitConvert(E,phSys,'Derived')
E =
(44173801/10681177560000)*[eV]

Точный символьный результат трудно считать. Разделите модули и преобразуйте, чтобы удвоиться.

[E Eunits] = separateUnits(E);
E = double(E)
E =
   4.1357e-06

После завершающихся вычислений удалите модульную систему.

removeUnitSystem(phSys)

Задайте пользовательскую модульную систему непосредственно

Задайте пользовательскую модульную систему для атомарных модулей (au).

Задайте эти основные единицы:

РазмерностьМодульРеализация
МассаЭлектронная масса отдыхаu.m_e
Элементарный зарядЗаряд электронаu.e
ДлинаБоровский радиус (a 0)u.Bohr
Времяħ/Eh

Задайте при помощи newUnit.

u = symunit;
t_au = newUnit('t_au',u.hbar/u.E_h);
bunits = [u.m_e u.e u.Bohr u.t_au]
bunits =
[ [m_e], [e], [a_0], [t_au]]

Задайте эти производные единицы:

РазмерностьМодульРеализация
Угловой моментКонстанта уменьшаемого Планкаu.hbar
ЭнергияHartreeu.E_h
Электрический дипольный моментe a 0

Задайте при помощи newUnit.

Магнитный дипольный момент2 Магнетона Бора = e ħ/2me

Задайте при помощи newUnit.

Электрический потенциалE h/e

Задайте при помощи newUnit.

edm_au = newUnit('edm_au',u.e*u.bohr);
mdm_au  = newUnit('mdm_au', u.e*u.hbar/(2*u.me));
ep_au  = newUnit('ep_au', u.E_h/u.e);
dunits = [u.hbar u.E_h u.edm_au u.mdm_au u.ep_au]
dunits =
[ [h_bar], [E_h], [edm_au], [mdm_au], [ep_au]]

Задайте модульную систему.

auSys = newUnitSystem('atomicUnits',bunits,dunits)
auSys = 
    "atomicUnits"

Преобразуйте свойства протона к атомарным модулям.

proton = [  1.672621923e-27*u.kg;      % mass
            1.6021766208e-19*u.C;      % charge
            5.4e-24*u.e*u.cm;          % electric dipole moment
            1.4106067873e-26*u.J/u.T;  % magnetic dipole moment
         ];
proton = unitConvert(proton,auSys,'Derived')
proton =
                   1836.1526726825404620381265471117*[m_e]
                    0.99999999176120807953267071600981*[e]
 0.0000000000000010204521072979158730257341288851*[edm_au]
         0.00048415958374162452452052339364507*pi*[mdm_au]

После завершающихся вычислений удалите модульную систему и добавленные модули.

removeUnitSystem(auSys)
removeUnit([u.t_au u.edm_au u.mdm_au u.ep_au])

Модульное системное определение

Модульная система является набором основных единиц и производных единиц, который следует этим правилам:

  • Основные единицы должны быть независимыми в терминах массы размерностей, время, длина, электрический ток, яркая интенсивность, количество вещества и температура. Поэтому модульная система имеет до 7 основных единиц. Пока независимости удовлетворяют, любой модуль может быть основной единицей, включая модули, такие как ньютон или ватт.

  • Модульная система может иметь меньше чем 7 основных единиц. Например, механическим системам нужны основные единицы только для длины размерностей, массы, и время.

  • Производные единицы в модульной системе должны иметь представление в терминах продуктов степеней основных единиц для той системы. В отличие от основных единиц, производные единицы не должны быть независимыми.

  • Производные единицы являются дополнительными и добавленными для удобства представления. Например, kg m/s2 сокращен ньютоном.

  • Примером модульной системы является система единицы СИ, которая имеет 7 основных единиц: килограмм, во-вторых, метр, ампер, кандела, молекулярная масса и кельвин. Существует 22 производных единицы, найденные путем вызова derivedUnits('SI').

Смотрите также

| | | | | |

Похожие темы

Внешние веб-сайты