В этом примере показано, как задать пользовательское масштабирование времени в блоке Transform Trajectory, чтобы выполнить интерполированную траекторию. Два преобразования заданы в блоке, чтобы сгенерировать траекторию между двумя. Цель состоит в том, чтобы переместиться между преобразованиями с помощью нелинейного времени, масштабировавшись, куда траектория перемещается быстро в запуск и медленно в конце.
Пользовательская траектория масштабирования времени сгенерирована с помощью блока Polynomial Trajectory, который дает положение, скорость и ускорение, заданное пользовательским временем, масштабируясь в момент вовремя, как дано блоком Clock. Блок Clock выходное время симуляции и используется в запросе траектории преобразования в тех, задает моменты времени. Вход Waypoints задает waypoints нелинейного времени, масштабируясь, чтобы использовать, и включает более короткий временной интервал между точками около итогового времени. 3x1 время, масштабируясь, выведенный от блока Polynomial Trajectory как 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