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

Бесплатный доступ

Кинематический расчёт механизмов является очень трудоёмкой работой. Благодаря содержанию большого количества однотипных операций, его можно автоматизировать с помощью ЭВМ. Для этого необходимо осуществить программную реализацию математической модели кинематического расчётамеханизмов второго класса. В статье на языке Turbo Pascal представлен текст модуля с библиотечными процедурами кинематического исследования всех плоских рычажных механизмов второго класса. Определение кинематических характеристик механизма и построение его положений, планов скоростей и ускорений проведено на примере шестизвенного механизма. Начало неподвижной координатной системы совпадает с осью вращения кривошипа АВ. Предполагается, что известны длины всех звеньев, координаты всех дополнительных точек звеньев и координаты всех кинематических пар стойки механизма, т. е. данному этапу работы по определению кинематики механизма должен предшествовать этап синтеза механизма (определение недостающих размеров звеньев). Задаём координаты точки С и учитывая, что аналоги скоростей и ускорений данной точки равны 0 (точка неподвижна), обращаемся к процедуре, вычисляющей кинематику группы Ассура (ГА) третьего вида. Указываем кинематические характеристики точки D, принимая начало направляющей ползуна Е в точке С, угол наклона, аналог угловой скорости и аналог углового ускорения направляющей равными нулю, зная длину шатуна DE и длину звена 5, обращаемся к процедуре для ГА второго вида. Использование библиотечных процедур модуля кинематического расчёта, позволяет сравнительно просто организовать имитацию движения механизма, рассчитать проекции аналогов скоростей и ускорений всех звеньев механизма, построить планы скоростей и ускорений в каждом положении механизма.

Еще

Программа, математическая модель, кинематический расчёт, группы ассура

Короткий адрес: https://sciup.org/14040631

IDR: 14040631   |   DOI: 10.20914/2310-1202-2016-2-87-94

Program realization of mathematical model of kinematic calculation of flat lever mechanisms

Calculation of kinematic mechanisms is very time-consuming work. Due to the content of a large number of similar operations can be automated using computers. Forthis purpose, it is necessary to implement a software implementation ofthe mathematical model of calculation of kinematic mechanisms of the second class. In the article on Turbo Pascal presents the text module to library procedures all kinematic studies of planar lever mechanisms of the second class. The determination of the kinematic characteristics of the mechanism and the construction of its provisions, plans, plans, speeds and accelerations carried out on the example of the six-link mechanism. The beginning of the motionless coordinate system coincides with the axis of rotation of the crank AB. It is assumed that the known length of all links, the positions of all additional points of links and the coordinates of all kinematic pairs rack mechanism, i.e. this stage of work to determine the kinematics of the mechanism must be preceded by a stage of synthesis of mechanism (determining missing dimensions of links). Denote the coordinates of point C and considering that the analogues of velocities and accelerations of this point is 0 (stationary point), appeal to the procedure that computes the kinematics group the Assyrians (GA) third. Specify kinematic parameters of point D, taking the beginning of the guide slide E at point C, the angle, the analogue of the angular velocity and the analogue of the angular acceleration of the guide is zero, knowing the length of the connecting rod DE and the length of link 5, refer to the procedure for the GA of the second kind. The use of library routines module of the kinematic calculation, makes it relatively simple to organize a simulation of the mechanism motion, to calculate the projection analogues of velocities and accelerations of all links of the mechanism, to build plans of the velocities and accelerations at each position of the mechanism.

Еще

Текст научной статьи Программная реализация математической модели кинематического расчета плоских рычажных механизмов

Проектирование механизма представляет собой сложную инженерную задачу, решая которую приходится определять оптимальную кинематическую схему механизма на основе технического задания. Решение задачи анализа облегчается при визуализации кинематики рассматриваемого механизма. Поэтому программная реализация математической модели кинематического расчёта плоских рычажных механизмов представляет интерес [1–6].

