Разработка приложения колебаний массы с гидравлическим демпфером

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    103,96 Кб
  • Опубликовано:
    2013-05-29
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка приложения колебаний массы с гидравлическим демпфером














Курсовая работа

по дисциплине

Конструирование программ и языки программирования

на тему

Разработка приложения колебаний массы с гидравлическим демпфером

Введение

Целью курсовой работы по дисциплине: ”Конструирование программ и языки программирования” на тему «Разработка приложения колебаний массы с гидравлическим демпфером» является разработка программного обеспечения для компьютера, с помощью которого будет производится расчет временного поведения системы.

Решаемая задача относится к разделу физики (механика). В процессе ее решения получается решение поведение системы относительно времени и колебании некоторого груза под действием силы нагрузки треугольного вида.- это современный программный продукт, позволяющий создавать широкий спектр приложений для среды Microsoft Windows. Он объединяет в себе высокопроизводительный компилятор с языка ObjectPascal, являющийся объектно-ориентированным расширением структурного языка третьего поколения Pascal, средств наглядного (визуального) создания программ и масштабируемую технологию управления БД. Основное назначение Delphi - служить средством для быстрого создания широкого класса Windows-приложений, включая приложения, отвечающие технологии распределенной обработки данных, называемой технологией клиент-сервер.

Для разработки Windows-приложений Delphi имеет следующие средства:

высокопроизводительный компилятор

объектно-ориентированная модель компонентов

быстрая среда разработки (RAD)

расширяемость

средства для построения БД- это продукт, позволяющий создавать широкий спектр приложений для Windows. Среда Delphi включает в себя полный набор визуальных средств для быстрой разработки приложений, поддерживающих как создание пользовательских интерфейсов, так и таблиц базы данных. Библиотека классов, входящих в Delphi, инкапсулирующих различные группы функций Windows API. Delphi является системой с открытой архитектурой, что позволяет дополнять ее новыми средствами, и переносить на различные платформы.

1. Математическая формулировка задачи


Принципиальная схема гидравлического демпфера или катаракта приведена на рисунке 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 - масса штока,

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) отображается окно «О программе».

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


Работа программы начинается с запуска приложения Project1.exe. Пользователю сперва показывается заставка программы, которая сама пропадет через 5 секунд после появления, либо можно закрыть ее нажатием клавиши на клавиатуре. После чего появляется главная форма программы. Дальнейшие действия пользователя - заполнить данными поля «Исходные данные», исходные данные возможно взять из ini файла, для этого пользователю необходимо выбрать пункт меню Файл / Данные из *.ini. Данные берутся из файла ini.ini находящегося в папке Windows, если данный файл не найден, либо испорчен, данные автоматически записываются все единицами. Далее пользователь выбирает пункт меню Данные / Вычислить, происходит вычисления значений изменений системы относительно времени и занесение данных в таблицу. Данные / График происходит построение графического изображения изменения системы относительно времени.

Пункты меню программы:

Файл / Данные из *.ini. - читать данный из файла ini.ini в папке Windows.

Файл / Сохранить в *.ini - записывает исходные данные в файл ini.ini в папку Windows.

Файл / Выход - выход из программы.

Данные / Вычислить - происходит вычисления значений изменений системы относительно времени и занесение данных в таблицу.

Данные / График - происходит построение графического изображения изменения системы относительно времени.

Данные / Очистить / Все - все поля, таблицу значений и график

Данные / Очистить / Исходные данные - очищает поля с исходными данными

Данные / Очистить / Таблицу значений - очищает значения функции занесенные в таблицу.

Данные / Очистить / График - стирает изображение графика.

Документы / Пояснительная записка - отрывается пояснительная записка данного курсового проекта.

Документы / Презентация - в PowerPoint открывается презентация на данное программное средство.

Документы / Данные в Excel - заносятся данные полученный при выполнении вычислений в книгу Microsoft Excel.

Справка / Содержание - справочная информация по использованию данного программного средства.

Справка / Заставка - запускается заставка.

Справка / О программе - открывается диалоговое окно «О программе».

На рисунке 3 изображена кнопочная панель для удобства использования программного средства.

Рис. 3 Кнопочная панель

Значение кнопок с лева на право следующее:

- Читать данный из файла ini.ini в папке Windows.

- Записывает исходные данные в файл ini.ini в папку Windows.

