12
Руководство пользователя
×

6.4 Пример использования команды

В качестве примера использования краевой задачи можно привести расчет полета камня на заданную дальность. Камень бросают вверх под различными углами к горизонту с одинаковой скоростью. В момент, когда высота становится равной –0.001 [m], расчет останавливается (камень упал на землю). Варьируемым параметром в данном примере является угол бросания камня (скаляр angle). Задача имеет одно условие: дальность полета камня (датчик distance) должна иметь значение 1[m].
Скаляр angle имеет начальное значение 25 [deg], тип расчета – динамика движения.
Файл проекта
scalar angle=25 [ deg ];
scalar v=6 [m/s];
point point1=point( 0 [ m ], 0 [ m ], 0 [ m ] );
solid solid1=sphere( point1, 0.1 [ m ], mass = 1 [ kg ] );
body stone= body( color = index( 25 ) );
body stone < ( solid1 );
body ground=body( color = RGB( 229, 229, 229 ) );
set ground = ground;
gravity gravity1=parallel( reverse( projectY ) );
node node1=node( point1, 0 [ deg ], 0 [ deg ], angle, color = index( 36 ) );
condition condition1=transVelocity( ground, vectorX( node1 ), stone, point1, v );
sensor distance=bodyDisplacement( ground, point1, projectX, stone, point1 );
sensor height=bodyDisplacement( ground, point1, projectY, stone, point1 );
reform reform1=stop(  );
event event1=reformsBySensor( list( reform1 ), height, -0.001 [ m ] );
command command1=boundaryProblem( list( angle ), list( 0.01 [deg] ), list( distance ), list( 1 [m] ), 0.001, 0.001, 100, comDynamics );
 
/\///////////////////////////////////////////////////////////
/\   Единицы измерения;
set angle = deg;
 
На рис.19 приведены графики, полученные в результате решения Краевой задачи.
Рис. 19.Определение угла бросания