В качестве языка программирования был выбран Turbo Pascal фирмы Borland – базовый язык программирования в учебных заведениях.

По результатам работ [1–2] разработаны компьютерные процедуры, вычисляющие кинематических характеристики любых плоских рычажных механизмов, имеющих в своём составе, кроме начального звена, хотя бы одну двухповодковую группу Ассура. Расчётные схемы показаны на рисунке 1.

На рисунке 1 приняты следующие обозначения: l 2 , l 3 размеры второго и третьего звеньев; l 4 , l 5 – вспомогательные размеры; φ 2 , φ 3 – углы наклона к оси абсцисс второго и третьего звеньев; α, γ – вспомогательные углы.

На языке Turbo Pascal составлен модуль DIADA. В этот модуль входят библиотечные процедуры, определяющие кинематические характеристики каждой двухповодковой группы Ассура.

Листинг модуля DIADA

Unit Diada;

Interface

Var al1,al2,a21,a22,calpha,salpha: real; bl,b2,alpha,znam : real;

bx,by : real;

ch : char;

Procedure Di- ada2v(ax,ay,vax,vay,aax,aay,cx,cy, vcx,vcy,acx,acy,fi3,omega3,epsi3,12,13:re al;

Var fi2,omega2,epsi2,14,v4,a4:real); Procedure Di- ada3v(ax,ay,vax,vay,aax,aay, cx,cy,vcx,vcy,acx,acy,12: real;

Var fi3,omega3,epsi3,13,v3,a3: real); Procedure Di-ada4v(ax,ay,vax,vay,aax,aay,fi2, omega2,epsi2,cx,cy,vcx,vcy,acx,acy,fi3,om ega3, epsi3,12,13: real; Var ll,vl,al,14,v4,a4: real);

Procedure Di- ada5v(ax,ay,vax,vay,aax,aay,cx, cy,vcx,vcy,acx,acy,12,fi3,omega3,epsi3,al pha: real;

VarAx2,Vax2,Aax2,Bx3,Vbx3,Abx3: real);

Function Atan2(x,y: real): real; Implementation Function Atan2;

Begin if (x > 0) and (y >= 0) then Atan2:=ArcTan(y/x);

if (x > 0) and (y <= 0) then Atan2:=2*pi-ArcTan(abs(y)/x);

if (x < 0) and (y >= 0) then Alan2:=pi-ArcTan(y/abs(x));

if (x < 0) and (y <= 0) then Alan2:=pi+ ArcTan(y/x);

if (x = 0) and (y > 0) then Atan2 := pi/2;

if (x = 0) and (y < 0) then Atan2 := 3*pi/2

End;

Procedure Diadalv;

Var ac,bxl,byl,bx,by : real;

Begin {Diadalv} ac:= sqrt(sqr(cx - ax) + sqr(cy - ay));

alpha:= Atan2(cx – ax, cy - ay); salpha:= sin(alpha); calpha:= cos(alpha); bxl:= (sqr(12) + sqr(ac) -sqr(13))/(2*ac);

byl:= sqrt(sqr(12) - sqr(bxl));

ifsb = 2thcnbyl :=-byl;

bx:= ax + bx1*calpha - by1*salpha;

by:= ay + bxl*salpha + by1*calpha;

fi2 := Atan2(bx - ax,by - ay); if fi2 > 2*pi then fi2 := fi2 -2*pi;

fi3 := Atan2(bx – cx,by - cy); if fi3 > 2*pi then fi3 := fi3 -2*pi;

if fi2< 0 then fi2 := fi2 + 2*pi;

if fi3< 0 then fi3 := fi3 + 2*pi;

all :=-12*sin(fi2);al2:= 13*sin(fi3);

a21:= 12*cos(fi2);  a22 := -

13*cos(fi3);

znam :=all*a22-a21*al2;

bl := vcx - vax; b2 := vcy - vay;