- Вычислить - происходит вычисления значений изменений системы относительно времени и занесение данных в таблицу.

- График - происходит построение графического изображения изменения системы относительно времени.

- Очистить - все поля, таблицу значений и график.

- Пояснительная записка - отрывается пояснительная записка данного курсового проекта.

- Презентация - в PowerPoint открывается презентация на данное программное средство.

- Данные в Excel - заносятся данные полученный при выполнении вычислений в книгу Microsoft Excel.

- справочная информация по использованию данного программного средства.

- Заставка - запускается заставка.

- О программе - открывается диалоговое окно «О программе».

- Выход из программы.

4. Тестирование программного средства


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

При своей работе программа потребляет определенное количество ресурсов системы, таким образом, для ее запуска необходимо, чтобы данные ресурсы были свободны и предоставлены ей для работы. Из них программе необходимы свободное место на жестком диске компьютера для размещения файлов непосредственно самой программы, файла базы данных и вспомогательных файлов, а также используемых библиотек; определенное количество оперативной памяти для запуска процесса программы; процессор компьютера, который используется для нужд вычислений; из программного обеспечения необходима любая 32-разрядная версия Windows, под управлением которой работает приложение.

Программа разработана на компьютере, который и является оптимальным для ее запуска. Он имеет следующие характеристики:

         процессор AMD Duron 800MGh;

         128 Mb оперативной памяти SDRAM;

         видеокарта GeForce 4MX 64 Mb памяти;

         20 Gb винчестер Samsung SP0212N, из них на системном диске свободны 200 Mb для размещения файла виртуальной памяти;

         CD-RW Teac CRX, который используется для инсталляции программы;

         3,5" флоппи-дисковод, который также может быть использован для установки приложения;

         17" монитор с разрешением 1024x768 и глубиной цвета 32 бита на пиксель;

         операционная система Windows XP.

Если компьютер следует вышеперечисленным характеристикам, либо имеет близкие к ним, программа корректно запустится и будет функционировать.

В данном решении тестирование проводилось несколькими способами. Во-первых, в диалоговых окнах добавления и редактирования записей вводились неправильные значения и проверялась реакция программы, в частности, в числовые поля вводились символы и т.д. Также производились попытки изменить либо удалить записи в момент, когда никакой текущей записи не выбрано.

В момент прохождения стадии тестирования в программе были найдены и устранены мелкие недостатки.

После тестирования были построены финальная версия программы и программа-установщик. Данное приложение готово к использованию.

В ходе испытаний была доказана полная совместимость и правильность работы программного средства с Windows ХР.

Заключение


Разработанный пакет программного обеспечения позволит ускорить, автоматизировать работу по нахождению значений временного поведения системы: колебаний массы с гидравлическим демпфером.

Программный продукт реализован на языке высокого уровня Borland Delphi 7.0.

В разработанном программном средстве реализовано использование динамической библиотеки DLL, организован экспорт данных в электронный таблицы Microsoft Excel. К программному средству прилагается справочная информация по использованию.

программа гидравлический демпфер delphi

 

Список использованной литературы


1.  А.М. Епанешников, В.А. Епанешников Программирование в среде Delphi.-М.:»Диалог МИФИ», 1998.

2.      Бобровский С. Delphi 5: учебный курс- СПб: Издательство «Питер», 2000.- 640с.

.        Гринчишин Я.Т. и др. Алгоритмы и программы на Бейсике: Учеб. Пособие для студентов пед. Ин-тов по физ.-мат. Спец./Я.Т.Гринчишин, В.И. Ефимов, А.Н. Ломакович.-М.: Просвещение, 1988.- 160 с.

.        Дарахвелидзе П.Г., Марков Е.П. Delphi 4.-СПб.: БХВ-Санкт-Петербург, 1999.- 816 с.

.        Елмакова Н., Трепалин С., Тенцер А. Delphi 6 и технология COM.-СПб.: Питер, 2002. - 640 с.

7.      Фаронов В.В. Delphi 6. Учебный курс.-М.: Издатель Молгачева С.В., 2001.-672с.

8.      Федоров А.. Delphi 5.0 для всех. -М.: Тоо фирма “КомпьютерПресс”, 1998. - 464 с.

Приложения


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

// Project1.dpr - файл проекта.

program Project1;,in 'Unit1.pas' {Form1},in 'Unit2.pas' {Logo},_class in 'Kursuv_class.pas';

