Смекни!
smekni.com

Решение инженерно-технических задач в среде Mathcad (стр. 1 из 3)

Математический пакет Mathcad [23, 42, 44] позволяет специалистам в конкретной научно-технической области быстро освоить работу на компьютере и реализовать на них математические модели, не вдаваясь в тонкости программирования. Mathcad – это зарегистрированная торговая марка фирмы MathSoft, Inc. (http://www.mathsoft.com), представляющая собой сокращение английской фразы: MathematicalComputerAidedDesign – математическое проектирование с помощью компьютера.

Ниже приведены три примера решения типовых задач теплоэнергетики [68], которые дают представления об особенностях работы в среде Mathcad.

Задача 1. Расчет термодинамических свойств воды и водяного пара. Ниже представлено формирование функции пользователя vw(p), предназначенной для определения удельного объема кипящей воды на линии насыщения (vw) от давления (p), и функции hss(T, p), предназначенной для определения удельной энтальпии перегретого пара (hss) от температуры (T) и давления (p).

Расчет удельного объема кипящей воды на линии насыщения сводится к интерполяции (здесь задействована встроенная Mathcad-функция interp) кубическими сплайнами (cspline) табличных данных, хранящихся в двух векторах: P – табличные значения давления и V – табличные значения удельного объема. Элементы векторов – величины размерные: давление измеряется в мегапаскалях (106Pa), а удельный объем – в литрах на килограмм (m3/1000kg). В векторах P и V (они транспонируются из векторов-строк в вектора-столбцы) показаны только крайние элементы (далее будут показаны экраны дисплея, отображающие работу в среде Mathcad):

Интерполяция сплайном для определения удельного объема кипящей воды ведется в диапазоне давлений от 611 Па до 22,088 МПа. Функция error отслеживает значение аргумента p, прерывает выполнение вычислительной процедуры и выдает пользовательское сообщение об ошибке (“Давление низкое” или “Давление высокое”), если значение аргумента не попадает в оговоренный диапазон (эту работу выполняет оператор if).

Созданную функцию с одним аргументом можно вызвать в традиционном виде (функция), а также в виде префиксного и постфиксного операторов.

При этом в расчетах возможны различные размерности давления, объема и массы (здесь kgf – килограмм силы, galUK – британский галлон, lb – фунт и lbf – фунт силы и ft – фут). Далее представлено решение обратной задачи через встроенную Mathcad-функцию root (поиск корня уравнения) – определение давления при заданном значении удельного объема кипящей воды.

Расчет удельной энтальпии перегретого пара ведется также через кубический сплайн, но уже двухмерной интерполяцией. Табличные значения энтропии (килоджоули на килограмм) заносятся в матрицу M, «боковик» которой (без первого элемента) значения температуры (градусы Цельсия), а «шапка» – давления (мегапаскали). Далее эти значения с помощью встроенной функции submatrix разносятся по матрицам TP (у нее два столбца и 18 строк) и M (квадратная матрица с порядком 18). Так достигается компромисс между требованиями наглядного представления табличных данных и спецификой двумерной сплан-интерполяции в среде Mathcad.

К пользовательским сообщениям об ошибках ввода неверных значений аргументов (температура и давление пара) добавлено новое – “Ошибка: измените p и/или T”. Ошибка возникает в том случае, если рассчитанное значение энтальпии окажется меньше наименьшего табличного значения (1930,8 кДж/кг), что может случиться на границах матрицы H, где вместо отсутствующих термодинамических табличных данных записано: -1.

Пользовательскую функцию hss(T, p) с двумя аргументами можно вызывать в традиционной форме (функция), а также инфиксным и древовидным оператором.

Аналогичным образом построены и другие функции термодинамических свойств воды и водяного пара: удельная энтальпия кипящей воды на линии насыщения hw(p), удельная энтальпия сухого пара на линии насыщения hs(p), удельная энтропия кипящей воды на линии насыщения sw(p), удельная энтропия сухого пара на линии насыщения ss(p), удельная энтропия перегретого пара sss(T, p) и др. Соответствующий самораскрывающийся архивный файл с именем WaterSteamPro.exe хранится на FTP-cервере по Internet-адресу: http://twt.mpei.ac.ru/orlov/watersteampro/. Этот файл можно по сети Internet скопировать на компьютер конкретного пользователя, разархивировать файл и задействовать его в термодинамических расчетах, что и будет сделано при решении второй задачи.

Особенности Mathcad, проиллюстрированные примерами:

1. Интерфейс пользователя в среде Mathcad опирается на операторы ввода и операторы вывода значений переменных и выражений.

В среде Mathcad три оператора ввода:

A¬ ■ – ввод значения локальной переменной, область видимости которой ограничена местом ввода переменной и концом вычислительной процедуры, отмеченной вертикальной чертой, фиксирующей начало и конец программного блока (см. выше программу формирования функции vw(p));

A := ■ – ввод значения полуглобальной переменной, область видимости которой – это часть Mathcad-документа, расположенная правее и ниже места ввода переменной;

Aº ■ – ввод значения глобальной переменной, область видимости – весь Mathcad-документ.

Кроме того, в Mathcad-документе возможны ссылки на другой Mathcad-документ (на соответствующий Mathcad-файл на диске – файл с расширением mcd), переменные и пользовательские функции которого, становятся видимыми в текущем Mathcad-документе.

В среде Mathcad два оператора вывода:

A = ■ ■ – вывод численного значения переменной или выражения: на месте первого операнда появляется числовая константа, а на месте второго ¾ соответствующая размерность (см. табл. 5.17), если константа размерная; пользователь вправе менять размерность по умолчанию на любую другую, определенную к данному моменту;

A® ■ – вывод символьного значения переменной или выражения.

Переменные в среде Mathcad могут хранить скалярное, векторное и матричное значения.

Скаляром, а также элементом вектора (V) и матрицы (M) может быть число (целое, вещественное или комплексное – см. элементы вышеприведенного вектора V), текст, а также новый вектор или матрицу (механизм составных массивов). Булевы значения «True» (Истина) и «False» (Ложь) в среде Mathcad имеют значения 1 и 0, соответственно. Рассчитанные значения могут быть выведены в десятеричном (умолчание), двоичном, восьмеричном или шестнадцатеричном формате.

Переменные в среде Mathcad подразделяются на пользовательские и встроенные (предопределенные ¾ табл. 5.16).

Таблица 5.16. Встроенные переменные Mathcad

Имя встроенной переменной и ее значение по умолчанию Описание переменной
p = 3.14159 ... Число p. В численных расчетах Mathcad использует значение p с учетом 15 значащих цифр. В символьных вычислениях p сохраняет свое точное значение
e = 2.71828 ... Основание натуральных логарифмов. В численных расчетах Mathcad использует значение e с учетом 15 значащих цифр. В символьных вычислениях e сохраняет свое точное значение
¥ Бесконечность. В численных расчетах это заданное большое число (10307). В символьных вычислениях – бесконечность
% = 0.01 Процент. Используется его в выражениях, подобных 10 × % или как масштабирующий множитель в поле, отводимом для единиц размерности
TOL = 10-3 Допускаемая погрешность для различных алгоритмов аппроксимации (интегрирования, решения уравнений, поиска минимумов и максимумов и т.д.)
СTOL = 10-3 Допускаемая погрешность для равенств и неравенств, входящих в решение оптимизационных задач с ограничениями
ORIGIN = 0 Определяет индекс первого элемента векторов и матриц
PRNCOLWIDTH = 8 Ширина столбца, используемая при записи файлов функцией WRITEPRN
PRNPRECISION = 4 Число значащих цифр, используемых при записи файлов функцией WRITEPRN
FRAME = 0 Используется в качестве счетчика кадров при создании анимационных клипов
inn=0, outn=0 Переменные ввода и вывода в Mathcad-компонентах в среде MathConnex (инструмент, входящий в состав Mathcad и позволяющий интегрировать Mathcad, MatLab и Excel, а также реализовывать динамические модели)
CWD Текстовая переменная, хранящая адрес текущего документа на диске

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

2. В работе с Mathcad есть особенность, позволяющая называть Mathcad не просто математическим, а физико-математическим пакетом. Часто решая физическую задачу, пользователь делает ошибки не в формулах и не в счете, а в размерностях физических величин. Пакет Mathcad поддерживает основные системы физических величин (СИ, килограмм-метр-секунда, грамм-сантиметр-секунда и британскую систему единиц) и ведет контроль за соответствием размерностей (табл. 5.17).

Для присваивания величине размерности за числовой константой ставится знак умножения (но его можно и не ставить) и вводится название соответствующей размерности. – L := 5 ×m (или L := 5 m, что более соответствует общепринятой норме записи размерностей).

Таблица 5.3.2. Список единиц измерения физических величин, встроенных в Mathcad

Физическая величина Единица
Активность (activity) Bq (беккерель)
Время (time) day (день), hr (час), min (минута), s (секунда, sec и yr (год)
Вязкость динамическая (dynamic viscosity) poise (пуаз)
Вязкость кинематическая (dynamic viscosity) stokes (стокс)
Давление (pressure) atm (атмосфера физическая), in_Hg (дюймы ртутного столба), Pa (паскаль), psi (фунт силы на квадратный дюйм) и torr (мм ртутного столба)
Длина (length) cm (сантиметр), ft (фут), in (дюйм), km (километр), m (метр), mi (миля), mm (миллиметр) и yd (ярд)
Доза (dose) Gy (грей) и Sv (зиверт)
Емкость (capacitance) F (фарада), farad (фарада), mF (миллифарада), nF (нанофарада), pF (пикафарада)и statfarad (статфарада)
Заряд (charge) С или coul (кулон) и statcoul (статкулон)
Индуктивность (inductance) H или henry (генри), mH (микрогенри), mH (миллигенри) и stathenry (статгенри)
Индукция магнитного поля (magneticfluxdensity) gauss (гаусс), stattesla (статтесла), T или tesla (тесла)
Количество вещества (substance) mole (моль)
Магнитный поток (magnetic flux) statweber (статвебер) и Wb или weber (вебер)
Масса (mass) gm (грамм), kg (килограмм), lb (фунт), mg (миллиграмм), oz (унция), slug (пуд), ton (тонна британская) и tonne (тонна метрическая)
Мощность (power) hp (лошадиная сила) или kW или Wили watt (ватт)
Напряженность магнитного поля (magneticfieldstrange) Oe или oersted (эрстед)
Объем (volume) fl_oz (объемная унция), gal (галлон), L или liter (литр) и mL (миллилитр)
Освещенность (illuminosity) lx (люкс)
Площадь (area) acre (акр) и hectare (гектар)
Потенциал (potential) kV или KV (киловольт), mV (милливольт), statvolt (статвольт) и V или volt (вольт)
Проводимость (conductance) mho или S или siemens (сименс) и statsiemens (статсименс)
Сила (force) dyne (дина), kgf (килограмм силы), lbf (фунт силы) и N или newton (ньютон)
Сила света (luminosity) cd (кандела) и Im (люмен)
Скорость (velocity) kph (километр в час) и mph (миля в час)
Сопротивление (resistance) kW (килом), MW (мегом), ohm (ом), statohm (статом) и W (ом)
Температура (temperature) K (градусы Кельвина) и R (градусы Ренкина)
Ток (current) A или amp (ампер), KA (килоампер), mA (микроампер), mA (миллиампер) и statamp (статампер)
Угол (angular) deg (угловой градус), rad (радиан) и str (стерадиан)
Ускорение (acceleration) g (ускорение свободного падения)
Частота (frequency) GHz (гигагерц), Hz (герц), kHz (килогерц), KHz (килогерц) и MHz (мегагерц)
Энергия (energy) BTU (британская тепловая единица), cal (калория), erg (эрг), J (джоуль), joule (джоуль) и kcal (килокалория)

Для ввода размерностей предусмотрено диалоговое окно «Ввод размерности» («InsertUnit»), определяющее физическую величину (Dimension), размерность (Unit) и систему единиц (System).