omega2 := (b1*а22 - b2*а12)/znam;

omega3 := (a11*b2 - а21*b1)/znam;

bl := acx - aax + a21*sqr(omega2) + a22*sqr(omega3);

b2 := асу - aay - al l*sqr(omega2) -al2*sqr(omega3); epsi2 :=(b1*a22-b2*a12)/znam; epsi3 :=(a11*b2-a21*b1)/znam;

End; {Diadalv}

(a)

(b)

(c)

(d)

(e)

Рисунок 1. Расчётные схемы двух поводковых групп Ассура: a – первого вида; b – второго вида; c – третьего вида; d – четвёртого вида; e – пятого вида

  • Figure 1.    Settlement schemes of two flood groups of Assur: a – first look; b – second look; c – third look; d – fourth look; e – fifth look

Procedure Diada2v;

Var xl,yl,x2,bx,by: real; Begin {Diada2v} b1:= ax-cx; b2:=ay-cy; xl :=b1*cos(fi3) +b2*sin(fi3); yl :=b2*cos(fi3)-b1*sin(fi3);

x2:=sqrt(sqr(12)-sqr(yl-l3)); 14:=xl +x2;

bx := cx +14*cos(fi3) - l3*sin(fi3); by := cy + l4*sin(fi3)+l3*cos(fi3); fi2 := Atan2(bx - ax,by - ay);

a11:= -12*sin(fi2); a12 := - cos(fi3);

a21:= 12*cos(fi2); a22 := - sin(fi3); znam :=all*a22-a21*al2;

bl := vcx - vax + omega3*(14*a22 + 13*a12);

b2 := vcy - vay - omega3*(14*a12 -13*a22);

omega2 := (bl*a22 - b2*al2)/znam; v4:=(all*b2-a21*bl)/znam;

bl =acx -aax - (14*cos(fi3) -13*sin(fi3))*sqr(omega3);

bl:=bl +12*cos(fi2)*sqr(omega2); bl:= bl - 2*v4*sin(fi3)*omega3 -epsi3*(l4*sin(fi3) +13*cos(fi3));

b2:= асу - aay - (14*sin(fi3)

+13*cos(fi3))*sqr(omega3);

b2:= b2 + 12*sin(fi2)*sqr(omega2);

b2:= b2 + 2*v4*cos(fi3)*omega3

+epsi3*(14*cos(fi3)-13*sin(fi3));

epsi2:= (bl*a22 - b2*al2)/znam;

a4:= (al 1 *b2 - a21 *bl)/ znam;

End; {Diada2v}

Procedure Diada3v;

Begin {Diada3v }

13 := sqrt(sqr(ax - cx) + sqr(ay - cy) -sqr(12));

a11:= cos(fi3); al2 := - (13*sin(fi3) + 12*cos(fi3));

a21 := sin(fi3); a22 :=13*cos(fi3) -

12*sin(fi3);

znam:=all*a22-a21*al2;

b1:= vax - vcx; b2 := vay - vcy;

v3 := (b1*a22 - b2*а12)/znam;

omega3 := (a11*b2 - a21*b1)/znam;

bl:= aax - acx + 2*v3*a21*omega3 + a22*sqr(omega3);

b2:= aay - асу - 2*v3*all*omega3 -al2*sqr(omega3);

a3:=(bl*a22-b2*al2)/znam;

epsi3 := (a11*b2 - a21*b1 )/znam;

End; {Diada3v }

Procedure Diada4v;

Begin {Diada4v } a11:= cos(fi2); a12:= - cos(fi3);

a21:= sin(fi2); a22:= - sin(fi3);

znam := a1l*a22 - a21*al2;

b1:= cx - ах+12*а21 + 13*а22;

b2:=cy-ay-12*a11 -13*а12;

I1:=(b*a22-b2*a12)/znam;

14:= (a11*b2 -a21*b1 )/znam;

