Работа с градусами Цельсия в старых версиях Mathcad

Рекомендации по работе с единицами измерения физических величин, отсутствующих в списке встроенных в Mathcad. Здесь нет ничего сложного: пользовательские единицы измерений привязываются к встроенным через соответствующие множители (MPa := 106 Pa и т.д.). Но это правило нельзя применить к температуре. Дело в том, что существует два понятия, относящиеся этой физической величине, – единица измерения температуры (градус Кельвина, или просто кельвин, градус Цельсия, градус Фаренгейта и т.д.) и шкала измерения температуры (шкала Кельвина, шкала Цельсия, шкала Фаренгейта и т.д.).

Шкала Цельсия (или Фаренгейта, если говорить о британской системе измерений) – внесистемная шкала, которая, тем не менее, широко используется для отображения значения температуры. Однако в научно-технических расчетах, как правило, оперируют температурой, выраженной по абсолютной шкале Кельвина (или Ренкина в британской системе измерений). Формулы перевода температуры из одной шкалы в другую довольно просты.

На рисунке показано одно из решений этой проблемы на примере простой задачи – даны две температуры: необходимо найти разницу между ними. Понятно, что это не арифметическая, а скорее метрологическая задача: все величины здесь имеют размерность температуры, причем пользователь вправе вводить и выводить значение температур в любой из четырех единиц измерения и шкалах: градусы (шкалы) Кельвина, Ренкина, Цельсия и Фаренгейта. Если с градусами (шкалами) Кельвина и Ренкина проблем нет (они встроены в Mathcad: = 1.8 K), то в отношении градусов (шкал) Цельсия и Фаренгейта приходится идти на некоторые хитрости, составляющие суть совета.

Рисунок

В расчет вводятся восемь объектов с именами °C и °F:

·        две функции с именем °C (у первой °C(t) := (t+273.15) K стиль – Variables, а у второй °C(t) := (T/K-273.15)Units 1, причем шрифт имени второй функции окрашен в белый цвет: она невидима на экране дисплея);

·        две константы с именем °C (у первой °C := 1 стиль – Units 2, а у второй °C := KUnits 3);

·        две функции с именем °F (у первой °F(t) := (t+459.67) R стиль – Variables, а у второй °F(T) := (T-459.67)Units 1, причем шрифт имени второй функции имеет белый к этой физической величине: она невидима на экране дисплея);

·        две константы с именем °F (у первой °F := 1 стиль – Units 2, а у второй °F := RUnits 3).

Имена у объектов совпадают, но это разные объекты, т.к. у них разные стили (Variably, User 1, User 2 и User 3).

При работе с температурой возникают три ситуации, правильно отреагировать на которые помогут вышеописанные функции и константы:

Ситуация 1. В расчет необходимо ввести значение температуры по шкале Цельсия (или Фаренгейта). Для этого первая функция °С (или °F) со стилем Variables вызывается в виде постфиксного оператора: t1 := 0 °C (или t2 := 212 °F). При этом переменной t1 (или t2) присваивается значение температуры по абсолютной шкале измерений.

Ситуация 2. Необходимо вывести значение температуры по шкале Цельсия (или Фаренгейта). Для этого в операторе «=» выводимую на печать переменную нужно сделать операндом префиксного оператора, имя (символ) которого °С (или °F) – вторая функция из определенных ранее: °F t1 = 32 (или °С t2 = 100). Если при этом имя функции сделать невидимым, а к числовой константе в ответе припечатать первую константу пользователя °F (или °С), то иллюзия вывода значений абсолютной температуры по относительной шкале будет полная:  t1 = 50 °F и   t2 = 100 °С.

Ситуация 3. Необходимо вывести значение разности температур: t2t1, например, как на рисунке. Здесь можно применить обычное правило Mathcad замены единицы измерения К (или R) на °С (или °F) – на вторую определенную нами константу.

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