Исследования системы применения смазочно-охлаждающих жидкостей

Методы проектирования систем применения смазочно-охлаждающих жидкостей на операциях шлифования. Математическая модель процесса очистки СОЖ от механических примесей в фильтрах и баках-отстойниках. Исследование движения жидкости и механических примесей.

Рубрика Производство и технологии
Вид дипломная работа
Язык русский
Дата добавления 23.01.2013
Размер файла 439,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Для примера рассмотрим элемент с координатами узлов I=(1,2), J=(2,1), то первые две строки матрицы будут:

Столбец может быть получен, как

,

но так как нам, то получаем

Но как нам известно представимо в виде:

где строка функций формы. Это выражение можно расписать как:

,

так как одно и тоже, то мы получаем, что:

,

то есть мы получили аппроксимацию по узловым точкам и нам в общем случае необходимо найти обратную матрицу . Обычно обратная матрица находится по правилу Крамера. Если мы найдем обратную матрицу, то сможем записать функции формы элемента:

Примеры разбиения бака и трубопровода на элементы приведены ниже

Рис 2.7 Пример разбиения трубопровода на элементы

Рис 2.8 Пример разбиения бака на элементы

Движение жидкости в трубопроводе аналогично движению в баке-отстойнике, за исключением того, что трубопровод имеет иную геометрию, поэтому будут иные граничные условия. Начальное значение скорости будет вычисляться по формуле (2.22). Как ведут себя примеси в трубопроводе показано на рис 2.8

Рис 2.9 Распределение примесей в трубопроводе

2.4 Математическая модель системы применения СОЖ

Модель всей системы применения СОЖ является интегрированием подмоделей, рассмотренных выше (зона резания, насос, фильтр, бак, трубопровод). Входными параметрами на данном этапе рассмотрения модели являются: система применения СОЖ (конкретные параметры насоса, фильтров, тип СОЖ и т.д.), место расположения этих элементов в системе, а также сечение трубопровода и параметры бака-отстойника. Характеристики наиболее применяемых СОЖ приведены в таблице 3 (см. приложение 1). Критерием эффективности работы системы применения является шероховатость полученной детали, вычисляемая по формуле (1.1). Выходным значением модели системы применения СОЖ являются подкорректированные значения бака-отстойника, сечения трубопровода, величина расхода СОЖ.

Объектом локального исследования является концентрация механических примесей в СОЖ на каждом этапе ее циркуляции в системе. Каждый элемент системы определенным образом влияет на концентрацию и дисперсный состав примесей, а на последнем этапе (зона резания) получаем значение шероховатости. Сравнивая это значение с допустимым мы можем делать выводы о приемлемости того или иного значения параметра подмодели. Наглядно это можно показать на рис 2.11. На нем видно как изменяются параметры СОЖ на отдельной подмодели.

2.5 Выводы

По результатам 2 раздела можно сделать следующие выводы:

1.Рассмотрены модели зоны резания, насоса и фильтра.

2.Смоделировано турбулентное движение жидкости с примесями в баке-отстойнике и трубопроводе (поставлена задача и дан способ ее решения с помощью метода конечных элементов).

3.Построена математическая модель системы применения СОЖ.

Рис 2.10 Схема изменения параметров СОЖ при функционировании технологического процесса: - вектор состояния показателей качества СОЖ, - вектор выходных показателей технологического процесса.

смазочный охлаждающий жидкость шлифование

3. РАЗРАБОТКА ПРОГРАММНО-МАТЕМАТИЧЕСКОГО ОБЕСПЕЧЕНИЯ ВЗАИМОДЕЙСТВИЯ С ANSYS ДЛЯ САПР-СОЖ

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

Программный продукт использует данные для модели бака-отстойника и трубопровода, которые моделируются в ANSYS. Поэтому работа с программой должна происходить параллельно с моделированием в ANSYS. Ниже приведена схема взаимодействия программно-математического обеспечения (ПМО) и ANSYS (листинг модулей программы приведен в приложении 2).

На первом этапе происходит ввод начальных параметров, которые берутся из базы данных (насос, фильтр, марка СОЖ) и из ANSYS (бак, трубопровод). Затем после проведенных расчетов происходит корректировка параметров и расчет выполняется заново. После получения оптимальных параметров расчет прекращается и выводится график изменения шероховатости детали от исследуемого параметра.

Рис 3.1 Схема взаимодействия ПМО и ANSYS

3.1 Алгоритм работы программы

ПМО представляет собой совокупность нескольких форм написанных на Delphi 4, текст программы находится в приложении, ниже приведен алгоритм работы ПМО.

Запуск ПМО

Ввод начальных данных

Моделирование системы применения СОЖ (насос, фильтры, баки-отстойники)

Ввод параметров, вычисленных в ANSYS, для бака и трубопровода

Вычисление шероховатости для данной системы применения

Если значение шероховатости нас не удовлетворяет, то происходит корректировка параметров и переход к п.4, иначе переход к следующему пункту

Вывод результатов в виде графика

Завершение работы ПМО

Рис 3.2 Блок-схема работы ПМО

3.2 Руководство пользователя

Для работы с ПМО нужно запустить файл System.exe, появиться следующее диалоговое окно (рис 3.3).

