×
 

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. Определение угла бросания
 
Ниже представлена таблица результатов Краевой задачи (формат TBL).
 
Таблица результатов
 
// Решение краевых задач
// Проект: 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].