Моделирование процессов функционирования технологических жидкостей в системе их применения
1. Моделирование систем применения СОЖ
Рациональное использование смазочно-охлаждающих жидкостей (СОЖ) является одним из резервов повышения эффективности эксплуатации режущего инструмента. Для инструментальной промышленности роль СОЖ особенно возрастает в связи с появлением и внедрением новых видов инструментальных материалов и необходимостью усовершенствования действующих. В этом случае использование СОЖ может значительно повысить производительность механообработки и улучшить качество обработанных поверхностей.
При применении СОЖ улучшается износостойкость инструмента, шероховатость обрабатываемой поверхности, точность обработки и т.д. СОЖ несет в себе охлаждающие, смазывающие, антикоррозионные, моющие и другие свойства. При непрерывной эксплуатации СОЖ очень быстро происходит процесс загрязнения механическими примесями, истощения эмульсии и т.д. Поэтому возникает необходимость в периодической очистки СОЖ в специальных системах очистки. Очистку СОЖ от загрязнений следует рассматривать как важный фактор обеспечения максимальной технологической эффективности жидкости. При загрязнении СОЖ отходами обрабатываемого материала и продуктами износа режущего интсрумента уменьшается эффективность жидкости, снижается качество обрабатываемых поверхностей и стойкость режущего инструмента , уменьшается срок службы СОЖ и возрастает ее расход.
В данной работе рассматривается задача автоматизированного проектирования систем очистки СОЖ. Т.е. заведомо имея СОЖ с определенными характеристиками загрязнения (концентрацию механических примесей и их дисперстный состав), строится оптимальная система очистки . Построение включает в себя подбор технологических и конструктивных параметров каждого элемента очистки и наиболее приемлимая схема их планировки . Которая состоит из соединенных , определенным образом , между собой отдельных элементов очистки (фильтров) . В работе было полностью спроектированы три фильтра : бак-отстойник, центрифуга, гидроциклон. Проектирование включает в себя построения модели в Ansys5.5 (создание программного кода) и создание гибкого программного средства , цель которого обеспечить эффективный интерфейс между пользователем и закодированными данными (в виде программы для Ansys).
1.1 Системы применения СОЖ
Системы стабилизации свойств технологических жидкостей по количеству обслуживаемого оборудования классифицированы на три группы: индивидуальные (ИС), групповые (ГС) и централизованные (ЦС) . Индивидуальные применяют для обслуживания одного станка, групповые - для групп отдельно работающих или для автоматической линии в цехе, централизованные - для основного количества металлорежущего оборудования в цехе или цехах. Емкость для СОЖ и основные элементы ИС и ГС расположены непосредственно рядом с обслуживаемым оборудованием, централизованные системы - в специально отведенных помещениях в цехах или вне цеха.
1.1.1 Функционирование СОЖ
После приготовления, СОЖ собирается в специальные емкости для хранения . После этого по трубопроводам передается к станкам и подается в зону резания, где сразу осуществляется сбор отработанной жидкости и передача ее в систему очистки , где одновременно осуществляется контроль дисперстного состава , концентрации примесей, температуры и других характерристик.
Как правило, индивидуальные системы оснащаются устройствами сепарации , термостабилизаторами , устройствами отделения и удаления шлама . Наряду с указанными элементами могут применятся системы бактериальной защиты, устройства автоматического обезвоживания и удаления шлама , поддержания объемов СОЖ, концентрации компонентов и бактерицидных присадок , подготовки и обработки систем перед заливкой СОЖ, контрольно-измерительную аппаратуру и др.
1.1.2 Состав систем применения
В систему применения СОЖ входят следующие элементы:
· устройства для приготовления
· оборудование для оценки качества
· оборудование для транспортировки и хранения
· оборудование для очистки
· оборудование для регенерации и обезвреживания отработанных СОЖ
В данной работе рассматривается оборудование для очистки СОЖ как элемент системы применения.
В современном машиностроении для очистки и фильтрования СОЖ применяются следующие устройства :
· баки-отстойники
· флотаторы
· магнитные сепараторы и транспортеры
· гидроциклоны
· фильтры транспортеры
· центрифуги
· фильтры ленточные, работающие под давлением(и под вакуумом)
· фильтры намывные, сетчатые, пластинчатые, щелевые, тканиевые и др.
Простейшими очистителями являются баки-отстойники, на дно которых твердые частицы осаждаются под действием силы тяжести. Эффективность осаждения примесей зависит от величины поверхности осаждения, расхода, вязкости, длины пути жидкости, а также конструктивных особенностей. Емкость бака должна превышать минутный расход жидкости не менее чем в 10-15 раз.
Недостатки : малая скорость процесса очистки жидкости, необходимость увеличения размеров отстойников для повышения эффективности очистки. Баки-отстойники часто используют в сочетании с другими устройствами очистки СОЖ.
Принцип флотационной очистки заключается в следующем : в бак-отстойник снизу подается воздух, пузырьки которого поднимаются к поверхности жидкости, образует пену и уносят с собой мелкие частицы загрязнений, которые в отстойнике не осаждаются. Пена с поверхности жидкости удаляется. Флотационные способы очистки обеспечивают хорошую очистку водных СОЖ.
В магнитных сепараторах ферромагнитные частицы притягиваются г магнитному ротору и затем удаляются латунным скребком .
достоинства : сравнительно невысокая стоимость, непрерывность работы, простота обслуживания, небольшие размеры .
недостатки : невозможность использования их при обработке немагнитных материалов и недостаточная для чистовых и отделочных операций степень очистки СОЖ.
Гидроциклон (ГЦ) является более универсальным очистителем . Принцип отделения примесей основан на вращательном движении потоков жидкости внутри ГЦ. Жидкость подается в ГЦ тангенциально и по спирали движется вниз до шламового отверстия затем основной поток поднимается снова по спирали вверх к выходному потрубку. В результате какого движения жидкости возникают значительные центробежные силы , под действием которых тяжелые частицы отбрасываются к стенкам . Основными преимуществами ГЦ является отсутствие вращательных частей и следовательно простота конструкции , непрерывное удаление шлама, возможность очищать и от магнитных и не от магнитных частиц. На ряду с гидроциклонами используют магнитные гидроциклоны. Они снабжены электромагнитами в конусной части положение которых можно регулировать. Это улучшает степень очистки засчет более интенсивного притягивания ферромагнитных частиц к стенкам ГЦ.
Принцип действия центрифуг основан на отделении инородных примесей под действием центробежных сил в жидкости при вращении ее в барабане.
Центрифуги производят тонкую очистку водных и масленых СОЖ от магнитных и немагнитных частиц, причем их пропускная способность по мере накопления шлама практически не изменяется. На операциях лезвийной обработки с целью повышения качества очистки СОЖ рекомендуется применять в сочетании с баком-отстойником магнитные сепараторы и транспортеры, напорные фильтры, центрифуги, гидроциклоны.
Системы стабилизации свойств технологических жидкостей по количеству обслуживаемого оборудования классифицированы на три группы: индивидуальные (ИС), групповые (ГС) и централизованные (ЦС) . Индивидуальные применяют для обслуживания одного станка, групповые - для групп отдельно работающих или для автоматической линии в цехе, централизованные - для основного количества металлорежущего оборудования в цехе или цехах. Емкость для СОЖ и основные элементы ИС и ГС расположены непосредственно рядом с обслуживаемым оборудованием, централизованные системы - в специально отведенных помещениях в цехах или вне цеха.
Как показали исследования и анализ научно-технической информации, наиболее перспективными при прочих равных условиях в сравнении с индивидуальными являются групповые и централизованные системы с учетом следующих технико-экономических факторов:
n можно использовать полный комплекс методов и средств стабилизации свойств СОЖ (очистки, термостабилизации, обезвоживания и удаления шлама, и др.);
n можно использовать наиболее высокоэффективные и производительные методы и средства стабилизации свойств технологических жидкостей (очистители, термостабилизаторы, системы обезвоживания шлама, биозащиты, и др.);
n целесообразно применение многоступенчатых систем с различным сочетанием элементов и устройств очистки и стабилизации свойств СОЖ;
n возможно применение модульных многоступенчатых систем без промежуточных емкостей для размещения СОЖ;
n сравнительно легко автоматизируются процессы контроля качества СОЖ, удаления, утилизации и транспортирования шламов, поддержания постоянных объемов, требуемой концентрации и соотношения фаз СОЖ, обработки и подготовки систем к заливке вновь приготовленных СОЖ;
n меньшая энергоемкость;
n меньшие занимаемые площади.
1.2 САПР системы применения
В настоящее время наблюдается сближение процессов проектирования и производства различных изделий на базе создания единой интегрированной системы, предусматривающей автоматизацию процессов проектирования и производства и получившей название системы CAD/CАM . В таких системах осуществляется интеграция автоматизированных систем научных исследований (АСНИ), проектирования (САПР), технологической подготовки производства (АСТПП), контроля (САК), управления (АСУ), производства (ГАП) на основе единой информационной базы данных (БД).
В интегрированной системе, описанной в работе , выбор системы СОЖ и ее проектирование осуществляются с помощью АСНИ и САПР путем предоставления необходимой информации из БД.
1.2.1 Основы проектирования систем применения СОЖ с помощью ЭВМ
Проектирование системы эксплуатации СОЖ начинается с выбора номенклатуры и состава жидкостей и проведения теоретических и экспериментальных исследований особенностей технологических процессов их эксплуатации.
Процесс проектирования включает две взаимосвязанные стадии - технологическое и конструкционное проектирование. Цель технологического (функционального) проектирования - разработка оптимальной технологической схемы функционирования СОЖ, определение оптимальных технологических параметров оборудования и технических средств применения СОЖ, a также выбор оптимальных технологических режимов, обеспечивающих повышение эффективности системы эксплуатации СОЖ. Кроме того, на стадии технологического проектирования разрабатываются принципы автоматизированной информационно-измерительной системы управления и аналитического контроля эксплуатации СОЖ.
Основные задачи конструкционного проектирования системы эксплуатации СОЖ: выбор оптимального объемно-планировочного решения (компоновки); выбор технологического оборудования; разработка технологических трубопроводов для подачи СОЖ в зону резания, удаления отработанных составов и циркуляции в остальном оборудовании.
При переходе к процессу автоматизированного проектирования систем эксплуатации СОЖ решение перечисленных задач осуществляется с помощью ЭВМ. При этом процесс проектирования рассматривается в виде системы сбора и переработки входной научно-технической информации в выходную информацию на основании математических моделей в виде проекта системы эксплуатации СОЖ.
Модель системы эксплуатации СОЖ является общим инструментом проектирования, который воспринимает на входе данные, необходимые для выбора номенклатуры СОЖ, технические, требования к оборудованию и средствам эксплуатации. Выходные данные такой модели должны содержать сведения о технологической схеме, рекомендации по режимам эксплуатации и данные по оборудованию, требующемуся для обеспечения технических требований.
Основные задачи автоматизированного проектирования систем применения СОЖ с использованием САПР-СОЖ:
·разработка методов автоматизированного прогнозирования свойств СОЖ и выбора ее состава;
·анализ иерархической структуры технологических схем и процессов применения СОЖ на основе методов математического моделирования;
·формирование цели проектирования и синтез технологических систем применения СОЖ в соответствии с выбранным критерием эффективности и принятой математической моделью;
·разработка структуры САПР- СОЖ и ее программно-математического обеспечения (ПМО).
Процесс автоматизированного выбора составов СОЖ включает: автоматизированный поиск и выдача рекомендаций по выбору универсальной или нескольких совместимых марок СОЖ из имеющегося товарного ассортимента по информации, хранящейся в БД.
Автоматизации процесса проектирования системы применения СОЖ должны предшествовать анализ структуры технологической схемы и процессов применения СОЖ и разработки модели системы, отражающей иерархическую структуру связей между отдельными стадиями к процессами, основанную на блочном принципе.
1.2.2 Разработка структуры САПР-СОЖ
Структуру САПР-СОЖ необходимо рассматривать в рамках общей структуры системы проектирования операционных технологических процессов механической обработки. Использование методов подготовки производства с независимым проектированием станка, приспособлений, процесса резания, инструментов резко снижает качество производственных процессов и недопустимо для создания перспективных производственных систем. Для создания автоматизированных производств с использованием ГПМ и ГПС, для которых функции отдельных подсистем практически неразделимы, необходимо использование обобщенных методик проектирования. Выбор СОЖ и проектирование систем их применения также должны учитываться в данных методиках как одна из подсистем общей системы проектирования. К задачам, решаемым в САПР ГПС, наряду с определением рациональной структуры станочной и транспортно-накопитльной систем, материальных потоков, относится и задача построения вспомогательных служб, в т. ч. службы эксплуатации СОЖ .
Функциональная структура САПР-СОЖ (см. рисунок 1.2.2.1) представляет собой иерархию целей, ориентированных на решение задач конкретного уровня, и включает следующие специализированные автоматизированные подсистемы:
·выбора состава СОЖ к прогнозирования их свойств;
·технологического проектирования отдельных процессов применения СОЖ;
·конструкционного проектирования оборудования и технических средств применения СОЖ;
·синтеза (компоновки) схем применения СОЖ;
·проектирования систем управления, диагностики и контроля СОЖ;
·расчета технико-экономических показателей.
Функционирование данных специализированных подсистем в САПР-СОЖ обеспечивается наличием подсистем методического, информационного, математического, программного и технического обеспечения. Взаимодействие между подсистемами должно удовлетворять общим принципам, положенным в основу, при разработке САПР: относительная независимость подсистем, эволюционность подсистем и всей САПР-СОЖ в целом, минимальное взаимодействие с внешней средой, универсальность для групп родственных технологических объектов.
К методическому обеспечению САПР-СОЖ следует отнести документацию по выбору и правилам эксплуатация средств обеспечения автоматизированного проектирования.
К информационному обеспечению САПР-СОЖ, базирующемуся на централизованной БД, относятся следующие массивы информации:
·физико-химических, теплофизических, функциональных, основных технологических и сопутствующих свойств СОЖ;
Информационное обеспечение (централизованная БД) |
Программно-математическое обеспечение САПР систем применения СОЖ |
Модели функционирования СОЖ на операциях шлифования |
Модели прогнозирования состояния и выбора СОЖ |
Методика построения систем стабилизации свойств СОЖ |
Модели оборудования систем применения СОЖ (очистители, трубопроводы, насосы, емкости и т.д.) в системе ANSIS |
Модели синтеза технологических схем применения СОЖ |
Блок управления |
Методика выбора значимых параметров СОЖ |
Модели АСУ и диагностики СОЖ |
Рис 1.2.2.1 Функциональная структура САПР применения СОЖ
·присадок к СОЖ с характеристиками их химической структуры и спектром активностей (основными и побочными типами функциональных свойств);
·товарных марок СОЖ базового ассортимента;
·типовых процессов и технологических схем в системах применения СОЖ;
·технологических маршрутов операций, процессов и стадий по применению СОЖ;
·типовых схем управления и диагностики;
·средств автоматизации контроля качества СОЖ на всех этапах функционирования; средств регулирования и датчиков информации о состоянии СОЖ;
·рекомендации по применению СОЖ для основных операций обработки металлов резанием;
·каталоги оборудования для технических средств применения СОЖ;
·технико-экономические параметры оборудования для применения СОЖ и нормативы его эксплуатации и обслуживания.
В этом проекте разрабатывались блоки выделенные на рис.1.2.2.1 двойной линией.
Для пополнения информационной базы САПР-СОЖ имеются два источника - экспериментальные и расчетные данные. Экспериментальное определение свойств СОЖ, приведение испытаний по оценке их эффективности и рациональным областям применения, определение оптимальных характеристик и режимов работы оборудования для эксплуатации СОЖ должны проводиться на единой научной и методологической основе с использованием средств и методов автоматизации эксперимента. Однако при внедрении новых СОЖ в процессе проектирования систем их применения всегда имеются недостающие данные, которые могут восполняться за счет расчетных методов. В последнее время появляется все большее число методов и систем машинного расчета свойств веществ, в т. ч. и для расчета свойств СОЖ на ЭВМ.
К математическому обеспечению САПР-СОЖ относят совокупность математических методов, моделей и алгоритмов, необходимых для осуществления автоматизированного проектирования. Известны следующие типы моделей, используемых для САПР ГПС: модульные, сетевые, со специальными языками программирования, эмуляционные.
Модели в САПР-СОЖ используются для выбора составов СОЖ, прогнозирования их свойств, расчета технологических процессов в системе применения СОЖ, расчета аппаратурного оформления их использования. Моделирование позволяет выбрать оптимальный вариант компоновки системы применения СОЖ, т. е. осуществить синтез оптимальной технологической схемы и разработать алгоритмы управления. Для каждого варианта технологической схемы применения СОЖ составляется математическое описание отдельных технологических процессов. При этом наряду со стандартизацией оборудования необходима стандартизация и его математического описания. Большинство моделей отдельных процессов применения СОЖ при автоматизированном проектировании используются в качестве проверочных вариантов, т. е. их применение при проектировании связано с изменением входных параметров процесса и последующем расчете. Поэтому создание моделей в проектной постановке требует коррекции принимаемых допущений и ограничений.
К программному обеспечению САПР-СОЖ относят совокупность машинных программ, ориентированных на определенный класс ЭВМ и необходимых для автоматизированного проектирования.
Техническое обеспечение САПР-СОЖ включает совокупность взаимосвязанных технических средств для автоматизированного проектирования, например, автоматизированного рабочего места на основе ЭВМ.
Работа САПР-СОЖ может быть организована следующим образом.
В технологическом блоке анализируется входная информация о процессах механической обработки и на основании банка данных осуществляется выбор составов и номенклатуры СОЖ. Далее вводится и анализируется информация об отдельных процессах, реализуемых в системе применения СОЖ, оцениваются режимы протекания процессов и входные параметры. На основании математических моделей отдельных процессов осуществляется проектный расчет выходных параметров (заданных локальных критериев). В конструкционном (компоновочном) блоке решаются задачи, связанные с выбором оборудования, и синтезом проектируемой системы применения СОЖ. Анализируются различные варианты состава аппаратуры и технических средств, пригодных для выполнения отдельных технологических процессов. В результате анализа определяется оптимальный состав оборудования и соответствующая оптимальная технологическая схема применения СОЖ.
В блоке управления решаются задачи автоматизированного регулирования и управления отдельными процессами и аппаратами и всей системой применения СОЖ в целом. Для управления служат типовые схемы диагностики и регулирования параметрами СОЖ. На основе анализа входной информации выбираются оптимальные схемы управления, номенклатура средств диагностики, регулирования. Кроме того, в блоке управления осуществляются синтез автоматизированной системы управления последовательностью работы аппаратуры и технических средств применения СОЖ, а также синтез схем диагностики и адаптивного регулирования параметров СОЖ.
Предлагаемая структура САПР систем применения СОЖ основана на математическом моделировании и описании процессов и оборудования для эксплуатации СОЖ и предназначена как отдельная подсистема для технологической подготовки проектирования всей технологической операционной системы механической обработки.
1.2.3 Выбор очистителей и построение систем очистки СОЖ
(Методический подход к построению систем очистки.)
Выбор и построение систем очистки базируется на анализе причин, определяющих эффективность работы очистителей и всей системы очистки в целом с использованием комплекса критериев, характеризующих сложный процесс операций технологических жидкостей от мелкодисперсного шлама .
В этом проекте рассматриваются два критерия эффективности системы очистки это тонкость очистки и степень очистки.
Спенень очистки выражается через концентрации примесей следующим образом: , где C0 и Cи это соответствено загрязненность до и после очистки.
Так как ни один очиститель не обеспечивает , то по мере увеличения продолжительности эксплуатации технологической жидкости в ней накапливается шлам (особенно мелкодисперсный) со всеми вытекающими негативными последствиями. Увеличение массы частиц происходит значительно медленнее, чем их числа из-за быстрого накопления в очищенной жидкости частиц с незначительной массой. Например, после очистки СОЖ в гидроциклоне обеспечивается степень очистки по массе составляет всего 60%.
Для оценки степени приближения качества очистки технологической жидкости к требуемому (допустимому) содержанию механических примесей предложен коэффициент очистки
где и может быть использован в отношении как общего числа и суммарной площади поверхности частиц
В случае, если очиститель обеспечивает требуемое качество очистки СОЖ, то
Связь между и выражается зависимостью:
Учитывая, что большое влияние на функциональные и эксплуатационные свойства СОЖ, а также на выходные технологические показатели операций абразивной обработки заготовок оказывают характеристики законов распределения шламов, предпочтительно в некоторых случаях (для операций окончательной обработки высокоточных деталей) использовать зависимость для расчета коэффициента очистки, предложенную Е.А.Каревым:
где
частиц шлама соответственно в исходной и очищенной СОЖ;
- средник эквивалентные диаметры частиц шлама соответственно в исходной и очищенной СОЖ;
Величины и
Оценка работоспособности очистителя справедлива в данном случае только для начального момента функционирования системы и коэффициент очистки и значение ( при
Очиститель выбран правильно, если для момента времени в зависимости от значений и величина рассчитывается на ЭВМ .На величину (или ( (или и очищенной не обеспечивают условие (6.3):
т.е. не уменьшают содержание механических примесей в очищенной СОЖ в требуемое число раз по сравнению с их содержанием в исходной жидкости. В этом случае используют многостадийную сепарацию технологических жидкостей.
В связи с необходимостью применения во многих случаях многостадийной очистки очистители характеризуются передаточным коэффициентом очистки (сепарации):
показывающие во сколько раз уменьшается или должно быть уменьшено содержание механических примесей в технологической жидкости по сравнению с исходным их содержанием в момент времени при прочих равных условиях, тем эффективнее происходит отделение механических частиц от жидкости. При правильно выбранном количестве стадий очистителей должно соблюдаться соотношение
Связь между и выражается зависимостью:
Зная величину для конкретного очистителя, можно определить
Если не обеспечено условие реализуется последовательное соединение элементов, тогда
Количество последовательно соединенных очистителей определяется соотношением:
Зависимости показывают, что выбор количества очистителей производится с учетом необходимого (требуемого) срока службы СОЖ
Степень очистки для двухстадийной системы подсчитывается по формуле:
для трехстадийной
и т.д.
Коэффициент очистки для 2-х стадийной системы при известных значениях и
а для 3-х стадийной
Коэффициент сепарации для 2-х стадийной системы будет равен
аналогично определяется величина
Анализируя зависимости и учитывая, что и др.). Поэтому после каждой последующей ступени эффективность очистки будет снижаться и достигнет уровня, который может не соответствовать требуемой чистоте технологической жидкости .Требуемое качество очистки СОЖ может быть обеспечено, но только при достаточно большом числе очистки ,что по технико-экономическим соображениям нецелесообразно.
Целью обеспечения заданного качества очистки СОЖ от механических примесей при минимальном числе стадий очистки, как правило, системы нужно компоновать из очистителей, имеющих различные технологические возможности (по параметрам
1.2.4 Численное решение задач механики сплошной среды
При проектировании какой либо системы или конструкции ставится задача нахождения распределения напряжений или поля напряжений. В отдельных случаях, особенно если нагрузки и поведения конструкции зависит от времени, проектировщику необходимо подсчитать полное распределение перемещений, или поле перемещений. Для рассчитанного поля напряжений должны выполнятся в каждой точке условия равновесия, а перемещения при этом должны быть непрерывны. Т. е. должно выполнятся условие совместности перемещений :
где
вектор перемещения :
Сначала задаются определяющие уравнения, которые обеспечивают выполнение условий равновесия , которые обеспечивают выполнение условий равновесия и совместности. Возникает основная трудность (не говоря уже об аспектах разрешимости уравнений) : могут ли уравнения адекватно отражать требования при проектировании, причем сложность геометрии, а характер нагрузок и свойств материала должна быть учтена.
Весьма редко существуют точные решения подобных уравнений, и ненамного чаще оказывается возможным строить адекватные приближенные решения. С небольшим количеством членов аппроксимации. Для получения достаточно точного решения требуется большое число этих членов.
Появление ЭВМ коренным образом изменило ситуацию в области решения дифференциальных уравнений с частными производными. Стали использовать численные методы интегрирования и дифференциирования.
Метод конечных элементов является аналитической процедурой . Ключевая идея метода при анализе поведения конструкций заключается в следующем: сплошная среда моделируется путем разбиения ее на области (конечные элементы) в каждом из которых поведение среды описывается с помощью отдельного набора выбранных функций , представляющих напряжения и перемещения в указанной области. Эти наборы функций часто задаются в такой форме, чтобы удовлетворить условиям непрерывности описываемых ими характеристик во всей среде. При этом в отличие от полностью непрерывных моделей нет полной уверенности в сходимости решения. Если поведение конструкции описывается единственным дифференциальным уравнением , то получить приближенное решение этого уравнения можно как методом конечных элементов , так и с помощью техники разложение в ряды или конечно-разностных схем. Если же конструкция в целом неоднородна и состоит из большого количества отдельных конструктивных элементов , поведение каждого из которых описывается своим дифферинциальным уравнением , то в этом случае , как правило, можно непосредственно применить лишь метод конечных элементов.
Метод конечных элементов носит общий характер следовательно может быть сравнительно легко алгоритмизован , поэтому его широко применяют в компьютерном проектировании.
Такие программы как правило расчитаны на очень широкий круг задач. Такие вычислительные программы называются программами общего назначения. Примеров может служить применяемая в данной работе система Ansys 5.5.
Представленные на рис. 1.2.4.1, четыре части являются общими практически для всех программ метода конечных элементов общего назначения. Как минимум на стадии ввод от пользователя не требует никакой другой информации, кроме данных о материале конструкций, описание геометрии конечно-элементной модели и условий нагружения. Для более сложных программ общего назначения ввод осуществляется с использованием хранимых в памяти машины данных о характеристиках материала, методиках автоматического построения сетки конечных элементов.
Вывод рассчитанных перемещений , напряжений и других величин. |
Вывод |
Нахождение решения алгебраических уравнений , соответствующих рассчитываемой конструкции |
Решения |
Построение математических моделей для конструктивных элементов и прикладываемых нагрузок. |
Библиотека конечных элементов |
1 ВВОД |
Задание физической модели , геометрии, свойств материала , нагрузок и граничных условий. |
Рис 1.2.4.1
1.2.5 Обзор преимуществ метода конечных элементов.
Наиболее очевидное преимущество заключается в представлении большого количества конструктивных элементов заданной аналитической моделью.
Вообще говоря всем требованиям , обеспечивающим непрерывность характеристик при переходе от элемента к элементу , в полном объеме удовлетворить нельзя, поэтому большая доля теоретических исследований в методе конечных элементов посвящена выявлению требований, которые возникают при построении конечных элементов.
Другим сдерживающим фактором при построении конечно-элементной модели является выбор упрощенных функций для построения часто встречающихся элементов. В случаях когда при проектировании существенно знание характера изменения поля напряжений для описания этого поля необходимо значительное измельчение сетки разбиения. В противоположность аналитическим методам , требующим использования регулярных сеток , измельчение сетки здесь можно провести относительно просто , но чтобы это усовершенствование было экономически оправданным , нужно, чтобы оно было соразмерно требуемой точности решения .
Одним из особых преимуществ метода конечных элементов является возможность геометрического представления конструкции, т.е. задание используемой при решении сетки разбиения существенно нерегулярным способом. Более тонким аспектом этого метода является возможность учета сложных физических свойств материала. Почти все имеющиеся классические решения относятся к конструкциям , созданным из однородного изотропного материала. В методе конечных элементов ограничения на однородность материала снять вполне возможно.
Замечание:
- Последовательное измельчение сетки элементов, каждый из которых строится на основе одних и тех же предположений относительно напряжений или перемещений не является единственным способом достижения сходимости. Можно также сохранить размеры элементов и последовательно улучшать представления для полей в элементе. Элементы, которые отвечают более сложным представлениям полей извесны как элементы более высокого порядка.
- при расчетах по методу конечных элемнтов источником ошибок могут служить 2-а условия :
1. условие равновесия
2. условия непрерывности перемещений
2 Моделирование движения частиц примесей в СОЖ
2.1 Моделирование движения частиц примесей в центрифуге
Рассмотрим движение отдельной частицы погруженную в вязкую жидкость которая находится в камере радиуса R и вращается с заданной угловой скоростью
Используя второй закон Ньютона, формулу о производной вектора вращающего вокруг другого:
что
1. Центробежная сила инерции
(2.1.1)
2. Выталкивающая сила
(2.1.2)
выталкивающая сила направлена в центр
Рис.2.1.1
вращения т. к. там давление минимальное (эта задача рассматривается далее)
3. Сила вязкого трения
(2.1.3)
где - расстояние от центра частицы до оси вращения;
m – масса частицы;
V – объем частицы;
плотность жидкости (СОЖ);
- плотность твердой частицы;
r – радиус частицы;
- коэффициент динамической вязкости СОЖ ()
Причем считаем, что сила вязкого трения описывается законом Стокса, а твердая частица движется в радиальном направлении. Применим 2-й закон Ньютона для твердой частицы :
(2.1.4) подставив значения для сил получим:
(2.1.5)
или
(2.1.6)
Далее введем обозначения :
(2.1.7)
где
Уравнение (2.1.6) ,с учетом введенных обозначений, перепишем в виде :
(2.1.8)
Это есть линейное дифференциальное уравнение второго порядка с постоянными коэффициентами. Решение данного уравнения представим в виде и подставив в (2.1.8) получим: (2.1.9)
Общее решение уравнения (2.1.8) имеет вид :
(2.1.10)
Коэффициенты находим из следующих начальных условий:
(2.1.11)
При этом полагается, что частица в начальный момент времени находилась на расстоянии , а ее радиальная скорость была равна нулю. Решив эту систему уравнений получим :
(2.1.12)
В дальнейшем предполагается,что вязкость СОЖ велика, так что выполняется условие: (2.1.13)
То есть ,с учетом (2.1.7) : (2.1.14)
В этом случае (2.1.15)
Следовательно (2.1.16)
В этом выражении вторым слагаемым в силу его незначительности можно пренебречь. Окончательно закон движения твердой частицы примет вид:
(X0 < R – радиус центрифуги) (2.1.17)
2.2 Моделирование движения частиц примесей в гидроциклоне
В гидроциклоне процесс сход с процессом в центрифуге, с тем лишь отличием ,что у некоторых частиц начальные условия ограничиваются меньшим радиусом ( в конусной части) . По мере продвижения частиц вниз ( в конусной части) радиус конусной части ГЦ уменьшается следовательно увеличивается угловая скорость ( т.к. увеличение центробежной силы согласно формуле 2.1.1, а также выталкивающей силы по формуле 2.1.2. При изменении радиуса меняются введеные ранее величины по 2.1.7.
Диаметр d можно легко выразить через конструктивные параметры гидроциклона и координаты z частицы : Рис. 2.2.1
(2.2.1)
Предположим , что скорость движения частицы по мере продвижения ее вдоль гидроциклона не меняется. Т.е. игнорируем силу тяжести, а кинетическая энергия частицы не меняется ( ) . Тогда модуль вектора скорости в абсолютной системе координат остается не изменным. Поэтому угловую скорость выражаем через начальную скорость частицы (во входном патрубке)
(2.2.2) учитывая выражения для диаметра 2.2.1 перепишем в виде :
(2.2.3)
Подставляя в решение дифферинциального уравнения 2.1.17 выражения для и d(z) получаем следующую формулу :
(2.2.4)
2.3 Исследование поля давления в процессе центрифугирования
Предполагаем , что СОЖ это есть линейно-вязкая жидкость , т.e. это изотропная жидкость (в данном случае не сжимаема) , сдвиговое сопротивление которой отлично от нуля и линейно зависит от скорости деформации сдвига. Таким образом тензор напряжения есть линейная функция тензора скорости деформаций
, , (2.3.1)
где П – скаляр, , , которые не зависят от деформации и скоростей ( линейность ). Они постоянные , но могут зависить от температуры.
Движение вязкой жидкости рассматриваем в эйлеровом пространстве:
, причем (2.3.2)
(2.3.3)
Для компонент девиатора : для компонент скоростей деформаций : , из соотношений 2.3.2 следует :
(2.3.4).
Эти соотношения означают линейный закон вязкости сдвигового сопротивления. Приводя соотношения 2.3.4 к главным осям и вычитая попарно, получаем для экстремальных касательных напряжений и экстремальных скоростей сдвигов соотношения .
|
|
|
|
|
|
(2.3.5), где .
|
Решение задачи :
Рис. 2.3.1
Пусть OXYZ – неподвижная система координат, , т.е. вращается с постоянной угловой скоростью Переход т одной системы к другой или если записать в виде уравнений (2.3.6). Теперь дифференциируя по времени каждое уравнение получим следующие значения для компонент вектора скорости :
(2.3.7)
Далее исходя из этих равенств , необходимо найти вектор . Для этого необходимо снова продифференциировать равенства 2.3.7 :
(2.3.8)
Найдем все компоненты в уравнениии Навье-Стокса 2.3.5 .
(2.3.9)
(2.3.10)
Следовательно
(2.3.11)
оператор Лапласа
(2.3.12)
Таким образом в правой части 2.3.5 остается только градиент функции давления.
Таким образом можно записать систему дифферинциальных уравнений в частных производных . Из нее необходимо найти функцию давления зависящую от 3-х координат x,y,z , т.е. p(x,y,z):
(2.3.13)
Решим данную систему.
:
(2.3.14)
из 2-го уравнения:
(2.3.15)
из 1-го уравнения:
(2.3.16)
Теперь подставляя значения ,из последнего выражения, в 2.3.15 ,которое в свою очередь подставим в 2.3.14 . Запишем выражение для p(x,y,z) используя 2.3.14 :
(2.4.17)
В итоге полученно полное представление о скалярном поле давления.
При рассмотрении случая с гидроциклоном , т.е. углавая скорость обратно пропорциональна координате z (2.2.3) линейная система уравнений в частных производных переходит в нелинейную систему , которая если и решается , то с большим трудом либо численными методами.
3. Разработка программного обеспечения для автоматизированного проектирования систем очистики СОЖ в централизованных системах применения.
Разработка программного обеспечения (ПО) производилась в целях быстрого визуального проектирования систем очистки СОЖ .При разработке использовалось современное средство создания приложений (Delphi 3) под операционную систему Microsoft Window 95. Благодаря техническим возможностям этой операционной системы стало сравнительно просто программировать визуальный интерфейс пользователя без существенных временных затрат . В результате чего , система очистки СОЖ можно визуально представить на мониторе компьютера.
Для правильной работы ПО необходимо ,чтобы на компьютере был установлен программный комплекс Ansys 5.5 , т.к. все вычисления производятся в тесном взаимодействии двух приложений. Разработанное ПО является интегрированным программным обеспечением с системой проектирования Ansys. Интеграция осуществляется на уровне оконных сообщений . Это самый простой метод обмена данными между приложениями в ОС Windows. В дальнейшем вполне возможен переход на более совершенные методы взаимодействия т.к. COM, DCOM, OLE, DDE –технологии. Хотя эти современные технологии в текущей версии продукта Ansys не поддерживаются. Вполне возможно некоторые из них могут появится в следующих версиях Ansys. Ansys в данном случае выступает в качестве своеобразного сервера, который по заданым параметрам элементов системы очистки строит модель, устанавливает необходимые начальные, краевые условия, задает свойства материала, задает тип конечного элемента , размер сетки конечных элементов и т.д. Изначально предполагалось разрабатывать ПО в целях автоматизированного исследования функционирования моделей в системе очистки. Т. е. предполагалось использовать данное ПО для проведения серий экспериментов с матеметическими моделями в Ansys , в которых было бы возможно ,для данной модели , подбирать оптимальные конструктивные и технологические параметры без непосредственного участия пользователя в перестраевании моделей в Ansys. Проблему изменения и создания моделей в Ansys ,по заданным параметрам , полностью берет на себя ПО. Но в следствии разработки программного интерфейса с Ansys и создания классов отдельных моделей (бак-отстойник, гидроциклон, центрифуга) область применения ПО расширилась до возможности визуального конструирования всей системы очистки СОЖ с сохранением выше описанных возможностей .
Главная цель ПО это наглядная это наглядное проектирование, т.е. установка необходимых параметров всех моделей , с помощью удобного интерфейса , и автоматическое (без какого либо участия пользователя) построение этих моделей,на базе заданных в программе параметров, уже непосредственно в Ansys . А также возможность изменения тех или иных параметров, в том числе и конструктивных элементов системы , у реально существующей в Ansys модели, организация вычислений, управление Ansys, оформление результатов.
После полной постановки задачи инициализации всех параметров и создания файлов с моделями Ansys начинает последовательно ,от элемента к элементу ,производить вычисления и в итоге возвращает результат в ПО , которое его записывает в соответствующий файл на диск, в виде конечной скорости течения СОЖ (или общей производительности системы), концентрации примесей.
Предполагается, что в дальнейших работах над этой темой могут быть введены дополнительные характеристики системы очистки, а также введены новые функции для более детального или эффективного исследования систем очистки СОЖ. К примеру данную задачу можно расспределить в локальной сети, тем самым на много ускорить вычислительный процесс. А здесь уже возможны различные пути решения, либо распределение вести по моделям, либо по процессам, либо распараллеливать весь процесс в целом.
3.1 Схема разработки программного обеспечения
1. Разработка моделей системы очистки СОЖ
· построение геометрии модели
· выбор типа конечного элемента
· размера сетки конечных элементов
· задание свойств СОЖ
· задание свойств примесей
2. Разработка специальных программ для Ansys (для каждой из моделей)
3. Разработка программного обеспечения
· разработка скелета программы
· разработка и программирование графического интерфейса
· программирование основных классов для используемых элементов системы очистки
· доработка интерфейса под каждый из классов
· программирование общих вычислений для всей системы в целом
· окончательная доработка и отладка
Разработка моделей системы очитки СОЖ производится непосредственно в Ansys . В данной работе разрабатывались три элемента системы очистки :
· бак-отстойник
· гидроциклон (рис. 3.1.2)
· центрифуга (рис. 3.1.1)
Рис. 3.1.1 (модель центрифуги)
При разработке ПО учитывалась возможность расширения количества элементов системы до любого количества . Подразумевается , что в дальнейших работах над этой темой круг решаемых данным продуктом задач будет расширен . Например : введение новых элементов, внедрение баз данных для различных элементов , построение и структурирование библиотеки элементов, оптимизация программ для Ansys и т.д.
Причем модель разрабатывается таким образом (в основном построение геометрической модели), чтобы вторичное построение ее по программе (2 блок) производилось как можно быстрее. Программа для Ansys это ключевая со ставляющая разработанного ПО . Без возможности производить моделирование путем выполнения программы с диска компьютера не было бы возможности динамически менять параметры модели и следовательно разработка подобного ПО не имело бы смысла. Эта возможность позволяет варьировать различные параметры модели начиная от геометрических кончая свойствами отдельных примесей в СОЖ , начальными и краевыми условиями. Сама программа для Ansys не писалась непосредственно, а собиралась из готовых рабочих блоков , которые генерируются самим Ansys’ом. При выполнении каких либо действий в Ansys постоянно обновляется файл FILE.LOG (Ansys’ом) , который находится в рабочей директории Ansys , путем добавления соответствующей действию команды. Эта функция Ansys’а (генерация собственных команд) избавила от необходимости написания специальных программ.
При программировании ПО использовалось объектно-ориентированное программирование . Сначала разрабатывался
Рис. 3.1.2 (модель гидроциклона)
абстрактный родительский класс - TAbstractElement , который скрывает в себе все основные функции по обеспечению обмена данными между двумя приложениями, а также построение соответствующей модели в Ansys , задания необходимый свойств и параметров, а также по обновлению модели в Ansys (уже загруженной). От этого родительского класса наследуются уже классы для работы с конкретными моделями (TBak, TCyclon, TCentr) . Эти классы содержат уникальные для соответствующей модели методы и поля , которые обеспечивают полноценный механизм взаимодействия с Ansys’ом.
Программа разрабатывалась таким образом , что ее можно легко модернизировать , усовершенствовать, добавить новые функции , которые бы повышали автоматизированность вцелом. Например:
· возможность сохранения и загрузки схемы в отдельном файле в специальном формате
· функции автоматического подбора конструкционных и технологических параметров, а так же планировки схемы целиком
· распараллеливание задачи в компьютерной сети (для повышения производительности программы)
· добавление новых элементов – фильтров
· автоматический подбор насосов для каждого элемента (например из локальной базы данных)
Рис.3.1.3
Рис.3.1.4
3.2 Руководство пользователя
Здесь коротко описываются обязательные действия со стороны пользователя, которые обеспечут корректное решение задачи :
1. В файле PATH.INI указать путь к запускному файлу Ansys и его рабочий каталог
2. Запустить файл Project.exe
3. Установить с помощью мыши на экране все элементы которые входят в данную систему очистки СОЖ (в принципе имеется возможность добавлять их в дальнейшем)
4. Соединить элементы между собой при помощи команды главного меню : Элементы\Соединить, можно тут же удалить связь : Элементы\Разъединить
5. Инициализировать объекты , т.е. либо сопоставить в соответствие каждому элементу уже готовую базу данных Ansys, либо сначала задать свойства элемента , а затем создать БД . Таким образом могут возникнуть две ситуации :
· база данных уже существует в рабочем каталоге Ansys ,тогда нужно выбрать в главном меню : Операции\Инициализировать из БД , или с помощью локального меню элемента
· базы данных не существует , тогда необходимо выбрать в главном меню : Элементы\Свойства или соответственно из локального меню и заполнить все свойства элемента после чего выбрать из главного меню Операции\Создать БД
При инициализации свойств элементов задавать свойства примесей для каждого элемента не обязательно (если будет расчитываться целая система, а не какой-то один локальный элемент). При расчете системы примеси , как начальные условия для системы, задаются только в первом очистителе, в остальных элементах этого делать не обязательно их данные о примесях будут игнорироваться.
Рис.3.2.2
Замечание: свойства примесей задаются только в первом элементе системы .
6. Решать задачу для этого из главного меню : Решение\Начать вычисление . После этого выводится диалоговое окно с подверждением того , что осуществлять расчет с начала ( если с начала , то все фалы с результатами будут уничтожены ), или по текущим решениям ( в этом случае модели будут расчитываться начиная с последней итерации.
7. Ответ просматривать или из файла Report1.txt или из главного меню : Решение\Создать отчет
Описание функций главного меню :
1. Файл :
· [Новая модель] – уничтожение старой системы и подготовка к проектирования новой
· [Выход] – выход из программы
2. Элементы :
· [Добавить] – добавление нового элемента в систему
· [Удалить] – удаление выделенного элемента из системы вместе со связями
· [Соединить] – установка связи между элементами
Рис. 3.2.3
· [Разъединить] – удаление связи между элементами
·
Рис. 3.2.4
3. Операции :
· [Инициализировать из БД] - загружает с текущем именем элемента БД с моделью в Ansys и если БД соответствует данной модели , то устанавливает параметры элемента в соответствии с моделью загруженной в Ansys
· [Обновить БД в Ansys] - при изменении каких либо параметров элемента необходимо перестроить БД с этой моделью по новым параметрам
· [Загрузить БД в Ansys] – загрузка модели с соответствующим именем в Ansys (из текущего рабочего каталога Ansys)
· [Сохранить БД] – сохраняет текущую модель в Ansys’е на диске . Применяется сразу после создания или изменения модели
· [Создать БД] – создает базу данных модели в Ansys . Вначале строится программа для Ansys (в корневом каталоге программы файл Process.prg) в соответствии с заданными параметрами элемента затем дается команда Ansys’у выполнить эту программу ( после этой операции , если параметры больше не планируется изменять БД следует сохранить на диске )
· [Удалить решение] – удаляет у текущего элемента системы файл (*.rfl) с решением (если таковой существует в рабочем каталоге Ansys
4. Решение :
· [Решать] – дает команду Ansys’у начать решать поставленую задачу . Для того , чтобы эта операция успешно выполнилась необходимо соблюдение нескольких условий:
· Для каждого из элементов системы необходимо наличие корректной БД реальной модели в рабочем каталоге Ansys
· Ориентированный граф системы должен удовлетворять следующим требованиям :
· Отсутствие циклов
· Для любой вершины графа существует путь через нее от истока к стоку
\Постпроцессор :
· [Поле скоростей] – вывод в графическом виде поля скоростей выделенного элемента . Команда выполняется корректно в том случае, если существует ( на диске ) реальная Ansys – модель и соответствующий файл с результатами проделанных вычислений
· [Распределение примесей] – вывод в графическом виде распределения примесей в выделенном элементе. Команда выполняется корректно в том случае , если существует ( на диске ) реальная Ansys – модель и соответствующий файл с результатами. Если модель трехмерная , то результат выводится в продольном сечении для более наглядного просмотра
· [Создать отчет] – эта команда выполняется после просчета системы целиком и создает в корневом каталоге программы файл с результатами данного проектирования (Report1.txt). В этом файле содержится информация о входных (концентрация примесей Cпр, дисперстный состав dпр, расход жидкости Q, параметры каждого очистителя) и выходных параметрах.
5. Ansys :
· [Вывод всех окон] – показываются все окна Ansys для того, чтобы пользователь мог производить свои специфические действия
· [Вывод графики] – выводится графическое окно Ansys для того, чтобы пользователь мог сразу посмотреть результат выполнения таких команд ка :[Поле скоростей] и т.д.
3.2 Экспериментальные исследования на примере трехстадийной системы очистки.
В качестве экспериментальной модели исспользовалась система трехстадийной очистки схема которой приведина на рис.3.3.1
Гидроциклон2 |
Цетрифуга1 |
Бак-отстойник1 |
Гидроциклон1 |
Рис.3.3.1
На вход системы (в бак-отстойник) подается СОЖ , дисперстный состав которой изображен на графике 3.3.3. Эти данные приведены в таблице 3.3.2 .На графике показана концентрация примесей в зависимости от диаметра частиц.
При непосредственном моделировании системы ,в разработанном ПО , брались только четыре узловые точки в данной кривой (рис.3.3.3) . Т.к. Ansys не допускает задание произвольного вида дисперстного состава ,например в виде интерполяционного многочлена.
Процент содержания примесей C (%) |
Диаметр частиц (мкм) |
10 |
8 |
15 |
5 |
20 |
3 |
30 |
1.5 |
Рис.3.3.3
В результате моделирования данной системы очистки получаем результирующее распределение ,которое изображено на рис.3.3.4.
Т.е. рассматриваемая система имеет степень очистки 98% . Ниже приведены данные о распределении примесей в табличном виде.
Процент содержания примесей C (%) |
Диаметр частиц (мкм) |
10 |
0,16 |
15 |
0,1 |
20 |
0,06 |
30 |
0,03 |
Вывод :
После проведения серии опытов можно зделать заклячение, что разработанное программное обеспечение достаточно адекватно отражает действительность и вполне пригодно для проектирование многоступенчатой системы очистки практичестки любой сложности. Но ориентированные граф системы должен удовлетворять определенным свойствам (см. главу 3.1)
Приложение 1.
Текст части основного модуля исходного кода ПО
unit unBaseClasses;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Extctrls, Grids, RxCtrls;
const AnsysOutWindowWidth = 200;
AnsysOutWindowHeight = 100;
AnsysGraphWindowWidth = 400;
AnsysGraphWindowHeight = 270;
IconWidth = 100; // размеры панели ( иконок )
IconHeight = 139;
FocusColor = clMaroon; // цвет выделения
StartPointRad = 5; // диаметр в начале вектора связи
EndPointLength = 10; // размер стрелки в векторе связи
VectorColor = clMaroon; // цвет векторов
VectorWidth = 2; // толщина векторов
BakName = 'BAK'; // имена элементов
CentrName = 'CENTR';
CyclonName = 'CYCLON';
RunFile = 'Process'; // имя фала с готовой программой готовой для запуска в Ansys
ReportFile = 'Report1'; // имя файла отчета
AnsysExeName = 'Ansysir'; // имя испол. файла Ansys
ClassNameEditWindow = 'AnsCmdPopup'; // имена классов основных окон Ansys
ClassNameEditStr = 'AnsCmdEdit';
ClassNameMainMenu = 'MainMenuPopup';
ClassNameGraphicWnd = 'GraphPopup';
ClassNameMainWnd = 'Ansys 5.5';
ClassNameInfoWnd = 'ListerPopup';
ClassNameInfoEdit = 'RichEdit';
ClassNameToolbar = 'ToolbarPopup';
ClassNameOutWnd = 'tty';
SpNVick = 10000; // вязкость у всех примесей ( одинакова )
VickAll = 0.001; // вязкость СОЖ
DensAll = 1000; // плотность СОЖ
DensAll1 = 20; //
DiamFraction = 5E-5; // эталонные параметры
DensFraction = 10000; //
Time: double = 12; // время эксперимента
type
TVars = array[1..20] of double;
PVars = ^TVars;
TIntList = array[1..40] of hwnd;
PIntList = ^TIntList;
TSpeciesProperty = record
spNStart: double; // входная концентрация
spNDens: double; // плотность
spNMassFrac: double; // массовая доля
end;
TSpeciesPropertys = array[1..9] of TSpeciesProperty;
PSpeciesPropertys = ^TSpeciesPropertys;
TAbstractElement = class(TPanel) // абстрактный класс
private
hCanDrag: boolean; // если = true, то можно перетаскивать
hFocused: boolean; // = true, если фокус на элементе
AnsysExeFile: string; // запускной файл Ansys
AnsysWorkDir: string; // рабочая директория Ansys
function GetSpeciesResult(n: byte): double;
procedure WMGetDlgCode(var Message: TWMGetDlgCode); message WM_GETDLGCODE;
procedure WMSetFocus(var m: TWMSetFocus); message WM_SETFOCUS;
procedure WMKillFocus(var m: TMessage); message WM_KILLFOCUS;
protected
CurrentPath: string;
hlabel: TRxLabel; // заголовок иконки
hCap: TLabel; // инфо об объекте ( на самой иконке ) если бит = 0, то не измен.
// Возвращаемые параметры из Ansys
hVelocityResult: double; // для результирующей скорости
hSpeciesResult: array[1..9] of double; // для концентрации мех. примесей
// Интерфейс ( c Ansys 5.5 ):
procedure ClearEditStr; // очистка сроки ввода команд Ansys
procedure Run(Macros: string; x, x1: hwnd); // аналогично
procedure RunProgram(Prog: TStrings); // запуск группы команнд на выполнение в Ansys
procedure DelayAnsys; // задержка пока не закончится выполнение команды в Ansys
function GetName: string; virtual; abstract; // получаем имя элемента
procedure SetStartConditionSP; virtual; abstract; // установка нач условий для примесей ( у всех разная)
procedure UpdateParams; virtual; abstract; // обновление надписи на иконке
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton; // обесп. перетаскивание
Shift: TShiftState; X, Y: Integer);
procedure Image1Click(Sender: TObject); // обесп. вызов окна свойств для данного эл.DblClick
public
Name: string; // имя элемента
kolvosp: double; // кол-во примесей
spNBegin: TSpeciesPropertys; // данные о примесях
hChangeFlag: word; // флаг содержит инфо об изменении параметров в диалоге
hInElem: TList; // входящие элементы
hOutElem: TList; // исходящие элементы
// 1..7 биты осн. параметры, 8 биты - примеси
hChangeTotal: word; // аналогично, но сумма всех изменений ( or )
property VelocityResult: double read hVelocityResult;
property SpeciesResult[n: byte]: double read GetSpeciesResult;
property Focused: boolean read hFocused;
// возвращает в массиве все конструктивные параметры системы
procedure GetConstrParams(hPars: PVars); virtual; abstract;
procedure UpdateParamsFromAnsys; virtual; abstract; // обновление параметров по данным из Ansys
procedure RunMacros(Macros: string); // выполнение команды в Ansys
// Сервис :
function ResultExist: boolean; // = true, если существует файл результата ( имя файла Name+'.rfl)
function DBExist: boolean; // = true, если соответств. БД существует
function ExistPartOfProgram: boolean; // = true. если файлы для прогр Ansys существуют в тек каталоге
function CurrentDBInAnsys: string;// возвращает имя тикущей в Ansys БД
procedure DeleteResult; // удалить результаты
// Данные и программы :
procedure ExecuteAnsys; // запуск Ansys 5.5
procedure ExecuteAnsysProgram; // запуск программы для Ansys с именем RunFile из текущей директории
procedure LoadDB; // загрузка БД в Ansys с текущим Name
procedure SaveDB; // запись текущей модели (в Ansys'е) на диск
procedure SolverTask; // решать текущую в Ansys'е задачу
procedure UpdateAnsysDB; virtual; abstract; // изменение модели в Ansys в соответствии с изменениями
procedure CreateWorkProgram; virtual; abstract; // сборка рабочей программы для Ansys по текущим значениям параметров
function DBAnsysIsModel: boolean; virtual; abstract; // = true, если в Ansys загружена нужная модель
// Результаты :
procedure ShowVelocity(n: byte); // показать поле скоростей
procedure ShowPressure; // показать распределение давление
procedure ShowSpeciesN(n: byte); // показать распределение примеси с номером n
procedure SolveResultSpN(Num: byte); virtual; abstract;
// вычисление концентрации примеси ны выходе
// по номеру имя примеси типа SP0X
// результат записывается в hSpeciesResult[Num]
procedure ControlParams(res: PVars); virtual; abstract; // изменяет биты hChangeFlag в соответствии с
//измен парам. в диалоге
// обновление текущей в Ansys БД
procedure ChangingTime; // изменение времени процесса
procedure ChangingSPInfo; // изменение инфо о примесях
procedure ChangingJobName; // изменение имени модели в Ansys
// Соединения :
procedure DrawConnects; // соед со следующими элементами
procedure AddConnect(Elem: TAbstractElement); // добавляет ссылку на присоед элем впереди
procedure DeleteConnect(Elem: TAbstractElement); // удаляет связь если (такая должна сущ.)
function ExistOutConnect(Elem: TAbstractElement): boolean; // = true, если связь существует на выходе
function ExistInConnect(Elem: TAbstractElement): boolean; // = true, если связь существует на входе
procedure ExecutePropertyDialog; virtual; abstract; // выводит диалог свойств для тек. элемента
procedure CalcMassFraction(kolvo: byte); // вычисл массовою долю
function GetMassFraction(hStart: double): double; virtual; abstract; // получение массовой доли
constructor Create(AOwner: TComponent; x, y: integer);
destructor Destroy; override;
end;
// Вспомогательные функции :
function GetNumFirstWord(str: string; uk: integer): integer; // возвращает индекс на первое слово в строке
function GetFirstWord(str: string; uk: integer): string; // возвращает первое слово в строке
function GetRightFloat(str: string): string; // заменяет точку на запятую
function GetLeftFloat(str: string): string; // наоборот
procedure GetParamStrings(m: TMemo); // копирует текст из Ansys инфо-окна
function GetValueFloat(Value: string; l: TMemo): double; // получиние значения параметра Value
function GetValueInt(Value: string; l: TMemo): integer;
function GetValueStr(Value: string; l: TMemo): string; // возвращает строковое значение или ''
function SetNumBit(n, Value: word): word; // устан n-ый бит в слове ( n>=1 )
function GetNumBit(n, Value: word): boolean; // проверка, если n-ый бит устан., то true
// если все введенные поля верны, то = true, иначе фокус на неправ. поле
// в диалоговых окнах (Parent - где находятся TEdits
// Edit - корень имени TEdit , например 'Edit' или 'EditC'
function TestValues(Parent: TWinControl; Edit: string; res: PVars): boolean;
function TestGrid(hElem: TAbstractElement; hGrid: TStringGrid; // аналогично но проверяет таблицу
mas: PSpeciesPropertys; var Changing: boolean): boolean; // Changing = true если параметры отличны от старых в mas
// Управление окнами Ansys 5.5 :
procedure ShowAnsysGraphic; // графическое окно
procedure HideAnsysGraphic;
procedure HideAnsys; // все остальные окна
procedure ShowAnsys;
procedure BringToFrontOutWnd; // выводит на перед план окно вывода Ansys
procedure ZommerOutWnd; // увеличивает окно вывода Ansys (при вычислениях)
procedure RestorerOutWnd; // возвращает окно вывода на прежнее место
procedure DrawConnectVector(hCanv: TCanvas; r1, r2: TPoint); // рисует вектор (для отображения связей) :
// procedure AnsysFlash; // вывод из зависания Ansys 5.5
procedure WaitStillAnsysLoading; // ожедание загрузки Ansys
procedure AnsysTerminate; // закрыть Ansys 5.5 (при завершении приложения)
implementation
uses unBak, unMain, unSplash;
//******************************************************************************
constructor TAbstractElement.Create(AOwner: TComponent; x, y: integer);
var f: TextFile; Glyph: TImage; NameCount: word;
begin
Inherited Create(AOwner);
// TabStop:=true;
hFocused:=false;
hInElem:=TList.Create; hOutElem:=TList.Create;
hCanDrag:=true;
Width:=IconWidth; Height:=IconHeight;
BevelInner:=bvNone; BevelOuter:=bvNone;
Left:=x; Top:=y;
Glyph:=TImage.Create(Self);
Glyph.Align:=alClient; Glyph.Left:=0; Glyph.Top:=0; Glyph.Stretch:=true;
Glyph.Picture.Bitmap.LoadFromResourceName(hInstance, 'bit1');
Glyph.Parent:=Self; Glyph.Show; Glyph.OnMouseDown:=Image1MouseDown;
Glyph.OnDblClick:=Image1Click;
Parent:=TWinControl(AOwner);
CurrentPath:=GetCurrentDir;
if CurrentPath[Length(CurrentPath)] <> '\' then CurrentPath:=CurrentPath+'\';
AssignFile(f, CurrentPath+'Path.ini');
try Reset(f); except fail:=false; Exit end; //MessageDlg('Не найден файл конфигурации !', mtError, [mbOK], 0);
readln(f, AnsysExeFile); AnsysExeFile:=AnsysExeFile+AnsysExeName+'.exe';
readln(f, AnsysWorkDir);
CloseFile(f); Name:='';
// надпись заголовка на иконке :
hlabel:=TRxLabel.Create(Self); hlabel.Top:=8; hlabel.Transparent:=true; hlabel.AutoSize:=true;
hlabel.Font.Size:=10; hlabel.Font.Style:=[fsUnderline, fsBold];
hlabel.Show; hlabel.OnMouseDown:=Image1MouseDown; hlabel.OnDblClick:=Image1Click;
NameCount:=1; Name:=GetName+IntToStr(NameCount);
while NameExist(Name) do begin inc(NameCount); Name:=GetName+IntToStr(NameCount) end;
hlabel.Caption:=Name;
hlabel.Left:=round(Width/2-hlabel.Width/2);
hlabel.Parent:=Self;
hVelocityResult:=0
end;
destructor TAbstractElement.Destroy;
begin
hInElem.Free; hOutElem.Free;
Inherited Destroy
end; //*****************************************************************************
procedure TAbstractElement.ChangingJobName;
begin
RunMacros('FINISH'#13'/FILNAM,'+Name+#13+'*SET,JOBNAME,'#39+Name+#39);
end;
procedure TAbstractElement.ChangingSPInfo;
var i: byte;
begin
RunMacros('/PREP7');
if trunc(kolvosp) = 0 then begin // отключение примесей
RunMacros('FLDATA1,SOLU,SPEC,0'#13'*SET,KOLVOSP,0');
Exit
end;
// разрешить исп. примеси :
RunMacros('FLDATA1,SOLU,SPEC,1');
// параметры связанные с примесями :
for i:=1 to trunc(kolvosp) do // начальные концентрации примесей
RunMacros('*SET,spbegin'+IntToStr(i)+','+GetLeftFloat(FloatToStr(SpNBegin[i].SpNStart)));
for i:=1 to trunc(kolvosp) do // плотности примесей
RunMacros('*SET,spdens'+IntToStr(i)+','+GetLeftFloat(FloatToStr(SpNBegin[i].SpNDens)));
for i:=1 to trunc(kolvosp) do begin // плотности примесей
RunMacros('*SET,spmass'+IntToStr(i)+','+GetLeftFloat(FloatToStr(SpNBegin[i].SpNMassFrac)));
end;
RunMacros('*SET,KOLVOSP,'+GetLeftFloat(FloatToStr(kolvosp)));
RunMacros('KEYOPT,1,1,kolvosp,'#13'MSDATA,2,8314.29,');
for i:=1 to trunc(kolvosp) do begin
RunMacros('MSSPEC,'+IntToStr(i)+',SP0'+IntToStr(i)+',Molec,1,'#13+
'MSQUAD,'+IntToStr(i)+',0,0,'#13+
'MSNOMF,'+IntToStr(i)+','+GetLeftFloat(FloatToStr(spNBegin[i].spNMassFrac))+',')
end;
for i:=1 to trunc(kolvosp) do begin
RunMacros('MSPROP,'+IntToStr(i)+',DENS,CONSTANT,'+GetLeftFloat(FloatToStr(SpNBegin[i].SpNDens))+
',0,0,0,'#13+
'MSVARY,'+IntToStr(i)+',DENS,0'#13+
'MSPROP,'+IntToStr(i)+',VISC,CONSTANT,'+IntToStr(SpNVick)+',0,0,0,'#13+
'MSVARY,'+IntToStr(i)+',VISC,0')
end;
SetStartConditionSP // установка начальных условий
end;
procedure TAbstractElement.ChangingTime;
var l: TStringList;
begin
RunMacros('/PREP7');
l:=TStringList.Create;
l.Text:='*SET,time,'+FloatToStr(Time)+#13+
'/PREP7'#13+
'FLDATA2,ITER,EXEC,time,'#13+
'FLDATA2,ITER,OVER,0,'#13+
'FLDATA2,ITER,APPE,0,'#13+
'FLDATA3,TERM,VX,0.01,'#13+
'FLDATA3,TERM,VY,0.01,'#13+
'FLDATA3,TERM,VZ,0.01,'#13+
'FLDATA3,TERM,PRES,1e-008,'#13+
'FLDATA3,TERM,TEMP,1e-008,'#13+
'FLDATA3,TERM,ENKE,0.01,'#13+
'FLDATA3,TERM,ENDS,0.01,'#13+
'FLDATA5,OUTP,SUMF,0,';
RunProgram(l);
l.Free
end;
function TAbstractElement.CurrentDBInAnsys: string;
var memo: TMemo;
begin
RunMacros('*STAT'); // выз окно с параметрами модели в Ansys
memo:=TMemo.Create(Self); memo.Top:=-1000; memo.Width:=2000; memo.Show; memo.Parent:=Self;
GetParamStrings(memo); // получение данных из Ansys
Result:=GetValueStr('JOBNAME', memo);
memo.Free
end; procedure GetParamStrings(m: TMemo);
var x, x1: hwnd; buf: pchar; len: integer;
begin
x:=FindWindow(ClassNameInfoWnd, nil); x1:=FindWindowEx(x, 0, ClassNameInfoEdit, nil);
if (x = 0) or (x1 = 0) then begin MessageDlg('Не найдено окно с результатами !', mtError, [mbOK], 0); Exit end;
ShowWindow(x, SW_HIDE); // скрываем окно с информацией
len:=SendMessage(x1, WM_GETTEXTLENGTH, 0, 0);
buf:=StrAlloc(len);
SendMessage(x1, WM_GETTEXT, len, longint(buf));
SendMessage(m.Handle, WM_SETTEXT, longint(buf), longint(buf));
StrDispose(buf);
PostMessage(x, WM_CLOSE, 0, 0);
end; procedure TAbstractElement.LoadDB;
begin
RunMacros('RESUME,'+Name+',db,..\,0');
RunMacros('ERASE');
RunMacros('/FILNAM,'+Name);
ChangingJobName;
RunMacros('/PSF,DEFA,,1'#13'/PBF,DEFA,,1'#13'/PSYMB,CS,0'#13'/PSYMB,NDIR,0'#13+ // очистка от нагрузок
'/PSYMB,ESYS,0'#13'/PSYMB,LDIR,0'#13'/PSYMB,ECON,0'#13'/PSYMB,XNODE,0'#13+ // чтобы не загромождать экран
'/PSYMB,DOT,1'#13'/PSYMB,PCONV,'#13'/PSYMB,LAYR,0'#13'/PBC,ALL,,0'#13+
'/REP'#13'LPLOT')
end;
procedure TAbstractElement.SaveDB;
begin
RunMacros('SAVE');
end;
procedure TAbstractElement.ShowVelocity(n: byte);
begin
RunMacros('/POST1'); RunMacros('SET,LAST'); RunMacros('/VSCALE,1,'+IntToStr(n)+',0');
RunMacros('PLVECT,V,,,,VECT,ELEM,ON,0')
end;
procedure TAbstractElement.ShowPressure;
begin
RunMacros('/POST1'); RunMacros('SET,LAST'); RunMacros('PLNSOL,PRES,,0,')
end;
procedure TAbstractElement.ShowSpeciesN(n: byte);
begin
RunMacros('/POST1'); RunMacros('SET,LAST'); RunMacros('PLNSOL,SP0'+IntToStr(n))
end;
procedure TAbstractElement.SolverTask;
begin
RunMacros('/SOLU'); RunMacros('SOLVE')
end;
procedure TAbstractElement.ExecuteAnsysProgram;
begin
RunMacros('/OPT');
RunMacros('OPANL,'+RunFile+',prg,' + CurrentPath);
RunMacros('OPEXE');
hChangeFlag:=0; hChangeTotal:=0
end;
procedure TAbstractElement.RunMacros(Macros: string);
var x, x1: hwnd;
begin
// Поиск окна ввода :
x:=FindWindow(ClassNameEditWindow, nil);
if x = 0 then begin MessageDlg('Не найдено окно ввода в Ansys !', mtError, [mbOK], 0); Exit end;
// Поиск строки ввода :
x1:=FindWindowEx(x, 0, ClassNameEditStr, nil);
if x1 = 0 then begin MessageDlg('Не найдена строка ввода в Ansys !', mtError, [mbOK], 0); Exit end;
// Посылка данных :
PostMessage(x, WM_SETFOCUS, 0, 0);
SendMessage(x1, WM_SETTEXT, longint(Macros), longint(Macros));
SendMessage(x1, WM_CHAR, ord(27), 0);
PostMessage(x1, WM_KEYDOWN, 13, 0);
ClearEditStr;
while SendMessage(x1, WM_GETTEXTLENGTH, 0, 0) <> 0 do
end;
procedure TAbstractElement.Run(Macros: string; x, x1: hwnd);
begin
// Посылка данных :
PostMessage(x, WM_SETFOCUS, 0, 0);
SendMessage(x1, WM_SETTEXT, longint(Macros), longint(Macros));
SendMessage(x1, WM_CHAR, ord(27), 0);
PostMessage(x1, WM_KEYDOWN, 13, 0);
ClearEditStr;
while SendMessage(x1, WM_GETTEXTLENGTH, 0, 0) <> 0 do
end;
procedure TAbstractElement.RunProgram(Prog: TStrings);
var i: integer; x, x1: hwnd;
begin
if not assigned(Prog) then Exit;
if Prog.Count < 1 then Exit;
// Поиск окна ввода :
x:=FindWindow(ClassNameEditWindow, nil);
if x = 0 then begin MessageDlg('Не найдено окно ввода в Ansys !', mtError, [mbOK], 0); Exit end;
// Поиск строки ввода :
x1:=FindWindowEx(x, 0, ClassNameEditStr, nil);
if x1 = 0 then begin MessageDlg('Не найдена строка ввода в Ansys !', mtError, [mbOK], 0); Exit end;
for i:=0 to Prog.Count-1 do Run(Prog[i], x, x1);
Run('FINISH', x, x1)
end;
procedure TAbstractElement.DelayAnsys;
var x, x1: hwnd;
begin
x:=FindWindow(ClassNameEditWindow, nil);
if x = 0 then begin MessageDlg('Не найдено окно ввода в Ansys !', mtError, [mbOK], 0); Exit end;
// Поиск строки ввода :
x1:=FindWindowEx(x, 0, ClassNameEditStr, nil);
if x1 = 0 then begin MessageDlg('Не найдена строка ввода в Ansys !', mtError, [mbOK], 0); Exit end;
while SendMessage(x1, WM_GETTEXTLENGTH, 0, 0) <> 0 do
end;
procedure TAbstractElement.ClearEditStr;
var x, x1: hwnd; h: hdc; c: TCanvas;
begin
x:=FindWindow(ClassNameEditWindow, nil);
if x = 0 then begin MessageDlg('Не найдено окно ввода в Ansys !', mtError, [mbOK], 0); Exit end;
x1:=FindWindowEx(x, 0, ClassNameEditStr, nil);
if x1 = 0 then begin MessageDlg('Не найдена строка ввода в Ansys !', mtError, [mbOK], 0); Exit end;
h:=GetDC(x1); c:=TCanvas.Create; c.Handle:=h;
c.Pen.Color:=RGB(179, 179, 179); c.Brush.Color:=RGB(179, 179, 179); c.FillRect(Bounds(1, 1, 514, 18));
ReleaseDC(x1, h); c.Free
end;
end.
* Индекс