Шаг 1. Выберите в главном меню подменю `Параметры' и введите значения параметров для СОЖ, зоны резания, трубопровода - сечение трубопровода.

Шаг 2. Выберите в главном меню подменю `Добавить' и добавьте в систему применения насос (с конкретными параметрами), аналогично добавьте баки и фильтры, если появилась необходимость удалить один из элементов, то выберите его в списке элементов системы и нажмите `Удалить'.

Шаг 3. Выберите в главном меню подменю `Ansys' и введите значения параметров для трубопровода и бака (для этого в списке элементов системы нужно выбрать бак, параметры которого хотите задать).

Шаг 4. После того как все параметры заданы, нажмите кнопку `Выполнить', после этого появятся данные в окне значений Ra и в окне текущих параметров.

Шаг 5. Если вы хотите сохранить полученные результаты, то выберете в окне текущих параметров параметр, который исследуете, и нажмите `Сохранить' в главном меню, значение выбранного параметра и текущее значение Ra запишутся в файл. Вы можете повторять это действие после каждого этапа вычисления.

Рис 3.3 Диалоговое окно ПМО

Шаг 6. Для получения изменения результатов Ra, от выбранного параметра, после того как проведены все исследования, нажмите `График' главном меню, программа выведет график изменения Ra.

Шаг 7. Для завершения работы ПМО нажмите кнопку `Закрыть'.

3.3 Выводы

1.Написано гибкое ПМО, которое позволяет моделировать практически любую систему применения СОЖ, с изменениями параметров этой системы в процессе ее моделирования.

2.Произведено взаимодействие ПМО и системы ANSYS.

3.Получены результаты в виде файлов и графиков.

4. РЕЗУЛЬТАТЫ ЭКСПЕРИМЕНТАЛЬНЫХ ИССЛЕДЛВАНИЙ СИСТЕМ ПРИМЕНЕНИЯ СОЖ

4.1 Постановка вычислительного эксперимента

В качестве исследуемых объемов были взяты бак и трубопровод. Для проведения экспериментов были выбраны следующие значения параметров: концентрация эмульсола СЭМ = 5%, температура СОЖ Т= 20С, размер частиц эмульсионной фазы dЭФ =1 мкм, истощение эмульсии СИС=0,001, марка СОЖ - Укринол 1 ( = 0,95 г/см3, =40 сСт), плотность примесей ПР = 7800 кг/м3 (сталь), диаметр трубопровода d = 0,3 м.

Для получения решения исследовалось процентное осаждение примесей, во время протекания СОЖ по трубопроводу и через бак.

Ниже приведем состав экспериментов

1.Влияние расхода СОЖ на концентрацию механических примесей в трубопроводе и баке-отстойнике.

2.Влияние высоты нейтрального слоя бака на концентрацию механических примесей.

3.Влияние высоты проточной части бака на концентрацию механических примесей

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

Результаты экспериментов представлены в виде графиков. На графиках отображена зависимость шероховатости изделия (Ra) от линейных размеров объемов и расхода жидкости.

4.2 Исследование влияния изменения концентрации механических примесей в баке и среднего арифметического отклонения профиля шлифованной поверхности от характеристик систем применения СОЖ

4.2.1 Исследование влияния жидкости на изменение концентрации механических примесей

Рис 4.1 График изменения концентрации примесей в от расхода жидкости (1- в трубопроводе, 2- в баке)

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

Получена зависимость изменения шероховатости изделия от расхода жидкости в системе применения (рис 4.3). Исследование проводилось для системы состоящей из трубопровода диаметром 0,3 м; бака 8х2,5х5 м3; фильтра ; обработка производилась кругом 24А16С17К5.

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

4.2.2 Исследование влияния высоты нейтрального слоя в баке на изменение концентрации механических примесей в СОЖ

Рис 4.3 График изменения концентрации примесей в баке от высоты нейтрального слоя бака

По результатам проведенного эксперимента можно сделать следующий вывод: оптимальная высота нейтрального слоя бака (для данных конкретных значений L =8 м, B = 5м, H = 2м) равна 1,4 м.

4.2.3 Исследование влияния высоты проточной части бака на изменение концентрации механических примесей в СОЖ

Рис 4.4 График изменения концентрации примесей в баке от высоты проточной части бака

По результатам проведенного эксперимента можно сделать следующий вывод: оптимальная высота проточной части бака (для данных конкретных значений L =8 м, B = 5м) равна 1,8 м.

4.3 Выводы

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

ЗАКЛЮЧЕНИЕ

В данной работе решалась проблема автоматизации проектирования систем применения СОЖ, что возможно с помощью ЭВМ. Применение ЭВМ для обеспечения надежной и стабильной работы подсистемы СОЖ в ГПС позволяет решать на новом уровне задачи обеспечения качества СОЖ в процессе эксплуатации. ЭВМ, по данным измерительных приборов, может прогнозировать ресурс работоспособности СОЖ на каждом гибком автоматизированном модуле, отдельном станке или во всей централизованной системе, а также обеспечивать контроль и управление для следующих параметров:

расхода СОЖ;

напора СОЖ в трубопроводах;

степени загрязненности СОЖ (наличие масла утечки, мелкодисперсных частиц стружки, посторонних примесей и т.д.), а так же некоторых физико-химических показателей СОЖ:

ЭВМ способна осуществлять обратную связь с техническими средствами применения СОЖ, поддерживая путем коррекции на заданном уровне параметры системы подачи, регенерации и очистки СОЖ. По командам ЭВМ могут отключаться или включаться насосы, регулируя расход СОЖ. По данным автоматического контроля в циркулирующую в замкнутом контуре СОЖ можно вводить взамен сработанных присадки, предотвращающие преждевременный выход СОЖ из строя.

Автоматизация контроля качества СОЖ необходима для обеспечения управления технологическим процессом в ГПС и повышения надежности ее работы и предусматривает замену периодического аналитического контроля на непрерывный или дискретный контроль, осуществляемый автоматизированной информационно-измерительной системой (ЛИС) контроля, в состав которой входят функционально объединенные измерительные средства, автоматические анализаторы, устройства для преобразования информации с целью ее ввода в ЭВМ.

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

Анализ существующих методов проектирования показал, что недостаточно широкое распространение автоматизированных методов и систем эксплуатации СОЖ сдерживается использованием традиционных, ручных методов проектирования, позволяющих выбирать лишь ограниченное число вариантов схем и оборудования. отсутствием соответствующего серийного оборудования, недостаточной научной проработкой вопросов использования ЭВМ для СОЖ.

Повышение научно-технического уровня и ускорение проектных работ для создавая эффективных систем применения СОЖ связано с использованием автоматизированных методов проектирования, базирующихся на математических моделях, т.е. с использованием САПР и соответствующего ПМО для СОЖ. Методические подходы для автоматизированного проектирования систем применения СОЖ основываются на анализе иерархической структуры функционирования СОЖ в качестве отдельного подразделения, входящего наряду с другими службами в общую структуру завода.

Выводы по проделанной работе:

1.Проанализированы существующие критерии и сформулирован обобщенный критерий эффективности системы применения СОЖ.

2.Разработана функциональная структура САПР-СОЖ как подсистема общей системы проектирования процессов механической обработки.

3.Построены математические модели элементов системы применения СОЖ (особо подробно рассмотрены модели бака-отстойника и трубопровода).

4.По построенным моделям проведены исследования и получены результаты.

5.Выданы рекомендации на параметры элементов системы применения СОЖ.

Особенно актуально использование САПР-СОЖ в качестве одной из подсистем в САПР ГПС, что отвечает принципу системности при проектировании основных и вспомогательные служб. Разработка методов автоматизированного проектирования ГАПС-СОЖ позволяет учесть этот принцип при эксплуатации СОЖ в условиях гибкой технологии и автоматизации основных механообрабатывающих производств. По результатам работы опубликованы тезисы.

ЛИТЕРАТУРА

Смазочно-охлаждающие жидкости для обработки металлов резанием. Рекомендации по применеию, -М., 1979.109с.

Седов Л.И. Механика сплошной среды, 2Т, -М., 1976.273с.

Полянсков Ю.В. Повышение эффективности операций шлифования путем стабилизации свойств СОЖ. Диссертация на соискание ученой степени доктора технических наук, Ульяновск, 1982.308с.

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

Смазочно-охлаждающие жидкости и их применение при производстве режущего инструмента. Методические рекомендации, -М., 1986.60с.

Чулок А.И. Математические модели автоматизированного проектирования систем применения СОЖ / Автоматизированные системы проектирования и управления, выпуск 5, -М, 1986.70с.

Галлагер Р. Метод конечных элементов, `Мир',-М.,1984.195с.