{$R *.res}.Initialize;.CreateForm(TForm1, Form1);.CreateForm(TLogo, Logo);.Run;.

// Unit1.pas - главная форма программы.

// главная форма программы.

unit Unit1;

interface, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Buttons, Menus, ToolWin, ActnMan, ActnCtrls, Grids, IniFiles,_class, ComCtrls, TeEngine, Series, ExtCtrls, TeeProcs, Chart,, PowerPointXP, ExcelXP, OleServer, WordXP, ComObj, ActiveX,ShellAPI;

// процедура вызова окна о программе из DLL

procedure ShowAbout(Handle: THandle)stdcall;

function N_dann(u,l,Q_,z,H,d:double):double ;

type= class(TForm): TBitBtn;: TMainMenu;: TPopupMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TStringGrid;: TGroupBox;: TEdit;: TLabel;: TLabel;: TEdit;: TLabel;: TEdit;: TLabel;: TEdit;: TLabel;: TEdit;: TStatusBar;: TToolBar;: TMenuItem;: TChart;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TToolButton;: TToolButton;: TToolButton;: TToolButton;: TToolButton;: TToolButton;: TToolButton;: TToolButton;: TToolButton;: TToolButton;: TImageList;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TImageList;: TImageList;: TToolButton;: TToolButton;: TToolButton;: TToolButton;: TWordApplication;: TExcelApplication;: TPowerPointApplication;: TWordDocument;: TToolButton;: TToolButton;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TEdit;: TLabel;: TEdit;: TLabel;: TLabel;: TLabel;: TLabel;: TEdit;: TLabel;: TLabel;: TLabel;: TEdit;: TLabel;: TEdit;: TLabel;: TEdit;: TEdit;: TLabel;: TLabel;: TEdit;: TLabel;: TLabel;: TEdit;: TLabel;: TLineSeries;FormShow(Sender: TObject);Button2Click(Sender: TObject);Button4Click(Sender: TObject);ToolButton1Click(Sender: TObject);ToolButton2Click(Sender: TObject);ToolButton4Click(Sender: TObject);ToolButton6Click(Sender: TObject);ToolButton5Click(Sender: TObject);ToolButton11Click(Sender: TObject);ToolButton13Click(Sender: TObject);ToolButton12Click(Sender: TObject);ToolButton10Click(Sender: TObject);N5Click(Sender: TObject);N4Click(Sender: TObject);N15Click(Sender: TObject);N16Click(Sender: TObject);N17Click(Sender: TObject);N12Click(Sender: TObject);

{ Private declarations }ShowHint(Sender: TObject);Proverka(Sender: TObject):boolean;

{ Public declarations };

//---------------------------------------------: TForm1;: TKurs; // объявление созданного класса

// процедура вызова окна о программе из DLL

procedure ShowAbout; external 'ProjectDLL.DLL' index 10;N_dann(u,l,Q_,z,H,d:double):double ; external 'ProjectDLL.DLL' index 11;Unit2, about3;

{$R *.dfm}

// перед показом клавной формы, показывается заставка

// и проводится настройка окна программы.

procedure TForm1.FormShow(Sender: TObject);.showmodal;.OnHint:=ShowHint;1.ColWidths[2]:=180;

end;

// функция проверки заполнеия исходными данными полей на форме

function TForm1.Proverka(Sender: TObject):boolean;(Form1.Edit100.Text='') or (Form1.Edit107.Text='')or(Form1.Edit108.Text='')or

(Form1.Edit101.Text='') or (Form1.Edit102.Text='') or(Form1.Edit109.Text='')or

(Form1.Edit103.Text='') or (Form1.Edit104.Text='') or

(Form1.Edit105.Text='') or (Form1.Edit106.Text='') then:=false:=true;;

// при нажатии Справка о программе либо на панели инструментов соответствующей кнопки

procedure TForm1.N4Click(Sender: TObject);

ShowAbout(Handle);

end;

// при нажати записи в ini файл происходить вызов метода созданного класса.

procedure TForm1.Button2Click(Sender: TObject);

Kurs.WriteIniFile;

end;

// при нажатии кнопки закрытие программы

procedure TForm1.N5Click(Sender: TObject);;;

// очистка графикаTForm1.Button4Click(Sender: TObject);

Series1.Clear;

end;

// включение контекстной помощи (передача в строку состояния, справочной информации)

