Купцов А.И. «Экологический мониторинг. CFD-технологии. UDF-функции». — Научный журнал «Вестник технологического университета», №20 — 2015, с. 203-207;
Научные исследования в области экологического мониторинга направлены на снижение негативных последствий. В данной статье рассмотрено использование UDF-функций при решении физико-математических моделей, которые необходимы для осуществления экологического мониторинга. UDF-функции приведены на языке программирования С.
Впервые понятие мониторинга окружающей среды было введено профессором Р. Манном в Стокгольме на конференции ООН в 1972 г. Мониторингом было предложено называть систему повторяющихся наблюдений элементов среды в пространстве и во времени с определенными целями. Однако затем стало ясно, что понятие «мониторинг» выходит за рамки содержания данного определения и не позволяет раскрыть его задачи.
Основными задачами экологического мониторинга на сегодняшний день являются:
а) наблюдение за источниками и причинами антропогенного воздействия, за состоянием окружающей среды и происходящими в ней процессами;
б) оценка фактического состояния природной среды;
в) прогноз изменения состояния природной среды под влиянием факторов и ее оценка.
Научные исследования в области экологического мониторинга направлены на снижение негативных последствий хозяйственной деятельности и (или) сориентированы на разработку продуктивных методов очистки выбросов и сбросов. Одними из таких исследований являются исследования по созданию систем экологического мониторинга пограничного слоя атмосферы. К системам мониторинга можно отнести: объект наблюдения; составление информационной модели для объекта; планирование измерений; прогнозирование изменения состояния объекта наблюдений; представление информации [1].
Для осуществления экологического мониторинга разработаны различные автоматизированные системы, которыми пользуются различные экологические службы и предприятия. В настоящее время в связи с развитием информационных технологий основой автоматизированных систем все чаще становятся CFD-технологии (технологии вычислительной гидродинамики). Эти технологии представляют собой компьютерное численное моделирование, включающие совокупность физических, математических и численных методов, предназначенных для вычисления характеристик потоковых процессов. Базой любого исследования в области вычислительной гидродинамики является формулировка основных уравнений гидро/газодинамики потоков, а именно: уравнения неразрывности; уравнения сохранения импульса; уравнение сохранения энергии; уравнение состояния (для газов). Для моделирования пограничного слоя атмосферы предложены различные физико-математические модели [2-5].
Однако при решении физико-математических моделей на практике с помощью прикладных программных продуктов неизбежно возникает проблема использования UDF-функций (функции определенные пользователем). UDF-функции представляют из себя функции, которые программируются пользователем. Они могут быть динамически сопряжены с решателем программного продукта для улучшения стандартных характеристик программ. Чаще всего для их записей используют язык программирования С.
В таблицах 1-4 предлагаются готовые разработанные UDF-функции для моделирования пограничного слоя атмосферы. При этом предлагается использовать физико-математическую модель, подробно освященную в статье [2]. Граничные условия этой модели предлагается находить путем использования методики объединения методов градиента и профиля [6].
Таблица 1 – UDF-функция для моделирования неустойчивой стратификации атмосферы
#include «udf.h»
#include «mem.h» #include «flow.h»
DEFINE_PROFILE(inlet_velocity, thread, index) { real x[ND_ND]; real y; real ud=0.0497; real kk=0.41; real zz=0.002; real lmo=-108.1; face_t f; real fm; real f1; real fe; real AA; real BB; real CC; real DD; begin_f_loop(f, thread) { F_CENTROID(x,f,thread); y = x[1];
f1 = 1-(16*y/lmo); fm = pow(f1, -0.25);
AA = 8*pow(fm, 4); BB = pow((fm+1), 2); CC = pow(fm, 2)+1; DD = -(3.14/2)+2*atan(1/fm);
F_PROFILE(f, thread, index) = (ud/kk) * ( log(y/zz) + log(AA / (BB *CC))+DD ); } end_f_loop(f, thread) }
DEFINE_PROFILE(temperature, thread, index) { real x[ND_ND]; real y; real tz=303.15; real mt=-0.1779; real kk=0.41; real zz=0.002; real lmo=-108.1; face_t f; real fm; real f1;
begin_f_loop(f, thread) { F_CENTROID(x,f,thread); y = x[1];
f1 = 1-(16*y/lmo); fm = pow(f1, -1/4);
F_PROFILE(f, thread, index) = tz+((mt/kk)*(log(y/zz)-(log(1+(1/(fm*fm))))))-(0.01*(y-zz))+(-0.009775*y); } end_f_loop(f, thread) }
DEFINE_PROFILE(k_profile,t,i) { real y, del, h, ufree, x[ND_ND]; real ff, utau, knw, kinf; real ud=0.0497; real lmo=-108.1; face_t f; real fm; real f1; real fe;
begin_f_loop(f,t) { F_CENTROID(x,f,t); y=x[1];
f1 = 1-(16*y/lmo); fm = pow(f1, -1/4); fe = 1-(y/lmo);
F_PROFILE(f,t,i)=5.48*ud*ud*sqrt((fe)/(fm)); } end_f_loop(f,t) }
DEFINE_PROFILE(dissip_profile,t,i) { real y, x[ND_ND], del, h, ufree; real ff, utau, knw, kinf; real mix, kay; real ud=0.0497; real lmo=-108.1; real kk=0.41; face_t f; real fm; real f1; real fe;
begin_f_loop(f,t) { F_CENTROID(x,f,t); y=x[1];
f1 = 1-(16*y/lmo); fm = pow(f1, -1/4); fe = 1-(y/lmo);
F_PROFILE(f,t,i)= ud*ud*ud*(fe)/(kk*y) ; } end_f_loop(f,t) } |
Таблица 2 – UDF-функция для моделирования нейтральной стратификации атмосферы
#include «udf.h»
#include «mem.h» #include «flow.h»
DEFINE_PROFILE(inlet_velocity, thread, index) { real x[ND_ND]; real y; real ud=0.0481; real kk=0.41; real zz=0.002; face_t f;
begin_f_loop(f, thread) { F_CENTROID(x,f,thread); y = x[1]; F_PROFILE(f, thread, index) = ud*(log(y/zz))/kk; } end_f_loop(f, thread) }
DEFINE_PROFILE(temperature, thread, index) { real x[ND_ND]; real y; real tz=303.15;
face_t f;
begin_f_loop(f, thread) { F_CENTROID(x,f,thread); y = x[1];
F_PROFILE(f, thread, index) = tz+(-0.009775*y); } end_f_loop(f, thread) }
DEFINE_PROFILE(k_profile,t,i) { real y, del, h, ufree, x[ND_ND]; real ff, utau, knw, kinf; real ud=0.0481; face_t f;
begin_f_loop(f,t) { F_CENTROID(x,f,t); y=x[1];
F_PROFILE(f,t,i)=5.48*ud*ud; } end_f_loop(f,t) }
DEFINE_PROFILE(dissip_profile,t,i) { real y, x[ND_ND], del, h, ufree; real ff, utau, knw, kinf; real mix, kay; real ud=0.0481; real kk=0.41; face_t f;
begin_f_loop(f,t) { F_CENTROID(x,f,t); y=x[1]; F_PROFILE(f,t,i)= ud*ud*ud/(kk*y) ; } end_f_loop(f,t) } |
Таблица 3 – UDF-функция для моделирования устойчивой стратификации атмосферы
#include «udf.h»
#include «mem.h» #include «flow.h»
DEFINE_PROFILE(inlet_velocity, thread, index) { real x[ND_ND]; real y; real ud=0.0472; real kk=0.41; real zz=0.002; real lmo=309.5; face_t f;
begin_f_loop(f, thread) { F_CENTROID(x,f,thread); y = x[1]; F_PROFILE(f, thread, index) = ud*(log(y/zz)+(5*y/lmo))/kk; } end_f_loop(f, thread) }
DEFINE_PROFILE(temperature, thread, index) {
real x[ND_ND]; real y; real tz=303.15; real mt=0.0507; real kk=0.41; real zz=0.002; real lmo=109.5; face_t f;
begin_f_loop(f, thread) { F_CENTROID(x,f,thread); y = x[1];
F_PROFILE(f, thread, index) = tz+((mt/kk)*(log(y/zz)+(5*y/lmo)));
} end_f_loop(f, thread) }
DEFINE_PROFILE(k_profile,t,i) { real y, del, h, ufree, x[ND_ND]; real ud=0.0472; real lmo=309.5; face_t f;
begin_f_loop(f,t) { F_CENTROID(x,f,t); y=x[1];
F_PROFILE(f,t,i)=5.48*ud*ud*sqrt((lmo+(4*y))/(lmo+(5*y))); } end_f_loop(f,t) }
DEFINE_PROFILE(dissip_profile,t,i) { real y, x[ND_ND], del, h, ufree; real ud=0.0472; real lmo=309.5; real kk=0.41; face_t f;
begin_f_loop(f,t) { F_CENTROID(x,f,t); y=x[1];
F_PROFILE(f,t,i)= ud*ud*ud*(1+((4*y)/lmo))/(kk*y) ; } end_f_loop(f,t) } |
Таблица 4 – UDF-функция для источникового члена в уравнении для переноса кинетической энергии турбулентности
#include «udf.h»
#include «mem.h» #include «flow.h»
DEFINE_SOURCE(xmom_source_K, c, t, dS, eqn) { real y, x[ND_ND]; real source; real mut = C_MU_T(c,t);
C_CENTROID(x, c, t); y = x[1]; source = -0.00367*(-9.81)*(-9.81)*mut/(0.85*1005); dS[eqn]=0; return source; } |
Использование представленных выше адаптированных UDF-функций для моделирования пограничного слоя атмосферы позволяет осуществлять экологический мониторинг с помощью CFD-технологий.
Литература
1. Горюнкова А. А. Современное состояние и подходы к разработке систем мониторинга загрязнения атмосферы / А.А. Горюнкова // Известия Тульского государственного университета. Технические науки. – 2013. — №11. – С. 251-260.
- Купцов А.И., Акберов Р.Р., Исламхузин Д.Я., Гимранов Ф.М. Проблемы расчета рассеивания легких газов в атмосфере при их выбросах со свечи с учетом рельефа и застройки местности и атмосферной устойчивости // Вестник Казанского технологического университета – 2014, Т.17, № 6. – С. 284-286.
- Купцов А.И., Акберов Р.Р., Исламхузин Д.Я., Гимранов Ф.М. Численное моделирование пограничного слоя атмосферы с учетом ее стратификации // Фундаментальные исследования. – 2014. – № 9 (Ч.7). – с. 1452-1460.
- Галеев А.Д., Поникаров С.И., Салин А.А. Моделирование последствий аварийного пролива бинарного раствора с использованием программы Fluent // Математическое моделирование – 2011. № 7. – С. 129-144.
- Руководство по безопасности «Методика оценки последствий аварий на взрывопожароопасных химических производствах». Утверждено приказом Ростехнадзора от 20.04.2015 N 160.
- Купцов А.И., Зубков А.Г., Гимранов Ф.М. — «Использование методики объединения методов градиента и профиля для моделирования распространения облаков опасных газов в атмосфере». — Научная сессия. КНИТУ. 2-6 февраля 2015. — с. 81.
© А.И. Купцов – аспирант каф. промышленной безопасности КНИТУ, artpb@yandex.ru.
© Kuptsov A.I – postgraduate department of industrial safety KNRTU, [email protected].
Свежие комментарии