Принципиальная схема гидравлического демпфера или катаракта приведена на рисунке 1.
Рисунок 1 - Расчетная схема гидравлического демпфера
Демпфер состоит из наполненного вязкой жидкостью цилиндра D, в котором движется поршень Р с отверствиями А. Поршень штоком В соединен с массой m, вес которой G=mg. Масса m подвешена на пружине С.
Уравнение колебаний массы имеет вид
Сопротивление, встречаемое поршнем при движении его в цилиндре (так называемое вязкое трение), пропорционально первой степени скорости , причем q есть расстояние центра тяжести системы Р, В, m от положения равновесия. Наиболее сложной частью расчета является определение величины коэффициента c, зависящего от многих факторов. Здесь следует
воспользоваться следующим выражением этого коэффициента:
где
коэффициент вязкости (),
длина отверствий А (м),
диаметр отверствий (м),
площадь поршня (),
число отверствий.
Если вес всей колеблющейся системы (груз, поршень и поршневой шток), диаметр поршня (м), то
Введя обозначения масса равная сумме массы m, массы штока и массы поршня, жесткость пружины), запишем уравнение (1) в виде
(2)
Решение уравнения (2) будет иметь различную форму в зависимости от соотношений
Первый случай: (случай «малого» сопротивления).
Решение уравнения (2) представляется в виде
А - амплитуда, начальная фаза, - круговая частота свободных колебаний.
Второй случай: (случай «большого» сопротивления).
Решение уравнения (2) имеет вид:
(4)
где
Третий случай:
Решением уравнения (1) будет
(5)
Где .
. Описание программы
Структурная схема программы (связи модулей).
Программа состоит из следующих модулей:
Project1.dpr - модуль проекта. - модуль содержащий описание класса главной формы программы, и описание методов работы формы. - модуль заставки, появляющейся при запуске программного обеспечения. _class - модуль созданного класса с закрытыми полями, и методами для работы с данным классом..dll - динамически подключаемая библиотека, содержащая форму окна «О программе», вызываемой из главного окна программы.
В программе реализованы следующие классы:
Класс TForm1 - от родительского класса TForm, содержит необходимые поля и методы для работы главной формы программы.
Основные поля класса:- главное меню.- таблица для вывода результатов вычислений.... 113 - поля для ввода исходной информации в программу.- строка состояние, отображающая справочную контекстную информацию. - панель кнопок.- область построения диаграмм на форме программы.- график диаграммы.
Основные методы класса:
procedure N5Click(Sender: TObject) - обработка нажатий на пункты меню. ToolButton1Click(Sender: TObject) - обработка нажатий на кнопки на панели. FormShow(Sender: TObject) - отображение заставки на экране. ShowHint(Sender: TObject) - обработка показываний контекстной помощи (подсказки).
function Proverka(Sender: TObject):boolean - функция проверки на заполнение полей исходными данными.
Класс TLogo - от родительского класса TForm, содержит является окном заставки показываемой перед запуском основной формы программы.
Основные поля класса:- рисунок заставки.- текстовые поля со статической информацией.- таймер с отсчетом времени для показа заставки.
Методы класса:
procedure Timer1Timer(Sender: TObject) - метод отсчет таймера, по завершению которого форма (заставка) закрывается
procedure FormCreate(Sender: TObject) - при создании формы, автоматически срабатывает таймер, и форма закрывается по истечению времени.
procedure FormKeyPress(Sender: TObject; var Key: Char) - обработка нажатия клавиш на клавиатуре, при нажатии клавиши заставка закрывается.
Класс TKurs - разработанный класс для вычисления в заданный промежуток времени поведения системы с одной степенью свободы под действием нагрузки треугольного вида.
Поля класса (все поля типа double): - начальное значение времени,i - промежуточные значения времени,k - конечное значение периода времени,- упругость пружины,
m - масса груза,- коэффициент вязкости жидкости,
l - длина отверстий в поршне,
q - площадь поршня,
H - диаметр порщня,
m1 - масса штока,
m2 - масса поршня,
q0 - расстояние центра тяжести системы,
z - число отверстий,- диаметр отверстий,
hag - приращение (шаг) времени.
Методы класса:
function g_f(t: double):double - функция вычисления значения системы при заданном значении времени.
procedure Create - запись информации в поля класса;
procedure ReadIniFile - чтение ini файла;WriteIniFile - запись в ini файл;
procedure Raszet - произведение вычислений изменения системы и занесение информации в таблицу результатов главной формы;Draw - рисование на главной форме графика поведения системы относительно времени.
В программе реализована одна динамическая библиотека ProjectDLL.dll, в ней содержится окно «О программе». Библиотека имеет одну процедуру, которая доступна для использования из библиотеки и одну функцию которая посчитывает значение переменной n используемой при расчетах в программе.
procedure ShowAbout(Handle: THandle)stdcall; - процедура отображения окна «О программе».
function N_dann(u,l,Q_,z,H,d:double):double; - функция подсчета значения переменной n.
Работа программы выполняется следующим образом: при создании главное формы на экран выводится заставка, форма модуля Unit2.pas, которая по истечению 5 секунд, либо по нажатию клавиши, исчезает. Запускается главная форма, модуль Unit1.pas. Далее ожидаются действия пользователя. Пользователь должен ввести исходные данные, либо выбрать метод чтения данных из ini файла. Данные заносятся в создаваемый класс TKurs, модуля Kursuv_class.pas. Далее при выборе пользователя метода вычислить производится запуск метода Raszet, который выводит полученную информацию в таблицу. Затем метод Draw класса TKurs рисует график изменения поведения системы. При вызове окна «О программе», подключается динамическая библиотека ProjectDLL.dll из которой процедурой ShowAbout(Handle: THandle) отображается окно «О программе».