Способы использования функций для расчета свойств газов
Функции на основе идентификаторов газов
Функции на основе спецификаций газов
Формат строки - спецификации газа
Пользователям бета-версий пакета WaterSteamPro 6.0
В пакете WaterSteamPro, начиная с версии 6.0 доступны функции для расчета свойств газов. Функции предназначены для вычисления термодинамических свойств 11-ти, входящих в состав воздуха и продуктов сгорания, газов, а также их смесей, в идеальном состоянии при температурах от 200 до 2500 К. Описание используемых формул и числовые коэффициенты приведены в [57, 74].
Функции для расчета свойств газов имеют в пакете WaterSteamPro префикс "wspg".
Область применения функций для расчета свойств газов - это расчеты термодинамических свойств воздуха, продуктов сгорания и отдельных газов при умеренных давлениях (т.к. газы рассматриваются как идеальные) в диапазоне температур от 200К до 2500К. Смеси газов также рассматриваются как идеальные.
Необходимость создания функций связана с тем, что для расчета термодинамических свойств воздуха и продуктов сгорания (для котельных агрегатов, газовых турбин и т.д.) в настоящее время используются различные методики, в которых сделаны упрощения, такие как расчет процессов расширения и сжатия по показателю адиабаты, в то время как проще и нагляднее использование удельных энтальпии и энтропии. Также является искусственным введение понятия «раздельного» расширения воздуха и продуктов сгорания в газовой турбине, при котором они расширяются до одного давления, но температура на выходе у них разная. Такой расчет гораздо проще выполнить по уравнениям для смесей газов, рассматривая смесь как единое целое и проводя расчет по значениям удельных энтальпии и энтропии.
При создании функций также ставилась цель обеспечить возможность простого, удобного и быстрого расчета термодинамических свойств газов и смесей на их основе в различных программных средах.
В перечень веществ, для которых производится вычисление свойств в идеально-газовом состоянии, включены газы, наиболее часто встречающиеся при расчете процессов теплоэнергетики:
Помимо исходных газов также являются встроенными воздух и атмосферный азот, которые определены как смеси газов принятого состава.
Состав воздуха (по объему), как и в [12], принят следующим:
Состав атмосферного азота (по объему), как и в [12], принят следующим:
Основные используемые константы:
В табл. 1 приведен перечень встроенных (доступных в любое время) газов, их имена и идентификаторы. Более подробная информация по именам и идентификаторам газов приведена в следующих разделах.
Табл. 1. Перечень встроенных газов.
Название газа | Имя газа | Молярная масса, кг/моль | Уникальный идентификатор |
Азот | N2 | 0.0280134 [14] | 0 |
Кислород | O2 | 0.0319988 [14] | 1 |
Оксид углерода | CO | 0.0280104 [14] | 2 |
Диоксид углерода | CO2 | 0.0440098 [14] | 3 |
Водяной пар | H2O | 0.0180152 [14] | 4 |
Диоксид серы | SO2 | 0.064059 [14] | 5 |
Воздух (единый газ)* | Air | 0.02896431986** | 6 |
Атмосферный азот (единый газ)* | N2Air | 0.02815922054** | 7 |
Оксид азота | NO | 0.0300061 [14] | 8 |
Диоксид азота | NO2 | 0.0460055 [14] | 9 |
Аргон | Ar | 0.039948 [14] | 10 |
Неон | Ne | 0.020179 [14] | 11 |
Водород | H2 | 0.0020158 [14] | 12 |
Воздух как смесь газов | AirMix | 0.02896431986** | 13 |
Атмосферный азот как смесь газов | N2AirMix | 0.02815922054** | 14 |
* Выражение "единый газ" означает, что с точки зрения программы это не смесь газов, а единый газ со свойствами, эквивалентными смеси газов, его составляющих. Это позволяет рассчитывать свойства данных смесей без учета диссоциации.
** Рассчитано согласно принятому объемному составу [12].
Существует два способа и два набора функций для работы со свойствами газов и смесей на их основе:
Оба этих метода имееют как достоинства так и недостатки и выбор одного из них зависит от используемого программного обеспечения и пожеланий пользователя. Далее приведено описание этих способов работы с функциями для расчета свойств газов и их смесей.
При данном способе работы все газы, как встроенные, так и создаваемые пользователем представляются т.н. "идентификатором газа" (или id), который представляет собой число (типа long). Функции для расчета свойств газов по передаваемому идентификатору (числу) находят данные для этого газа и вычисляют требуемое значение.
Перечень идентификаторов для встроенных газов приведен в табл. 1.
Преимущества данного способа работы - это высокая скорость доступа к данным и возможность работы в большинстве приложений.
Недостатки - это необходимость жесткого порядка вызова функций, что не всегда можно обеспечить в таких пакетах, как Excel, а также необходимость освобождать память, занятую под созданные пользователем газы (смеси).
Для расчета свойств газов при использовании идентификатором определены функции (полный их перечень приведен в разделе "Список функций"), в названии которых есть строка "ID":
Порядок работы с вышеперечисленными функциями следующий:
Узнать общее число газов, как определенных пользователем, так и встроенных, можно с помощью функции wspgGASESCOUNT().
При создании газа (п. 2) можно сразу указать его состав (что делается в п. 3) с помощью функции wspgNEWIDGS(gas_specification) указывая спецификацию газа. Более подробно спецификация газов описана в следующем разделе. При этом использование функций wspgADDGASM(id_target, id_source, mass) и wspgADDGASV(id_target, id_source, volume) необязательно.
На основе вышеописанного порядка работы можно также создавать смеси смесей газов. Для этого в функциях wspgADDGASM(id_target, id_source, mass) и wspgADDGASV(id_target, id_source, volume) необходимо использовать в качестве id_source идентификаторы ранее созданных пользовательских газов (смесей).
В качестве примера работы рассмотрим работу в гипотетическом пакете по расчету свойств влажного воздуха. Состав сухого воздуха будет аналогичен принятому в пакете WaterSteamPro, а массовое содержание водяного пара - 0.007 кг/кг (т.е. 0.007 кг водяного пара/кг сухого воздуха).
id_dry_air = wspgNEWID() // Получение идентификатора нового газа - сухого воздуха. wspgADDGASV(id_dry_air, 0, 78.03) // Добавление в состав сухого воздуха газа с идентификатором 0 (азот) (см. табл. 1) в количестве 78,03 единиц объема. wspgADDGASV(id_dry_air, 1, 20.99) // Добавление в состав сухого воздуха газа с идентификатором 1 (кислород) (см. табл. 1) в количестве 20,99 единиц объема. wspgADDGASV(id_dry_air, 10, 0.94) // Добавление в состав сухого воздуха газа с идентификатором 10 (аргон) (см. табл. 1) в количестве 0,94 единиц объема. wspgADDGASV(id_dry_air, 12, 0.01) // Добавление в состав сухого воздуха газа с идентификатором 12 (водород) (см. табл. 1) в количестве 0,01 единиц объема. wspgADDGASV(id_dry_air, 3, 0.03) // Добавление в состав сухого воздуха газа с идентификатором 3 (диоксид углерода) (см. табл. 1) в количестве 0,03 единиц объема. id_wet_air = wspgNEWID() // Получение идентификатора нового газа - влажного воздуха воздуха. wspgADDGASM(id_wet_air, id_dry_air, 1) // Добавление в состав влажного воздуха газа (сухого воздуха) в количестве 1 единицы массы. wspgADDGASM(id_wet_air, 4, 0.007) // Добавление в состав влажного воздуха газа с идентификатором 4 (водяного пара) (см. табл. 1) в количестве 0.007 единиц массы. h_wet = wspgHIDT(id_wet_air, 500) // Энтальпия влажного воздуха при температуре 500К. s_wet = wspgSIDPT(id_wet_air, 300000.0, 500) // Энтропия влажного воздуха при температуре 500К и давлении 300000 Па. wspgDELETEGASID(id_wet_air) // Очистка памяти, занятой под сухой воздух wspgDELETEGASID(id_dry_air) // Очистка памяти, занятой под влажный воздух
Использование идентификаторов газов требуется в Mathcad 8, т.к. в нем нельзя использовать функции, использующие строки. Однако в последующих версиях Mathcad функции для работы со строками доступны и, поэтому, возможно использование функций со спецификациями газов.
При данном способе работы все газы, как встроенные, так и создаваемые пользователем представляются "спецификацией газа" (или gas specification).
Под спецификацией газов в пакете WaterSteamPro понимается строка содержащая описание состава газа (смеси газов). Формат этой строки приведен далее.
Преимущества данного способа работы - это наглядность описания состава газа, отсутствие необходимости освобождать память и отсутствие требования к жесткому порядку обращения к функциям.
Недостаток - это несколько большие затраты на доступ к газам и разбору строки спецификации. Этот недостаток несколько нивелируется тем, что данные по газам кэшируются, в результате чего разбор строки спецификации и создание на ее основе газа, производится только при первом обращении к свойствам газа с такой спецификацией.
Описание формата спецификации газа приведено в следующем разделе.
Для расчета свойств газов при использовании спецификаций определены функции (полный их перечень приведен в разделе "Список функций"), в названии которых есть строка "GS" (от "Gas Specification"):
Для расчета свойств газов, задаваемых спецификацией, необходимо просто передавать в соответствующие функции требуемые строки.
Очищать память под газы, задаваемыми спецификациями, не требуется.
В качестве примера работы рассмотрим работу в гипотетическом пакете по расчету свойств влажного воздуха. Состав сухого воздуха будет аналогичен принятому в пакете WaterSteamPro, а массовое содержание водяного пара - 0.007 кг/кг (т.е. 0.007 кг водяного пара/кг сухого воздуха).
wet_air_spec = "{N2:78.03;O2:20.99;Ar:0.94;H2:0.01;CO2:0.03}:1M;H2O:0.007M" // спецификация газа - влажного воздуха h_wet = wspgHGST(wet_air_spec, 500) // Энтальпия влажного воздуха при температуре 500К. s_wet = wspgSGSPT(wet_air_spec, 300000.0, 500) // Энтропия влажного воздуха при температуре 500К и давлении 300000 Па.
Использование спецификаций газов требуется в пакете Excel, где нельзя жестко задать порядок перерасчета формул в ячейках.
Использование идентификаторов газов требуется в Mathcad 8, т.к. в нем нельзя использовать функции, использующие строки. Однако в последующих версиях Mathcad функции для работы со строками доступны и, поэтому, возможно использование функций со спецификациями газов.
Gas1Name[:Gas1Part][;Gas2Name[:Gas2Part]][;Gas3Name[:Gas3Part]]...
где:
Gas1Name - имя первого компонента газа или спецификация смеси.
Gas1Part - количество первого компонента газа.
Gas2Name - имя второго компонента газа или спецификация смеси.
Gas2Part - количество второго компонента газа.
Gas3Name - имя третьего компонента газа или спецификация смеси.
Gas3Part - количество третьего компонента газа.
и т.д.
Примером спецификации газа может быть строка:
O2;CO2;H2O;SO2
которая представляет собой смесь из газов "О2", "CO2", "H2O", "SO2" при объемном составе: 1:1:1:1 (т.е. смесь из 1 объемной доли "O2", 1 объемной доли "CO2", 1 объемной доли "H2O", 1 объемной доли "SO2").
Спецификация газа:
O2:1;CO2:3;H2O:5
описывает смесь, состояющую из 1 объемной доли "O2", 3 объемных долей "CO2" и 5 объемных долей "H2O".
По умолчанию в качестве GasPart используется значение 1 моль, т.е. 1 объемная доля. Для указания того, чтобы использовать массовые доли требуется указать суффикс "M". Так спецификация
O2:1M;CO2:2M
описывает смесь, состояющую из 1 массовой доли "O2" и 2 массовых долей "CO2".
Помимо этого существует еще несколько суффиксов для указания типа количества компонента:
В качестве имени газа может выступать:
Последняя запись означает, что возможен расчет смеси смесей газов. Так, например, спецификация
{O2;CO2:2};{H2O;CO2:2}:3
описывает смесь, состояющую из одной объемной доли смеси, которая, в свою очередь, состоит из одной объемной доли "O2" и двух объемных долей "CO2", и трех объемных долей другой смеси, которая состоит из одной объемной доли "H2O" и двух объемных долей "CO2".
В бета-версиях пакета WaterSteamPro 6.0 (вплоть до beta 8) использовались функции, основанные на раздельных понятиях газа и смеси. В окончательной верси WaterSteamPro 6.0 эти два понятия объединены. Помимо этого в указанных бета-версиях отсутствовал механизм работы со спецификациями газов, что делало практически невозможным использование функций для расчета свойств газов в Microsoft Excel.
В связи с таким изменением концепции работы с газами и смесями на их основе, часть функций, доступных в бета-версиях была удалена, а часть изменена. В табл. 2 представлены функции, доступные в бета-версиях и их аналоги в окончательной версии WaterSteamPro 6.0.
Имя функции в бета-версии | Имя функции - аналога | Примечание |
wspgCPIDT | wspgCPIDT | |
wspgHIDT | wspgHIDT | |
wspgS0IDT | wspgSIDT | В целях унификации имя функции изменено. |
wspgMMID | wspgMMID | |
wspgSIDPT | wspgSIDPT | |
wspgNEWMIX | - отсутствует - | Понятие mixture (смесь) отсутствует в окончательной версии. Вместо этого используется общее понятие - "газ". |
wspgADDGASM2MIX | wspgADDGASM | В окончательной версии отсутствует понятие mixture. Поэтому имя функции изменено, хотя смысл ее действий остался прежним. |
wspgADDGASMO2MIX | wspgADDGASV | В окончательной версии отсутствует понятие mixture. Поэтому имя функции изменено, хотя смысл ее действий остался прежним. |
wspgNEWGASFROMMIX | - отсутствует - | В окончательной версии нет необходимости в данной функции, т.к. отсутствует понятие mixture, а свойства газа можно вычислять в любой момент. |
wspgDELETEGAS | wspgDELETEGASID | Имя функции изменено, чтобы охарактеризовать ее аргумент. Смысл действий остался прежним. |
wspgDELETEMIX | - отсутствует - | В окончательной версии нет необходимости в данной функции, т.к. отсутствует понятие mixture. |
wspgDELETEALLGASES | wspgDELETEGASES | Имя функции изменено для краткости. |
wspgDELETEALLMIX | - отсутствует - | В окончательной версии нет необходимости в данной функции, т.к. отсутствует понятие mixture. |
wspgGETGASESCOUNT | wspgGASESCOUNT | Имя функции изменено для краткости. |
wspgGETMIXCOUNT | - отсутствует - | |
wspgCVIDT | wspgCVIDT | |
wspgUIDT | wspgUIDT | |
wspgCPINTIDTT | - отсутствует - | Для расчета среднеинтегральной теплоемкости в диапазоне температур от t1 до t2 можно воспользоваться формулой: cp_int = (wspgHIDT(id, t2) - wspgHIDT(id, t1)) / (t2 - t1). |
wspgTIDH | wspgTIDH | |
wspgTIDS0 | wspgTIDS | В целях унификации имя функции изменено. |
wspgTIDPS | wspgTIDPS | |
wspgGASWFINMIX | wspgMFIDID | В окончательной версии отсутствует понятие mixture. Поэтому имя функции изменено, хотя смысл ее действий остался прежним. |
wspgGASMFINMIX | wspgVFIDID | В окончательной версии отсутствует понятие mixture. Поэтому имя функции изменено, хотя смысл ее действий остался прежним. |
wspgVIDT | wspgVIDT | |
wspgVIDPT | wspgVIDPT | |
wspgGCID | wspgGCID | |
wspgCPIDPT | - отсутствует - | Т.к. газы рассматриваются как идеальные, то удельная изобарная теплоемкость не зависит от давления. |
wspgHIDPT | - отсутствует - | Т.к. газы рассматриваются как идеальные, то удельная энтальпия не зависит от давления. |
wspgPIDTS | wspgPIDTS |