bl:=vcx- vax+omega2*(ll*a21+I2*a11)+omega3*(14*a22 +13*а12);

b2:=vcy-vay-omega2*(ll*a11-12*a21) – omega3*(14*al2 -13*a22);

vl :=(b1*a22-b2*al2)/znam;

v4:=(all*b2-a21*b1)/znam;

bl:= acx - aax

+2*v1*a21*omega2+sqr(omega2)*(l1*a11-

12*a21)+ epsi2*(ll*a21 -12*all);

bl:=bl + 2*v4*a22*omega3 + sqr(omega3)*(14*al2-13*a22)+ epsi3*(14*a22 + 13*al2);

b2:= асу- aay-2*vl*al l*omega2 + sqr(omega2)*(ll*a21 + 12*al1)-epsi2*(ll*all -l2*a21);

b2:= b2-2*v4*al2*omega3+ sqr(omega3)*(14*a22 + 13*al2)- epsi3*(14*al2-13*a22);

al :=(bl*a22-b2*al2)/znam;

a4:= (a11*b2-a21*b1 )/znam;

End; {Diada4v }

Procedure Diada5v;

Begin {Diada5v } a11:= cos(fi3); al2:= cos(fi3 + alpha);

a21:= sin(fi3); a22:= sin(fi3 + alpha);

znam:=all*a22-a21*al2;

bl:= ax-cx+12*a22;

b2:=ay-cy-12*al2;

Bx3:=(bl*a22-b2*al2)/znam;

Ax2:=(all*b2-a21*bl)/znam;

bl:= vax-vex+omega3*(Bx3*a21 + Ax2*a22 + 12*al2);

b2:=vay-vcy- omega3*(Bx3*al 1 + Ax2*al2 – 12*a22);

Vbx3 :=(bl*a22 - b2*al2)/znam;

Vax2 := (a11*b2 - a21 *bl)/znam;

bl := aax - acx + 2*omega3*(Vbx3*a21 +

Vax2*a22) + sqr(omega3)*(Bx3*a11 + Ax2*al2 - 12*a22)

+ epsi3*(Bx3*a21 + Ax2*a22 + 12*al2);

b2:= aay - асу - 2*omega3*(Vbx3*al 1 +

Vax2*al2)+ sqr(omega3)*(Bx3*a21 + Ax2*a22 + 12*al2) – epsi3*(Bx3*a11 + Ax2*a12 -12*a22);

Abx3 :=(bl*a22 - b2*a12)/znam;

Aax2 := (a11*b2 - a21*bl)/znam;

End; {Diada5v}

End. { UnitDiada }

Определение кинематических характеристик механизма и построение его положений, планов скоростей и планов ускорений проведём на примере шестизвенного механизма (рисунок 2). Начало неподвижной координатной системы совпадает с осью вращения кривошипа АВ (звено 1). Предполагается, что известны длины всех звеньев, координаты всех дополнительных точек звеньев и координаты всех кинематических пар стойки механизма (звено 0), т. е. данному этапу работы по определению кинематики механизма должен предшествовать этап синтеза механизма (определение недостающих размеров звеньев).

Задаём координаты точки С и учитывая, что аналоги скоростей и ускорений этой точки равны 0 (точка неподвижна), обращаемся к процедуре, вычисляющей кинематику группы Ассура третьего вида diada3v.

Указываем кинематические характеристики точки D, принимая начало направляющей ползуна Е в точке С, угол наклона, аналог угловой скорости и аналог углового ускорения направляющей равными нулю, зная длину шатуна DE (звено 4) и длину звена 5, обращаемся к процедуре для группы Ассура второго вида diada2v.

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

Листинг программы анализа кинематики шестизвенного механизма приведён далее.

Program Example;

Uses diada,crt,graph;

Label start;

Const nc = 360;

Var ij,d,r,ox,oy,pvx,pvy,pax,pay, xl,yl,x2,y2,kl,kv, ka:integer;

