Расчет двухступенчатого рядного механизма при габаритных ограничениях и минимизации массы
Кинематический и габаритный расчет ступенчатых рядных механизмов. Интерфейс программы расчета двухступенчатого рядного механизма при габаритных ограничениях и минимизации массы. Код программы, описание ее переменных и библиотеки функций, констант SV.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 25.08.2012 |
Размер файла | 3,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Курсовой проект
Расчет двухступенчатого рядного механизма при габаритных ограничениях и минимизации массы
Содержание
Введение
1. Основные соотношения для кинематического и габаритного расчетов ступенчатых рядных механизмов
2. Интерфейс программы расчета двухступенчатого рядного механизма при габаритных ограничениях и минимизации массы
3. Описание переменных использованных в программе
4. Код программы
5. Описание библиотеки функций и констант SV
Список литературы
Введение
Развитие в настоящее время мехатронных систем (МС), одним из основных элементов которых являются зубчатые механизмы, предполагает использование средств вычислительной техники с целью повышения качества и снижения трудоемкости проектирования механической части МС.
Применение средств автоматизации проектных работ позволяет получать оптимальные технические решения, что, как известно, является неотъемлемой частью ускорения научно-технического прогресса. При этом сроки выполнения проектных работ могут быть существенно сокращены.
При проектировании ступенчатых зубчатых механизмов, входящих в состав различных редукторов приводов исполнительных устройств МС, предлагает использовать оптимизационные алгоритмы при различном числе ступеней для определенного критерия эффективности: минимизации размеров, массы, приведенного момента инерции, угловой погрешности, максимизация КПД при заданных габаритных ограничениях.
Планетарные зубчатые механизмы синтезируются исходя из заданных габаритных ограничениях при выполнении условий соосности, соседства и сборки. Волновые зубчатые механизмы проектируются так, чтобы внутри гибкого колеса можно было разместить двигатель и другие устройства заданных габаритов. При расчетах планетарных и волновых механизмов предлагаемые алгоритмы программ обеспечивают расчет возможных вариантов решения задачи, оставляя окончательный выбор за проектантом. При этом предполагается введение дополнительных критериев эффективности для обеспечения выбора среди сформированной совокупности альтернатив.
Речь идет о разработке не отдельных компонентов, а мехатронной системы в целом, что однозначно предполагает использования системного подхода. При этом принятие проектных решений должно осуществляться на основе анализа разнообразной информации: от схемных решений и параметров аналогов МС до результатов математического моделирования функционирования МС на ЭВМ. Важным для проектанта оказывается не только знание существующего математического аппарата и компьютерной техники, но и умение принимать проектные решения при недостатке информации.
двухступенчатый рядный механизм габаритный программа
1. Основные соотношения для кинематического и габаритного расчетов ступенчатых рядных механизмов
Проектировочный расчет кинематических параметров и габаритных размеров ступенчатого зубчатого механизма состоит в определении для каждой ступени передаточных чисел, числа зубьев и размеров шестерен и колес, межосевых расстояний, а также габаритов всего механизма. Проектировочный расчет основан на ряде кинематических, геометрических и иных соотношений.
Оптимальный диапазон изменения передаточных чисел для цилиндрической прямозубой передачи:
(1)
где - числа зубьев шестерни и колеса в ступени j.
Общее передаточное отношение редуктора, включающего k ступеней:
. (2)
Условие рационального распределения передаточных чисел по отдельным ступеням редуктора при главенствующих критериях минимума его габаритов и массы:
(3)
если главные критерии -- минимальная угловая погрешность (мертвый ход) и максимальный КПД редуктора, то
(4)
Рациональный диапазон применяемых чисел зубьев шестерен и колес для цилиндрических прямозубых передач внешнего зацепления:
(5)
Шестерни с числом зубьев могут быть нарезаны без смещения исходного контура (инструмента), если числа зубьев равны 14-20, то обязательно положительное смещение.
Контактная выносливость и износостойкость зубьев увеличивается, если у чисел зубьев сопряженных колес отсутствуют общие множители. Это условие можно записать следующим образом:
(6)
где - целые числа, причем .
Выполнение условия (6) особенно существенно для высокоскоростных передач, имеющих окружные скорости колес выше 10 м/с.
Габаритные условия для двух -- и трехступенчатых определяется схемой расположения отдельных передач (рис.1). При заданных предельных размерах для двухступенчатого редуктора, выполненного по схеме «уступом» (рис.1, а):
; , (7)
; , (8)
; , (9)
; , (10)
для двухступенчатого соосного редуктора (рис.1, б):
; , (11)
; ; (12)
Кроме того, сохраняются условия (7), (8) и (10).
В выражениях (7)...(12) - габаритные размеры редуктора; - диаметр окружности вершин колеса i=2, или шестерни, i=1 ступени j:
; (13)
, (14)
- диаметр делительной окружности; - межосевое расстояние ступени j; - модуль этой ступени; - коэффициент высоты головки исходного контура; - коэффициент смещения исходного контура для шестерни и колеса передачи, в зависимости от суммарного коэффициента смещения:
; ;
, ;
- угол профиля исходного контура; - угол наклона линии зуба; - угол зацепления в торцовом сечении зуба; - делительное межосевое расстояние передачи;
(15)
ее межосевое расстояние; - коэффициент воспринимаемого смещения; - коэффициент уравнительного смещения.
Для прямозубых цилиндрических передач , изготовляемых без смещения :
, (16)
. (17)
В соосности конструкции (рис.1, б) необходимо обеспечить равенство межосевых расстояний и . Для зубчатых передач, выполненных без смещения (или равносмещенных, , ), требование соосности приводит к соотношению:
; . (18)
Условие (18) существенно ограничивает диапазон возможных сочетаний чисел зубьев, в особенности при . Применение в одной передаче колес, нарезаемых со смещением с коэффициентом суммарного смещения , значительно расширяет указанный диапазон сочетаний , a условие соосности с учетом (15) примет вид , откуда
; , (19)
- допускаемое значение коэффициента воспринимаемого смещения. Полученная из (19) величина y позволяет найти необходимые коэффициенты смещений для шестерни и колеса и уточнить их диаметральные размеры по формуле (13).
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Рис 1, а
Рис 1, б
2. Интерфейс программы расчета двухступенчатого рядного механизма при габаритных ограничениях и минимизации мертвого хода
Рис. 2 Главная форма
3. Описание переменных использованных в программе
Идентификатор |
Обозначение величины |
Единица |
Название величины |
|
K1MIN |
z11min |
- |
Минимальное число зубьев шестерни для 1-й ступени |
|
K1MAX |
z11max |
- |
То же, максимальное |
|
L1MIN |
z21min |
- |
Минимальное число зубьев колеса для 1-й ступени |
|
L1MAX |
z21max |
- |
То же, максимальное |
|
K2MIN |
z12min |
-- |
Минимальное число зубьев шестерни для 2-й ступени |
|
K2MAX |
z12max |
- |
То же, максимальное |
|
L2MIN |
z22min |
- |
Минимальное число зубьев колеса для 2-й ступени |
|
SM1 |
m1 |
мм |
Модуль 1-й ступени |
|
SM2 |
m2 |
- |
Модуль 2-й ступени |
|
B1 |
b1 |
мм |
Ширина шестерни и зубчатого колеса 1-й ступени |
|
B2 |
b2 |
- |
То же,для 2-й ступени |
|
LTR |
LTR |
- |
Условный параметр |
|
DU |
[? i] |
% |
Допускаемая погрешность реализации передаточного отношения |
|
K1 |
z11 |
-- |
Число зубьев шестерни и колеса 1-й ступени |
|
K2 |
z12 |
- |
То же, для 2-й ступени |
|
L2 |
z22 |
- |
То же, для 2-й ступени |
|
U1 |
u1 |
- |
Передаточное число для 1-й ступени |
|
U2 |
u2 |
- |
То же, для 2-й ступени |
|
U |
iB |
- |
Передаточное отношение механизма |
|
DK1 |
da11 |
мм |
Диаметр окружности вершин шестерни 1й ступени |
|
DL1 |
da21 |
- |
То же, для колеса 1-й ступени |
|
DK2 |
da12 |
- |
То же, для шестерни 2-й ступени |
|
DL2 |
da22 |
- |
То же, для колеса 2-й ступени |
|
AW1 |
aw1 |
- |
Межосевое расстояние для 1-й ступени |
|
AW2 |
aw2 |
- |
То же, для 2-й ступени |
|
A1 |
A1 |
- |
Минимальная масса зубчатых колес редуктора(для ZTMM34) |
|
A2 |
A2 |
- |
||
A3 |
A3 |
- |
||
RM |
Mp min |
кг |
Габаритные размеры редуктора |
4. Код программы
unit kur;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, jpeg, ExtCtrls, sv;
type
TANSWER = record
K1:string;
L1:string;
K2:string;
L2:string;
U1:string;
U2:string;
U0:string;
DUR:string;
DK1:string;
DL1:string;
DK2:string;
DL2:string;
AW1:string;
AW2:string;
A1:string;
A2:string;
A3:string;
end;
TZTMM33 = class(TForm)
GroupBox1: TGroupBox;
Count: TButton;
Exit: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
ProgressBar1: TProgressBar;
Edit11: TEdit;
Edit12: TEdit;
Edit13: TEdit;
Edit14: TEdit;
Edit15: TEdit;
Edit16: TEdit;
Edit17: TEdit;
Memo1: TMemo;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
procedure CountClick(Sender: TObject);
procedure ExitClick(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
ZTMM33: TZTMM33;
procedure ShowZTMM33;
implementation
{$R *.dfm}
procedure TZTMM33.CountClick(Sender: TObject);
var DUT,UT,DU,SM1,SM2,AG1,AG2,AG3:real;
K1MIN,K1MAX,L1MIN,L1MAX,K2MIN,K2MAX,L2MIN,L2MAX,LTR,LTM:integer;
i,j,k,m,z:integer;
Fn:real;
ANSWER:TANSWER;
p1,p2: TSV3DATA;
param: TSV5DATA;
begin
UT:=strtofloat(Edit1.Text);
DU:=strtofloat(Edit17.Text);
SM1:=strtofloat(Edit2.Text);
SM2:=strtofloat(Edit3.Text);
AG1:=strtofloat(Edit4.Text);
AG2:=strtofloat(Edit5.Text);
AG3:=strtofloat(Edit6.Text);
K1MIN:=strtoint(Edit7.Text);
L1MIN:=strtoint(Edit8.Text);
K2MIN:=strtoint(Edit9.Text);
L2MIN:=strtoint(Edit10.Text);
K1MAX:=strtoint(Edit11.Text);
L1MAX:=strtoint(Edit12.Text);
K2MAX:=strtoint(Edit13.Text);
L2MAX:=strtoint(Edit14.Text);
LTR:=strtoint(Edit15.Text);
LTM:=strtoint(Edit16.Text);
memo1.Lines.Clear;
Fn:=SVM(LTM,AG1,AG2,AG3);
for i:=K1MIN to K1MAX do
BEGIN
ProgressBar1.Position:=Round((i-K1MIN)*100/(K1MAX-K1MIN));
for j:=L1MIN to L1MAX do
BEGIN
p1:=SV3(i,j,LTR,SM1,AG3);
if P1.U>UT+UT*DU/100 then break;
if P1.IP=0 then
if 0.5*P1.DK<AG1 then
if P1.AW+0.5*P1.DL<AG2 then
for k:=K2MIN to K2MAX do
for m:=L2MIN to L2MAX do
BEGIN
P2:=SV3(k,m,LTR,SM2,AG3);
if P1.U*P2.U>UT+UT*DU/100 then break;
IF P2.IP=0 THEN
IF P1.U>P2.U THEN
IF P1.AW+P2.AW+0.5*P2.DL<AG2 THEN
Begin
DUT:=abs((UT-P1.U*P2.U)*100/UT);
if DU>DUT then
Begin
Param:=SV5(P1.DK,P1.DL,P2.DK,P2.DL,P1.AW,P2.AW);
if Fn>SVM(LTM,Param.A1,Param.A2,Param.A3) then
begin
Fn:=SVM(LTM,Param.A1,Param.A2,Param.A3);
with ANSWER do
begin
K1:=' K1='+inttostr(i);
L1:=' L1='+inttostr(j);
K2:=' K2='+inttostr(k);
L2:=' L2='+inttostr(m);
U1:=' U1='+floattostrF(P1.U,ffFixed,7,3);
U2:=' U2='+floattostrF(P2.U,ffFixed,7,3);
U0:=' U='+floattostrF(P1.U*P2.U,ffFixed,7,3);
DUR:=' dU='+floattostrF(DUT,ffFixed,7,3)+'%';
DK1:=' DK1='+floattostrF(P1.DK,ffFixed,7,3)+' мм';
DL1:=' DL1='+floattostrF(P1.DL,ffFixed,7,3)+' мм';
DK2:=' DK2='+floattostrF(P2.DK,ffFixed,7,3)+' мм';
DL2:=' DL2='+floattostrF(P2.DL,ffFixed,7,3)+' мм';
AW1:=' AW1='+floattostrF(P1.AW,ffFixed,7,3)+' мм';
AW2:=' AW2='+floattostrF(P2.AW,ffFixed,7,3)+' мм';
A1:=' A1='+floattostrF(Param.A1,ffFixed,7,3)+' мм';
A2:=' A2='+floattostrF(Param.A2,ffFixed,7,3)+' мм';
A3:=' A3='+floattostrF(Param.A3,ffFixed,7,3)+' мм';
end;
end;
End;
End;
END;
END;
END;
with ANSWER do
begin
memo1.Lines.Add(K1);
memo1.Lines.Add(L1);
memo1.Lines.Add(K2);
memo1.Lines.Add(L2);
memo1.Lines.Add(U1);
memo1.Lines.Add(U2);
memo1.Lines.Add(U0);
memo1.Lines.Add(DUR);
memo1.Lines.Add(DK1);
memo1.Lines.Add(DL1);
memo1.Lines.Add(DK2);
memo1.Lines.Add(DL2);
memo1.Lines.Add(AW1);
memo1.Lines.Add(AW2);
memo1.Lines.Add(A1);
memo1.Lines.Add(A2);
memo1.Lines.Add(A3);
end;
end;
procedure ShowZTMM33;
begin
TZTMM33.Create(Application).ShowModal;
end;
procedure TZTMM33.ExitClick(Sender: TObject);
begin
close;
end;
procedure TZTMM33.FormShow(Sender: TObject);
begin
memo1.Clear;
end;
end.
5. Описание библиотеки функций и констант SV
unit sv;
interface
Uses Math;
Type
TSV3DATA = record
IP:byte;
U:real;
DK:real;
DL:real;
AW:real;
end;
TSV5DATA = record
A1:Real;
A2:Real;
A3:Real;
end;
TSV6DATA = record
Y:Real;
IP:Byte;
end;
TSV15DATA= record
D1:real;
D2:real;
AW:real;
DR:real;
IP:byte;
end;
TSVZ1DATA= record
ALF:real;
HAZ:real;
CZ:real;
end;
TSVOL2DATA=record
NP:String[3];
D0:byte;
d:byte;
B:byte;
WPD:integer;
end;
TSVOL5DATA=record
Xf:real;
Xc:real;
dF:real;
daF:real;
dfF:real;
dC:real;
daC:real;
dfC:real;
end;
TSVOL6DATA=record
HZF:real;
HF:real;
BWF:real;
BWC:real;
BF:real;
BK:real;
HC:real;
end;
var NPM:array [1..11] of string[3] =
('806','808','809','811','812','815','818','822','824','830','836');
D0M:array [1..11] of byte =(42,52,62,72,80,100,120,150,160,200,240);
dM:array [1..11] of byte =(30,40,45,55,60, 75, 90,110,120,150,180);
BM:array [1..11] of integer =(7,8,9,11,13,15,18,24,24,30,35);
WPDM:array [1..11] of integer =
(4000,4000,3500,3500,3500,3000,3000,2500,2500,1600,1600);
function SV1(K,N:integer):boolean;
function SV2(K,L:integer):boolean;
function SV3(K,L,LTR:integer; SM,AG:real): TSV3DATA;
function SV5(DK1,DL1,DK2,DL2,AW1,AW2:real):TSV5DATA;
function SV6(YD,AW1,AW2,SM1:real):TSV6Data;
function SV12(DK1,DL1,DK2,DL2,DK3,DL3,AW1,AW2,AW3:real):TSV5DATA;
function SV15(KPZ,K1,K2,NW,LTR1,LTR2:integer; SM,AG:real):TSV15DATA;
function SV16(NW,KA,KB:integer):boolean;
function SV18(SM1,SM2:real; KA,KG,KF:integer):integer;
function SV20(B1,B2,DK1,DL1,DK2,DL2:real):real;
function SV21(B1,B2,DK1,DL1,DK2,DL2,U1,U2:real):real;
function SV22(AW1,AW2,U2,DL1,DL2:real; LPG: byte):real;
function ZM(B,D:real):real;
function ZJ(B,D:real):real;
function FPG(AW,D:real;LPG: byte):real;
function SVM(LTM:byte; AG1,AG2,AG3:real):real;
function SVZ1(SM:real; LH:byte): TSVZ1DATA;
function SVOL2(Dpr:real):TSVOL2DATA;
function SVOL3(D0:byte; SM,HAZ,CZ:real):integer;
function SVOL4(PR:byte; KF,KC:integer):real;
function SVOL5(ZF,ZC: integer; SM,HAZ,CZ:real):TSVOL5DATA;
function SVOL6(KF:integer; dF,dC,DP,SM,Xf,HAZ,CZ:real):TSVOL6DATA;
implementation
function SV1(K,N:integer):boolean;
begin
SV1:=false;
if K mod N = 0 then SV1:=true;
end;
function SV2(K,L:integer):boolean;
var i:integer;
begin
SV2:=false;
for i:=2 to K do if (SV1(K,i)=true) and (SV1(L,i)=true) then SV2:=true;
end;
function SV3(K,L,LTR:integer; SM,AG:real): TSV3DATA;
begin
SV3.IP:=1;
SV3.U:=L/K;
if (result.U>1) and (result.U<6) then begin
SV3.DK:=SM*(K+2);
if result.DK-AG<=0 then begin
SV3.DL:=SM*(L+2);
if result.DL-AG<=0 then
begin
if LTR=0 then
begin
SV3.AW:=0.5*SM*(K+L);
SV3.IP:=0;
end else if SV2(K,L)=false then
begin
SV3.AW:=0.5*SM*(K+L);
SV3.IP:=0;
end;
end;
end;
end;
end;
function SV5(DK1,DL1,DK2,DL2,AW1,AW2:real):TSV5DATA;
begin
SV5.A1:=0.5*DK1;
SV5.A2:=max((AW1+0.5*DL1),(AW1+AW2+0.5*DL2));
SV5.A3:=max(max(DK1,DL1),max(DK2,DL2));
end;
function SV6(YD,AW1,AW2,SM1:real):TSV6Data;
begin
SV6.Y:=(AW2-AW1)/SM1;
if result{SV6}.Y<0 then SV6.IP:=4;
if result{SV6}.Y=0 then SV6.IP:=2;
If result{SV6}.Y>0 then if result{SV6}.Y-YD>0 then SV6.IP:=4 else SV6.IP:=2;
end;
function SV12(DK1,DL1,DK2,DL2,DK3,DL3,AW1,AW2,AW3:real):TSV5DATA;
begin
SV12.A1:=0.5*DK1;
SV12.A2:=max(max((AW1+0.5*DL1),(AW1+AW2+0.5*DL2)),(AW1+AW2+AW3+0.5*DL3));
SV12.A3:=max(max(max(DK1,DL1),max(DK2,DL2)),max(DK3,DL3));
end;
function SV15(KPZ,K1,K2,NW,LTR1,LTR2:integer; SM,AG:real):TSV15DATA;
label M2,M3,M4,M5,M6,M7,M8,M9,M10,M15,M17,M18,M20,M21,M25,M30,M40,Mend;
var U:real;
begin
U:=k2/k1;
case KPZ of
1: goto M4;
2: goto M2;
3: goto M3;
end;
M2: if U<1 then goto M40 else goto M4;
M3: if ((K1*K1-34)/(2*K1-34))>K2 then goto M40 else goto M5;
M4: if U>6 then goto M25 else goto M6;
M5: if U>8 then goto M25 else goto M6;
M6: if LTR1=1 then goto M7 else goto M10;
M7: if KPZ=3 then goto M9 else goto M8;
M8: if SV1(K1,NW)=true then goto M25 else goto M10;
M9: if SV1(K2,NW)=true then goto M40 else goto M10;
M10: if LTR2=1 then goto M15 else goto M17;
M15: if SV2(K1,K2)=true then goto M40 else goto M17;
M17: SV15.D1:=SM*(K1+2*SVZ1(SM,0).HAZ);
if KPZ=3 then goto M20 else goto M18;
M18: SV15.D2:=SM*(K2+2*SVZ1(SM,0).HAZ);
SV15.AW:=0.5*SM*(K1+K2);
SV15.DR:=2*result{SV15}.AW+result{SV15}.D2;
goto M21;
M20: SV15.D2:=SM*(K2+2*(SVZ1(SM,0).HAZ+SVZ1(SM,0).CZ));
SV15.AW:=0.5*SM*(K2-K1);
SV15.DR:=result{SV15}.D2;
M21: if result{SV15}.DR>AG then goto M25 else goto M30;
M25: SV15.IP:=1;
goto Mend;
M30: SV15.IP:=2;
goto Mend;
M40: SV15.IP:=3;
Mend: end;
function SV16(NW,KA,KB:integer):boolean;
begin
SV16:=false;
SV16:=SV1(KA+KB,NW);
end;
function SV18(SM1,SM2:real; KA,KG,KF:integer):integer;
begin
SV18:=Ceil((SM1*(KA+KG)+SM2*KF)/SM2);
end;
function SV20(B1,B2,DK1,DL1,DK2,DL2:real):real;
begin
SV20:=ZM(B1,DK1)+ZM(B1,DL1)+ZM(B2,DK2)+ZM(B2,DL2);
end;
function SV21(B1,B2,DK1,DL1,DK2,DL2,U1,U2:real):real;
begin
SV21:=ZJ(B1,DK1)+(ZJ(B1,DL1)+ZJ(B2,DK2))/(U1*U1)+ZJ(B2,DL2)/((U1*U1)*(U2*U2));
end;
function SV22(AW1,AW2,U2,DL1,DL2:real; LPG: byte):real;
begin
SV22:=FPG(AW1,DL1,LPG)/U2+FPG(AW2,DL2,LPG);
end;
function ZM(B,D:real):real;
var cm:real;
begin
if D<20 then cm:=6.8;
if (D>=20) and (D<25) then if B<2 then cm:=6.8 else cm:=4.6;
if D>=25 then if B<2 then cm:=5.4 else cm:=3.2;
ZM:=0.000001*cm*B*D*D;
end;
function ZJ(B,D:real):real;
var cj:real;
begin
if D<20 then cj:=0.77;
if (D>=20) and (D<25) then if B<2 then cj:=0.77 else cj:=0.52;
if D>=25 then if B<2 then cj:=0.44 else cj:=0.2;
ZJ:=0.000001*cj*B*D*D*D*D;
end;
function FPG(AW,D:real;LPG: byte):real;
var Jn:byte;
begin
case LPG of
1: begin if AW<12 then Jn:=6;
if (AW>=12) and (AW<20) then Jn:=8;
if (AW>=20) and (AW<32) then Jn:=9;
if (AW>=32) and (AW<50) then Jn:=11;
if (AW>=50) and (AW<80) then Jn:=13; end;
2: begin if AW<12 then Jn:=9;
if (AW>=12) and (AW<20) then Jn:=11;
if (AW>=20) and (AW<32) then Jn:=13;
if (AW>=32) and (AW<50) then Jn:=16;
if (AW>=50) and (AW<80) then Jn:=19; end;
3: begin if AW<12 then Jn:=15;
if (AW>=12) and (AW<20) then Jn:=18;
if (AW>=20) and (AW<32) then Jn:=21;
if (AW>=32) and (AW<50) then Jn:=25;
if (AW>=50) and (AW<80) then Jn:=30; end;
4: begin if AW<12 then Jn:=22;
if (AW>=12) and (AW<20) then Jn:=27;
if (AW>=20) and (AW<32) then Jn:=33;
if (AW>=32) and (AW<50) then Jn:=39;
if (AW>=50) and (AW<80) then Jn:=46;
end;
end;
FPG:=6.88*Jn/D;
end;
function SVM(LTM:byte; AG1,AG2,AG3:real):real;
begin
case LTM of
1: SVM:=AG1;
2: SVM:=AG2;
3: SVM:=AG1+AG2;
4: SVM:=AG3;
5: SVM:=(AG1+AG2)*AG3;
end;
end;
function SVZ1(SM:real; LH:byte): TSVZ1DATA;
begin
SVZ1.ALF:=0.34966;
if LH<=0 then SVZ1.HAZ:=1 else SVZ1.HAZ:=1.1;
if SM<=0.5 then SVZ1.CZ:=0.5;
if (SM>0.5) and (SM<=1) then SVZ1.CZ:=0.35;
if SM>1 then SVZ1.CZ:=0.25;
end;
function SVOL2(Dpr:real):TSVOL2DATA;
var i:integer;
begin
for i:=1 to 11 do if Dpr<D0M[i] then break;
SVOL2.NP:=NPM[i];
SVOL2.D0:=D0M[i];
SVOL2.d:=dM[i];
SVOL2.B:=BM[i];
SVOL2.WPD:=WPDM[i];
end;
function SVOL3(D0:byte; SM,HAZ,CZ:real):integer;
begin
SVOL3:=Floor(D0/SM-5.88+1.96*(HAZ+CZ));
if result{SVOL3} mod 2 <> 0 then SVOL3:=result{SVOL3}-1;
end;
function SVOL4(PR:byte; KF,KC:integer):real;
begin
case PR of
1: SVOL4:=0.5*KC;
2: SVOL4:=0.5*KF;
end;
if (result{SVOL4}<70) then SVOL4:=-1;
if (result{SVOL4}>300) then SVOL4:=-3;
end;
function SVOL5(ZF,ZC: integer; SM,HAZ,CZ:real):TSVOL5DATA;
var Kw,Kf:real;
begin
Kw:=1.1;
Kf:=0.4;
SVOL5.Xf:=3+0.01*ZF;
SVOL5.Xc:=result{SVOL5}.Xf-1+Kw*(1+0.00005*Kw*ZF);
SVOL5.dF:=SM*ZF;
SVOL5.daF:=result{SVOL5}.dF+2*(result{SVOL5}.Xf+Kf)*SM;
SVOL5.dfF:=result{SVOL5}.dF+2*(result{SVOL5}.Xf-HAZ-CZ)*SM;
SVOL5.dC:=SM*ZC;
SVOL5.daC:=result{SVOL5}.dC+2*(result{SVOL5}.Xc-HAZ)*SM;
SVOL5.dfC:=result{SVOL5}.daC+2*(HAZ+CZ+Kf)*SM;
end;
function SVOL6(KF:integer; dF,dC,DP,SM,Xf,HAZ,CZ:real):TSVOL6DATA;
begin
SVOL6.HZF:=SM*(0.5*KF+Xf-(HAZ+CZ))-0.5*DP;
SVOL6.HF:=0.7*result{SVOL6}.HZF;
SVOL6.BWF:=0.2*dF;
SVOL6.BWC:=result{SVOL6}.BWF+3;
SVOL6.BF:=0.06*dF;
SVOL6.BK:=dF;
SVOL6.HC:=0.18*dC;
end;
end.
Список литературы
1. Автоматизированное проектирование зубчатых передач мехатронных систем: Методические указания по курсовому проектированию / Сост.: А.З. Копылов, В.Ю, Лавров; Балт. гос. техн. ун-т. Спб., 2003. 39 с.
2. Копылов А.З. Проектирование мехатронных систем: Учеб. пособие / Балт. гос. техн. ун-т. Спб., 2002. 44.
3. Неклюдов С.Ю. Алгоритмизация и программирование вычислительных процессов в инегрированной среде BORLAND PASCAL -- Спб.: Энергоатом-издат, Санкт-Петербургское отделение, 2000 -- 319 с.ил.
4. Применение Delphi при проектировании мехатронных систем: Методические указания по выполнению лабораторных работ и курсового проекта / Сост.: А.З.Копылов; Балт. гос. техн. ун-т. Спб., 2003. 26 с.
Размещено на Allbest.ru
Подобные документы
Разработка программы, моделирующей работу сложного механизма, состоящего из двух кривошипов, шатунов и ползуна, в среде Delphi 7. Описание алгоритма работы программы и расчет ускорения точек механизма. Обзор уравнения сложности и руководства пользователя.
курсовая работа [143,3 K], добавлен 07.08.2013Создание приложения, исполняющего трансляцию программы из языка Паскаль в язык Си: разработка алгоритма реализации задачи, описание необходимых констант, переменных, функций и операторов, представление листинга программы и распечатка результатов.
курсовая работа [305,9 K], добавлен 03.07.2011Технико-математическое описание и назначение программы "Расчет фундаментов": предоставление краткого описания формул вычисления и инженерного калькулятора, вывод информации на печать, простой интерфейс. Тестирование вычислительной системы программы.
дипломная работа [4,4 M], добавлен 25.09.2014Анализ, математическая постановка задачи. Описание алгоритма работы основной программы. Детализация отдельных участков программы. Графический интерфейс программы "15". Описания используемых типов, глобальных переменных, процедур, функций. Процесс отладки.
курсовая работа [48,8 K], добавлен 14.02.2009Разработка программы-приложения для создания композиции кривых второго порядка в полярных координатах. Описание используемых констант, переменных, компонентов, процедур и функций. Источники входной и выходной информации. Требования к программе и системе.
реферат [125,2 K], добавлен 28.05.2014Разработка и внедрение механизма расчета заработной платы с использованием ключевых показателей эффективности (KPI), механизмов анализа эффективности подразделения и организации в целом. Расчет капитальных затрат на создание и внедрение программы.
курсовая работа [418,0 K], добавлен 19.09.2014Описание предметной области. Характеристика программных средств. Описание компонентов, интерфейс программы. Описание процедур и функций. Вызов и загрузка программы. Испытание методом белого и черного ящика на ошибки кода программного приложения.
курсовая работа [2,2 M], добавлен 26.04.2015Анализ и описание алгоритма. Основные характеристики выбранного компьютера, программных сред (операционная система и среда программирования). Описание компонентов и интерфейса программы, а также модулей, процедур и функций. Вызов и загрузка программы.
курсовая работа [1,3 M], добавлен 26.04.2015Существующие альтернативы программы. Описание формул для выкроек, используемых в разработке. Описание разрабатываемой программы, а также структура ее интерфейса. Детальное описание возможностей и спецификация, функциональные особенности программы.
курсовая работа [427,4 K], добавлен 10.10.2015Сущность понятия "код блюда". Алгоритмы обучения и использования программы. Логика работы программы. Общий интерфейс программы. Последовательность обучения программе Lota+. Интерфейс программы в момент выбора параметров и получения общего результата.
курсовая работа [563,6 K], добавлен 01.12.2009