procedure TForm1.ShowHint(Sender: TObject);.SimpleText:=Application.Hint;;

// запуск презентации программы.TForm1.N12Click(Sender: TObject);: OLEVariant;: String;:=ExtractFilePath(Application.ExeName)+'Prezent.ppt';:= CreateOleObject('PowerPoint.Application');('Error...');;;.Visible := True;.Presentations.Open(FilePr, False, False, True);;

// чтение ini файла.TForm1.ToolButton1Click(Sender: TObject);.ReadIniFile;;

//TForm1.ToolButton2Click(Sender: TObject);.WriteIniFile;;

//процедура расчета значений системыTForm1.ToolButton4Click(Sender: TObject);Proverka(Sender) then.Raszet;;

// Процедура очистка всех полей, графика, и таблицы результатов

procedure TForm1.ToolButton6Click(Sender: TObject);.Clear;.RowCount := 1;.Text:='';.Text:='';.Text:='';.Text:='';.Text:='';.Text:='';.Text:='';.Text:='';.Text:='';.Text:='';110.Text:='';

end;

// очистка полей с исходной информацией

procedure TForm1.N15Click(Sender: TObject);.Text:='';.Text:='';.Text:='';.Text:='';.Text:='';.Text:='';.Text:='';.Text:='';.Text:='';.Text:='';110.Text:='';

end;

// очистка таблицы с результатами

procedure TForm1.N16Click(Sender: TObject);.RowCount := 1;;

// очистка графикаTForm1.N17Click(Sender: TObject);.Clear;;

// рисование графика.TForm1.ToolButton5Click(Sender: TObject);Proverka(Sender) then.Raszet;.Draw;;;

// запуск Ворда и пояснительной записки

procedure TForm1.ToolButton11Click(Sender: TObject);,ConfirmConversions,ReadOnly,AddToRecentFiles,,PasswordTemplate,Revert,WritePasswordDocument,,Format,EmptyParam: OleVariant;.Connect;.Visible:=true;

// открываем шаблон документа:=ExtractFilePath(Application.ExeName)+'ПЗ.doc';:=False;:=False;:=False;

PasswordDocument:='';:='';:=False;

WritePasswordDocument:='';:='';:=0;.Documents.Open(FileName,ConfirmConversions,ReadOnly,,PasswordDocument,PasswordTemplate,Revert,WritePasswordDocument,,Format,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);

// связываем компонент с существующим интерфейсом.ConnectKind:=ckAttachToInterface;.ConnectTo(WordApplication1.ActiveDocument);;

// запуск презентацииTForm1.ToolButton13Click(Sender: TObject);: OLEVariant;: String;:=ExtractFilePath(Application.ExeName)+'Prezent.ppt';:= CreateOleObject('PowerPoint.Application');('Error...');;;.Visible := True;.Presentations.Open(FilePr, False, False, True);;

// сооздание документа Excel и перенос в него таблицы результатов

procedure TForm1.ToolButton12Click(Sender: TObject);, Sheet, Colum, Chart:Variant;, i,n: integer;xl3DColumn=4;=2;

begin

// создание документа. Лист с именем Отчет

XLApp:= CreateOleObject('Excel.Application');.Visible := True;.Workbooks.Add(-4167);.Workbooks[1].WorkSheets[1].Name:='Отчет';:=XLApp.Workbooks[1].WorkSheets['Отчет'].Columns;.Columns[3].ColumnWidth:=30;:=XLApp.Workbooks[1].WorkSheets['Отчет'];:=StringGrid1.RowCount;

// добавление графика в таблицу Ексель

XLApp.Charts.Add;.Charts[1].Activate;:=XLApp.Charts.Item[1];.ChartType:=xl3DColumn;.SetSourceData(Source:=XLApp.ActiveWorkbook.Sheets.Item['Отчет'].Range['B1:C1000'],:=xlColumns);

end;

// вызов справочной информации

procedure TForm1.ToolButton10Click(Sender: TObject);(Handle, 'open', '1.chm',nil, nil, SW_SHOWNORMAL);;.

// Unit2.pas модуль заставкиUnit2;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, ExtCtrls, jpeg, StdCtrls,Registry;= class(TForm): TTimer;: TImage;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;Timer1Timer(Sender: TObject);FormCreate(Sender: TObject);FormKeyPress(Sender: TObject; var Key: Char);

