Перейти к публикации

расчет тепловой задачи с пользовательскими ГУ


Рекомендованные сообщения

Вот интересно, если меня не устраивает способ, которым ансис считает тот или иной теплообмен, то я могу командной вставкой создать собственные ГУ. Но отражается ли это на скорости расчета?

Конкретнее.

Меня не устраивает, что в теплообмене излучением (radiosity) ансис на каждом шаге пересчитывает угловые коэффициенты. В моей задаче, где шагов может быть тысячи, это оказывается камнем преткновения. Метод матрицы излучения вроде как еще медленнее radiosity.

А что если всю программу расчета (то есть описание всех ГУ) написать руками в командной вставке? Пользоваться ансисом только как конечно-элементной средой с удобным набором команд по общению с узлами/элементами. Но в таком случае я как бы не пользуюсь ядром ансиса при расчете, а создаю своё ядро в командной вставке. Я вручную буду составлять матрицы и проводить с ними всякие операции. Вопрос. Как такой способ решения повлияет на скорость?

Ссылка на сообщение
Поделиться на других сайтах


56 минут назад, aquarido сказал:

Меня не устраивает, что в теплообмене излучением (radiosity) ансис на каждом шаге пересчитывает угловые коэффициенты.

попробуйте Fluent. он с излучением хорош. и угловые коэффициенты считает один раз.

Скрытый текст

 

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

А суть Вашей идеи для меня осталась весьма туманна. Вам чего в конечном счете надо? Может есть решения попроще, чем писать свою решалку?

 

 

1 час назад, aquarido сказал:

ансис на каждом шаге пересчитывает угловые коэффициенты

Вы уверены, что это не по Вашей просьбе?

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, Dandy сказал:

А зачем вам вообще тогда Ансис? :) Стройте модель в Wolfram Mathematica, MathLab или еще где.

Удобный модуль по построению сетки, переименованию узлов ну и все такое.

2 часа назад, soklakov сказал:

попробуйте Fluent. он с излучением хорош. и угловые коэффициенты считает один раз.

  Скрыть содержимое

 

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

А суть Вашей идеи для меня осталась весьма туманна. Вам чего в конечном счете надо? Может есть решения попроще, чем писать свою решалку?

 

 

Вы уверены, что это не по Вашей просьбе?

С флюентом никогда не общался. А ансис уже несколько лет с некоторой периодичностью мучаю.

Я уверен, что он пересчитывает УК каждый шаг. Это связанно с тем, что в методе radiosity нет отдельной матрицы угловых коэффициентов. Он все в купе решает. Да и на форумах пытался правду найти как можно повлиять на его желание считать "константу" каждый раз.

 

Мне это нужно только для того, что бы посчитать задачу по нагреву, выдержке и охлаждению достаточно большой и сложной геометрии. В модели есть несколько полостей излучения, да и вообще чего там только нет. И всё это нужно посчитать с обратной связью по мощности тепловыделения. И в каждый момент времени ею (мощностью) управлять, как функцией температуры (короче говоря печка, идущая по программе нагрева). Да и все это необходимо посчитать для промежутка времени порядка 150 часов. А еще управлять шагом по времени, что бы и мелко не считать и крупно не промахнуться. А если промахнулся, вернуться на шаг назад и пересчитать заново с шагом в два раза меньше.

 

 Если считать "в лоб" уйдет времени в 2-3 раза больше, чем реальный процесс (то есть ~400 часов). Поэтому и пытаюсь заставить ансис не делать лишних операций, которые жрут львиную часть времени.

 

Ссылка на сообщение
Поделиться на других сайтах
53 минуты назад, aquarido сказал:

Я уверен, что он пересчитывает УК каждый шаг. Это связанно с тем, что в методе radiosity нет отдельной матрицы угловых коэффициентов. Он все в купе решает.

