我正在建立机器人手臂的轨迹,并以矩阵格式计算了自由度的位置,即第一位置是矩阵(x1,y1,z1)的第1行,第二位置是第2行(x2,y2,z2)等等。
我试图在Simulink中一次读取一行,并在到达第一个位置时更改为下一行。但是,我不可能用脚本来解决这个问题。有什么建议吗?
发布于 2014-06-03 15:56:23
如果我正确理解你的问题,你有一个矩阵的期望状态和某种控制回路内的Simulink。
简而言之,Simulink中的循环最好用开关来表示。访问所需状态矩阵(x、y、z)的各个行的最简单方法是通过"Select“块。
例如,您可以将矩阵输入到"Select“simulink块"In1”中。然后,您可以将"Select“块的输出与当前状态(x、y、z)之间的差异(使用sum块),并将此差异的范数输入一个比较块集为”小于“。将比较块的结果输入交换机,以便当比较块的结果小于某种公差时,开关将被抛出。当为False时,可以将开关设置为0,当True时,可以将开关的前一个输出值设置为1+。然后,可以使用此开关的输出值来选择“行选择器”上的索引。
您可能会遇到这样一种情况,即开关将在太长时间内保持为真开关,在这种情况下,您可以通过对真正的输入切换使用一个和门来降低您的容忍度或创建您自己的临时开关。
https://stackoverflow.com/questions/23997777
复制相似问题