我想绘制机器人关节的位置,速度和加速度的图表,但我不知道如何绘制它。这是我的等式:
(position)
for 0<=t<=tblend,
y = theta1s+((0.5.*acc1).*(t^2));
for tblend<t<tf-tblend,
y = -195.21+(52.08.*t);
for tf-tblend<t<=tf,
y = 20-15.*((5-a)^2);
我必须使用什么命令来绘制此图表?如果可能,我也希望显示y
的等式。
答案 0 :(得分:0)
首先创建t值的网格,假设步长(这里我选择了0.1),你提到的最终值叫做tf:
t = 0:0.1:tf;
然后使用逻辑索引将不同的函数应用于此网格值的不同区域:
y = ( theta1s+((0.5.*acc1).*(t^2)) ).*(0 <= t).*(t<=tblend) + ...
( -195.21+(52.08.*t)).*( tblend<t).*(t<tf-tblend) + ...
( 20-15.*((5-a)^2) ).*(tf-tblend<t).*(t<=tf);
这将应用函数y的分段定义,方法是将每个差异片段乘以仅在其应用的区域上为1的逻辑,在其他位置为0。然后一个简单的
plot(t,y)
会告诉你情节。要打印此功能,您需要使用Matlab的原生LaTeX语法格式化绘图图形窗口的标题。查找并使用LaTeX命令\ begin {cases} ... \ end {cases}作为分段函数。您可以将大部分内容直接传递给title()命令。
对于另一种解决方案,如果您有信号处理工具箱,则可以使用内置的
heaviside(t)
功能。适当地改变分段函数的新片段的每个左端点的t值,然后为片段的每个右端点减去和相应的heavyiside()项。如果您没有内置的heavyiside()函数,则可以在Matlab中央文件交换中轻松找到第三方实现。