Как стать автором
Обновить

Модельно ориентированное проектирование. Создание достоверной модели, на примере авиационного теплообменника

Время на прочтение12 мин
Количество просмотров9.3K
Всего голосов 5: ↑5 и ↓0+5
Комментарии39

Комментарии 39

Разработать систему алгебро-дифференциальных уравнений, описывающих динамическое поведение моделируемой систем. Это просто, если знать физику процесса. Множество ученых уже разработали для нас основные физические законы имени Ньютона, Бренули, Навье Стокса и прочих Штангелей Циркулей и Рабиновичей.


А если физика процесса неизвестна или просто лень с системой диффуров заморачиваться на первых этапах, то можно сделать System identification в Матлабе

System Identification Toolbox предоставляет возможности для построения математических моделей динамических систем по измеренным данным входа и выхода реальной системы.
Если физика объекта не известна, то это не проектирование от слова совсем.
И если вы систему идентифицировали, в диапазонах на которых были данные, то при выходе за диапазон никто не гарантирует результата.
И если вы систему идентифицировали, в диапазонах на которых были данные, то при выходе за диапазон никто не гарантирует результата.

Да, верно. Поэтому диапозон входных данных должен быть максимально возможным.

System Identification больше напоминает reverse engineering физических процессов.
А здесь возникает вопрос испытаний. В данном случае, я должен в теплообменник загнать воздух с температурой высоты 10 км это -50, плюс для работы System Identification, вы должны мерить не просто точку с установившееся режимом, а скорость перехода из состояние в состояние, с учетом инерционность термопар, сложности настройки оборудования, получить идеальное воздействие для переходного процесса вообще отдельная наука.
Да, инерционность(тау) is a bitch.
Разумеется замеры должны быть максимально непрерывными с достаточной частотой сэмплирования
в SimInTech это тоже есть, но для реальных проектов, все таки лучше смотреть на процессы, понимая физику или хотя бы приближаясь к ней
Я так понимаю, что следующая статья будет про Hardware in the loop, судя по результатам голосования.
A real control system - how to start designing

хорошее видео
Получается что то типа openmodelica/modelica, аналоги скорее не simulink, где больше всё заточено на системы управления а Amesim, dymola и иже с ним.
У вас уравнения и их взаимосвязи как описываются, с помощью какого языка?
У нас брошюра весит для студентов и преподаватель simintech бесплатен, это так?
Насколько я знаю Siemens сейчас Amesim довольно агрессивно рекламирует и есть внедрения, на тот же энергомаш и миль, плюс там большая готовая база библиотек, в том числе для теплообменников.
Еще дополнить можно Wolfram SystemModeler, MapleSim
База хороша, когда у вас комплектующие готовые и соотвесвуют этой базе. Тогда да берете теплообменник, а если к нему еще и модель с поддержкой FMI интерфеса для моделирования тогда вообще хорошо, но беда в том, если мы проектируем, у нас аппарат которого нет в библиотеке. К тому же в случае теплообменника, в авиации влияния неачинает оказывать взаимное расположение агрегатов, когда перетоки тепла, нужно учитывать.
C амесим у нас смешная истоия была.
Мы их на простой задачи со стенкой из учебника поймали.
А поскольку библиотека для наших продавцов закрыта, он не могли поправть в течении полу-года.
А сколько там еще не простых ошибок?
image

Для студентов и преподавателей бесплатный, плюс сейчас действует программа, за каждую публикацию статьи с использованием SimInTechплатится 10 000 руб.

Нет тут тоже основное назначение — создание программы управления для контроллера. Более того есть сретификат для систем безопасности АЭС которые позволяют генерировать код из схемы в контроллеры управления важные для безопасности.
Что касается языка то это смесь паскаля (откуда взяли begin — end) и матлаба, где производная пишетеся как y' = a*x;
и естественно можно как в Simulinк из блоков собирать уравнения:
Например гидроцилиндр в виде набора блоков:
image
Камера в виде дифиренциального уравнения:
image
Нет тут тоже основное назначение — создание программы управления для контроллера. Более того есть сретификат для систем безопасности АЭС которые позволяют генерировать код из схемы в контроллеры управления важные для безопасности.

