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