Mathcad и Maple: работа с размерными величинами

(Английский укороченный текст с некоторыми комментариями от Waterloo Maple, Inc. – http://twt.mpei.ac.ru/ochkov/Unit_MC_MP/Unit_MC_MP_eng.htm)

 

Другие статьи В.Очковаhttp://twt.mpei.ac.ru/ochkov/work2.htm (in Russian)

                                                http://twt.mpei.ac.ru/ochkov/work2_eng.htm (in English)

В. Очков

http://twt.mpei.ac.ru/ochkov

ochkov@twt.mpei.ac.ru

Оглавление:

1. Запуск Mathcad и Maple, «размерные» функции

2. Естественность записи размерных величин

3. Что находится между числовой константой и единицей измерения

4. Разделение переменных и единиц измерения

5. Встроенные и пользовательские системы измерений

6. Новые физические величины

7. Одноименные физические величины

Заключение

Послесловие

Приложение Встроенные единицы измерения Mathcad и Maple

Internet-конвертор единиц измерения – www.convert-me.com

В настоящее время при решении на компьютере инженерно-технических задач наметилась стойкая тенденция перехода от использования языков программирования[1] к работе с универсальными математическими пакетами (Mathcad, Maple, MatLab, Mathematica и др.). Математические пакеты позволяют на порядок ускорить процесс создания расчетных проектов. Такое же ускорение наблюдалось при переходе от работы с машинными кодами к работе с языками программирования. Среди перечисленных пакетов Mathcad выделяется тем, что он с самой первой своей версии (начало 90-х годов) позволял вести расчеты с использованием физических величин. Летом 2001 года появилась седьмая версия Maple (http://www.maplesoft.com/products/Maple7/index.shtml) с единственной новинкой – работа с единицами измерений (units). В данной статье сравниваются эти два пакета по их возможностям и особенностям работы с физическими величинами.

Инструменты работы с размерными величинами Mathcad[2] и Maple[3] – это, если говорить языком математики, множества пересекающееся, но не совпадающие. Сравнение этих физматпакетов[4] с точки зрения их «размерных» плюсов и минусов[5] – задача не совсем корректная в первую очередь потому, что размерные величины в Maple появились намного позже, чем в Mathcad. Естественно, разработчики Maple должны были учесть десятилетний опыт использования единиц измерения в среде Mathcad. Еще одна, сугубо субъективная некорректность, но уже не поставленной задачи (размерности в Mathcad и Maple), а попыток ее решения. Автор ни в коей мере не может считать себя специалистом в области метрологии. Тем не менее, автору приходится не только решать, но и учить студентов решать задачи на компьютере с привлечением физических величин. При этом «приходится решать» не только и не сколько саму задачу, а ряд мелких (с точки зрения не метролога, а специалиста в конкретной научно-технической области) задач, связанных с реализацией инструмента размерностей в той или иной программной среде. Но попробуем все-таки решить такую некорректно (в квадрате) поставленную задачу – сравним эти два пакета с точки зрения работы с физическими величинами (и не только[6]):

1. Запуск Mathcad и Maple, «размерные» функции

При запуске пакет Mathcad по умолчанию[7] сразу «подхватывает» одну из единиц измерения (SI – европейская версия (см. рис. 1) или U.S. – американская[8]). Запустив Maple необходимо выполнить некоторые команды (подгрузить (with) соответствующую библиотеку (Units) – см. рис. 2), чтобы появилась возможность работы с единицами измерений. Без этого можно только переводить (convert) единицы измерений в пределах одной физической величины – см. пример на рис. 2. В истории Mathcad был случай, тоже связанный с Maple[9], когда работа не с единицами измерения, а с символьной математикой требовала подгрузки соответствующей библиотеки (Mathcad 5.0). Потом от этой технологии отказались. Но не совсем. К пакету Mathcad разными разработчиками (авторами) предлагается ряд электронных книг по различным областям знаний, которые можно открывать, изучать и переносить из них в рабочий документ нужные фрагменты (операторы, тестовые вставки и др.). В среде Maple открываются (подгружаются) библиотеки – одна из которых носит название Unit. Можно спорить о том, хорошо ли сразу предоставлять пользователю Mathcad возможность работы с единицами измерений. По правде говоря, основная масса задач в среде Mathcad решается без опоры на физические величины. В этом случае предопределенные переменные kg, m, sec и т.д. (см. пункт 4) могут только «путаться под ногами», (мешать, например, строить графики). В этом случае механизм размерных величин лучше отключить («нажать» радиокнопку None в диалоговом окне, показанном на рис. 1). Другой путь – при запуске Mathcad подгружать шаблон, в котором единицы измерения заранее выключены или перенастроены с SI на альтернативную систему измерений – см. рис. 1.

В среде Maple после подгрузки библиотеки работы с размерными величинами сразу выдается сообщение о том, какие возможности открываются пользователю библиотеки Unit: работа с дополнительными базовыми единицами измерений (AddUnit), с новой физической величиной (AddDimension), с новой системой измерений (AddSystem[10]) и т.д. Кроме того, после использования ключевого слова Natural или Standard система Maple предупреждает о том, на какие встроенные функции и операторы Maple эта библиотека распространяется (см. далее рис. 4a и рис. 4b). В среде Mathcad такой информации нет даже в документации. Только в «Советах дня[11]» вскользь отмечается, что размерные величины не работают, например, в программах Mathcad. В последних версиях пакета это ограничение было снято, но совет не использовать единицы измерений в программах остался.

Главный недостаток и Mathcad и Maple в том, что многие функции и операторы, вводившиеся в эти пакеты еще до ввода инструментов работы с единицами измерений, не совсем корректно работают с размерными аргументами и операндами. И главное, что пользователь часто забывает об этих ограничениях и получает непонятные ответы. Разработчикам Mathcad и Maple следовало бы либо распространить действие единиц измерения на все функции и операторы[12], либо заблокировать (сообщениями об ошибке, например) использование размерных аргументов (операндов) в этих функциях (операторах)[13]. Разработчики Maple вполне обоснованно называют этот пакет самым совершенным инструментом решения дифференциальных уравнений. Но при «размерных» граничных условиях такой задачи единицы измерения как бы «застревают» в ответе – см. рис. 4c. Это представляется несколько странным, если учесть, что дифференциальные уравнения – это математическая запись физических явлений, проявляющихся, например, в динамике[14]. (После выхода статьи в свет автор получил от разработчика Maple решение проблемы единиц в дифференциальных уравнениях – см. рис. 4d: единицы измерения вводятся в готовое решение). Можно считать, что инструменты работы с размерными величинами – это недокументированные (плохо документированные) инструменты, с которыми нужно работать очень осторожно, проверяя каждый раз ответ в процессе отладки и тестирования программы. Это положение (ограничение) касается не только «экзотических» функций и операторов (функций решения дифференциальных уравнений и систем, например, и других), но и довольно рутинных инструментов Mathcad и Maple – аппроксимации табличных зависимостей (типичный пример такой ошибки в Mathcad – см. рис. 1a) или формирование «размерной» функции пользователя и построение графиков (типичный пример такой ошибки в Maple – см. рис. 2b). На рис. 2а зафиксирована одна из типичных ситуаций при работе с размерными величинами в среде Maple – функция пользователя создается со «скрипом» («вылезло» непонятное «эхо» под строкой создания функции пользователя Length:=Mass®…), тем не менее, «размерная» функция пользователя возвращает правильный ответ, но «отказывается» работать при построении графика (plot), выдавая при этом дезориентирующее сообщение об ошибке (несовместимые единицы измерения). В среде Mathcad при построении графиков отключается механизм контроля размерностей, но сами графики зависимостей размерных величин получаются вполне приемлемыми. На таких графиках несложно менять градуировку шкал (менять метры на футы, например), подстраивая график под оптимальное восприятие конкретного пользователя (см. рис. 1c). Ввод в расчеты размерных величин по идее должен существенно облегчить и ускорить создание расчетных проектов за счет, исключения переводных коэффициентов из формул, дополнительного контроля правильности формул (метры невозможно сложить с килограммами, грубо говоря), работы пользователя именно с теми единицами, к которым он привык, а не с теми, с которыми предписано работать (с мм ртутного столба, например, а не со «всех заколебавшими» паскалями[15]) по соображениям, никак не связанными с решаемой задачей. Но плохая документированность инструментов работы с размерными величинами и их локальность (см. выше) может не «облегчить и ускорить» этот процесс, а наоборот, усложнить и удлинить (затянуть) его. Из-за этого пользователи Mathcad и Maple часто вынуждены либо совсем «обезразмеривать» расчеты, переводя единицы измерения в разряд комментариев, либо освобождаться от размерностей на некоторых этапах расчетов. Так на рис. 1a можно избежать ошибки, вызвав сглаживающую функцию line по-другому line(Length/m, Mass/kg), а к ответу приписав (вернув) нужную размерность – b :* m и := k * m/kg.

«Обезразмеривать», точнее, наоборот – обвешивать единицами измерения («клин клином вышибают») приходится и так называемые эмпирические формулы, формулы, связывающие не физические величины, а конкретные единицы измерений (см. решение двух таких задач в среде Mathcad – рис. 1d и рис. 1e). К эмпирическим формулам применимо тоже правило, что и ко встроенным функциям, правильность работы которых с размерными аргументами вызывает сомнение (см. рис. 1a, например). При этом могут возникать курьезы, связанные с тем, что люди стали воспринимать вполне «физические» формулы с переводными коэффициентами как эмпирические. Типичный пример – формула для расчета удельного расхода условного топлива по кпд электростанции 123/кпд. Формула возвращает безразмерную величину, которую необходимо перемножить на г/кВт-ч при значении кпд, выраженных в абсолютных единицах (0.33, а не 33). В среде Mathcad такой формуле нужно будет вернуть первоначальный физический смысл, вспомнив, что теплотворная способность условного топлива равна 7000 ккал/кг.

Особо следует отметить поведение размерных величин в векторах и матрицах (массивах) Mathcad и Maple. «Массивные» (векторные и матричные) операторы и функции Mathcad в основном правильно работают с размерными величинами, но при этом сами массивы (вектора и матрицы) не могут хранить «разноразмерные» элементы – см. рис. 1b. В среде Maple массивы могут хранить такие элементы, но… – см. рис. 2b. Можно сказать, что пакет Mathcad более честно работает с векторами и матрицами, чем пакет Maple.

2. Естественность записи размерных величин

Главный «конек» Mathcad, во многом определивший его популярность, – это предельно удобный интерфейс пользователя, проявляющийся, в частности, в том, что Mathcad-документ почти ничем не отличается от документа, набранного в среде какого-либо текстового (Word, например) или научного (LaTeXa) редактора и лишенного неких условных (программистских) символов, не относящихся к сути решаемой задачи. Это положение полностью относится и к единицам измерения – в среде Mathcad физические величины отображаются в их естественном виде: 25 N, 40 cm2, 6250 Pa и т.д. – см. рис. 3. В среде Maple физические величины «обвешаны» дополнительными символами: 25*unit(N), 40 [cm^2], 6250 [Pa] и т.д. – см. рис. 4, мешающими видеть суть задачи и ее решение. (При работе с «натуральными», а не со «стандартными» единицами измерений лишних символов меньше, но они все же есть – см. рис. 4b). В среде Mathcad смена единицы измерения проходит незаметно для пользователя, вернее, «читателя» (рис. 3a): в Mathcad-документе не остается следов таких преобразований. В среде Maple для этой операции нужно «особое приглашение» функции convert – см. рис. 4a. Все это «утяжеляет» расчетный документ, «затеняет», физическую суть задачи.

Основной потребитель физматпакетов – это сфера образования[16]. А одна из основных «образовательных» ситуаций такая. Студент выполнил на компьютере расчетный проект (типовой, курсовой, дипломный, диссертационный) и передает его на проверку (на отзыв) преподавателю (рецензенту), который совсем не обязательно должен знать ту программную среду, в которой данный проект сделан. Всякие служебные слова[17] и символы, не относящиеся к сути решаемой задачи, мешают такой проверке, а в ряде случаев (чистое программирование) делает ее невозможной. Это положение полностью относится и к другой «образовательной» ситуации, которая становится все более и более частой, когда предмет изучается не по традиционным лекциям и учебникам, а через призму математических пакетов (физматпакетов), рабочие листы которых (worksheet) вставлены в электронные учебники или опубликованы в Internet (типичный пример – http://www.exponenta.ru/soft/Mathcad/learn/learn.asp

).

3. Что находится между числовой константой и единицей измерения

В среде Maple числовую константу и единичную физическую величину (m, кг, с и т.д.) может соединять только видимый (25*Unit(N) или 25*N, например) или невидимый (6250 [Pa]) знак умножения, причем в качестве первого сомножителя выступает числовая константа, а второго – единица измерения (см. выше) или размерность (6250 [Pressure], например). В среде Mathcad такого ограничения нет – пробел между числом и единицей измерения может означать не только умножение, но и более сложную функциональную зависимость: префиксный или постфиксный операторы и т.д.[18]. Это позволяет легко работать не только с абсолютными, но и с относительными шкалами измерений. На рис. 5 в качестве примера показано, как в среде Mathcad вводится значение температуры по шкале Цельсия и разность температур в градусах Цельсия. В первом случае (t1 := 90 ºC) пробел между числовой константой (90) и парой символов (ºC) означает не умножение, а вызов функции с именем ºC в виде постфиксного оператора x f, а во втором (Δ:= 90 ºC) – умножение[19]. Температура[20], одна из семи основных размерностей SI, имеет ту особенность, что с ней чаще работают не по абсолютной шкале (шкалы Кельвина и Ренкина), а по относительной (шкалы Цельсия и Фаренгейта[21]). Это может вносить путаницу в расчеты, которые ведет не совсем опытный пользователь. Представьте себе, что некое здание строится по чертежам, часть из которых размечена в метрах от центра Земли (шкала Кельвина), другая тоже от центра Земли, но в футах (шкала Ренкина), третья в метрах от кабинета шефа (шкала Цельсия), а четвертая в футах от уровня земли (шкала Фаренгейта). В среде Mathcad такую запутанную метрологическую ситуацию «спасают» префиксный и постфиксный операторы, а также невидимый символ на экране дисплея – см. рис. 6 (о невидимых символах – см. статью автора «Переменная-невидимка» http://twt.mpei.ac.ru/ochkov/Invisible/Index.htm). Пользовательские функции и константы, позволяющие работать с относительными температурными шкалами, можно скрыть. После этого Mathcad-документ примет максимально «естественный» вид – см. рис. 6a. Пользователю достаточно поменять в нем исходные данные (зеленые константы – см. в статье автора «Цвет в программах» http://twt.mpei.ac.ru/ochkov/Color_in_Program/index.htm), чтобы тут же получить новый ответ. Относительные шкалы измерений мы используем и при измерении давления, когда отмечаем эту величину относительно атмосферного, а не абсолютного давления[22]. «Относительность» можно отметить в такой базовой величине, как время: попытки найти «временной абсолютный нуль» предпринимались и с материалистической (Теория Начального Взрыва Вселенной) и теологической (Божественное Сотворение Мира) точек зрения. Пакет Maple хоть и имеет целых шесть встроенных температурных шкал (две абсолютные и четыре относительные), но он в относительных шкалах слегка «запутался» – см. см. рис. 7, из которого видно, что температура в среде Maple имеет некий двойственный смысл – это и температура (шкала) и разность температур (градус). А все из-за того, что между числовой константой и единицей температуры в среде Maple может быть только знак умножения: вот как в среде Maple можно ввести нормальную температуру человека t:=36.6*Unit(degC). В этом примере переменной t присваивается не значение температуры (шкала), а, скорее, разность температур между нулем Цельсия и 36.6 градусов Цельсия, которая, тем не менее, может быть выведена и в виде температуры. (Автор особое внимание уделяет температуре потому, что он в свое время намучился с этой физической величиной, участвуя в одном Internet-проекте, связанном с созданием для Mathcad[23] функций, возвращающих теплофизические свойства воды и водяного пара – WaterSteamPro™ – http://twt.mpei.ac.ru/orlov/watersteampro/ru). Такая же путаница заложена в пакет Maple и при работе с логарифмическими шкалами: в Maple встроены белы, децибелы и неперы[24], между которыми можно проводить пересчеты, но неясно как использовать эти единицы в практических расчетах. В среде Mathcad такие расчеты ведутся без особых проблем с опорой на инфиксный оператор, первый операнд которого числитель логарифма (измеряемая физическая величина), а второй – знаменатель логарифма (база логарифмической шкалы – см. рис. 8, на котором прямой и обратный пересчет ведется по одной формуле, включающей оператор обработки ошибок on error).

В метрологии (вернее, в русском языке) в традиционной паре число-единица измерения перестановка мест сомножителей (а то, что далеко не всегда сомножители, мы уже убедились выше) может менять результат (произведение). Одно дело сказать или написать пять метров, а другое метров пять. Такую перестановку, резко меняющую смысл (точность) замера, легко реализовать в среде Mathcad через префиксный оператор (см. рис. 8a).

Допустимость в среде Mathcad одноименных, но разных переменных позволяет решить такую трудную химико-метрологическую задачу, связанную с тем, что в SI есть только моли, но нет эквивалентов – см. рис. 8b (подробнее о химических единицах измерения – см. http://twt.mpei.ac.ru/ochkov/Chem_Units/Chem_Units.html).

4. Разделение переменных и единиц измерения

В среде Mathcad пользовательские переменные и переменные, за которыми прикреплены те или иные единицы измерения физических величин, «лежат в одной корзине» – они, ничем друг от друга не отличаются, если пользователь Mathcad намерено не захочет их разделить механизмом стилей переменных и констант (см. левый правый угол («девятку») на рис. 6 и рис. 8). Эту особенность Mathcad можно считать своеобразной платой за его внешнюю «естественность», о которой писалось в пункте 2. На рис. 9 показана типичная «метрологическая» ошибка, связанная с вольным или невольным переопределением переменной L (литр) и приводящая к ошибке в ответе: 1m2L вместо ожидаемых 1000 L. В среде Maple такое «безобразие» исключено (см. рис. 10) – там пользовательская переменная и L[25] и одноименная единица объема (вместимости) не смешиваются. Но за этого, как уже отмечалось выше, приходиться платить некоторым утяжелением документа: сравните L:= 100 cm или L:=100*unit(cm).

5. Встроенные и пользовательские системы измерений

В среде Mathcad четыре встроенные системы измерений (SI, MKS, CGS и U.S.)[26], отмеченные на рис. 1. В среде Maple возможно работать уже с восьмью встроенными системами (см. рис. 11). Кроме того, в среде Maple допустимо создавать пользовательские системы измерений (AddSystem). Но эту особенность Maple мы разбирать не будем, т.к. автора в первую очередь интересует проблема возврата единиц измерения (физических величин) в компьютерные инженерные расчеты. А инженерам хорошо бы не запутаться в существующих системах измерений – до создания новых руки не доходят. Тем не менее, следует отметить, что Maple очень пригодиться при теоретическом анализе метрологических проблем (пример: вывод формулы по размерностям переменных). Здесь, по-видимому, лежит некий водораздел между Mathcad и Maple в плане темы статьи – работа с размерными величинами и не только. Если Mathcad, в первую очередь, нацелен на решении практических задач инженерно-технических расчетов, то Maple – это инструмент теоретического анализа метрологических проблем. (В пакет Mathcad, как было уже отмечено ранее встроена символьная математика пакета Maple. Вот как в среде Mathcad может быть выведена формула математического маятника – зависимость периода колебания от длины нити и ускорения свободного падения – см. рис. 11a).

6. Новые физические величины

В среде Mathcad круг физических величин ограничен встроенными системами измерений (см. рис. 1). В среде Maple есть большое количество величин и единиц их измерения, формально не входящих ни в какие системы измерений. В Maple, наконец-то, встроена такая физическая, вернее, экономическая величина как стоимость[27] – см. рис. 12. В среде Mathcad экономические расчеты можно было вести только с «экспансией» одной из семи основных размерностей, которая в данном расчете не используется – канделы[28], например (рис. 13). Можно, конечно, на рис. 13 (18) записать руб := 1, и не трогать канделу, но… см. пункт 7. В Maple встроены единицы измерения информации (бит, байт и т.д.) и многое другое, что нужно в практических расчетах без оглядки на «закостенелые» системы измерений[29]. Разработчики Maple прикрепили именно те множители (Unit Prefixes) именно к тем единицам, к которым они «идут». Так в среду Maple встроены миллиметры, сантиметры, дециметры и все другие «узаконенные» пары. В среде Mathcad такого порядка нет: встроены, к примеру, киловольты и киломы, но нет мегапаскалей и прочее. Но в среде Mathcad допустимо убирать между сомножителями не только знак умножения, но и пробел, получая нужные составные пары: М:=106    МРа = 106 Ра и т.д.

7. Одноименные физические величины

В среде Maple решена проблема одноименных (по отношению к основным единицам) единиц измерения, но разных по своей физической сущности. «Энергетический» пример: в Mathcad и Maple встроены герцы (Hz) и беккерели (Bq). Герцами измеряют частоту, а беккерелями – радиоактивность[30] (число распадов за единицу времени). И та и другая единица измерения при сведении ее к основной дает секунду в минус первой степени[31]. Но в среде Maple, в отличие от Mathcad, это разные величины, отображающие различные физические явления[32]. По сути (по своей физической сути) в природе не семь[33], а бесконечное множество основных физических величин, подавляющая масса которых (бесконечность минус семь) считается безразмерной (условно-безразмерной). Пример – плоский угол, который измеряется либо в радианах (rad), либо в угловых градусах (deg) и которые можно попытаться… сложить с единицей, например. В среде Mathcad этот «фокус» проходит (рис. 14), а в среде Maple (рис. 15) – нет: там единица и радиан это разные физические величины (как, кстати, и герц и беккерель). Если развивать эту идею (угол – это размерная величина, которую нельзя складывать с безразмерной), то следует принять, что у тригонометрических функций может быть только размерный аргумент[34]. Разработчики Maple не стали ломать голову над этой метрологической проблемой и решили ее просто (рис. 16) – в тригонометрических функциях углы «незаметно» теряют свою размерность. Нет особой «угловой» логики и в среде Mathcad (рис. 17), где плоский угол – это безразмерная величина, а объемный угол (стерадиан) уже почему-то – размерная. (О плоский угол очень часто «спотыкаются» пользователи не только компьютеров, но и простых калькуляторов, подсовывая тригонометрическим функциям «неправильную» единицу угла – градус вместо радиана, например).

Заключение

Компьютеры сыграли с инженерно-техническими расчетами злую шутку – из расчетов были выдавлены единицы измерения. В настоящее время мы наблюдаем некий «ренессанс» – в компьютерных расчетах возрождаются физические величины. Пионером в этом процессе был Mathcad, а сейчас эту работу «подхватил» и Maple[35]. Но в том и другом пакете этот процесс не закончен. Многие функции и операторы требуют («ждут»), когда разработчики научат их правильно «работать» с физическими величинами. А пока в таком ожидании находятся сами пользователи этих пакетов.

Послесловие

Данная статья является неким «экстрактом» книги «Физические и экономические величины в Mathcad и Maple» (http://twt.mpei.ac.ru/ochkov/Units/Forword_book.htm), вышедшей в издательстве «Финансы и статистика» (www.finstat.ru). История появления этой книги такова. Автору часто доводиться разбирать студенческие примеры выполнения в среде Mathcad. При этом нередко физическая или технико-экономическая задача решалась без использования размерных величин, что почти всегда чревато ошибками[36]. Кроме того, отказ от единиц измерения не способствует, мягко говоря, пониманию сути решаемой задач. Причины отказа от работы с единицами измерений такие: студенты либо не знают, как с ними работать, либо сталкиваются с некими трудностями, заставляющими изымать из почти законченного расчета единицы измерений. Автор собрал коллекцию таких «трудностей», дополнил ее решениями и просто рассказом о технологии «размерных» расчетов в среде Mathcad/Maple.

Приложение
Встроенные единицы измерения
Mathcad и Maple

Dimension

Unit

Mathcad (115 шт.)

Maple (569 шт.)

Активность (activity)

Bq

Время (time)

day, hr, min, s, sec & yr

Wink, shake, svedberg, blink, second (s), minute (m), hour (h), day (d), pentad, week (wk), fortnight, month (mo), lune, lunour, year (yr), biennium, triennium, quadrennium, quinquennium, decade, century, millenium & eon

Вязкость динамическая (dynamic viscosity)

poise

Poise, reyn & rhe

Вязкость кинематическая (cinematic viscosity)

stokes

Stokes (St)

Давление (pressure)

atm, in_Hg, Pa, psi & torr

bar, atmosphere (atm, atmos, at), barye, pieze, vac, pound_per_square_inch (psi), meter_mercury (mHg), foot_mercury (ftHg), inch_mercury (inHg), meter_water (mH2O), foot_water (ftH2O) & inch_water (inH2O)

Деньги (currency)

USD

Длина (length)

cm, ft, in, km, m, mi, mm & yd

meter (m), bohr (a0), mil, line, barleycorn, digit, inch (in), nail, palm, hand, finger, span, foot (ft), cubit, step, yard (yd), ell, pace, fathom, rod, pole, perch, furlong, mile, league, link, chain, cable, league, point, pica, astronomical_unit (AU, UA), parsec, light_year (ly), hubble, spat, fermi, micron, bicron, x_unit, microinch, calibre, marathon & quadrant

Доза (dose)

Gy & Sv

Емкость (capacitance)

F, farad, mF, nF, pF & statfarad

farad (F), abfarad (abF), statfarad (statF) & jar

Заряд (charge)

С, coul & statcoul

Coulomb (С), abcoulomb (abC), statcoulomb (statC), electron (e) & franklin (f)

Индуктивность (inductance)

H, henry, mH, mH & stathenry

henry (H), abhenry (abH) & stathenry (statH)

Индукция магнитного поля (magnetic flux density)

gauss, stattesla, T & tesla

Квант действия (action)

planck & h_bar

Количество вещества (Substance)

mole (mol)

mole (mol)

Количество информации, информация (Amount of information)

bit, crumb, nibble, byte, nickel, word, double_word, gawble & block,

Линейная массовая плотность (linear mass density)

Denier, drex & tex

Линейная частота (linear frequency)

abbe

Магнитный поток (magnetic flux)

statweber, Wb & weber

weber (Wb), abweber (abWb), statweber (statWb), maxwell (Mx) & unit_pole

Масса (mass)

gm, kg, lb, mg, oz, slug, ton & tonne

gram (g), tonne (t), electron_mass (em) atomic_mass_unit (amu, u), grain (gr), drachm (dr), ounce (oz), pound (lb, lbs), clove, stone, quarter, cental, quintal, hundredweight (cwt), wey, kip, ton, pennyweight (dwt), scruple, ton (AT @), carat (c, ct), millier, mite, mancus, mast, slug, hyl, crith & jupiter

Молярный электрический заряд (molar electric charge)

faraday

Момент дипольный электрический (electric dipole moment)

debye (D)

Мощность (power)

hp[37][22], kW, W & watt

watt (W), poncelet, donkeypower, horsepower (hp), ton, abwatt (abW) & statwatt (statW)

Напряженность магнитного поля (magnetic field strange)

Oe & oersted

oersted (Oe)

Облучение (exposure)

roentgen (R)

Обратная длина (Inverse length)

diopter & kayser

Объем (volume)

fl_oz, gal, galUK, L, liter & mL

liter (L, l), stere, gallon (gal), drop, minim, drachm, ounce, tablespoon (tbsp, Tsp, tblsp), dessertspoon (dsp), teaspoon (tsp), pinch, dash, gill, cup, pint, fifth, quart, pottle, peck, bucket, bushel, strike, bag, sack, coombe, seam, butt, last, ton, register, barrel, bulk & barge

Освещенность (illuminosity)

lx

Плотность магнитного потока (magnetic flux density)

tesla (T), abtesla (abT), stattesla (statT) gamma & gauss (G)

Площадь (area)

acre & hectare

are (a), hectare (ha), centare (ca), barn (b), shed, mil, rood, acre, lot, section & township

Поверхностная плотность энергии (surface energy density)

Langley & jansky

Поглощенная доза (absorbed dose)

gray (Gr) & rad (rd)

Потенциал (potential)

kV, KV, mV, statvolt, V & volt

Volt (V), abvolt (abV) & statvolt (statV)

Поток молярный (Molar Flow)

katal (kat)

Прирост логарифмический (Logarithmic Gain)

B, neper (Np) & bel (B)

Проводимость (conductance)

mho, S, siemens & statsiemens

siemens (S), absiemens (abS) & statsiemens (statS)

Проницаемость (permeability)

perm

Радиоактивность (radioactivity)

becquerel (Bq), curie (Ci) & rutherford (Rd)

Расход (volume flow)

gallon_per_minute (gpm) & cubic_foot_per_minute (cfm)

Расход топлива (fuel consumption)

mile_per_gallon (mpg)

Световой поток

Im

 

Сила (force)

dyne, kgf, lbf, N & Newton

newton (N), gramforce (gf), pond, sthene, dyne (dyn), ounceforce (ozf), poundforce (lbf), tonforce (tonf), kipf & poundal

Сила света (luminosity), свет (light)

cd

candela (cd), carcel, Hefner_unit (HK), lumen (lm), nit, lambert (Lb), footlambert (ftLb), skot, stilb, apostilb (asb), lux (lx), footcandle, nox & phot

Скорость (speed, velocity)

kph & mph

Kyne, mach (M) & mile_per_hour (mph)

Скорость передачи информации (Speed of transfer of information)

bit_per_second (bps)

Сопротивление (resistance)

KW, MW, ohm, statohm & W

ohm (W), abohm (abW) & statohm (statW)

Сопротивление удельное (electric receptivity)

preece

Температура (temperature)

K & R

kelvin (K), Celsius (degC), Rankine (degR), Fahrenheit (degF), Reaumur (degRe) & centigrade (degc)

Теплоизоляция (heat insulation)

Clo, Rvalue & tog

Коэффициент теплопередачи (heat transfer)

Ufactor

Ток (current)

A, amp, KA, mA, mA & statamp

ampere (A), abampere (abA), statampere (statA) & biot gilbert (f)

Угловая скорость (Angular Speed)

revolution_per_minute (rpm)

Угол (angular)

deg & rad

Revolution (rev), angle (°), gon, grade, mil, circle, semicircle, quadrant, sign, point & hour

Угол телесный (Solid Angle)

str

steradian (sr), sphere & hemisphere

Ускорение (acceleration)

g (ускорение свободного падения)

acceleration_of_free_fall (gn) & Galileo (Gal)

Частота (frequency)

GHz, Hz, Hza, kHz, KHz & MHz

hertz (Hz) & fresnel (f)

Эквивалентная доза излучения (dose equivalent)

sievert (Sv) & rem

Энергия (energy)

BTU (британская тепловая единица[38][23]), cal, erg, J, joule & kcal

Joule (J), hartree (E0), erg, watt_hour (Wh), ton, calorie (cal), Calorie (Cal), British_thermal_unit (Btu), therm (te), quad, Q_unit & Celsius_heat_unit (Chu)

Internet-конвертор единиц измерения – www.convert-me.com



[1] О полном отказе от работы с языками программирования речь, конечно, не идет. Тут можно говорить о совместной работе – расчетная методика разрабатывается и отлаживается в среде какого-либо математического пакета, а затем отлаженные формулы и алгоритмы компилируются с помощью языка программирования.

[2] Разработка фирмы MathSoft Engineering & Education. Inc, (www.mathsoft.com)

[3] Разработка фирмы Waterloo Maple. Inc, (www.maplesoft.com)

[4] Ввод в эти матпакеты (математические пакеты) инструментов работы с размерными величинами превратил их в физматпакеты (физико-математические пакеты) не только по содержанию (физические задачи уже давно решаются на компьютере), но и по форме. С физическими величинами может работать и Derive (http://education.ti.com/product/software/derive/features/features.html), но автор этот пакет знает плохо.

[5] Понятия «плюс-минус» не совсем адекватны понятиям «хорошо-плохо», «достоинство-недостаток». Все относительно – плюсы при определенных условиях переходят в минусы и наоборот.

[6] Мы волей-неволей будем касаться и общих моментов работы в средах Mathcad и Maple. Автору уже доводилось сравнивать эти пакеты – см. главу «От Mathcad к Maple» в книге «Mathcad для студентов и инженеров» – http://twt.mpei.ac.ru/ochkov/mc8Pro.book/index.htm

[7] …которое, естественно, можно нарушить.

[8] В среде Maple она называется FPS – фут (Foot), фунт (Pound), секунда (Second). В этом отличии (FPS или U.S.) можно узреть не только метрологический, но и политический резон: родина Mathcad – США, а Maple – Канада.

[9] В пакет Mathcad встроена символьная математика из Maple.

[10] Размерные величины в Mathcad и Maple базируются на трехуровневой иерархии – Система Единиц, Физическая величина (Размерность) и Единица измерения.

[11] Короткие подсказки (Tips), появляющиеся при запуске Mathcad. Как правило, пользователи эту опцию отключают.

[12] Задача, честно говоря, очень трудоемкая. Никто не будет переделывать функции, созданные десятилетия назад – их нужно создавать и тестировать заново. Но такая работа ведется. В Mathcad 11, например, подправлены функции округления чисел (round, floor и др.) так, чтобы они правильно работали и с размерными переменными (см. рис. 4f).

[13] Так делается в среде Mathcad по отношению к новым функциям. Например, финансовые функции, введенные в Mathcad 2000, выдают сообщения об ошибке, если им подсовывают размерные аргументы, – искусственно созданные единицы стоимости (см. далее рис. 13). Услуга эта часто здесь оказывается «медвежьей», т.к. размерные величины без сбоев но «недокументированно» работают во многих встроенных функциях, о чем, по-видимому, не знают даже создатели этих функций.

[14] Автор придерживается того мнения, что учить студентов технических вузов дифференциальному исчислению на абстрактных, а не сугубо «физических» примерах – это прививать им отвращение к математике, которое очень долго (а в ряде случаев и никогда) не преодолеют дипломированные инженеры. Такое же примерно отвращение неверным содержанием и методикой прививают школьникам к литературе учителя этого предмета (изящная словесность!!!).

[15] Паскаль – это очень неудачная основная единица давления. Трудно припомнить научно-техническую область, где бы эта единица использовалась без множителей.

[16] Этот факт отразился, например, на истории изменения названия фирмы-владельца Mathcad. Раньше она называлась MathSoft, Inc., а теперь – MathSoft Engineering & Education, Inc.

[17] А они, в основном, прописаны по-английски, что еще более усугубляет процесс проверки неанглоязычным преподавателем.

[18] Пробел в физических величинах может означать и сложение: 10 ч 20 мин. Тут, кстати говоря, на месте пробела иногда ставят и знак деления (10:20), нагружая его совсем другой функцией – тем же сложением. Еще один пример – квт-час. Здесь минус (дефис) опять же играет роль умножения. В среде Mathcad все эти «человеческие» условности реализуются довольно просто, а в среде Maple – нет.

[19] Здесь следовало бы написать Δt := 90  ºC или Δ:= 90 x ºC.

[20] Это самая «любимая» автором физическая величина из «великолепной семерки SI» – автор по образованию инженер-теплоэнергетик и работает в Московском энергетическом институте (www.mpei.ac.ru). Отсюда и такой интерес к температуре, являющейся «главной» физической величиной в термодинамике и теплопередаче – базовых научных дисциплин тепловой энергетики.

[21] К этим двум относительным температурным шкалам в среде Maple добавлены еще две – шкала Реомюра и так называемая стоградусная шкала (устаревшая шкала Цельсия).

[22] Такое давление показывают манометры, установленные на всасывающей и напорной линиях насосов. Если предположить, что эти два манометра окружают два разных атмосферных давления, а сами манометры отградуированы по разным шкалам (atm и psi, например), то это будет полностью воспроизводить метрологическую задачу, решаемую на рис. 6.

[23] …И для других программных сред (Excel, языки программирования). Пакет Mathcad выделен потому, что в нем полностью реализован механизм размерных величин, в том числе и «капризной» температуры.

[24] Напомним, что бел – это десятичный логарифм отношения двух физических величин одной размерности, непер – натуральный логарифм этого отношения, а децибел – одна десятая бела. Как правило, эти единицы (особенно, децибел) связывают с силой звука. Но логарифмические шкалы можно приложить к любым физическим величинам.

[25] Можно, конечно, вместо пользовательской переменной L ввести в расчет переменную L1, например. Решение проблемы лежит через использование механизма стилей переменных.

[26] Здесь, честно говоря, можно было обойтись двумя системами SI и U.S. Системы МКS и CGS оставлены в Mathcad для совместимости со старыми версиями пакета. Так в DOS-версиях Mathcad можно было работать только с длинной, массой и временем.

[27] Мало кого, например, интересует процесс производства электроэнергии (давление пара в котле, скорость вращения ротора паровой турбины и т.д.), но всех касается такая политико-технико-экономическая величина, как стоимость электроэнергии – коп/квт-час.

[28] Кандела, честно говоря, в SI втянута «за уши» – для того, чтобы довести число основных физических величин до семи – до «красивого» числа.

[29] По-видимому, вовлечение единиц измерения в компьютерные расчеты потребует пересмотра «Соглашения о Мерах и Весах», многие положения которых носят печать некоего сговора в более-менее положительным аспекте этого слова. Теперь нужно сговариваться по-новому, учитывая возврат единиц измерения в компьютерные расчеты.

[30] Антуан Анри Беккерель (1852-1908) вместе с супругами Кюри получил Нобелевскую премию за открытие радиоактивности.

[31] Есть такая «метрологическая» шутка. Если ток в розетку поступает от обычной электростанции, то его частоту измеряют в герцах, а если от атомной – то в беккерелях.

[32] Ведение компьютерных расчетов с использованием единиц измерения предотвращает многие ошибки некорректной работы с размерностями – нельзя, например, сложить метр с килограммом.

[33] Семь потому, что это… красивое число. В данной статье семь пунктов, хотя на самом деле отличий между Mathcad и Maple в использовании размерных величин, конечно, не семь, а намного больше.

[34] В этом случае арксинус, например, должен возвращать сугубо размерное число (rad или 30 deg, например). В связи с этим встает вопрос, что делать, если аргумент функции arcsin по модулю окажется больше единице. Будет возвращено комплексное размерное число. Можно ли с ним работать!? Что такое мнимый килограмм или метр, например!?

[35] Если этот процесс не «подхватит» MatLab, то он может поотстать в гонке физматпакетов. Правда в составе MatLab есть пакет Power System Blockset (моделирование электроэнергетических систем в среде утилиты Simulink), в котором доступны следующие единицы: время (s), длина (m), масса (kg), электрический ток (A), а также некоторые составные единицы (J, V, Hr, W, Ω, H, F и N).

[36] Типичная ошибка: в одном месте расчета фигурируют атмосферы, а в другом – бары. Вот вам и ошибка, которую трудно выявить из-за того, что две эти единицы давления близки по своему значению (бары – это атмосферы SI).