Расчет свойств газов и их смесей

Описание

Перечень встроенных газов

Способы использования функций для расчета свойств газов

Функции на основе идентификаторов газов

Функции на основе спецификаций газов

Формат строки - спецификации газа

Пользователям бета-версий пакета 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].

Способы использования функций для расчета свойств газов

Существует два способа и два набора функций для работы со свойствами газов и смесей на их основе:

  1. Использование идентификаторов газов.
  2. Использование спецификаций газов.

Оба этих метода имееют как достоинства так и недостатки и выбор одного из них зависит от используемого программного обеспечения и пожеланий пользователя. Далее приведено описание этих способов работы с функциями для расчета свойств газов и их смесей.

Функции на основе идентификаторов газов

При данном способе работы все газы, как встроенные, так и создаваемые пользователем представляются т.н. "идентификатором газа" (или id), который представляет собой число (типа long). Функции для расчета свойств газов по передаваемому идентификатору (числу) находят данные для этого газа и вычисляют требуемое значение.

Перечень идентификаторов для встроенных газов приведен в табл. 1.

Преимущества данного способа работы - это высокая скорость доступа к данным и возможность работы в большинстве приложений.

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

Для расчета свойств газов при использовании идентификатором определены функции (полный их перечень приведен в разделе "Список функций"), в названии которых есть строка "ID":

Порядок работы с вышеперечисленными функциями следующий:

  1. Для расчета свойств встроенных газов (см. табл. 1) необходимо передавать в соответствующие функции требуемые идентификаторы газов (табл. 1).
  2. Для создания нового (пользовательского) газа, который будет в дальнейшем представлять смесь, состоящую из других газов, требуется вызвать функцию wspgNEWID(), wspgNEWIDNAME(gas_name) или wspgNEWIDGS(gas_specification). Любая из этих функций вернет уникальное число, однозначно идентифицирующее новый газ.
  3. После того, как получен идентификатор нового газа, необходимо указать его состав. Для этого предназначены две функции: wspgADDGASM(id_target, id_source, mass) и wspgADDGASV(id_target, id_source, volume). Первая из них предназначена для случая, когда известен массовый состав газа, а вторая - когда известен объемный состав. В качестве id_target требуется указывать полученный на предыдущем шаге идентификатор нового газа, а в качестве id_source - идентификатор ранее определенного газа (встроенного или пользовательского).
  4. После указания состава газа можно обращаться, как и в п. 1, к требуемым функциям для расчета свойств этого газа, который будет уже представлять собой смесь других газов. При этом необходимо использовать полученный в п. 2 идентфикатор.
  5. Для определения массовой или объемной долей одного газа в другом можно воспользоваться функциями wspgMFIDID(gas_id_looked, gas_id_looked_for) или wspgVFIDID(gas_id_looked, gas_id_looked_for).
  6. После окончания работы с пользовательским газом необходимо произвести освобождение памяти, занятой под этот газ. Для этого предназначена функция wspgDELETEGASID(id). После освобождения памяти, занятой под газ любое обращение к нему будет вызывать ошибку. Для удаления всех определенных пользователем газов (т.е. кроме встроенных) можно использовать функцию wspgDELETEGASES(). После ее вызова любое обращение к пользовательским газам, удаленным с ее помощью, будет также вызывать ошибку.

Узнать общее число газов, как определенных пользователем, так и встроенных, можно с помощью функции 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

В бета-версиях пакета WaterSteamPro 6.0 (вплоть до beta 8) использовались функции, основанные на раздельных понятиях газа и смеси. В окончательной верси WaterSteamPro 6.0 эти два понятия объединены. Помимо этого в указанных бета-версиях отсутствовал механизм работы со спецификациями газов, что делало практически невозможным использование функций для расчета свойств газов в Microsoft Excel.

В связи с таким изменением концепции работы с газами и смесями на их основе, часть функций, доступных в бета-версиях была удалена, а часть изменена. В табл. 2 представлены функции, доступные в бета-версиях и их аналоги в окончательной версии WaterSteamPro 6.0.

Табл. 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