Бурман З.И. Программное обеспечение матричных алгоритмов и метода конечных элементов в инженерных расчетах, `Машиностроение',-М.,1988.110с.

Сегерлинд Л.Д. Применение метода конечных элементов, `Мир',-М.,1979.250с.

Воропаев Г.А., Птуха Ю.А. Моделирование турбулентных сложных течений,Киев 1991.123с.

Методы гидрофизических исследований. Турбулентность и микроструктура. Материалы III всесоюзной школы, Н.Новгород,1990.145с.

Научные основы турбулентных явлений: Сборник научных трудов.

Христов Х.И., Нартов В.П. Точечные случайные функции и крупномасштабная турбулентность, `Наука',-M.,1992.250с.

Этюды о турбулентности, `Наука',

-М.,1994.180с.

Чемпен С., Каулинг Т. Математическая теория неоднородных газов, -М.,1960.179с.

Турбулентность: принципы и применения, под ред. Фроста У., `Мир',-М.,80.356с.

Монин А.С., Яглом А.М. Статистическая гидромеханика. Теория турбулентности, `Гидрометеоиздат', 1992.360с.

ПРИЛОЖЕНИЯ

Приложение 1

Таблица П1 Технические данные насосов[1]

Тип насоса

Производительность, л/мин

ПА-22

22

ПА-180

45

НЦВ

50-400

Х14-2

12-200

Г11-2

12-70

Г12-2

5-200

К и КМ

75-6000

ЗЦ

300-630

КНП

270-20000

Пд и Пс

420-6000

РЗ

18-630

МВН

360-1500

П-90

90

П-180

180

Таблица П2 Устройства для очистки СОЖ, изготовляемые централизованно[1]

Наименование

Тип(ОСТ или ТУ)

Пропускная

способность,

л/мин

Точность очистки, мкм

Степень

очистки, %

Вид очищаемой СОЖ

Фильтры приемные

сетчатые