Il,130,14,lcd,cx,cy,fil,fi3,fi4,oml,om3,o m4,epsi3,epsi4 :real;

15,v5,a5,bx,by,dx,dy,cx,vbx,vby,abx,aby,v dx,vdy,adx,ady : real;

13,v3,a3,lcb : real;

ch : char;

stl,st2,st3,st4 : string;

Procedure Postpara(x,y: integer; fi: real);

Var zl,z2,z3,z4,z5,z6 : integer; wl,w2,w3,w4,w5,w6 : integer; sfi,cfi: real;

begin sfi := sin(fi); cfi:= cos(fi);

zl := x + round(10*cfi - 5*sfi);wl:= у -round(10*sfi+5*cfi);

z2 := x+round(-10*cfi-5*sfi); w2:= у -round(-10*sfi+5*cfi);

z3:= x + round(-10*cfi + 5*sfi);w3:=у-round(-10*sfi-5*cfi);

z4 := x + round(10*cfi + 5*sfi); w4:=у-round(10*sfi - 5*cfi);

z5:= x - round(10*cfi); w5 := у + round(10*sfi);

z6:= x + round(10*cfi); w6 := у -round(10*sfi);

SetColor(lightgray);

Setlinestyle(0,0,3); Iine(z5,w5,z6,w6);

SetColor(white); Setlinestyle(0,0,1); Line(z1,wl,z2,w2); line(z2,w2,z3,w3);

line(z3,w3,z4,w4); line(z4,w4,z1,wl);

circle(x,y,3);

end; {Postpara}

Procedure Opora(x,y: integer);

Begin circle(x,y,3);

Lineto(x - 7,y + 7); Lineto(x - 9,y + 7); lineto(x + 9,y + 7); lineto(x + 7,y + 7); lineto(x,y);

SetFillStyle(l,GetColor);

Bar(x - 9,y + 7,x + 9,y + 10);

End;

ProcedureCoordXY(x,y: integer);

Begin

SetColor(magenta);

line(x - 10,y,x + 100,y); line(x + 100,y,x + 90,y - 5);

line(x + 100,y,x + 90,y + 5);

OutTextXY(x + 105,y - 7,'X'); line(x,y + 10,x,y - 100);

line(x,y - 100,x - 5,у - 90); line(x,y - 100,x + 5,y - 90); OutTextXY(x + 5,y - 107,'Y'); SetColor(white);

End;

Begin clrscr;

11 := 0.3; 130 := 1.4; lcd := 0.5; 14 := 1.25;

cx :=0.0; cy := - 1.0;ox := 100; oy := 200;

kl :=150;kv :=350; ka := 350;

pvx := 450; pvy := 125; pax := 450; pay := 275;

d := Detect;InitGraph(d,r, '...\bgi'); SetBkColor(lightgray);

start: for i := 0 to nc do begin setfillstyle(9,green);

bar(20,380,620,455);

fi1 := 2*pi/nc*i;

bx :=ll*cos(fil);

by :=ll*sin(fil);

vbx:=-by; {-ll*sin(fil);} vby :=bx; {11*cos(fil);} abx:=-bx; {-11 *cos(fil);} aby:=-by; {-ll*sin(fil);} diada3

v(bx,by,vbx,vby,abx,aby,cx,cy,0,0,0,0,0,f i3,om3,epsi3, lcb,v3 ,a3);

dx := lcd*cos(fi3); dy := cy + lcd*sin(fi3);

vdx:=lcd*sin(fi3)*om3;

vdy:=lcd*cos(fi3)*om3;

adx := - lcd*(cos(fi3)*sqr(om3) + sin(fi3)*epsi3);

ady := lcd*(cos(fi3)*epsi3 -sin(fi3)*sqr(om3));

di- ada2v(dx,dy,vdx,vdy,adx,ady,cx,cy,0,0,0,0 ,0,0,0,14,0,fi4,om4, epsi4,l5,v5,a5);

