Этот пример показывает, как задать пользовательское масштабирование времени в блоке Transform Trajectory, чтобы выполнить интерполированную траекторию. Два преобразования заданы в блоке, чтобы сгенерировать траекторию между двумя. Цель состоит в том, чтобы переместиться между преобразованиями с помощью нелинейного времени, масштабировавшись, куда траектория перемещается быстро в запуск и медленно в конце.
Пользовательская траектория масштабирования времени сгенерирована с помощью блока Polynomial Trajectory, который дает положение, скорость и ускорение, заданное пользовательским временем, масштабируясь в момент вовремя, как дано блоком Clock. Блок Clock выходное время симуляции и используется для запроса траектории преобразования в тех specifiy моментах времени. Вход Waypoints задает waypoints нелинейного времени, масштабируясь, чтобы использовать, и включает более короткий временной интервал между точками около итогового времени. 3x1 время, масштабируясь, выведенный от блока Polynomial Trjaectory как q, qd, и qdd, вводится к блоку Transform Trajectory с текущим временем часов как TSTime, который указывает, что это - время, масштабируясь в том экземпляре. Функциональный блок MATLAB® использует plotTransforms
, чтобы построить координатный кадр, который проходит сгенерированная траектория преобразования.
open_system("custom_time_scaling_transform")
Моделируйте модель. График показывает, как преобразование следует за нелинейной интерполированной траекторией, параметризованной вовремя. Образцовые выполнения с решателем фиксированного шага в интервале 0,1 секунд, таким образом, каждый кадр на расстоянии в 0,1 секунды. Заметьте, что преобразования выбираются более тесно около итогового преобразования.
sim("custom_time_scaling_transform")
hold off