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

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

В качестве примера использования идентификации параметров по динамике движения рассмотрим определение угла бросания камня. Камень бросают вверх под различными углами к горизонту с одинаковой скоростью. В момент, когда высота становится равной –0.001 [m], расчет останавливается (камень упал на землю).
Пусть у нас есть результаты измерений полета камня (зависимость высоты полета от дальности) при угле бросания 25 [deg]. Эти измерения принимаются в качестве эталона.
Будем идентифицировать угол бросания по этим результатам измерений.
В данном примере:
      идентифицируемый параметр – угол бросания камня (скаляр angle);
      измеряемая характеристика – высота полета камня (датчик height). Результат измерений движения эталона содержится в функции function1;
      аргумент измерений – дальность полета камня (датчик distance).
В модели угол бросания камня равен 45 [deg]. Это значение используется в качестве исходной точки решения задачи идентификации.
Файл проекта
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=45 [ 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 ] );
string string1="h_d.tbl";
function function1=tablePieceLine( string1 );
command command1=identification( list( angle ), list( height ), list( function1 ), list( 1.0  [ 1/ m ] ), distance, 0 [ m ], 2.8142 [ m ], 12, 100, 0.1, 0.1 );
 
/\///////////////////////////////////////////////////////////
/\   Единицы измерения;
set units = SI;
 
Файл функции function1 (h_d.tbl)
2
distance  [ m ]
height  [ m ]
//   distance         height
0              0             
0.27189        0.11453       
0.54378        0.20454       
0.81568        0.27003       
1.0876         0.311         
1.3595         0.32746       
1.6314         0.3194        
1.9032         0.28682       
2.1751         0.22972       
2.447          0.14811       
2.7189         0.04198       
2.8142         -0.00099998   
 
На рис.22 приведены графики, полученные в результате решения задачи идентификации параметров по динамике движения.
Рис. 22.Идентификация угла бросания по заданной зависимости высоты полета от дальности.