CoordXY( 100,200);

xl := ox + round(kl*bx); yl := oy -round(kl*by);

OutTextXY(100,10,'Cxемa механизма');

OutTextXY(30,440, 'Esc - конец работы программы');

str(fil *180/pi:6:2,st1);

str(fi3*180/pi:6:2,st2);str(fi4*180/pi:6: 2,st3);

str(15:6:4,st4);

OutTextXY(30,395, 'Fi1='+ stl + 'град.'+ ' Fi3= ' + st2+ ' град. ');

OutTextXY(310,395, 'Fi4= ' + st3 +' град.' + ' L5=1 + st4 +' м.'); circle(ox,oy,3);

Opora(ox,oy);

OutTextXY(ox + 10,oy + 10,'A');

MoveTo(ox,oy);

LineTo(xl,yl);

OutTextXY(xl + 10,yl –10, 'B'); cir-cle(xl,yl,3);

MoveTo(ox,oy - round(kl*cy)); circle(ox,oy - round(kl*cy),3);

OutTextXY(ox - 10,oy - round(kl*cy) – 10, 'C');

Opora(ox,oy - round(kl*cy));

xl := ox + round(kl*130*cos(fi3));

yl := oy - round(kl*cy) -round(kl*130*sin(fi3));

lineto(xl,yl);

xl := ox + round(kl*lcb*cos(fi3));

yl := oy - round(kl*cy) -round(kl*lcb*sin(fi3));

Postpara(ox + round(kl*bx),oy -round(kl*by),fi3);

xl := ox + round(kl*dx); yl := oy -round(kl*dy);

OutTextXY(xl - 10,yl - 10,'D'); cir-cle(xl,yl,3);

moveto(xl,yl);

x2 := xl + round(kl*14*cos(fi4));

y2 := yl - round(kl*14*sin(fi4)); lineto(x2,y2);

line(ox + 50, y2, ox + 250, y2); Post-para(x2,y2,0);

circle(x2,y2,3);

OutTextXY(x2,y2 – 15, 'E');

{План скоростей}

SetColor(red); OutTextXY(400,10, 'План скоростей');

str(om3:6:2,st2);

str(om4:6:2,st3); str(v5:6:4,st4);

OutTextXY(30,410, 'Oml= 1.00' +' Om3'+ st2);

OutTextXY(310,410,'Om4=' + st3 +'V5=' + st4);

OutTextXY(pvx+5,pvy + 5,'Pv');

xl := pvx + round(kv*vbx); yl := pvy - round(kv*vby);

line(pvx, pvy, xl, yl); {Скорость Vb1,2} OutTextXY(xl + 5,yl + 5, 'b');

x2 := xl - round(kv*v3*cos(fi3));

y2 := yl + round(kv*v3*sin(fi3)); line(х1,у1,x2,у2); {Скорость Vb32} Iine(pvx,pvy,x2,y2);

OutTextXY(x2 - 10,y2 + 5,'b3'); xl := pvx + round(kv*v5); yl := pvy; line(pvx,pvy,xl,yl);

OutTextXY(xl,у1 +5,'e');

x2 := pvx + round(kv*vdx);

y2 := pvy - round(kv*vdy); line(pvx, pvy, x2, y2);

OutTextXY(x2,y2 - 10,'d');

line(xl,yl,x2,y2);

xl := pvx - round(kv*lcb*sin(fi3)*om3); yl := pvy - round(kv*lcb*cos(fi3)*om3); line(pvx,pvy,xl,yl);

{План ускорений} SetColor(blue);

OutTextXY(400,360, 'План ускорений');

str(epsi3:6:2,st2);str(epsi4:6:2,st3);

str(a5:6:4,st4);

OutTextXY(30,425,'Epsi1=0.00 ' +'

Epsi3='+st2);

OutTextXY(294,425,'Epsi4=' + st3 + '

A5='st4);

OutTextXY(pax + 5,pay + 5,'Pa');

xl := pax + round(ka*abx);

yl := pay - round(ka*aby);

line(pax,pay,xl,yl);

OutTextXY(xl - 10,yl + 5,'b');

x2 := xl + round(ka*2*v3*om3*sin(fi3));

y2 := yl + round(ka*2*v3*om3*cos(fi3));

line(xl,yl,x2,y2);

OutTextXY(x2 - 10,y2 + 5,'k');

xl := x2 - round(ka*a3*cos(fi3));

yl := y2 + round(ka*a3*sin(fi3));

line(x2,y2,xl,yl);

OutTextXY(xl -10,yl, 'r');

xl :=pax;yl:=pay;

x2 := xl - round(ka*lcb*sqr(om3)*cos(fi3));

y2 := yl + round(ka*lcb*sqr(om3)*sin(fi3));

line(xl,yl,x2,y2);

OutTextXY(x2 + 10,y2 + 5,'n');

xl := x2 - round(ka*lcb*epsi3*sin(fi3));

yl := y2 - round(ka*lcb*epsi3*cos(fi3)); line(x2,y2,xl,yl);

OutTextXY(xl + 10,yl + 5,'t');

line(pax,pay,xl,yl);

OutTextXY(xl + 10,yl - 10, 'b3');

xl := pax + round(ka*adx); yl := pay -round(ka*ady);

OutTextXY(xl - 10,yl - 10,'d');

x2 := xl - round(ka*14*cos(fi4)*sqr(om4));

y2 :=yl + round(ka*14*sin(fi4)*sqr(om4)); line(xl,yl,x2,y2);

xl := x2 - round(ka*14*sin(fi4)*epsi4);

yl := y2 - round(ka*14*cos(fi4)*epsi4); line(x2,y2,xl,yl);

x2 := pax + round(ka*a5); y2 := pay;

line(pax,pay,x2,y2);

OutTextXY(x2,y2 + 5,'e');

rectangle(20,380,620,455);

rectangle(18,378,622,457);

ch := readkey; if ch = #27 then exit;

if i <>nc then cleardevice;

end;

ch := readkey;

if ch = #27 then exit else goto start;

End.

Рисунок 2. Пример работы программы.

  • Figure 2.    Example of work of the program.

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

Список литературы Программная реализация математической модели кинематического расчета плоских рычажных механизмов

  • Сидоренко А.С. Кинематический анализ плоских рычажных механизмов на базе Turbo Pascal: учеб. пособие. Воронеж: ВУНЦ ВВС «ВВА», 2015. 39 с.
  • Сидоренко А.С., Дубец С.В., Дубец А.В. Компьютерное моделирование и анализ кинематики механизмов второго класса//Сборник статей по материалам Межвузовской НПК курсантов и слушателей «Молодежные чтения памяти Ю.А. Гагарина 20 мая 2014 г.» Воронеж: ВУНЦ ВВС «ВВА», 2014. Ч. 2. C. 154-157.
  • Мкртычев О.В. Компьютерное моделирование при кинематическом анализе плоских механизмов//Теория Механизмов и Машин. 2012. №1. Т. 10. C. 46-52.
  • Бабичев Д.Т. Компьютерное моделирование работы плоских механизмов и многовариантное конструирование одноступенчатых цилиндрических редукторов//Теория Механизмов и Машин. 2011. №2. Т. 9. C. 38-47.
  • Доронин Ф.А., Доев В.С. Исследование движения плоского механизма с помощью пакета Mathcad//Теория Механизмов и Машин. 2011. №1. Т. 9. C. 77-87.
  • Simas H. et al. A new method to solve robot inverse kinematics using Assur virtual chains//Robotica. 2009. V. 27. №. 7. P. 1017-1026. DOI: DOI: 10.1017/S0263574709005426