Я все еще не уверен, что на это нельзя повлиять. но если принять это за данность, то стоит перейти на флюент. сетка у вас уже есть, выборки под ГУ, вероятно, тоже. время на "разобраться" займет меньше 400 часов.

А исходная задумка все еще как-то дико звучит, хоть теперь и понятнее суть проблемы.

читаю справку по команде VFOPT... вроде как даже может и совсем их не считать. или даже читать ранее вычисленные. оно, конечно, может ничего и не значит. но спрашиваю - Вы прям все попробовали?

Ссылка на сообщение
Поделиться на других сайтах

Повлиять на пересчет УК не получится.

https://cae-club.ru/forum/i-snova-raschet-uglovyh-koefficientov

Команда то есть, только для radiosity она не работает. При использовании этой команды Ansys клятвенно обещает не пересчитывать их, однако с завидной регулярностью продолжает это делать.

Цитата

стоит перейти на флюент. сетка у вас уже есть, выборки под ГУ, вероятно, тоже. время на "разобраться" займет меньше 400 часов.

 Да вот про разобраться не уверен. Тут у меня и тепловые контакты еще между экранной изоляцией (взамен излучения), и кода своего достаточно, и необходимость влиять на шаг по времени, ну еще и "рестарты" (возврат на шаг назад). Я не имею представления о структуре флюента. Куда там залезать, что бы все это делать.

Ссылка на сообщение
Поделиться на других сайтах

@aquarido , ой всё. выхода нет.

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

Ссылка на сообщение
Поделиться на других сайтах
22 hours ago, aquarido said:

Я уверен, что он пересчитывает УК каждый шаг. Это связанно с тем, что в методе radiosity нет отдельной матрицы угловых коэффициентов. Он все в купе решает. Да и на форумах пытался правду найти как можно повлиять на его желание считать "константу" каждый раз.

@aquarido,

угадай мелодию источник:

Quote

 


You can specify whether new view factors should be computed or if existing values should be used:

 

Command(s): VFOPT
GUI: Main Menu> Preprocessor> Radiation Opts> View Factor 
Main Menu> Radiation Opt> Radiosity Meth> View Factor 
Main Menu> Solution> Radiation Opts> View Factor

VFOPT, Opt allows you to compute view factors and write them to a file (Opt = NEW). If view factors already exist in the database, this command also allows you to deactivate the view factor computation (Opt = OFF). OFF is the default upon encountering the second and subsequent SOLVE commands in /SOLU. After the first SOLVE command, the program uses view factors existing in the database, unless they are overwritten by the VFOPT command.

For 3-D analyses using Distributed ANSYS, you can specify parallel or serial mode for view factor calculations. See the Notes section of the VFOPT command for more information.

VFOPT allows you to output view factors in ASCII or binary file format. Binary is the default.

To ensure a good energy balance, you need to satisfy both the row sum relationship as well as the reciprocity relationship for the view factor matrix. The VFSM command can be used to adjust the view factor matrix to satisfy reciprocity and/or row sum properties.

For a perfect enclosure, each row of the generated view factor matrix should sum to a value of 1. For a leaky enclosure, the sum across any row can be less than or equal to one, depending on the amount and characteristics of the leakiness.

The VFSM command must be used before VFOPT is issued, or Solve is initiated.

 

Еще по поводу "уверенности": вы точно не путаете расчет излучения на каждом шаге с вычислением матрицы коэфф. видимости?

 

По поводу Флуента совет норм - он тоже умеет сохранять матрицу коэффициентов.

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

Правда, при рестарте тоже вычисляет заново..

 

22 hours ago, aquarido said:

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

Я когда-то помогал одному челу, реализовывал в CFX "систему управления объектом с распределенными параметрами" - контроль температуры в определенной области объекта с учетом инерционных характеристик управляющего воздействия. "Короче говоря", хитрое управление "печкой", позволяющее точно контролить Т даже очень далеко от места непосредственного нагрева) Если интересно, можем попробовать для вашего объекта.

Сегодня вечером или аж через две недели)

 

