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 ) );
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 dist=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 BOUNDARY=boundaryProblem( list( designVariable( angle, 25 [deg], 1 ) ), list( dist ), list( 1 [m] ), list( 1e-2 [m] ), 0.01, 100,
comDynamics, nRandPoints = 100 );
/\///////////////////////////////////////////////////////////////////////////////////
set ground = ground;
/\///////////////////////////////////////////////////////////////////////////////////
/\ Единицы измерения;
set units = SI;
|
На рис. 7 приведены графики, полученные в результате решения Краевой задачи.

Рис. 7. Определение угла бросания
Таблица результатов
// Решение краевых задач
// Проект: BoundaryProblemExample.elr
// Команда: BOUNDARY
// Результат: I: Расчет успешно завершен
4
НомерИтерации []
angle [rad]
dist [m]
МаксимальнаяПогрешность []
Невязка []
// НомерИтерации angle dist МаксимальнаяПогрешность Невязка
1 0.436332 2.814275 +inf 1.814275
2 0.095667 0.708364 0.340666 0.291636
3 0.142844 1.041445 0.047177 0.041445
4 0.136973 1.000318 0.005870 0.000318
Из таблицы видно, что угол бросания камня, при котором дальность полета составляет 1 [m], равен 1.000318 [rad].