Автор: Пользователь скрыл имя, 04 Апреля 2012 в 21:33, курсовая работа
Для обеспечения безопасного использования машин большой мощности, способных развивать высокие скорости движения, проектируются тормозные системы, которые могут эффективно противодействовать мощности и скорости.
Тормоза предназначены для уменьшения поступательной скорости, экстренной остановки или удержания на уклоне.
В данной работе необходимо рассчитать удельную мощность трения дисков фрикционного тормоза, необходимую для торможения колеса, в зависимости от момента трения тормоза и числа пар трения.
ВВЕДЕНИЕ 5
1. МАТЕМАТИЧЕСКОЕ РЕШЕНИЕ ЗАДАЧИ 6
2. АЛГОРИТМИЗАЦИЯ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ 8
3. ТАБЛИЦА ИДЕНТИФИКАТОРОВ 9
5. СТРУКТУРА ПРОГРАММНОГО ПРИЛОЖЕНИЯ 16
5.1. Падающее и контекстное меню 16
5.2. Статусная строка 16
5.3. Обработка исключительных ситуаций 17
5.4. Построение графических зависимостей 18
5.5. Создание анимации 18
5.6. Вызов внешнего приложения 19
5.7. Динамически подключаемые библиотеки 20
5.8. Использование системных диалогов 21
7. РАСЧЁТ КОНТРОЛЬНОГО ПРИМЕРА 28
ЗАКЛЮЧЕНИЕ 31
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ ИНФОРМАЦИИ 32
Подсказки для каждого компонента, задаваемые свойством Hint выводятся в статусную строку при наведении курсора на конкретный объект.
Для реализации
проводились следующие
в разделе описания процедур добавляем:
procedure ShowHint(Sender: TObject);
После этого вручную прописываются еще две процедуры.
procedure TFMain.ShowHint(Sender: TObject);
begin
StatusBar.SimpleText := Application.Hint;
end;
procedure TFMain.FormCreate(Sender: TObject);
begin
Application.OnHint := ShowHint;
end;
Или же в окне Object Inspector для StatusBar меняется свойство AutoHint false на true.
Применение статусной строки выгодно облегчает работу с программой, если нет желания вызывать файл справки, но требуется получить информацию об объекте.
5.3.
Обработка исключительных
Не редко пользователи программы по своей невнимательности допускают ошибки ещё на начальном этапе, при вводе данных. Чтобы избежать таких проколов в программе используется обработка исключительных ситуаций. При введении неверной информации программа автоматически выдаёт сообщение об ошибке.
Ниже приведены условия, поставленные для исправной работы программы:
Применение (см. прил. 1 стр.34).
В случае возникновения ошибки будет выдано соответствующее сообщение (рис.8), при этом будет установлен фокус в тот LabeledEdit, где содержится неправильное значение.
Данная функция возвращает True, если ошибок не было, и False, если ошибки были.
Рис. 9 – Сообщение об ошибке
5.4. Построение графических зависимостей
Для подтверждения аналитических данных в программе используется построение графиков. Построение графиков проводится с помощью компонентов Chart и ChartPro. Конкретно для построения 3D используется ChartPro. Если расчётные данные совпадают с результатами на графической зависимости, то можно сделать вывод, что программа написана верно без искажения реальных фактов.
Таки образом, процедура построения графиков функции выглядит следующим образом (см. прил. 1 стр. 44-45).
5.5. Создание анимации
Окно "О программе" см. рис. 7 снабжено анимированной картинкой, изображающей принцип работы фрикционного тормоза.
Данная анимация реализована следующим образом (см. прил. 1 стр. 46-48).
Формирование анимации заключается в следующем: на каждом шаге данная процедура пересчитывает положение дисков тормоза одновременно с этим положение горизонтальной прямой на колесе и, в случае соприкосновения дисков с колесом, колесо останавливается. В случае соприкосновения дисков с колесом координаты дисков отсчитываются в обратную сторону, а прямая продолжает перемещение. Процедура работает до тех пор, пока не будет закрыта данная форма.
5.6. Вызов внешнего приложения
Для уточнения полученных результатов или для каких-то предварительных расчетов, можно воспользоваться системным калькулятором Windows. В программе есть такая возможность. Она осуществляется следующим образом:
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
WinExec('calc.exe',SW_RESTORE)
end;
Данная процедура позволяет вызывать внешнее приложение из программного продукта, не закрывая программу.
Преимущество этой функции в том, что не надо прописывать калькулятор в программном коде, т.к. он есть в любой версии операционной системы Windows.
5.7. Динамически подключаемые библиотеки
Динамически подключаемые библиотеки (DLL — Dynamic Link Library) являются ключевым компонентом при написании любого современного приложения Windows. Они представляют собой программные модули, содержащие процедуры и функции, данные или ресурсы, которые могут совместно использоваться несколькими различными приложениями Windows.
В разработанном программном продукте используется библиотека с функцией расчёта удельной мощности. Текст библиотеки представлен ниже:
library Project2;
uses
SysUtils,
Classes;
Procedure Ras(Var Mtr,z:real; Var Pud:real);
var Wr,Re,Ri:Real;
Begin
Wr:=-2.889078145;
Re:=0.1025;
Ri:=0.075;
Pud:=Mtr*abs(Wr)/pi*(Re*Re-Ri*
end;
Exports Ras;
{$R *.res}
begin
end.
Для использования данной функции из библиотеки нужно написать следующий код в разделе implementation:
Procedure Ras(Var Mtr,z:real; Var Pud:real);
external 'Project2.dll';
5.8. Использование системных диалогов
В приложениях часто приходится выполнять стандартные действия: открывать и сохранять файлы, задавать атрибуты шрифтов, выбирать цвета палитры…
В Delphi существуют простые для использования компоненты, реализующие соответствующие диалоговые окна Windows. Основная часть их размещена на странице Dialogs.
Основной метод, которым производится обращение к любому диалогу, Execute. Эта функция открывает диалоговое окно и, если пользователь произвёл в нём какой-то выбор, то функция возвращает true. Если же пользователь в диалоге нажал кнопку Отмена (Cancel) или клавишу Esс, то функция Execute возвращает false. Поэтому стандартное обращение к диалогу имеет вид:
If <имя компонента-диалога> Execute
Then <операторы, использующие выбор пользователя>
Использование системных диалогов в программе:
procedure TForm1.N10Click(Sender: TObject);
begin
if SaveDialog1.Execute then
begin
AssignFile(Fw,'Данные.txt');
Rewrite(Fw);
WriteLn(Fw,labeledEdit1.text);
WriteLn(Fw,labeledEdit2.text);
WriteLn(Fw,labeledEdit3.text);
WriteLn(Fw,labeledEdit4.text);
WriteLn(Fw,labeledEdit5.text);
WriteLn(Fw,labeledEdit6.text);
WriteLn(Fw,labeledEdit7.text);
WriteLn(Fw,labeledEdit8.text);
WriteLn(Fw,labeledEdit9.text);
CloseFile(Fw);
end;
end;
procedure TForm3.BitBtn3Click(Sender: TObject);
begin
if PageSetupDialog1.Execute then
begin
Chart1.print;
Chart2.print;
Chart3.print;
end;
end;
procedure TForm1.N11Click(Sender: TObject);
begin
OpenDialog1.Execute;
end;
6. РАЗРАБОТКА СПРАВОЧНОЙ СИСТЕМЫ
Файл справочной системы был создан при помощи утилиты Help&Manual версии 5.0 (рис. 10).
Рис. 10 – окно Help&Manual
Итоговый файл справки и файл содержания располагаются в подпапке Help папки с программой. Вызвать файл справки можно, нажав клавишу F1, соответствующую кнопку на форме либо соответствующий пункт в падающем меню.
Для каждой формы есть своя страница файла справки.
Использование в программе:
WinHelp(Handle, 'help\help.hlp', HELP_CONTEXT, 1);
Разработанная справочная система представлена на рисунках, приведенных ниже (рис. 11 – 15)
Рис. 11 – Справка "О программе"
Рис. 12 – Справка "Форма с графическими зависимостями"
Рис. 13 – Справка «Главная форма»
Рис. 14 – Справка «Форма с результатами расчета»
Рис. 15 – Справка «Введение»
7. РАСЧЁТ КОНТРОЛЬНОГО ПРИМЕРА
Объект исследования: Трактор Беларус-925
Исходные данные для расчета:
Момент трения:
Mtrmin = 0 Нм
Mtrmax = 30714.129 Нм
Количество пар трения:
zmin = 1
zmax = 16
Радиус дисков:
re = 0.1025 м
ri=0.076 м
Количество расчетных точек:
Для момента трения: 20
Для пар трения: 10
Таблица 3 – Результаты расчёта удельной мощности трения дисков фрикционного тормоза, необходимую для торможения колеса Pud(Вт/м2)
Mtr\z |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
1536Н*м |
68.93641 |
62.04277 |
55.14913 |
48.25549 |
41.36185 |
34.46821 |
27.57456 |
20.68092 |
13.78728 |
6.89364 |
3071Н*м |
137.87282 |
124.08554 |
110.29826 |
96.51098 |
82.72369 |
68.93641 |
55.14913 |
41.36185 |
27.57456 |
13.78728 |
4607Н*м |
206.80924 |
186.12831 |
165.44739 |
144.76647 |
124.08554 |
103.40462 |
82.72369 |
62.04277 |
41.36185 |
20.68092 |
6143Н*м |
275.74565 |
248.17108 |
220.59652 |
193.02195 |
165.44739 |
137.87282 |
110.29826 |
82.72369 |
55.14913 |
27.57456 |
7679Н*м |
344.68206 |
310.21385 |
275.74565 |
241.27744 |
206.80924 |
172.34103 |
137.87282 |
103.40462 |
68.93641 |
34.46821 |
9214Н*м |
413.61847 |
372.25663 |
330.89478 |
289.53293 |
248.17108 |
206.80924 |
165.44739 |
124.08554 |
82.72369 |
41.36185 |
10750Н*м |
482.55488 |
434.2994 |
386.04391 |
337.78842 |
289.53293 |
241.27744 |
193.02195 |
144.76647 |
96.51098 |
48.25549 |
12286Н*м |
551.4913 |
496.34217 |
441.19304 |
386.04391 |
330.89478 |
275.74565 |
220.59652 |
165.44739 |
110.29826 |
55.14913 |
13821Н*м |
620.42771 |
558.38494 |
496.34217 |
434.2994 |
372.25663 |
310.21385 |
248.17108 |
186.12831 |
124.08554 |
62.04277 |
15357Н*м |
689.36412 |
620.42771 |
551.4913 |
482.55488 |
413.61847 |
344.68206 |
275.74565 |
206.80924 |
137.87282 |
68.93641 |
16893Н*м |
758.30053 |
682.47048 |
606.64043 |
530.81037 |
454.98032 |
379.15027 |
303.32021 |
227.49016 |
151.66011 |
75.83005 |
18428Н*м |
827.23694 |
744.51325 |
661.78956 |
579.06586 |
496.34217 |
413.61847 |
330.89478 |
248.17108 |
165.44739 |
82.72369 |
19964Н*м |
896.17336 |
806.55602 |
716.93869 |
627.32135 |
537.70401 |
448.08668 |
358.46934 |
268.85201 |
179.23467 |
89.61734 |
21500Н*м |
965.10977 |
868.59879 |
772.08781 |
675.57684 |
579.06586 |
482.55488 |
386.04391 |
289.53293 |
193.02195 |
96.51098 |
23036Н*м |
1034.04618 |
930.64156 |
827.23694 |
723.83233 |
620.42771 |
517.02309 |
413.61847 |
310.21385 |
206.80924 |
103.40462 |
24571Н*м |
1102.98259 |
992.68433 |
882.38607 |
772.08781 |
661.78956 |
551.4913 |
441.19304 |
330.89478 |
220.59652 |
110.29826 |
26107Н*м |
1171.919 |
1054.7271 |
937.5352 |
820.3433 |
703.1514 |
585.9595 |
468.7676 |
351.5757 |
234.3838 |
117.1919 |
27643Н*м |
1240.85542 |
1116.76988 |
992.68433 |
868.59879 |
744.51325 |
620.42771 |
496.34217 |
372.25663 |
248.17108 |
124.08554 |
29178Н*м |
1309.79183 |
1178.81265 |
1047.83346 |
916.85428 |
785.8751 |
654.89591 |
523.91673 |
392.93755 |
261.95837 |
130.97918 |
30714Н*м |
1378.72824 |
1240.85542 |
1102.98259 |
965.10977 |
827.23694 |
689.36412 |
551.4913 |
413.61847 |
275.74565 |
137.87282 |
Рис.16 – Зависимость от момента трения
Рис. 17 – Зависимость от пар трения
Рис. 18 – Трехмерная зависимость
ЗАКЛЮЧЕНИЕ
В результате проделанной работы было получено законченное программное приложение технического характера, с помощью которого можно рассчитать удельную мощность трения дисков фрикционного тормоза, необходимую для торможения колеса.
В качестве объекта исследования был рассмотрен трактор Беларус-925.
По результатам расчета контрольного примера можно сделать следующие выводы:
При Mtr=0 Pud=0, при максимальном моменте трения и минимальном количестве пар трения Pud=1378.7 Вт/м2, а при максимальном моменте трения и максимальном количестве пар трения Pud=137.9 Вт/м2.
Данную программу можно в дальнейшем использовать при проектировке тормозных систем. Меняя параметры тормоза, можно подобрать наиболее подходящие под данную модель или найти компромисс в решении.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ ИНФОРМАЦИИ
ПРИЛОЖЕНИЕ
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Menus, Math, ComCtrls, Buttons;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
GroupBox1: TGroupBox;
LabeledEdit1: TLabeledEdit;
LabeledEdit2: TLabeledEdit;
LabeledEdit3: TLabeledEdit;
GroupBox2: TGroupBox;
LabeledEdit4: TLabeledEdit;
LabeledEdit5: TLabeledEdit;