У amesim и похожих назначение несколько другое, это скорее программы для одномерных расчётов сложных систем, гидравлика, пневматика, переходные процессы, а вот с системами управления там не очень, как и с генерированием кода.
если мы проектируем, у нас аппарат которого нет в библиотеке. К тому же в случае теплообменника, в авиации влияния неачинает оказывать взаимное расположение агрегатов, когда перетоки тепла, нужно учитывать.

Это так, но зачастую система состоит из набора простых элементов, например тот же flowmaster достаточно хорошо гидравлическую схему двигателя моделирует, по сути состоя из библиотечных элементов с гидравлическими сопротивлениями (хотя иногда и весьма специфичными, по типу лабиринтного уплотнения). У вас библиотеки, по типу того же amesim есть, с той же стенкой или надо руками уравнения прописывать?
Что касается языка то это смесь паскаля (откуда взяли begin — end) и матлаба, где производная пишетеся как y' = a*x;

А интеграция modelici не планируется? По сути сейчас это чуть ли не стандарт языка моделирования систем, плюс на нём куча библиотек готовых есть.
Вообще какие то туториалы в открытом доступе есть посмотреть, может ролики на youtube? У Вас вроде даже интеграция с тем же логосом прописана, мультисистемная модель, а как это в интерфейсе выглядит непонятно.
Для студентов и преподавателей бесплатный

А как его получить и посмотреть?
Для студентов бесплатен. Для преподователей в обмен на методические материаллы. Для университетов есть программы сотрудничества. В Amesim нет наших теплообменников той базе

В части моделирования все похоже. И библиотеки конечно есть, и в отличие от amesima болшая часть открыта для пользователя. Особенность SimInTech втом, что он для АЭС использовался изначально и там много, систем, подсистем и оборудования, поэтому ядро изначално для больших схем писали свое. Соответсвенно с моделикой пока не работает. А брать готовое ядро моделике — терять все преимущества.
Например сейчас у нас модель гидравлической системы управления для подводной добычи газа считает все месторождение в реальном времени.
Референтная модель на моделике в SimulationX, c которой мы вериффицировались, на этой же машине медленне раз в 10-20, результаты совпадают.
Сейчас можно модель по протоколу FMI подключать.
Встроить возможность считать моделикой планируем, что бы открытые библиотеке можно было к нам подключать. Но у большинства комерческих продуктов, модели закрыты, хотя выполнены на моделике. Amesim тот же. А когда модель закрыта, какая разница, в том что там стандартная моделика, код то недоступен.

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

У коммерческих то да, но существуют открытые, например modelica.org/libraries
медленне раз в 10-20, результаты совпадают.

Сама то моделика не очень быстрая, это да, но и её подход более удобен, с соединителями, особо для мультидисциплинарных расчётов.
что он для АЭС использовался

Вроде у вас числится ЦИАМ в пользователях, они для систем управления или ПГС использовали?
Есть ли возможность мультидисциплинарных расчётов (как в amesim пример по газотурбинному двигателю)?
Как раз ради открытых библиотек мы и смотрим на Моделику.
Ну с соединителям в виде линий связи у нас на моделику похоже решения, просто создается двунаправленная шина данных и в системе задается ее тип, механическая, электрическая, гидавлическая и т.п. После этого, уже пользователю не дадут соединить электрическую связь с механической или цифровой. Например на приложенной картинке с моделью привода — зеленые линии это механическая связь.image
Опять таки по опыту выясняется что удобство связей имеет свою цену, особеннок когда код закрыт. У нас был опыт когдам мы гидавлическую и механическую систему соединяли, в одном случае получается, что скорость рассчитывается в двух местах и итерациями уравнивается, если мы используем стандартные связи. А если переделать рассчетную схему и скорость считать в механической части и передавать в гидравлическую, то исчезают лишнии итерации и расчет ускоряется. Но связь уже не стандартная и универсальная и работает только в конкретном случае. Тут всегда нужно искать лучший вариант. Идеально конечено иметь возможность и стандартные связи моделики и возможность из изменения.
Референтная модель на моделике в SimulationX, c которой мы вериффицировались, на этой же машине медленне раз в 10-20, результаты совпадают.

Странно, а сначала вроде у вас медленнее считалось, чем в SimulationX)
Посмотрел в нашей переписке, в SimulationX считалось примерно в 30 раз быстрее реального времени на моём компе. Как вам удалось замедлить нашу модель?))
А мы модель мы не замедляли, мы просто перемножили время расчета вашей модели на количество таких же моделей в итоговой и поняли что с такой скоростью не полетит.

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

