Работа в среде Mathcad
Работа в среде Mathcad
Сейчас
никого не удивляет тот факт, что не только аспиранты, инженеры и студенты, но
даже и школьники решают свои задачи на компьютере. Удивление или, по крайней
мере, вопросы может вызывать лишь выбор конкретной программной среды для этих
целей. Ответ на вопрос, почему для расчетов все чаще и чаще прибегают к услугам
Mathcad, может быть и такой: Mathcad обладает уникальной возможностью[1]
[1] оперировать не просто величинами, а
физическими величинами. Пакет Mathcad можно назвать не просто математическим, а
физико-математическим пакетом.
Работа
в среде Mathcad – эта третья (и пока высшая) ступень в использовании
вычислительной техники при решении физико-математических,
инженерно-технических, а также учебных задач – школьных и вузовских. Две
предыдущие ступени – это работа с машинными кодами (c ассемблером, например) и
с языками программирования (BASIC, Pascal, C, fortran и т.д.). Эти две
технологии научно-технических расчетов (машинные коды и языки программирования)
сыграли с этими расчетами злую шутку: из расчетов были «выдавлены» размерности
физических величин и единицы их измерения – метры, килограммы, секунды… Ручное
решение физической задачи (школьной или вузовской задачи по физике, если
говорить конкретнее), как правило, требовало и требует оперирования сугубо
размерными величинами[2]
[2]. Автоматизация таких расчетов –
написание программ для компьютера исключает из задачи ее «физику»: переменные
программы хранят только числовые значения, а соответствующие им единицы
измерений программист должен «держать в уме». Из-за этого при переводе расчета
на язык ЭВМ необходимо было придерживаться строгого правила – все физические величины
должны быть в одной системе единиц. Кроме того, они должны быть без множителей
мили, мега и т.д. Это жесткое правило вызывало и вызывает ряд неудобств,
основные из которых следующие:
1.
Международная система SI[3]
[3] хоть и широко распространена в мире,
но не является и, по-видимому, никогда не будет являться единственной. США,
например, – страна, задающая тон во многих областях науки и техники, использует
британскую систему измерений (в среде Mathcad эта система называется U.S.[4]
[4]). Базирование программы на какой-либо
одной системе единиц мешает естественному процессу глобального обмена идеями,
получившему новое ускорение в эпоху Internet[5]
[5].
2.
Процесс создания программы немыслим без ее отладки, а основной инструмент
отладки – это вывод на дисплей промежуточных результатов, анализ которых
позволяет локализовать и устранить ошибку, если она была допущена при подборе
формул и/или при написании самой программы. А здесь важно не только вывести
значение нужной физической величины, но и выразить его в нужных единицах нужной
системы измерения с нужными множителями (мега, кило, милли и т.д. – см. таблицу
??? в части 3 книги). Система SI при всех ее достоинствах внедрялась в виде
«подарочного набора». Часть единиц измерения (килограммы, метры, секунды)
использовались и используются без каких-либо затруднений, другие же
(«нагрузка») так и не прижились в качестве доминирующих (основных) единиц. В
теплоэнергетике[6]
[6], например, давление пара в котле чаще
всего измеряют и выражают в атмосферах[7]
[7], а давление в конденсаторе – в
миллиметрах ртутного столба. «Узаконенная» («главная») единица измерения давления
(паскаль – ньютон на квадратный метр) оказалась крайне неудобной. Трудно
припомнить научно-техническую область, где паскали применялись бы в чистом виде
– без масштабирующих множителей[8]
[8] (бары, килопаскали, мегапаскали и
т.д.). Дело в том, что «прижившаяся» единица измерения, как правило, связана с
«жизнью» – с конкретным физическим явлением: атмосфера, как следует из самого
названия – это давление воздуха на уровне моря (примерное давление – см. рис.
1.24 и рис. 1.34), а миллиметры ртутного столба напоминают нам об экспериментах
Э. Торричелли («торричеллева пустота»; в среде Mathcad torr – это и есть миллиметр
ртутного столба). В теплоэнергетике исключение «внесистемных» атмосфер и
миллиметров ртутного столба – замена их на паскали чревата не просто
неудобствами, но серьезными сбоями в работе, связанными, например, с тем, что
оператор, управляющий энергоблоком[9]
[9], будет неправильно интерпретировать
показания манометров, проградуированных в «правильных» единицах давления.
3.
В создаваемые программы приходиться вставлять формулы, выведенные не только в
результате теоретического анализа проблемы (F=m g – см. анекдот в эпиграфе, E=m
c2, e=m v2/2[10]
[10] и т.д.), но и формулы, полученные
после статистической обработки экспериментальных данных. Коэффициенты таких
формул (см., например, рис. 1.32), как правило, жестко привязаны к той или иной
системе единиц измерения и нередко требуют пересчета для использования в
программе. Это может вносить дополнительные погрешности и быть причиной ошибок.
Одновременно
с выходом книги в свет появится и ее Internet-версия (см.
http://twt.mpei.ac.ru/ochkov/unit/index.htm). Это наложило отпечаток на
оформление текста, в котором выделены гиперссылки: см. рис. 1.3, см. ниже, см.
сноску 3 и т.д. Работая с бумажными вариантом книги, читатель, встретив такую
гиперссылку, должен «вручную» перейти на нужную страницу. В Internet-версии
переход на новое место и возврат на старое (с гиперссылкой) осуществляется
намного проще – стоит только щелкнуть мышкой по гиперссылке. В Internet-версию
автор будет вносить изменения и дополнения, которые читатели, автор надеется,
будут послать по адресу ochkov@twt.mpei.ac.ru.
Исключение
единиц измерения физических величин из расчетов на компьютере сказалось и на
работе в среде Mathcad. Многие неопытные пользователи примерно так начинают
формировать Mathcad-документ записывая размерность введенной величины в виде
комментария, а не в виде множителя у числовой константы и отключая тем самым
размерность физических величин из дальнейших расчетов. Если вспомнить язык
BASIC, например, то там вышеописанный фрагмент расчета будет выглядеть так: P =
20: Rem Давление в МПа. Здесь также единицы измерения записываются в
комментарии (в ремарку – Rem). Развивая алгоритм, программист может забыть, что
давление у него в паскалях, а не в барах, например. Вот вам и ошибка.
Механизм
работы с единицами измерений физических величин позволяет в среде Mathcad:
вводить исходные данные в нужной системе измерений, в нужных единицах с нужными
множителями (кило, мили и т.д.);
вести контроль размерностей в формулах, по которым проводятся расчеты (не
складывать килограммы с метрами, например)[11]
[11];
выводить рассчитанные величины в нужной системе и в нужных единицах измерений,
использовать удобный масштаб осей графиков и т.д. и т.п.
Один
из путей решения проблемы единиц измерения – это отказ от размерных величин и
переход к использованию безразмерных чисел, хранящих количественную оценку тех
или иных физических явлений: число Рейнольдса[12]
[12],
число Нуссельта, число Шмидта и т.д. (см. таблицу ??? в третьей части книги).
Когда мы говорим, что давление в котле равно 50 атмосферам, то мы фактически
оперируем не размерной (давление), безразмерной величиной – давление в котле в
50 раз выше атмосферного. Еще более радикальный путь – переход от числовых
характеристик к качественным оценкам. Можно сказать, что давление в котле равно
стольким–то атмосферам, а можно сказать, что давление нормальное (низкое,
высокое и т.д.), и построить автоматизированную систему управления
энергоблоком, основанную на лингвистических (экспертных) оценках и опирающуюся
на теорию нечетких множеств[13]
[13].
Пакет
Mathcad полностью поддерживает математику работы с размерными переменными, о
чем и будет рассказано ниже на несложных примерах.
Список литературы
Для
подготовки данной работы были использованы материалы с сайта http://nota.triwe.net/
[1]
[1] Эта уникальность не совсем абсолютная. С
размерными величинами может работать и другой популярный математический пакет Derive.
[2]
[2] Тут автору вспоминаются студенческие
практические занятия по теплопередаче, когда приходилось вести расчеты по
довольно сложным «размерным» формулам (см., например, рис. 2.18). Единственным
средством автоматизации таких расчетов в те времена была логарифмическая
линейка. Сам же процесс расчета разбивался на три этапа: логарифмическая
линейка выдавала мантиссу ответа, порядок же ответа и его размерность
приходилось определять «вручную» – без каких–либо подручных цифровых или
аналоговых вычислительных устройств. Из–за этого семинары по теплопередаче
превращались в занятия… по технике счета и метрологии: на разбор «физики»
задачи времени почти не оставалось. Появившиеся вскоре электронные калькуляторы
и вычислительные машины (ЭВМ) стали выдавать ответ, содержащий также и порядок
числа. Но единицы измерений по-прежнему оставались «за бортом» процесса
автоматизации расчетов.
[3]
[3] Здесь и далее мы будем писать SI, а не СИ, т.к. вторая
аббревиатура в компьютерной литературе ассоциируется не с международной
системой единиц, а с языком программирования.
[4]
[4] Эту аббревиатуру мы будем в дальнейшем
использовать для обозначения британской систем единиц.
[5]
[5] Из среды Mathcad можно, например, выйти на Internet-форум под названием Collaboratory, где помещаются
не только вопросы и ответы, но и Mathcad-документы с решением тех или иных задач по различным
областям науки и техники. Адрес форума – http://collab.mathsoft.com/~mathcad2000.
[6]
[6] Автор – преподаватель Московского
энергетического института.
[7]
[7] Этот факт зафиксирован, например, в
маркировках паровых турбин: Т-100-130 (теплофикационная, электрической
мощностью 100 МВт, давление острого пара 130 атм), К-300-240 (конденсационная,
300 МВт, 240 атм). Кроме того, на многих ТЭЦ до сих пор еще стоят старые
манометры, градуированные в атмосферах.
[8]
[8] В семидесятые годы были попытки давать в
прогнозах погоды атмосферное давление не в привычных, но «неправильных»
миллиметрах ртутного столба,а в «правильных» гектопаскалях. Это вызвало
многочисленные протесты. Еще бы! Гипертоники могли пропустить прием лекарств,
неверно поняв прогноз погоды. Потом стали называть давление и в гектапаскалях и
в мм рт. ст., а потом все-таки от гектапаскалей отказались.
[9]
[9] Управление энергоблоком, конечно,
автоматизировано, но за человеком всегда остается право вмешиваться в работу.
[10]
[10] Формула для расчета кинетической энергии
e
«заложена» в такой анекдот, дополняющий до трех «коллекцию» эпиграфа.
«Студент–физик вывалился из электрички и ударился головой в придорожный столб.
Три дня врачи боролись за его жизнь, а он беспрестанно бормотал: «Хорошо, что
пополам, хорошо, что пополам…». При выписке из больницы врачи спросили у студента,
что значит «пополам». «Эм ве квадрат пополам» – таков был ответ».
[11]
[11] Учет размерности величин часто позволяет
вывести нужную формулу. Частота колебания маятника, например, зависит только от
длины маятника (математического, конечно) и ускорения свободного падения. Из
этой посылки просто вывести нужную формулу.
[12]
[12] Характер течения жидкости в трубе
(турбулентность-ламинарность) можно оценит по трем размерным параметрам: скорость,
диаметр и вязкость, а можно по одному безразмерному – по числу Рейнольдса.
[13]
[13] Понятие «нормальное» давление – это нечеткое
множество значений. Конкретное значение давления принадлежит этому множеству с
определенной степенью вероятности, что описывается соответствующей функцией
принадлежности (см. статью автора «Mathcad и теория нечетких множеств» – http://twt.mpei.ac.ru/ochkov/F_sets.htm).