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

Преобразуйте между модулями с 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 m/s2.

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 m/s2. Получившиеся модули трудно считать. Преобразуйте их в удобные модули путем определения опций Derived и SI. 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;
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, потому что переменные предотвращают доступ к функциям derivedUnits и baseUnits.

Задайте новую модульную систему при помощи 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 =
0.0000041356676623401643884479280999879*[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.672624898e-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.1559670674356174696928918542*[m_e]
                     1.0000000000000000578208778346486*[e]
 0.0000000000000010204521077472272506008435148061*[edm_au]
             0.0015210322058038370229109632800588*[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').

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

| | | | | |

Похожие темы

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

Для просмотра документации необходимо авторизоваться на сайте