Ну главное, что есть понимание, что скорость расчёта модели зависит не от того, на каком языке она написана, а какие допущения заложены.
Но почему-то я не сомневался, что в итоге по результатам этого проекта появятся ваши типичные маркетинговые сказочки «модель на моделике в SimulationX медленнее раз в 10-20, результаты совпадают».
Так про это и речь, ну не стали бы вы специально для нас менять модели гидропривода арматуры, в которой скорость рассчитывается в двух местах и это вызывает замедление рассчета когда таких армтур в модели больше 150 штук. Не думаю что разработчикам SimulationХ, так же есть смысл вводить и выводить сигналы в систему управления для отладки ПМУ непосредственно из полости в гидроцилиндре. Такая задача у нас тоже возникла. Так же, как специально для тебя никто в Match Works не будет править Simscape. Я сейчас тебя процитирую:
«Видно, что результат практически не отличается, за тем исключением, что Simscape почему-то начинает неистово дробить шаг в конце переходного процесса. Возможно, это связано со способом расчёта расхода, который в конце становится очень маленьким, а может и нет...»
«Примерно та же самая история. Результаты практически не отличаются, но Simscape почему-то безосновательно начинает дробить шаг. Что у него в голове? Я не знаю...»
Так про это и речь, ну не стали бы вы специально для нас менять модели гидропривода арматуры, в которой скорость рассчитывается в двух местах и это вызывает замедление рассчета когда таких армтур в модели больше 150 штук. Не думаю что разработчикам SimulationХ, так же есть смысл вводить и выводить сигналы в систему управления для отладки ПМУ непосредственно из полости в гидроцилиндре.


Выводить сигналы из полостей гидроцилиндра можно и стандартными инструментами, для этого ничего дописывать не нужно. Если для решения задачи требуется создание новых компонентов, эти компоненты заказчик получает в полностью открытом виде.
Недавно мы делали проект, где речь шла о стыковке по SiL с контроллером Сименс гидравлической системы тоже более чем с сотней арматур, и под этот проект я написал с нуля модель центробежного насоса (вне бюджета проекта), которая позволяет моделировать его запуск, не замедляя расчёт. Плюс создал библиотеку компонентов специально под эту систему, из которых можно спокойно собирать аналогичные системы, не беспокоясь, что где-то начнётся дробление шага интегрирования.

Так что здесь речь только о том, подключаешь ли ты к своему проекту разработчиков софта. В случае с Simscape и Amesim, это практически нереально, для нас же это обычный рабочий процесс. Поэтому скорость расчёта и точность модели будет ровно такая, какая требуется для решения задачи.
Вывод параметров это не то, там просто оказалость прямо в теле кода где рассчет давления напрямую запись делать в базу данных сигналов, которую видит на отдельной виртуальной машине система в реальном времени, обходя все стандартные механизьмы, в конечной версии это удалили, и пользователям не отдали, это такой хак который в конкретном случае был полезен, и много времени для отладки сохранил.

А вот это реально круто, когда можно с разработчиком договорится. Просто для разработчиков MatchWorks это то же ральный процесс (наверное), но к ним очередь из страждущих бесконечна и наши хотелки и проблемы для них как блоха кусающая вошь — малое более высокго порядка. Как наверное для любого реально массового софта. Будь у заказчкиа Simscape, хрен бы он увидел и «модель центробежного насоса (вне бюджета проекта)» и «библиотеку компонентов специально под эту систему».

Тут все определяется соотнешением цена — работа. Вам еще повезло, что французы гайки не закручивают, по моему опыту с Dassault, они заряжают ценник 1000$ в день за специалиста, но могут как специалиста прислать консультанта который только 2 недели назад из Simiens пришол. И все что может это вопроссы записать и отправить по длинной цепочке, которая к разработчику может привести недели через 2, с вероятностью 50%
Будь у заказчкиа Simscape, хрен бы он увидел и «модель центробежного насоса (вне бюджета проекта)» и «библиотеку компонентов специально под эту систему».