{ Private declarations }

{ Public declarations };: TLogo;

{$R *.dfm}

// по истечению таймера заставка закрывается. таймер на 5 сек.

procedure TLogo.Timer1Timer(Sender: TObject);

begin;;

// форма заставки когда заставка созданна она должна закрыться

procedure TLogo.FormCreate(Sender: TObject);

begin;;

// форма заставки если нажата клафиша закрыть заставку

procedure TLogo.FormKeyPress(Sender: TObject; var Key: Char);;;

.

// Kursuv_class.pas созданный класс

// созданный класс

unit Kursuv_class;

interface= object,tk,hag:double;

// p,k,m,Q,h:double;,m1,m2,q0,q,l,u,H,k,Mas,z,d:double;

c_,n_,Q_,w_,A_,T_,V_,wt :double;, C1, C2 :double;g_f(t: double):double;

{ Private declarations }Create;ReadIniFile;WriteIniFile;Raszet;Draw;

{ Public declarations };RoundEx(chislo: double; Precision: Integer): string;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Buttons, Menus, ToolWin, ActnMan, ActnCtrls, Grids, IniFiles,1, Math;

// запись информации в закрытые поля класса

procedure TKurs.Create;:=StrToFloat(Form1.Edit100.Text);:=StrToFloat(Form1.Edit101.Text);:=StrToFloat(Form1.Edit102.Text);:=StrToFloat(Form1.Edit103.Text);:=StrToFloat(Form1.Edit104.Text);:=StrToFloat(Form1.Edit105.Text);:=StrToFloat(Form1.Edit106.Text);:=StrToFloat(Form1.Edit107.Text);:=StrToFloat(Form1.Edit108.Text);:=StrToFloat(Form1.Edit109.Text);:=StrToFloat(Form1.Edit110.Text);:=StrToFloat(Form1.Edit111.Text);:=StrToFloat(Form1.Edit112.Text);:=StrToFloat(Form1.Edit113.Text);;

// процес записи информации в ini файл

procedure TKurs.WriteIniFile;ini : TIniFile;(Form1.Edit100.Text='') or (Form1.Edit107.Text='')or(Form1.Edit108.Text='')or

(Form1.Edit101.Text='') or (Form1.Edit102.Text='') or (Form1.Edit109.Text='')or

(Form1.Edit103.Text='') or (Form1.Edit104.Text='') or (Form1.Edit110.Text='')or

(Form1.Edit105.Text='') or (Form1.Edit106.Text='') then.MessageBox('Заполните все поля!!!','Замечание!')

else:=TIniFile.Create('ini.ini');.WriteFloat('Data','m',StrToFloat(Form1.Edit100.Text));.WriteFloat('Data','u',StrToFloat(Form1.Edit101.Text));.WriteFloat('Data','l',StrToFloat(Form1.Edit102.Text));.WriteFloat('Data','q',StrToFloat(Form1.Edit103.Text));.WriteFloat('Data','H',StrToFloat(Form1.Edit104.Text));.WriteFloat('Data','k',StrToFloat(Form1.Edit105.Text));.WriteFloat('Data','m1',StrToFloat(Form1.Edit106.Text));.WriteFloat('Data','m2',StrToFloat(Form1.Edit107.Text));.WriteFloat('Data','q0',StrToFloat(Form1.Edit108.Text));.WriteFloat('Data','z',StrToFloat(Form1.Edit109.Text));.WriteFloat('Data','d',StrToFloat(Form1.Edit110.Text));.WriteFloat('Data','t0',StrToFloat(Form1.Edit111.Text));.WriteFloat('Data','tk',StrToFloat(Form1.Edit112.Text));.WriteFloat('Data','hag',StrToFloat(Form1.Edit113.Text));.Free;;;

// чтение ini файлаTKurs.ReadIniFile;ini : TIniFile;:=TIniFile.Create('ini.ini');:=ini.ReadFloat('Data','m',0);.Edit100.Text:=FloatToStr(m);:=ini.ReadFloat('Data','u',1);.Edit101.Text:=FloatToStr(u);:=ini.ReadFloat('Data','l',1);.Edit102.Text:=FloatToStr(l);:=ini.ReadFloat('Data','q',1);.Edit103.Text:=FloatToStr(q);:=ini.ReadFloat('Data','H',1);.Edit104.Text:=FloatToStr(H);:=ini.ReadFloat('Data','k',1);.Edit105.Text:=FloatToStr(k);:=ini.ReadFloat('Data','m1',1);.Edit106.Text:=FloatToStr(m1);:=ini.ReadFloat('Data','m2',1);.Edit107.Text:=FloatToStr(m2);:=ini.ReadFloat('Data','q0',1);.Edit108.Text:=FloatToStr(q0);:=ini.ReadFloat('Data','z',1);.Edit109.Text:=FloatToStr(z);:=ini.ReadFloat('Data','d',1);.Edit110.Text:=FloatToStr(d);

