我正在构建机器人手臂的轨迹,我已经用矩阵格式计算了自由度的位置,即第一个位置是矩阵(x1,y1,z1)
的第1行,第二个位置是第2行{ {1}}等。
我试图在Simulink中一次读取一行,并在达到第一个位置时切换到下一行。但是我不可能用脚本来解决这个问题。有什么建议吗?
答案 0 :(得分:0)
如果我正确理解你的问题,你就会在Simulink中找到所需状态和某种控制循环的矩阵。
简而言之,Simulink中的循环最好用开关表示。访问所需状态(x,y,z)矩阵的各行的最简单方法是通过“选择行”块。
例如,您可以将矩阵输入“Select Rows”simulink块“In1”。然后,您可以在“选择行”块的输出和当前状态(x,y,z)之间取差值(使用和块),并将此差值的范数提供给设置为“小于”的比较块。将比较块的结果输入到开关中,以便在比较块的结果小于某个容差时将打开开关。当False时,开关可以设置为0,当True时,开关可以设置为开关的前一个输出值。然后可以使用此开关的输出值来选择“行选择器”上的索引。
您可能会遇到交换机长时间保持不变的情况,在这种情况下,您可以通过使用与TRUE输入的AND门切换来降低容差或创建自己的瞬态开关。