С41-2

ОСТ2С41-1-74

2-60

80-160

50-80

Водные и масляные СОЖ

Фильтры магнитные

сетчатые

ФМС 12М

ФМС 13М

8

16

5-10 (магнитные частицы)

40-80 (немагнитные)

60-80

То же

Фильтры - транспортеры с бумажной лентой

МХ 44-2

(ТУ2-053-454-73)

25-200

20-30

98

Водные СОЖ

Фильтры многоярусные

автоматические

ФМБ-5

ФМБ-10

ФМБ-20

800

1600-2500

500

20-30

Не менее

98

Водные СОЖ

Фильтр полосовой

ФП-4

До 3000

До 20-40

До 95

То же

Фильтр намывной

ФН-160

3000

До 5

До 98

Масляные СОЖ

Фильтры магнитные

ФМ1-ФМ8

8-400

5-10

50-80

Водные и масляные СОЖ

Патрон магнитный

Г42-1

-

Общая масса задерживаемых частиц 0,03-0,4 кг

Радиус действия

25-65 мм

Водные и масляные СОЖ

Гидроциклоны

ХМ45-2

(ТУ2-053-089-75)

Х45-3

50

50-100

10-15

5

60-90

98

Водные и масляные СОЖ

Сепараторы магнитные

СМ-2МА

СМ-3МА

(ТУ2-053-040-70)

СМ-4МА

СМ-5МА

СМ-7

25

50

100

200

630

До 2000

До 200

До 90

До 90

До 90

До 85

Водные и масляные СОЖ

Комплектная установка для подачи и очистки СОЖ на базе гидроциклонов ХМ45-2

Х35-15

200

-

-

Водные СОЖ

Таблица П3 Физико-химические свойства СОЖ [5]

Марка СОЖ, ТУ

Вязкость кинематическая при 50С , сСт

Плотность при 20С

г/см3

МР-1У

ТУ 38 101731-80

18-24

0,80-0,93

МР-4

ТУ 38 101481-76

4-10

1,05

МР-99

ТУ 38 101877-87

25-40

0,88-0,95

ОСМ-1

ТУ 38 УССР

201-228-80

7,5

0,85-0,89

ОСМ-3

ТУ 38 УССР

2-01-152-75

6-8

0,85-0,91

Укринол-14

ТУ 38 4.01.28-74

16-23

0,80-0,93

Укринол-1

ТУ 38 101197-82

30-60

0,90-0,98

Аквол-2

ТУ 38 4.01.10-73

38-65

0,90-0,99

Аквол-6

ТУ 38.4.01-1-79

70

0,90-1,10

Аквол-10М

ТУ 38.101931-83

8-15

1,0-1,1

Аквол-14

ТУ 38.101971-84

3-7

1,0-1,2

Аквол-11

ТУ 38.101932-83

40

1,00-1,08

Приложение 2

Листинг программных модулей

Модуль MainF.pas

unit MainF;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

Menus, StdCtrls, Buttons, ExtCtrls, ComCtrls;

type

TParametr = class

private

public

S:string;

p,v:Real;

Q,vf:Real;

C2,C5,C8,C25,C100:Real;

Ts,Tp2,Tp5,Tp8,Tp25,Tp100:Real;

Ce,T,De,Ci:Real;

N:Word;

end;

type

TMainForm = class(TForm)

MainMenu: TMainMenu;

AddItem: TMenuItem;

DelItem: TMenuItem;

ParamItem: TMenuItem;

NasosItem: TMenuItem;

FilterItem: TMenuItem;

BakItem: TMenuItem;

CloseBtn: TBitBtn;

MainListBox: TListBox;

MainFormLabel: TLabel;

MainFormLabel1: TLabel;

AnsysItem: TMenuItem;

ExecuteBtn: TBitBtn;

MainListBoxP: TListBox;

ResulItem: TMenuItem;

TpItem: TMenuItem;

BaksItem: TMenuItem;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

ListBox1: TListBox;

N1: TMenuItem;

procedure CloseBtnClick(Sender: TObject);

procedure NasosItemClick(Sender: TObject);

procedure FilterItemClick(Sender: TObject);

procedure BakItemClick(Sender: TObject);

procedure DelItemClick(Sender: TObject);