Да, но не потому что у них массовый софт, а потому что это универсальный и мощный инструмент научного работника для решения широкого круга научных задач. SimulationX же — инструмент инженера для решения прикладных технических задач.
Mathworks шли от инструмента для работы с огромными матрицами для решения научных и образовательных задач, наша же программа изначально развивалась, отталкиваясь от инженерных проектов, в результате которых получались библиотеки компонентов.
Поэтому и заказчики у нас совершенно разные. Вам Simscape для этого проекта не подошёл бы не только потому что разработчики и инженеры далеко, а потому что у них в принципе не было опыта в таких проектах. Максимум что они предлагают — это консалтинг, в процессе которого научат более эффективно использовать их софт, но сами задачи в любом случае решать нужно было бы вам самим. Для университетов это ок, но для фирм, которые решают прикладные задачи, это зачастую слишком дорого и долго.
Плюс создал библиотеку компонентов специально под эту систему, из которых можно спокойно собирать аналогичные системы, не беспокоясь, что где-то начнётся дробление шага интегрирования.
— Это ты сейчас всю моделику и своих немецких коллег подопустил? Типа без тебя их стандартные компоненты на больших моделях тормозили и дробили шаг? :))))
А политично рассуждаешь! Клянусь честное слово, не понимаешь политической ситуации! youtu.be/JVmNb1wDDZg
Типа без тебя их стандартные компоненты на больших моделях тормозили и дробили шаг?

Плохо ты мою методичку читал) Какие бы ни были стандартные компоненты, всё равно в конечном итоге всё определяется выбранными допущениями (какие конкретно компоненты взять и как их между собой соединить). Модели, предназначенные для расчётов в килогерцовом диапазоне, как правило, непригодны для расчётов в масштабе времени суток. Собственно, и вам пришлось начать думать где и как что можно ускорить, несмотря на ваш хвалёный решатель жёстких диффуров.
Что хорошо в Modelica как языке — что можно удобно создавать вложенные структуры элементов моделей и при необходимости подменять их на аналогичные по структуре, но с другим наполнением. Недавно освоил эту технологию и в новых проектах стараюсь делать модели с переключением степеней детальности, чтобы можно было быстро проанализировать какое свойство системы за какой физический эффект отвечает.
На примере из гидравлики — есть плунжерный насос, у которого возникают пульсации давления на выходе. Есть предположение, что это из-за клапанов. Можно сделать модель клапана с несколькими степенями детальности (без учёта инерции, с учётом, без учёта гидродинамической силы, с учётом и т.п.) и одним кликом менять структуру модели, анализируя как какой эффект влияет на пульсации. На детальной модели можно отладить конструкцию насоса, а для расчёта того же трубопровода, например, или редуктора к насосу, использовать уже упрощённую быструю модель.

По поводу дробления шага, у вас вон есть полный доступ вообще ко всему вашему коду, а всё равно не могли понять почему шаг интегрирования дробится при околонулевых расходах дросселя)

"По поводу дробления шага, у вас вон есть полный доступ вообще ко всему вашему коду, а всё равно не могли понять почему шаг интегрирования дробится при околонулевых расходах дросселя)"
Ничего уливииельно.Избаловали гилравлика, что все всегда считается он и там и налепил, уравненений, мне пришлось твое пособие читать, чтр бы понять где он косячит.

