Расчет двухступенчатого рядного механизма при габаритных ограничениях и минимизации массы
Курсовой
проект
Расчет
двухступенчатого рядного механизма при габаритных ограничениях и минимизации
массы
Содержание
Введение
. Основные
соотношения для кинематического и габаритного расчетов ступенчатых рядных
механизмов
. Интерфейс
программы расчета двухступенчатого рядного механизма при габаритных
ограничениях и минимизации массы
. Описание
переменных использованных в программе
. Код
программы
. Описание
библиотеки функций и констант 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).
Рис 1, а
Рис 1, б
2. Интерфейс программы расчета двухступенчатого
рядного механизма при габаритных ограничениях и минимизации мертвого хода
Рис. 2 Главная форма
. Описание переменных использованных в программе
Обозначение
величины
|
Единица
|
Название
величины
|
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
|
-
|
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. Код
программы
kur;
, Messages, SysUtils, Variants,
Classes, Graphics, Controls, Forms,, ComCtrls, StdCtrls, jpeg, ExtCtrls, sv;
=
record:string;:string;:string;:string;:string;:string;:string;:string;:string;:string;:string;:string;:string;:string;:string;:string;:string;;
= class(TForm): TGroupBox;:
TButton;: TButton;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TLabel;:
TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TEdit;: TEdit;: TEdit;: TEdit;:
TProgressBar;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TMemo;:
TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;CountClick(Sender:
TObject);ExitClick(Sender: TObject);FormShow(Sender: TObject);
{ Private declarations }
{ Public declarations };
: TZTMM33;ShowZTMM33;
{$R *.dfm}
TZTMM33.CountClick(Sender:
TObject);DUT,UT,DU,SM1,SM2,AG1,AG2,AG3:real;MIN,K1MAX,L1MIN,L1MAX,K2MIN,K2MAX,L2MIN,L2MAX,LTR,LTM:integer;,j,k,m,z:integer;:real;:TANSWER;,p2:
TSV3DATA;: TSV5DATA;
:=strtofloat(Edit1.Text);:=strtofloat(Edit17.Text);:=strtofloat(Edit2.Text);:=strtofloat(Edit3.Text);:=strtofloat(Edit4.Text);:=strtofloat(Edit5.Text);:=strtofloat(Edit6.Text);MIN:=strtoint(Edit7.Text);MIN:=strtoint(Edit8.Text);MIN:=strtoint(Edit9.Text);MIN:=strtoint(Edit10.Text);MAX:=strtoint(Edit11.Text);MAX:=strtoint(Edit12.Text);MAX:=strtoint(Edit13.Text);MAX:=strtoint(Edit14.Text);:=strtoint(Edit15.Text);:=strtoint(Edit16.Text);
.Lines.Clear;:=SVM(LTM,AG1,AG2,AG3);i:=K1MIN
to K1MAX do.Position:=Round((i-K1MIN)*100/(K1MAX-K1MIN));j:=L1MIN to L1MAX
do:=SV3(i,j,LTR,SM1,AG3);P1.U>UT+UT*DU/100 then break;P1.IP=0
then0.5*P1.DK<AG1 thenP1.AW+0.5*P1.DL<AG2 thenk:=K2MIN to K2MAX
dom:=L2MIN to L2MAX do:=SV3(k,m,LTR,SM2,AG3);P1.U*P2.U>UT+UT*DU/100 then
break;P2.IP=0 THENP1.U>P2.U THENP1.AW+P2.AW+0.5*P2.DL<AG2
THEN:=abs((UT-P1.U*P2.U)*100/UT);DU>DUT
then:=SV5(P1.DK,P1.DL,P2.DK,P2.DL,P1.AW,P2.AW);Fn>SVM(LTM,Param.A1,Param.A2,Param.A3)
then:=SVM(LTM,Param.A1,Param.A2,Param.A3);ANSWER do:=' K1='+inttostr(i);:='
L1='+inttostr(j);:=' K2='+inttostr(k);:=' L2='+inttostr(m);:='
U1='+floattostrF(P1.U,ffFixed,7,3);:=' U2='+floattostrF(P2.U,ffFixed,7,3);:='
U='+floattostrF(P1.U*P2.U,ffFixed,7,3);:='
dU='+floattostrF(DUT,ffFixed,7,3)+'%';:='
DK1='+floattostrF(P1.DK,ffFixed,7,3)+' мм';:='
DL1='+floattostrF(P1.DL,ffFixed,7,3)+' мм';:='
DK2='+floattostrF(P2.DK,ffFixed,7,3)+' мм';:='
DL2='+floattostrF(P2.DL,ffFixed,7,3)+' мм';:=' AW1='+floattostrF(P1.AW,ffFixed,7,3)+'
мм';:=' AW2='+floattostrF(P2.AW,ffFixed,7,3)+' мм';:='
A1='+floattostrF(Param.A1,ffFixed,7,3)+' мм';:='
A2='+floattostrF(Param.A2,ffFixed,7,3)+' мм';:='
A3='+floattostrF(Param.A3,ffFixed,7,3)+' мм';;;;;;;;
ANSWER do.Lines.Add(K1);.Lines.Add(L1);.Lines.Add(K2);.Lines.Add(L2);.Lines.Add(U1);.Lines.Add(U2);.Lines.Add(U0);.Lines.Add(DUR);.Lines.Add(DK1);.Lines.Add(DL1);.Lines.Add(DK2);.Lines.Add(DL2);.Lines.Add(AW1);.Lines.Add(AW2);.Lines.Add(A1);.Lines.Add(A2);.Lines.Add(A3);;;
ShowZTMM33;.Create(Application).ShowModal;;
TZTMM33.ExitClick(Sender:
TObject);;;
TZTMM33.FormShow(Sender:
TObject);.Clear;;
.
5. Описание библиотеки функций и констант SV
unit sv;Math;DATA =
record:byte;:real;:real;:real;:real;;DATA = record:Real;:Real;:Real;;DATA =
record:Real;:Byte;;DATA= record:real;:real;:real;:real;:byte;;DATA=
record:real;:real;:real;;DATA=record:String[3];:byte;:byte;:byte;:integer;;DATA=record:real;:real;:real;:real;:real;:real;:real;:real;;DATA=record:real;:real;:real;:real;:real;:real;:real;;NPM:array
[1..11] of string[3] =
('806','808','809','811','812','815','818','822','824','830','836');M:array
[1..11] of byte =(42,52,62,72,80,100,120,150,160,200,240);:array [1..11] of
byte =(30,40,45,55,60, 75, 90,110,120,150,180);:array [1..11] of integer
=(7,8,9,11,13,15,18,24,24,30,35);:array [1..11] of integer =
(4000,4000,3500,3500,3500,3000,3000,2500,2500,1600,1600);SV1(K,N:integer):boolean;SV2(K,L:integer):boolean;SV3(K,L,LTR:integer;
SM,AG:real): TSV3DATA;SV5(DK1,DL1,DK2,DL2,AW1,AW2:real):TSV5DATA;SV6(YD,AW1,AW2,SM1:real):TSV6Data;SV12(DK1,DL1,DK2,DL2,DK3,DL3,AW1,AW2,AW3:real):TSV5DATA;SV15(KPZ,K1,K2,NW,LTR1,LTR2:integer;
SM,AG:real):TSV15DATA;SV16(NW,KA,KB:integer):boolean;SV18(SM1,SM2:real;
KA,KG,KF:integer):integer;SV20(B1,B2,DK1,DL1,DK2,DL2:real):real;SV21(B1,B2,DK1,DL1,DK2,DL2,U1,U2:real):real;SV22(AW1,AW2,U2,DL1,DL2:real;
LPG: byte):real;ZM(B,D:real):real;ZJ(B,D:real):real;FPG(AW,D:real;LPG:
byte):real;SVM(LTM:byte; AG1,AG2,AG3:real):real;SVZ1(SM:real; LH:byte):
TSVZ1DATA;SVOL2(Dpr:real):TSVOL2DATA;SVOL3(D0:byte;
SM,HAZ,CZ:real):integer;SVOL4(PR:byte; KF,KC:integer):real;SVOL5(ZF,ZC:
integer; SM,HAZ,CZ:real):TSVOL5DATA;SVOL6(KF:integer;
dF,dC,DP,SM,Xf,HAZ,CZ:real):TSVOL6DATA;SV1(K,N:integer):boolean;:=false;K mod N
= 0 then SV1:=true;;SV2(K,L:integer):boolean;i:integer;:=false;i:=2 to K do if
(SV1(K,i)=true) and (SV1(L,i)=true) then SV2:=true;;SV3(K,L,LTR:integer;
SM,AG:real): TSV3DATA;.IP:=1;.U:=L/K;(result.U>1) and (result.U<6) then
begin.DK:=SM*(K+2);result.DK-AG<=0 then begin.DL:=SM*(L+2);result.DL-AG<=0
thenLTR=0 then.AW:=0.5*SM*(K+L);.IP:=0;else if SV2(K,L)=false
then.AW:=0.5*SM*(K+L);.IP:=0;;;;;;SV5(DK1,DL1,DK2,DL2,AW1,AW2:real):TSV5DATA;.A1:=0.5*DK1;.A2:=max((AW1+0.5*DL1),(AW1+AW2+0.5*DL2));.A3:=max(max(DK1,DL1),max(DK2,DL2));;SV6(YD,AW1,AW2,SM1:real):TSV6Data;.Y:=(AW2-AW1)/SM1;result{SV6}.Y<0
then SV6.IP:=4;result{SV6}.Y=0 then SV6.IP:=2;result{SV6}.Y>0 then if
result{SV6}.Y-YD>0 then SV6.IP:=4 else
SV6.IP:=2;;SV12(DK1,DL1,DK2,DL2,DK3,DL3,AW1,AW2,AW3:real):TSV5DATA;.A1:=0.5*DK1;.A2:=max(max((AW1+0.5*DL1),(AW1+AW2+0.5*DL2)),(AW1+AW2+AW3+0.5*DL3));.A3:=max(max(max(DK1,DL1),max(DK2,DL2)),max(DK3,DL3));;SV15(KPZ,K1,K2,NW,LTR1,LTR2:integer;
SM,AG:real):TSV15DATA;M2,M3,M4,M5,M6,M7,M8,M9,M10,M15,M17,M18,M20,M21,M25,M30,M40,Mend;U:real;:=k2/k1;KPZ
of
: goto M4;
: goto M2;
: goto M3;;: if U<1 then goto M40
else goto M4;: if ((K1*K1-34)/(2*K1-34))>K2 then goto M40 else goto M5;: if
U>6 then goto M25 else goto M6;: if U>8 then goto M25 else goto M6;: if
LTR1=1 then goto M7 else goto M10;: if KPZ=3 then goto M9 else goto M8;: if
SV1(K1,NW)=true then goto M25 else goto M10;: if SV1(K2,NW)=true then goto M40
else goto M10;: if LTR2=1 then goto M15 else goto M17;: if SV2(K1,K2)=true then
goto M40 else goto M17;: SV15.D1:=SM*(K1+2*SVZ1(SM,0).HAZ);KPZ=3 then goto M20
else goto M18;:
SV15.D2:=SM*(K2+2*SVZ1(SM,0).HAZ);.AW:=0.5*SM*(K1+K2);.DR:=2*result{SV15}.AW+result{SV15}.D2;M21;:
SV15.D2:=SM*(K2+2*(SVZ1(SM,0).HAZ+SVZ1(SM,0).CZ));.AW:=0.5*SM*(K2-K1);.DR:=result{SV15}.D2;:
if result{SV15}.DR>AG then goto M25 else goto M30;: SV15.IP:=1;Mend;:
SV15.IP:=2;Mend;: SV15.IP:=3;:
end;SV16(NW,KA,KB:integer):boolean;:=false;:=SV1(KA+KB,NW);;SV18(SM1,SM2:real;
KA,KG,KF:integer):integer;:=Ceil((SM1*(KA+KG)+SM2*KF)/SM2);;SV20(B1,B2,DK1,DL1,DK2,DL2:real):real;:=ZM(B1,DK1)+ZM(B1,DL1)+ZM(B2,DK2)+ZM(B2,DL2);;SV21(B1,B2,DK1,DL1,DK2,DL2,U1,U2:real):real;:=ZJ(B1,DK1)+(ZJ(B1,DL1)+ZJ(B2,DK2))/(U1*U1)+ZJ(B2,DL2)/((U1*U1)*(U2*U2));;SV22(AW1,AW2,U2,DL1,DL2:real;
LPG: byte):real;:=FPG(AW1,DL1,LPG)/U2+FPG(AW2,DL2,LPG);;ZM(B,D:real):real;cm:real;D<20
then cm:=6.8;(D>=20) and (D<25) then if B<2 then cm:=6.8 else
cm:=4.6;D>=25 then if B<2 then cm:=5.4 else
cm:=3.2;:=0.000001*cm*B*D*D;;ZJ(B,D:real):real;cj:real;D<20 then
cj:=0.77;(D>=20) and (D<25) then if B<2 then cj:=0.77 else
cj:=0.52;D>=25 then if B<2 then cj:=0.44 else
cj:=0.2;:=0.000001*cj*B*D*D*D*D;;FPG(AW,D:real;LPG: byte):real;Jn:byte;LPG of
: begin if AW<12 then
Jn:=9;(AW>=12) and (AW<20) then Jn:=11;(AW>=20) and (AW<32) then
Jn:=13;(AW>=32) and (AW<50) then Jn:=16;(AW>=50) and (AW<80) then
Jn:=19; end;
: begin if AW<12 then
Jn:=15;(AW>=12) and (AW<20) then Jn:=18;(AW>=20) and (AW<32) then
Jn:=21;(AW>=32) and (AW<50) then Jn:=25;(AW>=50) and (AW<80) then
Jn:=30; end;
: begin if AW<12 then
Jn:=22;(AW>=12) and (AW<20) then Jn:=27;(AW>=20) and (AW<32) then
Jn:=33;(AW>=32) and (AW<50) then Jn:=39;(AW>=50) and (AW<80) then
Jn:=46; ;;:=6.88*Jn/D;;SVM(LTM:byte; AG1,AG2,AG3:real):real;LTM of
: SVM:=AG1;
: SVM:=AG2;
: SVM:=AG1+AG2;
: SVM:=AG3;
: SVM:=(AG1+AG2)*AG3;;;SVZ1(SM:real;
LH:byte): TSVZ1DATA;.ALF:=0.34966;LH<=0 then SVZ1.HAZ:=1 else
SVZ1.HAZ:=1.1;SM<=0.5 then SVZ1.CZ:=0.5;(SM>0.5) and (SM<=1) then
SVZ1.CZ:=0.35;SM>1 then
SVZ1.CZ:=0.25;;SVOL2(Dpr:real):TSVOL2DATA;i:integer;i:=1 to 11 do if
Dpr<D0M[i] then
break;.NP:=NPM[i];.D0:=D0M[i];.d:=dM[i];.B:=BM[i];.WPD:=WPDM[i];;SVOL3(D0:byte;
SM,HAZ,CZ:real):integer;:=Floor(D0/SM-5.88+1.96*(HAZ+CZ));result{SVOL3} mod 2
<> 0 then SVOL3:=result{SVOL3}-1;;SVOL4(PR:byte; KF,KC:integer):real;PR
of
: SVOL4:=0.5*KC;
:
SVOL4:=0.5*KF;;(result{SVOL4}<70) then SVOL4:=-1;(result{SVOL4}>300) then
SVOL4:=-3;;SVOL5(ZF,ZC: integer; SM,HAZ,CZ:real):TSVOL5DATA;Kw,Kf:real;:=1.1;:=0.4;.Xf:=3+0.01*ZF;.Xc:=result{SVOL5}.Xf-1+Kw*(1+0.00005*Kw*ZF);.dF:=SM*ZF;.daF:=result{SVOL5}.dF+2*(result{SVOL5}.Xf+Kf)*SM;.dfF:=result{SVOL5}.dF+2*(result{SVOL5}.Xf-HAZ-CZ)*SM;.dC:=SM*ZC;.daC:=result{SVOL5}.dC+2*(result{SVOL5}.Xc-HAZ)*SM;.dfC:=result{SVOL5}.daC+2*(HAZ+CZ+Kf)*SM;;SVOL6(KF:integer;
dF,dC,DP,SM,Xf,HAZ,CZ:real):TSVOL6DATA;.HZF:=SM*(0.5*KF+Xf-(HAZ+CZ))-0.5*DP;.HF:=0.7*result{SVOL6}.HZF;.BWF:=0.2*dF;.BWC:=result{SVOL6}.BWF+3;.BF:=0.06*dF;.BK:=dF;.HC:=0.18*dC;;.
Список литературы
1. Автоматизированное
проектирование зубчатых передач мехатронных систем: Методические указания по
курсовому проектированию / Сост.: А.З. Копылов, В.Ю, Лавров; Балт. гос. техн.
ун-т. Спб., 2003. 39 с.
2. Копылов
А.З. Проектирование мехатронных систем: Учеб. пособие / Балт. гос. техн. ун-т.
Спб., 2002. 44.
3. Неклюдов
С.Ю. Алгоритмизация и программирование вычислительных процессов в
инегрированной среде BORLAND
PASCAL - Спб.:
Энергоатом-издат, Санкт-Петербургское отделение, 2000 - 319 с.ил.
4. Применение
Delphi при проектировании
мехатронных систем: Методические указания по выполнению лабораторных работ и
курсового проекта / Сост.: А.З.Копылов; Балт. гос. техн. ун-т. Спб., 2003. 26
с.