/\/////////////////////////////////////////////////////////////////////////////////// /\ Пояснения к проекту set remark= "Расчет угла между клином и инерциальным звеном при равновесном состоянии"; scalar m = 2[ kg ]; scalar d = 0.2/3*1[ m ]; scalar l = 0.2[ m ]; scalar alpha = 30[ deg ]; point point1 = point( 0 [ m ], 0 [ m ], 0 [ m ] ); point point2 = point( d, 0 [ m ], 0 [ m ] ); point point1_klin = point( -(sqrt(3/2)-1/3)/10*1[ m ], (sqrt(3/2)-1/3)/10*1[ m ], -0.005 [ m ], visible = hide: ); point point2_klin = point( (1/3+1/sqrt(2))/10*1[ m ], ((1/sqrt(2)-1/3)/10)*1[ m ], -0.005 [ m ], visible = hide: ); point point3_klin = point( 1/30*1[ m ], -1/30*1[ m ], -0.005 [ m ], visible = hide: ); color blue = index( 73 ); body body1 = body( color = blue, visible = show: ); color green = index( 44 ); body body2_klin = body( color = green ); gravity gravity1 = parallel( reverse( projectY ) ); point point4_klin = point( -(sqrt(3/2)-1/3)/10*1[ m ], (sqrt(3/2)-1/3)/10*1[ m ], 0.005 [ m ], visible = hide: ); line line1_klin = polyLine( list( point1_klin, point2_klin, point3_klin ) ); solid solid1_klin = extrude( line1_klin, point1_klin, point4_klin, mass = m ); point point5_klin = point( -(sqrt(3/2)-1/3)/10*1[ m ], (sqrt(3/2)-1/3)/10*1[ m ], 0 [ m ], visible = hide: ); point point6_klin = point( 1/30*1[ m ], -1/30*1[ m ], 0 [ m ], visible = hide: ); point point7_klin = point( (1/3+1/sqrt(2))/10*1[ m ], ((1/sqrt(2)-1/3)/10)*1[ m ], 0 [ m ], visible = hide: ); line line2_klin = polyLine( list( point5_klin, point6_klin ), visible = show: ); line line3_klin = polyLine( list( point6_klin, point7_klin ) ); joint joint1 = contactPointLine( point1, line2_klin ); joint joint2 = contactPointLine( point2, line3_klin ); sensor sensor1_angel = angleVV( vectorPP( point1_klin, point3_klin ), projectX ); sensor g = 9.81[ m/ s2 ]; sensor Na_Theoretical = m*g*cos(alpha); sensor Nb_Theoretical = m*g*sin(alpha); sensor Na_x = jointForce( force:, body1, point1, projectX, joint1 ); sensor Nb_x = jointForce( force:, body1, point2, projectX, joint2 ); sensor Na_y = jointForce( force:, body1, point1, projectY, joint1 ); sensor Nb_y = jointForce( force:, body1, point2, projectY, joint2 ); sensor Na = sqrt(Na_x*Na_x+Na_y*Na_y); sensor Nb = sqrt(Nb_x*Nb_x+Nb_y*Nb_y); sensor Na_delta = abs((Na_Theoretical-Na)/Na_Theoretical); sensor Nb_delta = abs((Nb_Theoretical-Nb)/Nb_Theoretical); sensor abs_angel = abs((sensor1_angel-alpha)); /\/////////////////////////////////////////////////////////////////////////////////// /\ Прикрепление объектов body body1 < (point1, point2 ); body body2_klin < (point1_klin, point2_klin, solid1_klin, point4_klin, line2_klin, line3_klin, point5_klin, point6_klin, point7_klin, point3_klin ); /\/////////////////////////////////////////////////////////////////////////////////// /\ Инерциальное звено; set ground = body1; /\/////////////////////////////////////////////////////////////////////////////////// /\ Единицы измерения; set units = SI;