TPP / Методика создания модели турбины в SimInTech |
Новая схема ТРР
Создайте новый проект (схему) ТРР, Новый проект → Схема ТРР (см. Рисунок 1). При помощи стандартного диалога сохранения файла сохраните схему под новым именем во вновь созданном каталоге, например: C:\KTZ\Turbine\Конденсатор\Конденсатор КП-3200.prt (предварительно создайте каталог).
Глобальные сигналы
Для начала, давайте зададим глобальные переменные (сигналы) модели конденсатора. Зайдите через главное меню SimInTech в пункт Сервис → Сигналы….
В появившемся окне нам нужно задать четыре новых сигнала – расход пара из турбины, расход охлаждающей воды, расход охлаждающей воды второго теплообменника и температуру охлаждающей воды, поступающей на теплообменники конденсатора: «Gp», «Gov1», «Gov2» и «Tov». Задайте их значения в соответствии с рисунком (Рисунок 1):
Рисунок 1. Глобальные параметры для модели конденсатора
Эти параметры при отладке схемы мы будем изменять, поэтому создайте на схеме кнопки (8 шт.) для изменения параметров. Для ускорения, можно скопировать кнопки из схемы проточной части и отредактировать их свойства, см. Рисунок 2. На рисунке видно, что значения остались от проекта проточной части ПТУ. При первом запуске на расчет переменные пересчитаются.
Рисунок 2. Кнопки для изменения глобальных параметров в модели конденсатора
Описание модели
В данном учебном примере мы создадим модель конденсатора при помощи трёхобъемного бака (компенсатора) ТРР. В верхний объем бака будет поступать отработанный пар из ЦНД турбины, и конденсироваться в баке. К баку будут подключены 2 теплообменника, отводящие тепло от конденсатора. Из нижней части бака конденсат будет отводиться в граничное условие.
Параллельно с созданием конденсатора мы научимся использовать субмодель SimInTech для создания новых блоков (элементов схемы) с заданием своих свойств в них. Мы создадим конденсатор с возможностью изменения таких свойств как объем парового пространсва, поверхность теплопередачи, количество охлаждающих трубок и т.д., см. Рисунок 3. В дальнейшем, отлаженную и проверенную субструктуру можно легко (простым копированием) переносить в другие проекты, внося требуемые и как правило небольшие изменения. Это существенно сокращает время на разработку и отладку новых схем.
Граничных условия будет два, оба типа G (в номинальном стационарном состоянии – сколько пара поступает в конденсатор из турбины, столько же конденсата и сливается из него).
Линии для охлаждающей воды будут смоделированы простейшим образом – каналами общего вида между граничными узлами типа G и P, с тепловым портом.
Рисунок 3. Свойства субмодели конденсатора
Содание верхнего уровня модели конденсатора
Итак, последовательно размещаем на схемном окне следующие элементы, и для удобства переименовываем их своими именами:
При помощи механизма вывода параметров элементов на схему, выведите имена вновь размещенных элементов на схемное окно. Зайдите в свойства конденсатора и измените картинку по умолчанию на надпись «Конденсатор КП-3200», причем сделайте выравнивание (привязку) надписи по центру и по середине (по ширине и по высоте). И разместите надпись в окна центре графического редактора, для этого:
Рисунок 4. Создание модели конденсатора (начало)
Рисунок 5. Создание модели конденсатора (готов верхний уровень)
Создание вложенного уровня субмодели конденсатора
Теперь переходим к набору теплогидравлической схемы внутри субмодели:
Рисунок 6. Изменение названия порта выхода
Результат сравните с рисунком (Рисунок 7).
Рисунок 7. Субмодель конденсатора (вложенный уровень)
Рисунок 8. Субмодель конденсатора с тепловыми связями (вложенный уровень)
На этом набор схемы завершён (пока), здесь нам предстоит еще задать параметры объектов, и в принципе это можно сделать аналогично тому как мы задавали в проточной части, но мы это сделаем более универсальным, программным способом – при помощи редактора нового блока и встроенного в SimInTech языка программирования.
Редактор новых блоков
Субмодель, которую мы в будущем сможем удобно переносить в другие проекты и использовать там, должна быть полностью параметрически определена с верхнего уровня. Т.е., например, будет достаточно изменить поверхность теплообмена в свойствах самой субмодели, а внутри неё все свойства всех элементов, зависящих от поверхности теплообмена, автоматически пересчитаются на новые значения. Аналогично и с другими параметрами.
Перейдите на верхний уровень схемного окна и зайдите в свойства субмодели. Убедитесь, что имя объекта задано: «K» (буква английского алфавита); тип элемента (ClassName) задан: «Конденсатор ТРР» (вместо «Субмодель SimInTech»). Задание имени класса особенно важно, т.к. все дальнейшие манипуляции НЕ должны задеть и изменять стандартную библиотеку элементов ТРР и SimInTech.
Закройте панель свойств и, выделив на схемном окне субмодель (однократным щелчком мыши), перейдите в главное меню SimInTech, пункт Правка → Изменить блок.... Откроется диалоговое окно с табличным заданием параметров и свойств выделенного на схеме блока (т.е. субмодели конденсатора).
Здесь нам нужно будет задать все свойства, их имена, типы и значения, определяющие модель конденсатора. Всего нужно будет добавить 21 свойство, из которых 5 будут справочными (нередактируемыми, а однозначно вычисляемыми из предыдущих параметров).
№ | Название | Имя | Тип данных | Значение | Способ расчёта |
1 | Количество элементов | Count | Целое | 10 | Константа |
2 | Объём парового пространства | Vp | Вещественное | 50 | Переменная |
3 | Площадь зеркала по пару, м2 | Sp | Вещественное | 16 | Переменная |
4 | Объём конденсатосборника, м3 | Vv | Вещественное | 5 | Переменная |
5 | Площадь зеркала конденсатосборника, м2 | Sv | Вещественное | 5 | Переменная |
6 | Начальный уровень воды, м | Level | Вещественное | 0.5 | Переменная |
7 | Высотная отметка низа трубчатки относительно низа бака, м | Zt | Вещественное | 0.5 | Переменная |
8 | Высота трубчатки, м | Ht | Вещественное | 2 | Переменная |
9 | Поверхность теплопередачи, м2 | F | Вещественное | 3200 | Переменная |
10 | Внешний диаметр трубочки, м | d | Вещественное | 0.018 | Константа |
11 | Толщина стенки трубочки, м | ds | Вещественное | 0.0006 | Константа |
12 | Количество охлаждающих трубочек | n | Целое | 6400 | Константа |
13 | Число ходов по охлаждающей воде | Nx | Вещественное | 1 | Переменная |
14 | Материал трубочек | Material | Имя файла базы данных | 18ХН9Т | Константа |
15 | Коэффициент чистоты охлаждающих трубочек | Fc | Вещественное | 0.85 | Переменная |
16 | Высотная отметка низа бака, м | Zk | Вещественное | -10 | Переменная |
17 | Длина трубки, м | L | Вещественное | 9.4735 | Константа |
18 | Гидравлический диаметр трубчатки, м | Dg | Вещественное | 0.0168 | Переменная |
19 | Высота бака, м | Hp | Вещественное | 3.125 | Переменная |
20 | Высота конденсатосборника | Hv | Вещественное | 1 | Переменная |
21 | Проходное сечение по охлаждающей воде, м2 | S | Вещественное | 1.4186 | Переменная |
Рисунок 9. Геометрическая модель конденсатора
Рисунок 10. Редактор новых блоков (конденсатор)
initialization submodel.Dg = submodel.d - 2*submodel.ds; setpropevalstring(submodel,"Dg",submodel.Dg); submodel.S = pi*submodel.Dg*submodel.Dg*n/4; setpropevalstring(submodel,"S",submodel.S); setpropevalstring(submodel,"L",submodel.F/(pi*submodel.Dg*submodel.n)); end;
Здесь, в блоке инициализации, мы расчитываем гидравлический диаметр трубочек (наружный диаметр минус двойная толщина стенки). Далее прописываем полученное значение в свойство субмодели. После этого вычисляем проходное сечение по охлаждающей воде (произведение площади сечения одной трубочки на количество трубочек) и длину трубочек (площадь поверхности теплообмена делим на длину окружности внутреннего сечения одной трубочки и на количество трубочек).
Заметьте, что можно вычислять свойства как отдельной строкой, так и внутри вызова функции setpropevalstring(). Смотрите также Рисунок 12.
Рисунок 11. Свойства новой субмодели (конденсатора)
Рисунок 12. Редактор параметров субмодели конденсатора (вычисление свойств)
Рисунок 13. Кнопка инициализации расчета
Рисунок 14. Перерасчет свойств субмодели
submodel.Hp = submodel.Vp/submodel.Sp; setpropevalstring(submodel,"Hp",submodel.Hp); submodel.Hv = submodel.Vv/submodel.Sv; setpropevalstring(submodel,"Hv",submodel.Hv); if submodel.Level > submodel.Hp+submodel.Hv then submodel.Level = submodel.Hp+submodel.Hv; if submodel.Zt > submodel.Hp then submodel.Zt = submodel.Hp; if (submodel.Zt+submodel.Ht) > submodel.Hp then submodel.Ht = submodel.Hp-submodel.Zt; setpropevalstring(submodel,"Zt",submodel.Zt); setpropevalstring(submodel,"Ht",submodel.Ht); setpropevalstring(submodel,"Level",submodel.Level);
Вначале мы вычисляем высоты бака по пару и по воде и присваиваем соответствующим свойстам вычисленное значение. Далее проводим проверки:
sko1 = [0, submodel.Vv, submodel.Vv+submodel.Sp*submodel.Zt, submodel.Vv+submodel.Sp*(submodel.Zt+submodel.Ht), submodel.Vv+submodel.Vp]; setpropevalstring(Bak,"SKO1","["+sko1+"]"); sko2 = [0, submodel.Hv, submodel.Hv+submodel.Zt, submodel.Hv+(submodel.Zt+submodel.Ht), submodel.Hv+submodel.Hp]; setpropevalstring(Bak,"SKO2","["+sko2+"]"); sko3=[0, 0, 0, 1, 1]; setpropevalstring(Bak,"SKO3","["+sko3+"]"); sko4=[1, 1, 1, 0, 0]; setpropevalstring(Bak,"SKO4","["+sko4+"]"); tmp = min(submodel.Level,submodel.Hv)*submodel.Sv + max(0,submodel.Level-submodel.Hv)*submodel.Sp; setpropevalstring(Bak,"V1",0.2*tmp); setpropevalstring(Bak,"V2",0.8*tmp); setpropevalstring(Bak,"V3",submodel.Vv+submodel.Vp-tmp); InitObject(Bak);
Здесь в массивах sko1, sko2, sko3 и sko4 мы набираем по точкам числовые значения, из которых код ТРР построит линейно-кусочные зависимости уровня в конденсаторе и относительных площадей теплообмена по воде и пару от заполненного объема конденсатора.
Далее расчитанные массивы заносятся в соответствующие свойства объекта «Bak».
В переменной «tmp» мы расчитываем объём конденсатора, заполненный водой (жидкой фазой) в начальный момент времени, в зависимости от этого расчитываем три объёма конденсатора «V1», «V2», «V3».
Функция InitObject(Bak) принудительно инициализирует и обновляет значения свойств объекта «Bak».
После этого можно снова проинициализировать схему и посмотреть на свойства в объекте «Bak»: они должны пересчитаться, см. Рисунок 15, поля «SKO1», «SKO2», «SKO3», «SKO4» и «V1», «V2», «V3».
Рисунок 15. Перерасчет свойств объекта «Bak» (компенсатор 3-х объёмный)
Tube1.Material = Material; setpropevalstring(Tube1,"Count" ,submodel.Count); setpropevalstring(Tube1,"Gidr_D" ,"["+Count#submodel.Dg +"]"); setpropevalstring(Tube1,"Sechen" ,"["+Count#submodel.S/2 +"]"); setpropevalstring(Tube1,"Dlina" ,"["+Count#(submodel.L/Count)+"]"); setpropevalstring(Tube1,"Soprot" ,"["+Count#2/Count +"]"); setpropevalstring(Tube1,"InvSopr" ,"["+Count#2/Count +"]"); setpropevalstring(Tube1,"Z" ,"["+Count#0 +"]"); setpropevalstring(Tube1,"X" ,"["+Count#0 +"]"); setpropevalstring(Tube1,"Y" ,"["+Count#0 +"]"); setpropevalstring(Tube1,"Bor" ,"["+Count#0 +"]"); setpropevalstring(Tube1,"Sten" ,"["+Count#(submodel.ds/submodel.Fc) +"]"); setpropevalstring(Tube1,"F" ,"["+Count#(submodel.F/Count/2) +"]"); setpropevalstring(Tube1,"Rz1" ,"["+Count#0 +"]"); setpropevalstring(Tube1,"HeatElements","["+Count#3 +"]"); InitObject(Tube1);
Нажав Ок и проинициализировав схему, можно убедиться в том, что в канале «Tube1» заданы все свойства именно так, как мы это запрограммировали только что, см. Рисунок 16:
Рисунок 16. Перерасчет свойств объекта «Tube1» (канал общего вида)
Обратите внимание, что свойства канала будут автоматически пересчитываться если мы изменим числовые значения того или иного свойства субмодели.
submodel._G = -(Tube1.G + Tube2.G)*3.6; submodel._w = -2*Tube1.q[1]/submodel.S; submodel._Tin = Tube1._Tvh; submodel._Tou = Tube1._Tvyh; submodel._dPtr = abs(Tube1._Pvh - Tube1._Pvyh); submodel._Q = (Tube1._Qto+Tube2._Qto)*4.182e-3; submodel._Qf = submodel._Q/submodel.F; submodel._dTou = Bak.Tpar_ - Tube1._Tvyh; submodel._Level= Bak.L; submodel._Ts = Bak.Tpar_; submodel._Ps = Bak.P_;По коду видно, что вычисляется массовый расход охлаждающей воды; скорость охлаждающей воды; входная и выходная температуры охлаждающей воды; потери давления на трубчатке; тепловой поток (пересчёт из ккал в кВт); удельный тепловой поток; разность температуры воды на выходе из трубчатки и температуры пара; уровень в конденсаторе; температура пара и давление в конденсаторе.
№ | Название | Имя | Тип данных | Режим | Способ расчёта |
1 | Расход пара в конденсатор, т/ч | _Gsteam | Вещественное | Выход | Переменная |
2 | Энтальпия пара в конденсаторе, ккал/кг | _Hsteam | Вещественное | Выход | Переменная |
3 | Давление в конденсаторе, ата | _Ps | Вещественное | Выход | Переменная |
4 | Температура в конденсаторе, С | _Ts | Вещественное | Выход | Переменная |
5 | Энтальпия конденсата, ккал/кг | _Hs | Вещественное | Выход | Переменная |
6 | Расход охлаждающей воды, т/ч | _G | Вещественное | Выход | Переменная |
7 | Гидравл. сопротивление по охл. воде, кгс/см2 | _dPtr | Вещественное | Выход | Переменная |
8 | Скорость охлаждающей воды в трубочках, м/с | _w | Вещественное | Выход | Переменная |
9 | Температура охлаждающей воды на входе, С | _Tin | Вещественное | Выход | Переменная |
10 | Температура охлаждающей воды на выходе, С | _Tou | Вещественное | Выход | Переменная |
11 | Средний коэффициент теплопередачи, Вт/м2*К | _alfa | Вещественное | Выход | Переменная |
12 | Температурный напор на вых. конденсатора, С | _dTou | Вещественное | Выход | Переменная |
13 | Средний логарифм. температурный напор, С | _LMTD | Вещественное | Выход | Переменная |
14 | Общая тепловая нагрузка, МВт | _Q | Вещественное | Выход | Переменная |
15 | Удельная тепловая нагрузка, кВт/м2 | _Qf | Вещественное | Выход | Переменная |
16 | Уровень воды, м | _Level | Вещественное | Выход | Переменная |
Рисунок 17. Параметры субмодели конденсатора
Рисунок 18. Вывод заданных параметров субмодели конденсатора
Такием образом, мы создали субмодель конденсатора, в которой для настройки его свойств необязательно заходить внутрь, а можно (нужно) задавать свойства с верхнего уровня, и они будут по написанному алгоритму пересчитываться и передаваться соответствующим элементам внутри конденсатора.
В дальнейшем, например когда модель конденсатора доработается, станет более универсальной, отладится полностью и обкатается, можно такую субмодель встроить в палитру элементов – и использовать ее многократно во многих проектах как отдельный блок.
Вывод параметров на схемное окно
Давайте выведем на схемное окно те параметры, которые нам будут интересны в процессе отладки модели конденсатора.
Рисунок 19. Вывод параметров конденсатора P, T, L на схемное окно
Рисунок 20. Вывод параметров модели на схемное окно
Свойства граничных условий
Проходное сечение, гидравлический диаметр, толщина стенки, длина участка: «1» (эти свойства на данном этапе не важны, от граничного условия требуется подача воды с заданным расходом и энтальпией).
Свойства трубопроводов конденсатора
Всего на схеме 4 канала общего вида – подвод пара к конденсатору, слив конденсата и по одному каналу на каждый теплообменник. Для каналов теплообменников (внутри модели конденсатора) параметры мы задали программным способом. Теперь задаём свойства в каналах снаружи конденсатора:
Канал «Ch_K_in» |
|
Канал «Ch_K_out» |
|
Свойства трёхобъемного бака ТРР и проекта в целом
Рисунок 21. Свойства трёхобъёмного бака субмодели конденсатора
Верхнее отверстие конденсатора (подача пара) |
|
Нижнее отверстие конденсатора (слив конденсата) |
|
Для проверки и сравнения см. Рисунок 22.
Рисунок 22. Параметры расчета субмодели конденсатора
Номинальное состояние
Теперь, если вы всё сделали верно, то при запуске модели на расчет, через 150-300 секунд должно установиться стационарное состояние модели, аналогично приведенному (Рисунок 23). Для отладки и проверки устойчивости модели, можно воспользоваться кнопками, построить дополнительно графики интересующих вас параметров и в процессе расчета изменять граничные условия, наблюдая за изменением состояния конденсатора.
Рисунок 23. Стационарное состояние модели конденсатора
Итак, мы создали модель конденсатора турбины, разместили её внутрь субмодели и добились стационарного стабильного состояния, соответствующего номинальным параметрам конденсатора (по давлению в конденсаторе, температуре конденсата и гидравлическому сопротивлению). Далее нам предстоит создать модели подогревателей ПН-100, ПВ-280-1 и ПВ-280, которые во многом сходны как между собой, так и с моделью конденсатора.