«Что хорошо в Modelica как языке — что можно удобно создавать вложенные структуры элементов моделей и при необходимости подменять их на аналогичные по структуре, но с другим наполнением.»
Что значит одинаковые по структуре но с другим наполнением? У нас можно назначить внутренность блока в виде субмодели, и при изменения параметра полностью менять все что находится внутри блока. Если портов стало больше, то они просто добавятся. Если меньше, то линия связи просто повиснет. На рисунке один и тот же блок, у которого разные параметры в свойствах, видно что в одном случае просто выход, в другом можно управляющее воздействия и нетраль подключать к схеме.
image
Про динамику и управление ничего сказать не могу. Но теплообмен на троечку. У меня к Вам следующие претензии:
1. Ничего не сказано про изменение теплофизических свойств воздуха. При перепаде температур от 120 до 70 градусов плотность и вязкость воздуха меняются довольно существенно. Очевидно это как-то учитывается в модели, но хотелось бы увидеть этов явном виде.
2. Убейте не понял зачем нужно было городить огород с шестью ячейками. Попутный ток, противоток вместо перекрестного тока. Сложно и не нужно.
3. Второе уравнение для числа Нуссельта. Вы ссылаетесь на книгу «РАСЧЕТ ПЛАСТИНЧАТЫХ
ТЕПЛООБМЕННИКОВ», а рассчитываете компактный пластинчато-ребристый. Это разные типы. И при всем обилии литературы по данному вопросу ставить ссылки на методички. Чем вам Чичиндаев не угодил? Он как раз занимался расчетами СКВ и тоже разбивал теплообменник на ячейки.
4. Самое, на мой скромный взгляд, некорректное в Вашей модели. Вы берете какие-то непонятные характеристические уравнения, загружаете данные экспериментов, а потом занимаетесь подгонкой. Зачем? Тем более, если у вас коэффициенты в формуле не постоянные. С таким же успехом можно просто линейные уравнения использовать. Правильнее было бы обобщить данные продувок и работать с ними без промежуточного звена.
Претензии справедливые, но
1) Свойства воздуха учитываются в уравнениях, на каждом временном шаге и для каждого рассчетного объема используются свойства из таблиц для рассчитываемых параметров. Просто формулы заняли бы еще 30 страниц текста.
2) Элементарная ячека в модели это упрощенно «канал теплоносителя со стенкой», количество расчетных участков в трубе задается достаточно просто, одно цифрой. Соединение же между участками, для получения перекрестного расхода, требует создания 6 соединений (вход — выход горячий, вход-выход холодный, 2 тепловые связи см. рис. 5) с точки зрения создания расчетной схемы это просто по времени дольше. Поэтому и попробавали соединений сделать меньше, а точек внутри больше. Большее количество расчетных ячеек, при меньших усилиях и посмотреть что по результатам получится.
3) Формулы были приведены, просто для примера, что бы показать существующий широкий диапазон коэффициентов в этих формулах и пояснить на примерах, что напрямую взять их и получить рассчет не получится, нужно настраивать по результатам эксперимента.
4) Характеритические уравнения мы берем как раз понятные, и обще употребительные, рекомендованные авторами как раз для авиационных теплообменника, но коэффициенты в этих уравнениях мы получаем методом настройки по модели.
Если бы у нас был один теплообменник в системе, то нам достаточно было бы просто данных продувок, но у нас целая система с турбопродами задвижками, турбохолодильниками и регуляторами, и считать ее надо в комплексе в динамических режимах. В данных режимах нам важна не точка продувки (расход и установившаяся температура), а именно скорость изменения. Нам нужно понять как растет температура, котороая приводит к изменению свойств (полотность, взяскость) а далее к изменению течения воздуха во всей системе.
Можно узнать Ваше, как специалиста, мнение, по такому вопросу: у меня есть объект управления в виде дачи с паровым отоплением и электрическим котлом, и хочется подвести какую-нибудь «научную базу» под управление всем этим хозяйством (сейчас есть возможность только задавать котлу вручную целевую температуру теплоносителя). Имеет ли вообще смысл строить сколько-нибудь полную модель всей системы (нагреватель, теплоноситель, радиаторы, воздух в помещении, конструкции здания, окржающая среда + все характеристики их теплоёмкости/теплообмена), чтобы из имеющейся истории наблюдений попытаться восстановить заветные коэффициенты, и управлять, просчитывая модель, или достаточно будет устроить простейший ПИД-регулятор, и вручную подогнать его коэффициенты? Задачи, по большому счёту, две: поддержание целевой температуры воздуха в помещении, и его прогрев к заданному моменту времени (в идеале — с экономией на ночном тарифе).
Спасибо!

Можно построить достаточно быстро модель которая учитывает объем воды в системе (трубы и теплообменники) объем нагреваемого воздуха и потери тепла через стены. Если есть исторические данные по температурам то достаточно просто посчитать кофэициент теплопередачи и вогнать его в модель в виде коэффицента интесефикации теплообмена. Скорости и расходы воды в системе тоже должны быть известны. Это будет задача с теплообменником и несколькими баками типа разобранной в этой статье: https://habr.com/ru/post/576082/

Спасибо! На первый взгляд, это как раз то, что я искал.

P.S. А у SimInTech есть какая-нибудь «home»-версия? ознакомительная, или что-нибудь в этом роде…

Конечно, качайте и спокойно собирайте модель дома в первом приближении вполне себе войдет в ограничения демоверсии (250 блоков 25 дифференциальных уравнений). Для теплогидравлики, считаются не уравнения а именно блоки турбы баки ситеник и тп

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации