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

Рис. 5. Результаты Покоординатной оптимизации
Ниже приведена таблица результатов Покоординатной оптимизации (формат TBL), полученная из диалогового окна Покоординатная оптимизация.
Таблица результатов Покоординатной оптимизации
//Покоординатная оптимизация command1
3
N [ ]
distance [ m ]
angle [ deg ]
// N distance angle
0.00000e+000 2.81417e+000 2.50000e+001
1.00000e+000 2.89471e+000 2.60000e+001
2.00000e+000 3.04515e+000 2.80000e+001
3.00000e+000 3.24283e+000 3.10000e+001
4.00000e+000 3.45090e+000 3.50000e+001
5.00000e+000 3.61627e+000 4.00000e+001
6.00000e+000 3.67185e+000 4.50000e+001
Из таблицы видно, что оптимальное значение угла бросания камня – 45 [deg], а дальность полета – 3,67185 [m].