Модуль измерения и модуля

Преобразуйте между модулями измерения с помощью Symbolic Math Toolbox™. На этой странице показаны преобразования между модулями и между системами модулей, такими как СИ, CGS или определяемая пользователем модуль.

Преобразование модулей

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

Перевести 1,2 метра в сантиметры.

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

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

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]

Преобразуйте в системы Модуля СИ, CGS или США

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

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

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]

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

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

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

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

В фотонике обычно используемыми модулями являются наносекунда (нс), электронный вольт (эВ) и нанометр (нм). Определите модуль систему с этими модулями путем изменения системы модуля СИ. Получите основу СИ и производные модули измерения при помощи 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]

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

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

Завершив расчеты, удалите блочную систему.

removeUnitSystem(phSys)

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

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

Задайте следующие базовые модули:

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

Определите при помощи 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
Электрический дипольный момент<reservedrangesplaceholder1> <reservedrangesplaceholder0> 0

Определите при помощи newUnit.

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

Определите при помощи 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 базовых модулей. Пока независимость удовлетворена, любой модуль может быть базовым модулем, включая модули, как newton или watt.

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

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

  • Производные модули являются необязательными и добавляются для удобства представления. Для примера, кг м/с2 сокращенно ньютон.

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

См. также

| | | | | |

Похожие темы

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