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