t0:=ini.ReadFloat('Data','t0',1);

Form1.Edit111.Text:=FloatToStr(t0);:=ini.ReadFloat('Data','tk',1);.Edit112.Text:=FloatToStr(tk);:=ini.ReadFloat('Data','hag',1);.Edit113.Text:=FloatToStr(hag);.Free;

end;

// функция системы зависящая от времени

function TKurs.g_f(t: double):double;

begin(n_<w_)then_:=sqrt(q0*q0+q0*q0/(w_*w_));:= ArcTan(w_*q0/q0);:=sqrt(w_*w_-n_*n_);_f:=A_*exp(n_*t)*sin(wt*t+b);;(n_>w_)then:=sqrt(n_*n_-w_*w_);_f:=exp(-n_*t)*(((q0*(wt+n_)+q0)/(2*wt))*exp(2*t)+((q0*(wt-n_)-q0)/(2*wt))*exp(2*wt*t));;(n_=w_)then:=(q0*(wt+n_)+q0)/(2*wt);:=(q0*(wt-n_)-q0)/(2*wt);_f:=exp(-n_*t)*(C1*t+C2);;

end;

// процедура расчета системы и записи полученной информации в таблицу

procedure TKurs.Raszet;i:integer;,temp: double;;:=t0;

i:=0;

Mas:=m+m1+m2; // сичаем массу

Q_:=Mas*9.81; // вес всей колеблющейся системы (груз, поршень и поршневой шток)

n_:=N_dann(u,l,Q_,z,H,d);

c_:=128*u*l*q*q/(3.14*power(d,4));

w_:=sqrt(k/Mas);:=(tk-t0)/hag;

Form1.StringGrid1.RowCount := 1;.StringGrid1.RowCount:=round(temp)+2;.StringGrid1.Cells[0,0]:=' № ';.StringGrid1.Cells[1,0]:=' t= ';.StringGrid1.Cells[2,0]:=' x(t)= ';(ti<=(tk+hag/2)) do.StringGrid1.Cells[0,i+1]:=IntToStr(i+1);.StringGrid1.Cells[1,i+1]:=FloatToStr((Round(ti*10))/10);.StringGrid1.Cells[2,i+1]:=FloatToStr(g_f((Round(ti*10))/10));(i);:=ti+hag;;;

// рисование графикаTKurs.Draw;: double;:=t0;(ti<=tk) do.Series1.AddXY(ti, strtofloat(RoundEx(g_f(ti),8)),'',clGreen);:=ti+hag;;;

// процедура округления значений до заданного количества цифр после запятой.

function RoundEx(chislo: double; Precision: Integer): string;: string;: currency;

ChisloInCurr := chislo;(ChisloInCurr: 20: Precision, ChisloInStr);[Pos('.', ChisloInStr)] := ',';

RoundEx := Trim(ChisloInStr);;.

// файл about.pas для создания DLL файла с формой диалогового окна «О программе»

unit about;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Buttons, Math;= class(TForm)

Label1: TLabel;: TBitBtn;: TLabel;

Label4: TLabel;: TLabel;: TLabel;: TLabel;

{ Private declarations }

{ Public declarations };: TForm1;ShowAbout(Handle: THandle); export; stdcall;N_dann(u,l,Q_,z,H,d:double):double; export; stdcall;

{$R *.dfm}ShowAbout(Handle: THandle);

// установить указатель на приложение

Application.Handle:=Handle;

// создать форму:=TForm1.Create(Application);

// отобразить.ShowModal;

//очистить.Free;;N_dann(u,l,Q_,z,H,d:double):double;_dann:=(4 * 3.14 * 9.81 * u * l / (Q_*z))*power(H/d,4);.

Похожие работы на - Разработка приложения колебаний массы с гидравлическим демпфером

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!