Хотя можем и не пробовать.

Изменено пользователем piden
Ссылка на сообщение
Поделиться на других сайтах

Да, я на самом деле немного был не прав, уже позабыл корень проблемы: 

угловые коэффициенты пересчитываются если изменился тепловой поток.

 RADIATION BOUNDARY CONDITIONS HAVE CHANGED.
 CREATING NEW VIEW FACTOR DATABASE.

Но в моем случае тепловой поток меняется практически на каждом шаге. То есть происходит постоянный пересчет угловых коэффициентов.

19 минут назад, piden сказал:

Я когда-то помогал одному челу, реализовывал в CFX "систему управления объектом с распределенными параметрами" - контроль температуры в определенной области объекта с учетом инерционных характеристик управляющего воздействия. "Короче говоря", хитрое управление "печкой", позволяющее точно контролить Т даже очень далеко от места непосредственного нагрева) Если интересно, можем попробовать для вашего объекта.

Это очень интересно, но не имеет отношения к проблемам в моей задаче. В любом случае спасибо за предложение.

Ссылка на сообщение
Поделиться на других сайтах
41 minutes ago, aquarido said:

угловые коэффициенты пересчитываются если изменился тепловой поток.

 

Но они не должны так делать. На то они и коэффициенты.

 

Готов поспорить, что смогу заставить задачу заработать без пересчета коэффициентов :biggrin:

42 minutes ago, aquarido said:

Но в моем случае тепловой поток меняется практически на каждом шаге. То есть происходит постоянный пересчет угловых коэффициентов.

Ни модель, ни упрощенный пример с такой проблемой вы не выкладываете, другие способы пробовать не хотите.. Вы точно хотите узнать, как избавится от проблемы с пересчетом коэффициентов? Или хотите только оповестить мир про факт вашей героической и безрезультатной борьбы с проблемой?))

 

Раз вы упомянули рестарт, погадаю со скуки. Предположу, что вам требуется как можно скорее догнать температуру Т в конкретной точке до какого-то значения T_control, после которого идет изменение управляющего воздействия (меняется тепловой поток), потом снова быстрее догнать до T_control2 итд.. Причем, с одной стороны шаг должен быть большой, чтобы быстрее шел счет, с другой стороны есть опасность проскочить мимо T_control - в этих случаях и предполагается задействовать рестарт.

Если дело с рестартом правда в этом - можно обойтись вообще без него. Задать адаптивный шаг по времени, который будет подстраиваться под дельту T - T_control и скорость изменения T. Можно закон для предсказания Т задать линейным, можно по экспоненте, по любому закону...

Можно оценивать по нескольким сразу и брать самое безопасное минимальное значение шага по времени, с ограничениями на минимальное/максимальное значение)

 

Короче, мне кажется, что вы пытаетесь пробить выход в стене. И не хотите искать дверь, а она может оказаться чуть левее, за углом)

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, piden сказал:

Но они не должны так делать. На то они и коэффициенты.

Но они так делают. Я в цикле пробовал указать ансису на свои посчитанные один раз УК, он говорит спасибо и считает их заново.

 

1 час назад, piden сказал:

Готов поспорить, что смогу заставить задачу заработать без пересчета коэффициентов :biggrin:

Очень любопытно было бы понаблюдать.

1 час назад, piden сказал:

Ни модель, ни упрощенный пример с такой проблемой вы не выкладываете, другие способы пробовать не хотите.. Вы точно хотите узнать, как избавится от проблемы с пересчетом коэффициентов? Или хотите только оповестить мир про факт вашей героической и безрезультатной борьбы с проблемой?))

Резонно. Но меня в первую очередь интересовал вопрос подхода, так как что-то написать в коде я и сам могу,главное в каком направлении двигаться. Но раз "такая пьянка", привожу описание задачи. Дело просто еще в том, что пока я ищу подходы и пробую тестовые задачи. Реальную задачу я до конца еще не оформлял.

 

