Исследование математической модели технического объекта на персональном компьютере
МИНИСТЕРСТВО
ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ
УЧРЕЖДЕНИЕ
ОБРАЗОВАНИЯ ГОМЕЛЬСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ИМЕНИ П. О.
СУХОГО
Факультет
автоматизированных и информационных систем
Кафедра
«Информационные технологии»
РАСЧЕТНО-ПОЯСНИТЕЛЬНАЯ
ЗАПИСКА к курсовой работе
по
дисциплине «Информатика»
на
тему: «Исследование МАТЕМАТИЧЕСКОЙ
модели ТЕХНИЧЕСКОГО ОБЪЕКТА на персональном компьютере»
Исполнитель: Малкова С.А.
Руководитель: доцент В.И.
Мисюткин
Содержания
Введение
. Постановка
задачи
. Возможности
MathCad по решению
нелинейных уравнений и систем нелинейных уравнений
. Описание
проекта Delphi
. Описание
документа MathCad
. Инструкция
для пользователя
Заключение
Список
использованных источников
Приложения
Введение
Математические модели являются мощным
инструментом познания реального мира. Они применяются для различных расчетов,
проектирования систем, управления процессами и системами, прогнозирования
разных явлений и т.д. Математические модели дают возможность открывать и
предсказывать новые научные факты и закономерности.
Математические модели обеспечивают
систематическое осмысление проблем и позволяют одновременно учитывать все
влияющие на них факторы. Вместе с тем, раскрывая все предпосылки, они
становятся более уязвимыми для критики по сравнению с умозрительными моделями,
где исходные пункты рассуждений формулируются их создателями. Все же близкие к
практике рекомендации могут быть получены, если при построении модели принятия
решений изначально отказаться от применения оптимизационных алгоритмов и
придать большее значение учету существенных структурных элементов наблюдаемого
фрагмента реальности. В результате формируется имитационная модель принятия
решений. Она решается не аналитически, а экспериментально или эвристически, что
вследствие резкого увеличения расчетов требует использования
электронно-вычислительной техники. Благодаря компьютерным технологиям
неожиданно для многих возрождается и математическое модельное мышление. С
помощью имитации могут быть найдены удовлетворительные решения сложных проблем,
тогда как оптимизационные модели позволяют получить оптимальные решения только
для проблем с простой структурой.- система компьютерной алгебры из класса
систем автоматизированного проектирования, ориентированная на подготовку интерактивных
документов с вычислениями и визуальным сопровождением, отличается легкостью
использования и применения для коллективной работы. Mathcad содержит сотни
операторов и встроенных функций для решения различных технических задач.
Программа позволяет выполнять численные и символьные вычисления, производить
операции со скалярными величинами, векторами и матрицами, автоматически
переводить одни единицы измерения в другие.
Среди возможностей Mathcad можно выделить:
- Решение
дифференциальных уравнений, в том числе и численными методами.
- Построение
двумерных и трёхмерных графиков функций (в разных системах координат,
контурные, векторные и т. д.)
- Использование
греческого алфавита, как в уравнениях, так и в тексте.
- Выполнение
вычислений в символьном режиме.
- Выполнение
операций с векторами и матрицами.
- Символьное
решение систем уравнений.
- Аппроксимация
кривых.
- Выполнение
подпрограмм.
- Поиск
корней многочленов и функций.
- Поиск
собственных чисел и векторов.
- Вычисления
с единицами измерения.
- Интеграция
с САПР системами, использование результатов вычислений в качестве управляющих
параметров.
С помощью Mathcad инженеры могут документировать
все вычисления в процессе их проведения.
В целом модели и теории, которые формулируются и
решаются с помощью математических методов, представляют собой неотъемлемую
составляющую диалога между теорией и практикой. В условиях быстро меняющихся
постановок проблем, когда сегодняшние решения завтра уже не пригодны, требуются
не только готовые к непосредственному использованию знания, но и умственная
динамика, кругозор, компетентность.
1. Постановка задачи
В данной курсовой работе необходимо оценить
влияние силы резания (Pz.H.)
заготовки на диаметр поршня пневмоцилиндра (Dц)
при использовании трёхкулачкового патрона с пневматическим приводом зажима
(рисунок 1).
Рисунок 1 - Схема пневмоприспособления.
Для того, чтобы получить все значения
изменяющегося параметра следует применить формулу:
, (1)
где -
начальное значение (Dз.п.), -
шаг изменения параметра (Dз.п.),
i=1,2,…,N; N - заданное число элементов.
Диаметр цилиндра (Dц)
также зависит от других параметров, поэтому необходимо рассчитать и их:
, (2)
где Dо.п. - диаметр обрабатываемой поверхности
заготовки; fк.п. - коэффициент трения на рабочих поверхностях кулачков; Dз.п. -
диаметр зажимаемой поверхности; Kзап - коэффициент запаса.
Рассчитав эту функцию, получим ещё один набор
значений, который требуется подставить в следующую:
, (3)
где Wk-сила зажима на одном кулачке, Н; nk-число
кулачков; Kтр - коэффициент, учитывающий дополнительные трения в патроне; ak-
вылет кулачка от его опоры до центра приложения силы зажима; hk - длина
направляющей части кулачка; fk - коэффициент трения в направляющих кулачках; l1
и l2 - плечи рычага привода.
Расчёт данной функции даёт ещё один набор
значений, который позволяет определить значения искомого параметра (Dц):
, (4)
где Pв - давление сжатого воздуха.
Для расчета статистических характеристик следует
использовать формулы: Математическое ожидание.
(5)
(6)
Дисперсия.
2 (7)
(8)
Среднеквадратичное отклонение
(9)
(10)
Исходными данными для работы являются:
o Сила резания - Pz = 9200
(Н).
o Диаметр зажимаемой поверхности -
Dз.п. =0 (мм), ΔDз.п.
= 310 (мм).
o Диаметр обрабатываемой поверхности -
Dо.п. = 200 (мм).
o Давление сжатого воздуха - Pв = 1,4
(мПа).
o Коэффициент трения на рабочих
поверхностях кулачков - fк.п = 0,1.
o Коэффициент запаса - Кзап = 2,7.
o Число кулачков - n = 5.
o Вылет кулачка от его опоры до центра
приложения силы зажима - ak = 40 (мм).
o Коэффициент трения в направляющих
кулачка - fk = 0,1.
o Плечи рычага привода - l1 = 30 (мм)
и l2 = 100 (мм).
o Количество точек в зависимости - N =
25
2. Возможности MathCad
по решению нелинейных уравнений и систем нелинейных уравнений
Многие уравнения, например трансцендентные, и
системы из них не имеют аналитических решений. Однако они могут решаться
численными методами с заданной погрешностью (не более значения, заданного
системной переменной (TOL). Для простейших уравнений вида F(x)=0 решение
находится с помощью функции Rооt(Выражение, Имя_переменной)
Эта функция возвращает значение переменной с
указанным уровнем точности, при котором выражение становится равным нулю.
Пример:
Функция реализует вычисления итерационным
методом, причем можно задать начальное значение переменной. Это особенно полезно,
если возможно несколько решений. Тогда выбор решения определяется выбором
начального значения переменной. Пример ниже иллюстрирует технику применения
функции root для вычисления корней кубического полинома.
Как известно, кубическое уравнение обязательно
имеет хотя бы один кубический корень х1. Он найден вначале функцией root. Два
других корня могут оказаться и комплексными. Функция root может отыскивать и
такие корни. Для поиска второго корня, х2, первый исключается делением F(x) на
(х-х1). Соответственно для поиска третьего корня, хЗ, F(X) делится еще и на
(х-х2).
Функция root
в общем виде: root(f(x), x, [a, b]) и возвращает значение переменной x, при
котором функция f(x) обращается в ноль. Аргументы функции root:(x) - функция
левой части уравнения f(x) = 0;- переменная, относительно которой требуется
решить уравнение;, b (необязательные) - действительные числа, такие что a <
b, причем на интервале [a, b] находится только один корень.
Если функция root не может найти корни
уравнения, то рекомендуется уточнить начальное приближение по графику, изменить
границы интервала [a, b] нахождения корня или увеличить значение системной
переменной TOL.
Эту процедуру можно распространить и на поиск
корней полиномов более высокой степени, однако надо помнить, что найти корни
полинома можно гораздо более изящным и простым способом - используя операцию
символьных вычислений. Функция поиска корней многочлена polyroots
Для решения полиномиальных уравнений вида
где v - вектор коэффициентов полинома длины n+1,
n - степень полинома. Вектор v формируется следующим образом: в первый его
элемент заносится значение коэффициента полинома при х0, т.е. v0,
во второй элемент - значение коэффициента полинома при х1, т.е. v1
и т.д. Таким образом, вектор заполняется коэффициентами перед степенями
полинома справа налево. Функция вычисляет вектор длины n, состоящий из корней
полинома
Пример. Используя функцию polyroots, найти все
три корня уравнения , включая и два
комплексных
Решить полиномиальное уравнение можно следующим
образом:
)задать полином;
)выделить переменную синим управляющим курсором;
)создать вектор коэффициентов полинома, выполнив
последовательность команд главного меню Symbolics / Polynomial Coefficients
(Символика / Коэффициенты полинома);
)вырезать вектор коэффициентов полинома в буфер
обмена;
)задать переменную v и присвоить ей значение
вектора коэффициентов полинома, вставив его непосредственно из буфера обмена;
)применить функцию polyroots(v) в каком-нибудь
выражении, например, X:=polyroots(v);
)получить вектор корней полинома: X =.
Заметим, что корни полинома могут быть как
вещественными, так и комплексными числами. Не рекомендуется пользоваться этой
функцией, если степень полинома выше пятой-шестой, так как тогда трудно
получить малую погрешность вычисления корней. При решении систем нелинейных
уравнений используется специальный вычислительный блок, открываемый служебным
словом - директивой Given - и имеющий следующую структуру:
Уравнения
Ограничительные условия
Выражения с функциями Find и Minerr
В блоке используется одна из следующих двух
функций:(vl, v2, ..., vn) - возвращает значение одной или ряда переменных для
точного решения;(vl, v2, ..., vn) - возвращает значение одной или ряда
переменных для приближенного решения.
Функция Find уточняет корень уравнения, вызов
этой функции имеет вид Find(x), где x - переменная, по которой уточняется
корень. Если корня уравнения на заданном интервале не существует, то следует
вызвать функцию Minerr(x), которая возвращает приближенное значение корня.
Для выбора алгоритма уточнения корня необходимо
щелкнуть правой кнопкой мыши на имени функции Find(x) и в появившемся
контекстном меню (см. рисунок) выбрать подходящий алгоритм.
Minerr-возвращает
значение одной или ряда переменных для приближенного решения.
Пример:
Между этими функциями существуют принципиальные
различия. Первая функция используется, когда решение реально существует (хотя и
не является аналитическим). Вторая функция пытается найти максимальное
приближение даже к несуществующему решению путем минимизации среднеквадратичной
погрешности решения.
Пример:
При использовании функции Minerr для решения
систем нелинейных уравнений надо проявлять известную осторожность и обязательно
предусматривать проверку решений. Нередки случаи, когда решения могут оказаться
ошибочными, чаще всего из-за того, что из нескольких корней система предлагает
нереальный (или не представляющий интереса) корень. Полезно как можно точнее
указывать начальные приближения к решению.
Использование численных методов в функциях Find(x),
Minerr(x)
требует перед блоком Given
задать начальные значения переменным, по которым осуществляется поиск корней
уравнения.
3. Описание проекта Delphi
В проекте Delphi
с помощью табулирования функции и использовании массивов мы можем получить
необходимые значения Pz.H.
и Dц.
Все используемые в программе события
представлены в таблице 1.
Таблица 1 - Используемые события
Компонент
|
Событие
|
Имя
процедуры обработки события
|
Реализуемый
алгоритм
|
Button1
|
OnClick
|
TForm1.Button1Click
|
Вычисление
влияния силы резания на диаметр поршня гидроцилиндра
|
Button2
|
OnClick
|
TForm1.Button2Click
|
Отображение
информации об авторе работы
|
Таблица 2 - Описание переменных
Имя
переменной в задаче
|
Имя
переменной в программе
|
Тип
переменной
|
Комментарий
|
Pz
|
Pz
|
array[1..25]
of Real
|
Сила
резания
|
Dc
|
array[1..25]
of Real
|
Диаметр
поршня гидроцилиндра
|
N
|
n
|
integer
|
Количество
точек в зависимости
|
Pz нач.
|
Pzn
|
Real
|
Начальное
значение силы резания
|
ΔPz
|
dPz
|
Real
|
Шаг
силы резания
|
Wk
|
wk
|
Real
|
Сила
зажима на кулачке
|
Qшт.
|
Qsht
|
Real
|
Сила,
передаваема штоком гидроцилиндра
|
nk
|
nk
|
const
|
Число
кулачков
|
fkp
|
fkp
|
const
|
Коэффициент
трения на рабочих поверхностях кулачков
|
Dо.п.
|
Dop
|
Real
|
Диаметр
обрабатываемой поверхности
|
Dз.п.
|
Dzp
|
Real
|
Диаметр
зажимаемой поверхности
|
Kзап
|
Kzap
|
const
|
Коэффициент
запаса
|
Pв
|
Pv
|
Real
|
Давление
сжатого воздуха
|
Kтр
|
Ktr
|
const
|
Коэффициент
учитывающий дополнительные трения в патроне
|
ak
|
ak
|
const
|
Вылет
кулачка от его опоры до центра приложенной силы зажима
|
hk
|
hk
|
Real
|
Длина
направляющей части кулачка
|
fk
|
fk
|
const
|
Коэффициент
трения в направляющих кулачках
|
l1
|
l1
|
const
|
Плечо
рычага привода
|
l2
|
l2
|
const
|
-
|
i
|
integer
|
Номер
текущей точки зависимости
|
-
|
outstr
|
string
|
Для
вывода значений в таблицу на форме
|
Таблица 3 - свойства компонентов
Элемент
интерфейса
|
Компонент
|
Свойство
|
Значение
свойства
|
Заголовок
окна
|
Form1
|
Caption
|
Расчёт
диаметра поршня гидроцилиндра
|
Пометка
для поля ввода N
|
Label1
|
Caption
|
N:
|
Пометка
для поля ввода Pz
нач.
|
Label2
|
Caption
|
Pz нач., Н:
|
Пометка
для поля ввода шага Pz
|
Label3
|
Caption
|
шаг Pz, Н:
|
Пометка
для поля ввода Dз.п.
|
Label3
|
Caption
|
Dз.п.,
м:
|
Пометка
для поля ввода Dо.п.
|
Label3
|
Caption
|
Dо.п.,
м:
|
Пометка
для поля ввода Pв
|
Label3
|
Caption
|
Pв,
Па:
|
Поле
ввода
N
|
Edit1
|
Text
|
25
|
Поле
ввода
Pz нач.
|
Edit2
|
Text
|
9200
|
Поле
ввода
шага Pz
|
Edit3
|
Text
|
100
|
Поле
ввода Dз.п.
|
Edit3
|
Text
|
0,31
|
Поле
ввода Dо.п.
|
Edit3
|
Text
|
0,2
|
Поле
ввода Pв
|
Edit3
|
Text
|
1400000
|
Кнопка,
вызывающая вычисление
|
Button1
|
Caption
|
Рассчитать
|
Кнопка,
вызывающее окно с информацией об авторе работы
|
Caption
|
Об
авторе
|
Таблица
вывода значений Pz
и Dц
|
StringGrid1
|
FixedCols ColCount
|
0 3
|
4. Описание документа MathCad
В данной части работы необходимо определить
параметры регрессионной зависимости, описывающей зависимость Dц от силы резания
(Pz.H.) заготовки.
Для проверки правильности расчета статистических
характеристик, в MathCadе следует их просчитать с использованием стандартных
функций (математическое ожидание - mean, дисперсия - var и среднеквадратичное
отклонения - stdev). Для расчета коэффициентов уравнения регрессии используются
функции : intercept и slope - для линейной регрессии, regress - для
полиномиальной.
Рисунок 3- Схема алгоритма
Уравнение линейной регрессии будет иметь вид:
(11)
Уравнение полиномиальной регрессии второй
степени имеет вид:
(12)
Лучший вид регрессии, выбирается на основании
коэффициента детерминации R (величина достоверности):
(13)
Значение f следует
рассчитать по формуле:
(14)
Чем ближе R
к единице, тем точнее модель. В данном случае R
близок к 1 при использовании уравнения полиноминальной регрессии второй степени.
График, отображающий зависимость изображён на рисунке 4.
Рисунок 4 - График, отображающий табличные
значения и значения, полученные по уравнению полиноминальной регрессии второй
степени
. Инструкция для пользователя
Для начала нужно отрыть исходное окно с проектом
Delphi (рисунок 5).
нелинейный уравнение резание пользователь
Рисунок 5 - исходное окно проекта.
Затем нажать кнопку .
В компоненте stringgrid1.cells
выведутся значения силы резания заготовки (Pz.Н)
и диаметра поршня(Dц) (рисунок
6).
Рисунок 6 - окно проекта с данными.
Инструкция использования презентации PowerPoint
Следует запустить на выполнение программу. В
открывшемся окне будет представлен первый слайд презентации. Слайды
переключаются автоматически или при нажатии на соответствующую кнопку. На
втором слайде имеются гиперссылки, при нажатии на которые, можно перейти к
представленным разделам презентации.
Заключение
В ходе выполнения курсовой работы были
приобретены навыки самостоятельного решения прикладной инженерной задачи с
использованием компьютерных систем.
В работе описывались некоторые важные средства,
которые могут помочь принять принципы автоматизации инженерных расчётов.
Полученные знания и умения пригодятся для
дальнейшей учебной деятельности и, несмотря на завершение курса информатики в
этом семестре, я ещё часто буду пользоваться пакетом Mathcad
для решения различных технических и инженерных задач.
В качестве вывода следует отметить, что система Mathcad
сложная и содержит много встроенных функций, работающих по сложным алгоритмам.
Для решения данной задачи в курсовой работе нам
потребовалось, используя приведенную в задании математическую модель станочного
приспособления, создать проект Delphi.
Позволяющий оценить влияние диаметра обрабатываемой поверхности заготовки на
диаметр поршня пневмацилиндра при использовании кулачкового патрона с
пневматическим приводом зажима. А так же рассчитали полученные ранее вычисления
в среде пакета MathCad.
Таким образом, в ходе курсового проектирования
были углублены и расширены теоретические и практические знания в области
информатики.
Список использованных источников
1. Практическое
руководство по курсовому проектированию/ Т. А. Трохова, Н. В. Самовендюк, Т. Л.
Романькова .- 2005. -34 с.
.
ПРАКТИЧЕСКОЕ ПОСОБИЕ к выполнению контрольных работ по теме “Решение задач в
среде Mathcad”
Часть 1/ Т.А.Трохова, Т.Л. Романькова, И.В. Стрижак . - 2005. - 20 стр.
.
ПРАКТИЧЕСКОЕ ПОСОБИЕ к выполнению контрольных работ по теме “Решение задач в
среде Mathcad”
Часть 2/ Т.А.Трохова, Т.Л. Романькова, И.В. Стрижак . - 2005. - 30 стр.
.
ПРАКТИЧЕСКОЕ ПОСОБИЕ к выполнению контрольных работ по теме “Решение задач в
среде Mathcad”
Часть 3/ Т.А.Трохова, Т.Л. Романькова, И.В. Стрижак . - 2005. - 15 стр.
.
Грудецкий Г.А., Мурашко И.А. Практическое пособие по теме "Графические
средства пакета MathCad"
для студентов всех специальностей дневного и заочного отделений. - Гомель: ГТУ,
2001. (м/у 2564).
Приложения
Приложение А. Программный код для вычисления
заданных параметров
unit Unit1;, Messages, SysUtils,
Variants, Classes, Graphics, Controls, Forms,, Grids, StdCtrls, Math;=
class(TForm): TStringGrid;: TButton;: TEdit;: TLabel;: TEdit;: TLabel;: TEdit;:
TLabel;: TButton;: TLabel;: TLabel;: TLabel;: TEdit;: TEdit;: TEdit;Button1Click(Sender:
TObject);Button2Click(Sender: TObject);
{ Private declarations }
{ Public declarations }, Dc:
array[1..25] of Real;: integer;;= 5;= 0.03;= 0.1;= 1.54;= 2.7;= 0.8;= 0.04;=
0.1;: TForm1;
{$R
*.dfm}TForm1.Button1Click(Sender: TObject);: integer;, dPz, wk, Qsht: Real;,
Dop, Pv, hk: Real;:string;:= StrToInt(Edit1.Text);:= StrToFloat(Edit2.Text);:=
StrToFloat(Edit3.Text);:= StrToFloat(Edit4.Text);:= StrToFloat(Edit5.Text);:=
StrToFloat(Edit6.Text);:= Dzp / 2;.RowCount := n + 1;.Cells[0,0] := '№';.Cells[1,0]
:= 'Pz, Н';.Cells[2,0]
:= 'Dц,
м';i
:= 1 to n do[i] := Pzn + (i - 1) * dPz;:= (Pz[i] * Sin(Pi/2/2) * Power(Dop,
1.45) * Kzap) / (nk * fkp * Power(Dzp, 1.25));:= wk * nk * Ktr * (1 + ((3 * ak)
/ hk) * fk) * (l1 / l2);[i] := Sqrt(Qsht / Pv);.Cells[0, i] :=
IntToStr(i);.Cells[1, i] := FloatToStr(Pz[i]);(Dc[i]:4:5, outstr);.Cells[2, i]
:= outstr;;;TForm1.Button2Click(Sender: TObject);
begin('Курсовая работа по информатике' + #13 +
'Выполнила: Малкова С.А.');;.
Рисунок 7 - окно проекта с данными.
Рисунок 8 - окно проекта с данными.
Рисунок 9 - окно проекта с данными.
Рисунок 10 - окно проекта с данными.
Приложение Б
Рисунок 11
Рисунок 12
Рисунок 13
Рисунок 14
Рисунок 15