birmaga.ru
добавить свой файл

1

Задача 70

( Задача 48.28. Задачи по теоретической механике. И.В. Мещерский. СПб.: Издательство «Лань», 2001. – 448 с. )


Призма А массы m скользит по гладкой боковой грани призмы В массы , образующей угол с горизонтом.

Определить ускорение призмы В. трением между призмой В и горизонтальной плоскостью пренебречь.

Для решения задачи использовать следующие значения параметров:

m = 1 кг, = 2 кг, = 30 град.


Точный теоретический ответ


.

Моделирование в EULER





Система состоит из следующих звеньев

  • Инерциальное звено – body1 – горизонтальная плоскость, отображенная line3

  • Призма body2 массой m1, отображенная телом выдавливания (по точкам A, B, C)

  • Призма body3 массой m, отображенная телом выдавливания (по точкам A!, B1,C1)

Гравитация задана объектом gravity1. Скольжение призмы по горизонтальной поверхности и призмы по призме задано шарнирами joint1 и joint2 типа «поступательная пара».

Для определение ускорения используется датчик sensor1, показывающий относительное ускорение тел.

Результаты моделирования


Точный теоретический ответ:

1.8879e+000 [m/s2]

Результат, показанный датчиком в результате вычислений:

1.8879e+000 [m/s2]

Относительная погрешность: 1.1761e-016

Текст проекта

scalar m=1[ kg ];

scalar m1=2 [ kg ];

scalar alpha=30[ deg ];

scalar l=5[ m ];

scalar s=3[ m ];

scalar l1=1[ m ];

scalar g=9.81[m/s2];

point A=point( 0 [ m ], 0 [ m ], 0 [ m ] );

point B=point( l, 0 [ m ], 0 [ m ] );

point C=point( 0 [ m ], l*tg(alpha), 0 [ m ] );

line line1=polyLine( list( A, B, C, A ) );

solid solid1=extrude( line1, A, move( A, projectZ, 0.1 [ m ] ), mass = m1 );

vector v1=vectorPP( B, C );

point B1=move( B, v1, s );

point A1=move( B, v1, s+l1 );

point C1=move( B1, projectY, l1*sin(alpha) );

line line2=polyLine( list( A1, B1, C1, A1 ) );

solid solid2=extrude( line2, A1, move( A1, projectZ, 0.1 [ m ] ), mass = m );

line line3=polyLine( list( move( A, reverse( projectX ), l ), move( B, projectX, l ) ) );

body body1=body( color = RGB( 229, 229, 229 ) );

set ground = body1;

body body1 < ( line3 );

body body2=body( color = RGB( 255, 153, 153 ) );

body body2 < ( line1, solid1 );

body body3=body( color = RGB( 255, 153, 102 ) );

body body3 < ( line2, solid2 );

gravity gravity1=parallel( reverse( projectY ) );

joint joint1=translational( body1, body2, A, projectX );

joint joint2=translational( body2, body3, A1, v1 );

sensor sensor1=transAcceleration( body1, reverse( projectX ), body2, A );

sensor sensor_theor=m*g*sin(2*alpha)/(2*(m1+m*sin(alpha)*sin(alpha)));

sensor pogr_otn=abs(sensor1-sensor_theor)/sensor_theor;
/\///////////////////////////////////////////////////////////////////////////////////

/\ Единицы измерения;

set units = SI;