1 час назад, piden сказал:

Раз вы упомянули рестарт, погадаю со скуки. Предположу, что вам требуется как можно скорее догнать температуру Т в конкретной точке до какого-то значения T_control, после которого идет изменение управляющего воздействия (меняется тепловой поток), потом снова быстрее догнать до T_control2 итд.. Причем, с одной стороны шаг должен быть большой, чтобы быстрее шел счет, с другой стороны есть опасность проскочить мимо T_control - в этих случаях и предполагается задействовать рестарт.

Если дело с рестартом правда в этом - можно обойтись вообще без него. Задать адаптивный шаг по времени, который будет подстраиваться под дельту T - T_control и скорость изменения T. Можно закон для предсказания Т задать линейным, можно по экспоненте, по любому закону...

Можно оценивать по нескольким сразу и брать самое безопасное минимальное значение шага по времени, с ограничениями на минимальное/максимальное значение)

У меня чуть сложнее.

Нагреватель греет объект. Имеется обратная связь по температуре объекта.

*SET,TT1,TEMP(NODE(2.02,7.940,0))

Нагрев должен происходить по заданной прямой зависимости ( Temp=a*time+b) ) от комнатной температуры до рабочей. Далее идет выдержка на рабочей температуре.

!=============Уставка==============    
    *IF,t_tek,LE,t_nagr,THEN
    Tust=(T2-T1)*t_tek/t_nagr+T1
    *ELSE
    Tust=T2
    *ENDIF

Обратная связь используется в законе регулирования для определения текущей мощности нагревателя.Чем больше рассогласование реальной температуры объекта от уставки, тем больше мощность нагревателя.

!===========Мощность нагревателя=========
r1=0.5*(Tust-TT1)
*IF,r1,LE,0,THEN
r1=0
*ELSEIF,r1,LT,1,THEN
r1=0.5*(Tust-TT1)
*ELSEIF,r1,GE,1,THEN
r1=1
*ENDIF

q_tek1=q_ust1*r1  !-----------текущая мощность как выражение от установленной (максимальной)
BF,heat_1,HGEN,q_tek1

 

Условие для изменения шага расчета по времени:

Если средне арифметическая сумма узловых температур во всей модели изменилась не более чем на 1 градус - шаг по времени наращивается на 10%.

Если средне арифметическая сумма узловых температур во всей модели изменилась в интервале 1-3 градуса - шаг по времени остается неизменным.

Если средне арифметическая сумма узловых температур во всей модели изменилась более чем на 3 градуса - итерация не засчитывается, откатываемся на предыдущую итерацию, уменьшаем шаг по времени в 2 раза и пересчитываем.

 

Задачу усложняет то, что нагреватель греет объект исключительно излучением, что крайне нелинейно сказывается на изменении температур от мощности. Потому такие рамки по шагам.

 

 

С нетерпением жду критики и предложений.

Ссылка на сообщение
Поделиться на других сайтах
38 minutes ago, aquarido said:

С нетерпением жду критики и предложений.

Обрывочные куски кода мало о чем говорят. Гадать, что символизирует t_tek, t_nagr, Tust, TT1 итд сегодня желания особого нету. Я понимаю, что текущая, нагревателя и устоявшаяся/устройства.... Но ощущение, как будто начал фильм смотреть с середины. 

Вы или опишите задачу человеческим языком (например так, как вам ее ставили), или вообще весь код (с комментариями!) выкладывайте.

 

40 minutes ago, aquarido said:

средне арифметическая сумма узловых температур во всей модели

Это как? Средняя по объему температура во всей модели - понимаю. Даже средняя по всем узлам, хотя толку от такой оценки не много.

Можно тупо сложить все значения с узлов. Но вот со средним арифметическим как-то не ясно....

 

55 minutes ago, aquarido said:

итерация не засчитывается, откатываемся на предыдущую итерацию, уменьшаем шаг по времени в 2 раза и пересчитываем.