procedure ParamItemClick(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure TpItemClick(Sender: TObject);

procedure BaksItemClick(Sender: TObject);

procedure ExecuteBtnClick(Sender: TObject);

procedure ListBox1Click(Sender: TObject);

procedure N1Click(Sender: TObject);

procedure ResulItemClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

procedure InsM(N,A:Integer;B,C,D,E,F:Real);

procedure DelM(N:Integer);

function NomBak:Word;

procedure filterdo(N:Integer);

procedure bakdo(N:Integer);

procedure zonado;

procedure trubdo;

procedure Rado;

function left(A,B:Real):Real;

function left1(A,B:Real):Real;

end;

type TMass=array[1..10,1..5] of Real;

var

MainForm: TMainForm;

All:Integer;

Nasos:Word;

M:array[1..20,1..6] of Real;

Bak:TMass;

Param:TParametr;

C2,C5,C8,C25,C100:Real;

Ra:Real;

I:Integer;

F:TextFile;

implementation

uses NasosF, FilterF, BakF, ParametrF, AnsysF, AnsysF1, ChartF;

{$R *.DFM}

function TMainForm.NomBak:Word;

var

I:Integer;

begin

I:=0;

repeat

I:=I+1;

until(Bak[I][1]=-1);

Result:=I;

end;

function TMainForm.left(A,B:Real):Real;

begin

Result:=A+B-A*B/100;

end;

function TMainForm.left1(A,B:Real):Real;

begin

Result:=A-A*B/100;

end;

procedure TMainForm.zonado;

begin

C2:=left(C2,Param.C2);

C5:=left(C5,Param.C5);

C8:=left(C8,Param.C8);

C25:=left(C25,Param.C25);

C100:=left(C100,Param.C100)

end;

procedure TMainForm.filterdo(N:Integer);

begin

C2:=left1(C2,M[N][2]);

C5:=left1(C5,M[N][3]);

C8:=left1(C8,M[N][4]);

C25:=left1(C25,M[N][5]);

C100:=left1(C100,M[N][6])

end;

procedure TMainForm.bakdo(N:Integer);

begin

C2:=left1(C2,Bak[Round(M[N][1])][1]);

C5:=left1(C5,Bak[Round(M[N][1])][2]);

C8:=left1(C8,Bak[Round(M[N][1])][3]);

C25:=left1(C25,Bak[Round(M[N][1])][4]);

C100:=left1(C100,Bak[Round(M[N][1])][5])

end;

procedure TMainForm.trubdo;

begin

C2:=left1(C2,Param.Tp2);

C5:=left1(C5,Param.Tp5);

C8:=left1(C8,Param.Tp8);

C25:=left1(C25,Param.Tp25);

C100:=left1(C100,Param.Tp100)

end;

procedure TMainForm.Rado;

begin

if ((C2+C5+C8+C25+C100)=0) or (Param.Ce=0) or

(Param.T=0) or (Param.Ci=0)

then Ra:=0

else Ra:=0.2*exp(ln(C2+C5+C8+C25+C100)*0.05+

0.18*ln(Param.Ce)+ 0.17*ln(Param.T)-0.47*ln(Param.De)+

0.02*ln(Param.Ci));

end;

procedure TMainForm.InsM(N,A:Integer;B,C,D,E,F:Real);

var

I:Integer;

begin

If N<=All+1 then

begin

for I:=All downto N do

M[I+1]:=M[I];

M[N][1]:=A;

M[N][2]:=B;

M[N][3]:=C;

M[N][4]:=D;

M[N][5]:=E;

M[N][6]:=F;

All:=All+1;

end;

end;

procedure TMainForm.DelM(N:Integer);

var

I:Integer;

begin

If N<=All then

begin

for I:=N to All-1 do

M[I]:=M[I+1];

All:=All-1;

end;

end;

procedure TMainForm.CloseBtnClick(Sender: TObject);

begin

if N1.Enabled then CloseFile(F);

Close;

end;

procedure TMainForm.NasosItemClick(Sender: TObject);

var

St:TS;

begin

NasosForm:=TNasosForm.Create(Self);

try

if NasosForm.ShowModal=mrOk then

begin

St:=TS.Create;

NasosForm.GetData(St);

if (St.N>0) and (St.N<=All+1) then

begin

Nasos:=Nasos+1;

FilterItem.Enabled:=True;

BakItem.Enabled:=True;

Param.Q:=St.p;

MainForm.InsM(St.N,-1,St.P,0,0,0,0);

MainListBox.Items.Insert(St.N,St.s);

end;

end;

finally

NasosForm.Free;

end;

end;

procedure TMainForm.FilterItemClick(Sender: TObject);

var

Nomber:TNomberFilter;

begin

FilterForm:=TFilterForm.Create(Self);

try

if FilterForm.ShowModal=mrOk then

begin

Nomber:=TNomberFilter.Create;

FilterForm.FilterGetData(Nomber);

if (Nomber.N>0) and (Nomber.N<=All+1) then

begin

MainForm.InsM(Nomber.N,-2,Nomber.C2,

Nomber.C5,Nomber.C8,Nomber.C25,Nomber.C100);

MainListBox.Items.Insert(Nomber.N,Nomber.S);

end;

end;

finally

FilterForm.Free;

end;

end;

procedure TMainForm.BakItemClick(Sender: TObject);

var

Nomber:TBakNomber;

S:string;

begin

BakForm:=TBakForm.Create(Self);

try

BakForm.BakQEdit.Text:=FloatToStr(Param.Q*0.06);

if BakForm.ShowModal=mrOk then

begin

Nomber:=TBakNomber.Create;

BakForm.BakGetData(Nomber);

if (Nomber.N>0) and (Nomber.N<=All+1) then

begin

MainForm.InsM(Nomber.N,NomBak,Nomber.L,Nomber.H,

Nomber.B,Nomber.Hn,Nomber.Hb);

S:='Бак '+FloatToStr(Nomber.L)+'x'+FloatToStr(Nomber.H)+'x'

+FloatToStr(Nomber.B);

MainListBox.Items.Insert(Nomber.N,S);

end;

end;

finally

BakForm.Free;

end;

end;

procedure TMainForm.DelItemClick(Sender: TObject);

begin

if MainListBox.ItemIndex<>0 then

begin

if (M[MainListBox.ItemIndex][1]=-1) then

begin

Nasos:=Nasos-1;

if (Nasos=0) then

begin

FilterItem.Enabled:=False;

BakItem.Enabled:=False;

end;

end

else

if (M[MainListBox.ItemIndex][1]<>-2) then

Bak[MainListBox.ItemIndex][1]:=-1;

MainForm.DelM(MainListBox.ItemIndex);

MainListBox.Items.Delete(MainListBox.ItemIndex);

end;

end;

procedure TMainForm.ParamItemClick(Sender: TObject);

var

S1,S2:string;

begin

ParametrForm:=TParametrForm.Create(Self);

try

if ParametrForm.ShowModal=mrOk then

begin

ParametrForm.ParamGetData(Param);

MainForm.MainFormLabel.Caption:='Сож - '+Param.S;

Str(Param.v:6:3,S1);

Str(Param.p:6:3,S2);

MainForm.MainFormLabel1.Caption:=' ( '+S1+' / '+S2+' )';

end;

finally

ParametrForm.Free;

end;

end;

procedure TMainForm.FormCreate(Sender: TObject);

var

I:Integer;

begin

for I:=1 to 10 do

Bak[I][1]:=-1;

All:=0;

Nasos:=0;

Param:=TParametr.Create;

Param.Q:=1;

Param.Ts:=1;

I:=1;

MainListBox.Items.Add('Зона резания');

end;

procedure TMainForm.TpItemClick(Sender: TObject);

begin

AnsysForm:=TAnsysForm.Create(Self);

try

if AnsysForm.ShowModal=mrOk then

with AnsysForm do

begin

Param.Tp2:=StrToFloat(AnsysTEdit1.Text);

Param.Tp5:=StrToFloat(AnsysTEdit2.Text);

Param.Tp8:=StrToFloat(AnsysTEdit3.Text);

Param.Tp25:=StrToFloat(AnsysTEdit4.Text);

Param.Tp100:=StrToFloat(AnsysTEdit5.Text);

end;

finally

AnsysForm.Free;

end;

end;

procedure TMainForm.BaksItemClick(Sender: TObject);

var

I,J:Integer;

begin

I:=MainListBox.ItemIndex;

J:=Round(M[I][1]);

AnsysForm1:=TAnsysForm1.Create(Self);

try

if (J>-1) and (I<>0) then

if AnsysForm1.ShowModal=mrOk then

with AnsysForm1 do

begin

Bak[J][1]:=StrToFloat(AnsysBEdit1.Text);

Bak[J][2]:=StrToFloat(AnsysBEdit2.Text);

Bak[J][3]:=StrToFloat(AnsysBEdit3.Text);

Bak[J][4]:=StrToFloat(AnsysBEdit4.Text);

Bak[J][5]:=StrToFloat(AnsysBEdit5.Text);

end;

finally

AnsysForm1.Free;

end;

end;

procedure TMainForm.ExecuteBtnClick(Sender: TObject);

var

I,J:Integer;

begin

if not(N1.Enabled) then

begin

AssignFile(F,'Result');

Rewrite(F);

end;

N1.Enabled:=True;

C2:=Param.C2;

C5:=Param.C5;

C8:=Param.C8;

C25:=Param.C25;

C100:=Param.C100;

MainListBoxP.Clear;

ListBox1.Clear;

MainListBoxP.Items.Add('Q');

MainListBoxP.Items.Add('D');

for I:=1 to All do

if M[I][1]>-1 then

begin

MainListBoxP.Items.Add('L'+IntToStr(I));

MainListBoxP.Items.Add('H'+IntToStr(I));

MainListBoxP.Items.Add('B'+IntToStr(I));

MainListBoxP.Items.Add('Нн'+IntToStr(I));

MainListBoxP.Items.Add('Нб'+IntToStr(I));

end;

for I:=1 to Param.N do

begin

zonado;

for J:=1 to All do

begin

trubdo;

if M[J][1]=-2 then filterdo(J)

else if M[J][1]>-1 then bakdo(J);

end;

trubdo;

Rado;

ListBox1.Items.Add(FloatToStr(Ra));

end;

end;

procedure TMainForm.ListBox1Click(Sender: TObject);

begin

Label4.Caption:=IntToStr(ListBox1.ItemIndex+1);

end;

procedure TMainForm.N1Click(Sender: TObject);

var

R:Real;

L,N:Integer;

S:string;

begin

I:=MainListBoxP.ItemIndex;

S:=MainListBoxP.Items.Strings[I];

L:=Length(S);

Case I of

0:R:=Param.Q;

1:R:=Param.Ts;

else

begin

N:=StrToInt(S[L]);

if L=2 then S:=S[1] else S:=S[1]+S[2];

if S='L' then I:=2

else if S='H' then

I:=3 else if S='B' then

I:=4 else if S='Нн' then

I:=5 else I:=6;

R:=M[N][I];

end;

end;

WriteLn(F,Ra,' ',R);

end;

procedure TMainForm.ResulItemClick(Sender: TObject);

begin

CloseFile(F);

N1.Enabled:=False;

FormChart:=TFormChart.Create(Self);

try

FormChart.ShowModal

finally

FormChart.Free;

end;

end;

end.

Модуль AnsysF.pas

unit AnsysF;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, Buttons,MainF;

type

TAnsysForm = class(TForm)

AnsysTLabel: TLabel;

Label1: TLabel;

AnsysTLabel2: TLabel;

AnsysTEdit1: TEdit;

AnsysTEdit2: TEdit;

AnsysTEdit3: TEdit;

AnsysTEdit4: TEdit;

AnsysTEdit5: TEdit;

AnsysTLabel3: TLabel;

AnsysTLabel4: TLabel;

AnsysTLabel5: TLabel;

AnsysTLabel6: TLabel;

AnsysTLabel7: TLabel;

AnsysTLabel1: TLabel;

AnsysBitBtn: TBitBtn;

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

AnsysForm: TAnsysForm;

implementation

{$R *.DFM}

procedure TAnsysForm.FormCreate(Sender: TObject);

var

S1,S2:string;

begin

Param.vf:=4*Param.Q*0.001/(60*Pi*Param.Ts*Param.Ts);

Str(Param.vf:6:3,S1);

Str(Param.Ts:6:3,S2);

AnsysTLabel1.Caption:='D = '+S2+' м v = '+S1+' м/с';

AnsysTEdit1.Text:=FloatToStr(Param.Tp2);

AnsysTEdit2.Text:=FloatToStr(Param.Tp5);

AnsysTEdit3.Text:=FloatToStr(Param.Tp8);

AnsysTEdit4.Text:=FloatToStr(Param.Tp25);

AnsysTEdit5.Text:=FloatToStr(Param.Tp100);

end;

end.

Модуль BakF.pas

unit BakF;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, Buttons, ExtCtrls;

type

TBakNomber = class{(TObject)}

private

public

N:Integer;

L,H,B,Hn,Hb:Real;

end;

type

TBakForm = class(TForm)

BakOkBtn: TBitBtn;

BakCloseBtn: TBitBtn;

BakVrEdit: TEdit;

BakWEdit: TEdit;

BakHEdit: TEdit;

BakLrEdit: TEdit;

BakLEdit: TEdit;

BakHnEdit: TEdit;

BakHbEdit: TEdit;

BakHoEdit: TEdit;

BakQEdit: TEdit;

BakVfEdit: TEdit;

BakVrLabel: TLabel;

BakWLabel: TLabel;

BakHLabel: TLabel;

BakLrLabel: TLabel;

BakLLabel: TLabel;

BakHnLabel: TLabel;

BakHbLabel: TLabel;

BakHoLabel: TLabel;

BarQLabel: TLabel;

BakVfLabel: TLabel;

BakLBitBtn: TBitBtn;

BakVfBtn: TBitBtn;

BakHBitBtn: TBitBtn;

BakBEdit: TEdit;

BakBLabel: TLabel;

BakNomberEdit: TEdit;

BakNomberLabel: TLabel;

Bevel1: TBevel;

Bevel2: TBevel;

Bevel3: TBevel;

procedure BakLBitBtnClick(Sender: TObject);

procedure BakHBitBtnClick(Sender: TObject);

procedure BakVfBtnClick(Sender: TObject);

private

{ Private declarations }

public

procedure BakGetData(Dat:TBakNomber);

{ Public declarations }

end;

var

BakForm: TBakForm;

implementation

uses MainF;

{$R *.DFM}

var

H:Real;

procedure TBakForm.BakLBitBtnClick(Sender: TObject);

var

Vr,W,R:Real;

begin

Vr:=StrToFloat(BakVrEdit.Text);

W:=StrToFloat(BakWEdit.Text);

H:=StrToFloat(BakHEdit.Text);

R:=2*Vr*H/W;

BakLrEdit.Text:=FloatToStr(R);

end;

procedure TBakForm.BakHBitBtnClick(Sender: TObject);

var

R,Hn,Hb:Real;

begin

Hn:=StrToFloat(BakHnEdit.Text);

Hb:=StrToFloat(BakHbEdit.Text);

R:=Hn+Hb+H;

BakHoEdit.Text:=FloatToStr(R);

end;

procedure TBakForm.BakVfBtnClick(Sender: TObject);

var

Q,B:Real;

begin

Q:=StrToFloat(BakQEdit.Text);

B:=StrToFloat(BakBEdit.Text);

BakVfEdit.Text:=FloatToStr(Q/(36*H*B));

end;

procedure TBakForm.BakGetData(Dat:TBakNomber);

begin

Dat.N:=StrToInt(BakNomberEdit.Text);

Dat.L:=StrToFloat(BakLEdit.Text);

Dat.B:=StrToFloat(BakBEdit.Text);

Dat.H:=StrToFloat(BakHEdit.Text);

Dat.Hn:=StrToFloat(BakHnEdit.Text);

Dat.Hb:=StrToFloat(BakHbEdit.Text);

end;

end.

Модуль ChartF.pas

unit ChartF;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

TeEngine, Series, ExtCtrls, TeeProcs, Chart, ArrowCha, TeeShape,

StdCtrls, Buttons;

type

TFormChart = class(TForm)

Chart: TChart;

Series1: TFastLineSeries;

BitBtn1: TBitBtn;

procedure FormCreate(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FormChart: TFormChart;

implementation

{$R *.DFM}

procedure TFormChart.FormCreate(Sender: TObject);

var

F:TextFile;

X,Y:Real;

begin

AssignFile(F,'Result');

Reset(F);

while not(EOF(F)) do

begin

Read(F,Y,X);

Chart.SeriesList[0].AddXY(X,Y,'',clTeeColor);

end;

CloseFile(F);

end;

procedure TFormChart.BitBtn1Click(Sender: TObject);

begin

Close;

end;

end.

Модуль NasosF.pas

unit NasosF;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, Buttons, ExtCtrls;

type

TS = class{(TObject)}

private

public

s:string;

N:Integer;

P:Real;

end;

type

TNasosForm = class(TForm)

NasOkBtn: TBitBtn;

NasCloseBtn: TBitBtn;

NasosEdit: TEdit;

NososLabel: TLabel;

NasosComboBox: TComboBox;

NasosComboLabel: TLabel;

NasosEdit1: TEdit;

NasosPrLabel: TLabel;

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

procedure GetData(St:TS);

end;

var

NasosForm: TNasosForm;

implementation

{$R *.DFM}

procedure TNasosForm.GetData(St:TS);

begin

St.s:=NasosComboBox.Text;

St.N:=StrToInt(NasosEdit.Text);

St.P:=StrToFloat(NasosEdit1.Text);

end;

procedure TNasosForm.FormCreate(Sender: TObject);

begin

NasosComboBox.ItemIndex:=1;

end;

end.

Модуль ParametrF.pas

unit ParametrF;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, Buttons, ExtCtrls,MainF;

type

TParametrForm = class(TForm)

ParamOkBtn: TBitBtn;

ParamCloseBtn: TBitBtn;

ParamComboBox: TComboBox;

ParamVzEdit: TEdit;

ParamPlEdit: TEdit;

ParamComboLabel: TLabel;

ParamVzLabel: TLabel;

ParamPlLabel: TLabel;

ParamTonkEdit2: TEdit;

ParamTonkEdit5: TEdit;

ParamTonkEdit8: TEdit;

ParamTonkEdit25: TEdit;

ParamTonkEdit100: TEdit;

ParamLabel100: TLabel;

ParamLabel25: TLabel;

ParamLabel8: TLabel;

ParamLabel5: TLabel;

ParamLabel2: TLabel;

PoramCtepLabel: TLabel;

ParamZonLabel: TLabel;

ParamSogLabel: TLabel;

ParamBevel: TBevel;

ParamBevel1: TBevel;

ParamTbLabel: TLabel;

ParamTsLabel: TLabel;

ParamTsEdit: TEdit;

ParamTbBevel: TBevel;

ParamCeEdit: TEdit;

ParamTeEdit: TEdit;

ParamDeEdit: TEdit;

ParamCiEdit: TEdit;

ParamCeLabel: TLabel;

ParamTeLabel: TLabel;

ParamDeLabel: TLabel;

ParamCiLabel: TLabel;

ParamCikEdit: TEdit;

ParamCikLabel: TLabel;

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

procedure ParamGetData(Par:TParametr);

end;

var

ParametrForm: TParametrForm;

implementation

{$R *.DFM}

procedure TParametrForm.FormCreate(Sender: TObject);

begin

ParamComboBox.ItemIndex:=I;

ParamPlEdit.Text:=FloatToStr(Param.p);

ParamVzEdit.Text:=FloatToStr(Param.v);

ParamTonkEdit2.Text:=FloatToStr(Param.C2);

ParamTonkEdit5.Text:=FloatToStr(Param.C5);

ParamTonkEdit8.Text:=FloatToStr(Param.C8);

ParamTonkEdit25.Text:=FloatToStr(Param.C25);

ParamTonkEdit100.Text:=FloatToStr(Param.C100);

ParamTsEdit.Text:=FloatToStr(Param.Ts);

ParamCeEdit.Text:=FloatToStr(Param.Ce);

ParamDeEdit.Text:=FloatToStr(Param.De);

ParamTeEdit.Text:=FloatToStr(Param.T);

ParamCiEdit.Text:=FloatToStr(Param.Ci);

ParamCikEdit.Text:=FloatToStr(Param.N);

end;

procedure TParametrForm.ParamGetData(Par:TParametr);

begin

Par.p:=StrToFloat(ParametrForm.ParamPlEdit.Text);

Par.v:=StrToFloat(ParametrForm.ParamVzEdit.Text);

Par.C2:=StrToFloat(ParametrForm.ParamTonkEdit2.Text);

Par.C5:=StrToFloat(ParametrForm.ParamTonkEdit5.Text);

Par.C8:=StrToFloat(ParametrForm.ParamTonkEdit8.Text);

Par.C25:=StrToFloat(ParametrForm.ParamTonkEdit25.Text);

Par.C100:=StrToFloat(ParametrForm.ParamTonkEdit100.Text);

Par.S:=ParametrForm.ParamComboBox.Text;

Par.Ts:=StrToFloat(ParametrForm.ParamTsEdit.Text);

Par.Ce:=StrToFloat(ParametrForm.ParamCeEdit.Text);

Par.De:=StrToFloat(ParametrForm.ParamDeEdit.Text);

Par.T:=StrToFloat(ParametrForm.ParamTeEdit.Text);

Par.Ci:=StrToFloat(ParametrForm.ParamCiEdit.Text);

Par.N:=StrToInt(ParametrForm.ParamCikEdit.Text);

I:=ParamComboBox.ItemIndex;

end.

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.