И критерии адаптации шага тоже не понятны, ведь не ясны цели расчета. Толку описывать про среднее арифметическое, если не ясно, какую цель преследует механизм адаптации шага. Почему нельзя повышать Т больше, чем на 3 градуса за шаг?

Почему следим за температурой, а не, например, за дисбалансом энергии? Через него разве не проще было бы контролировать шаг?

 

 

Основываясь на вашем стиле изложения информации, пытаюсь представить ход работы вашей мысли при задании ГУ. У меня появилось подозрение, что с каких-то зон у вас в процессе решения включается / выключается излучение путем перезаписи ГУ. И тогда, конечно, изменяется кол-во элементов, участвующих в излучении, пересчитывается матрица коэффициентов.

 

 

 

Ведь можно выключить источник, удалив ГУ. А можно выключать, прописав 0 для значения мощности..

Ссылка на сообщение
Поделиться на других сайтах

Выкладываю проект

https://drive.google.com/open?id=1bsgqPVF8Tv7WpkUKc0nEbJv5JqsEO8-O

Там ряд расчетов. Смотреть, например, модуль С "My"

 

В задаче 6 независимых нагревателей и соответственно 6 датчиков температуры.

Очень извеняюсь, остальные комментарии смогу дать позже - нужно убегать. 

Ссылка на сообщение
Поделиться на других сайтах
3 minutes ago, aquarido said:

Очень извеняюсь, остальные комментарии смогу дать позже - нужно убегать. 

Ок, спасибо)

Очень желательно еще описать саму задачу. И рассказать, зачем вообще понадобилось моделировать все время работы в печи, раз там контроллер есть. Логику работы контроллера проверить?)

UPD: понял по названию, что тут все серьезно)) И отжиг такого аппарата будут моделить посекундно))

 

On 9/18/2014 at 10:45 AM, aquarido said:

Требуется обучение решению задач теплообмена в  Ansys Workbench. Так же решить задачу нестационарного теплообмена сложной конструкции с организацией обратной связи по температуре.

Обучение онлайн.

Задача еще с тех времен?)

 

И, судя по файлам, гражданин Майоров тогда для вас что-то сделал... Но онлайн-обучить так и не смог?

Изменено пользователем piden
Ссылка на сообщение
Поделиться на других сайтах

В таких случаях, Тимур, я себя просто археологом ощущаю :biggrin:

 

Но сегодняшний вечер заканчивается. А следующий похожий будет недельки через две..

Ссылка на сообщение
Поделиться на других сайтах
2 hours ago, aquarido said:

Но они так делают.

Да, пока подтверждаю это странное поведение. View factor рассчитывается на каждом шаге. Если принудительно его зачитать из внешнего файла, то читает только для первого шага, потом заново пересоздает...

Но это в ВБ. Если все делать в классике через цикл, может и получится обойти..

 

Если варьировать тепловую нагрузку в пределах одного шага, VF не пересчитываются.

Ссылка на сообщение
Поделиться на других сайтах
On 5/31/2018 at 1:42 PM, aquarido said:

Меня не устраивает, что в теплообмене излучением (radiosity) ансис на каждом шаге пересчитывает угловые коэффициенты.

 

Oh yeah!!

 

Получилось победить! В настройках командной вставки можно настроить к каким шагам она применяется. И там есть опция "ко всем" :biggrin:

Так что теперь VF каждый раз зачитывается из файла.


/solu
VFOPT,READ,factor,vf,'j:\Trial\_fsapr\aquarido\VF',,

 

https://i.imgur.com/25uIuhL.png

Изменено пользователем piden
Ссылка на сообщение
Поделиться на других сайтах
Цитата

 В настройках командной вставки можно настроить к каким шагам она применяется.

Хм. Странно это всё. Я не пробовал, конечно, но в коде же цикл и обращение к коду происходит на каждом шаге расчета, иначе ничего бы не менялось.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...