3 实验验证
在双臂单腿跳跃起机器人研究的前期,因为理论和技术水平的限制,尚不能马上进入联机调试阶段。但可以设计实验先对控制系统的实时性能作出验证。
实验中:
控制周期为5 ms;缓冲区大小为4(即一次发送四个控制量);实验中所用到的一次矩阵运算,指对某10维方阵的求逆并乘于另一方阵,系调用Matcom C++矩阵库实现。一次运算时间约0.1 ms。矩阵运算的作用是模拟实际控制中进行的运算量。实验数据的采样频率为200 Hz,数据值为信号电压大小,单位为V。
3.1 实验设计
构造一个由输入控制输出的系统,即输出跟随输人的动作,这类似于生物的反射回路,虽然算法简单,但很能说明实时问题。实时性不好,输出就不能很好随动,对于生物就是反应迟钝。所以即使从直观上,这个实验也能反应出系统的实时性好坏。
上位机中插入上百次的矩阵运算用以模拟实际中复杂算法的时耗,从而实验中显示的实时性性能同样也可以说明实际可用的实时性。
实验框图如图5所示。
控制软件的运行界面如图6所示。
3.2 实验结果
实验中,A/D采得的输入信号经CAN通信送给PC,PC由此来计算控制量(随动控制中,输入/输出只是简单的比例关系)再经CAN发送给DSP,最后由DA输出给电机。
实验最终要得到输入与输出曲线,看输出能否很好地跟随输入。具体操作上,DSP在把控制量送给D/A的同时,也回送给PC,所以输入和输出数据都可由PC采集(即图中数据存储按钮对应的功能)。再借助Matlab的曲线绘制功能来对实验结果进行分析。
为显示系统在高负荷运算下的实时性,以下实验均在插入100次矩阵运算(时耗约为10 ms)的情况下进行。
(1)对位置的跟踪
输出等于输入,如图7所示,可以看到他们几乎重合。几处不吻合的地方是因预估造成的,也说明那一刻PC并未顺利将控制量发送给DSP(100次矩阵运算造成的),DSP靠读取其缓冲区中的估计控制量工作,但并不影响整体的控制效果。
如果不启用缓冲,PC一次只发送1个控制量,将得到如图8所示结果。
因为DSP默认的输出是零,控制量的不及时到位,造成’DSP在大部分时间都输出零。这个输出加在电机上,根本无法控制电机随动。
这就是为仆么在前面说缓冲对提高实时性效果最显著,他弥补上位机非实时的弱点,从而增加了系统的实时性。
(2)对速度的跟踪
为了更直观地显示系统响应的快慢,可以让电机来跟踪位移传感器的速度信号。位移传感器不动时电机不转,正向动正转,反向动反转。
如图9所示,为了保护电机,输出值是输入的1/5。可以看到,输出对不同频率变化的输入都很好地随动。说明系统回路具备了较好的实时性。
4 结 语
通过对上下位机模式控制系统的深入分析,发现,在控制同路中,对上位机的要求不是精确定时,而足及时响应,这恰使得在 Wndows平台下开发上位机控制软件成为可能。由此,本文提出一种“DSP定时PC从动”实时控制方式,并引入了缓冲机制等提高实时性的关键技术,保证实际应用中控制系统具有较稳健的实时性能。
本文所设计实验,已经考虑较苛刻的时间及环境闪素,能说明整个系统具有良好的实时性。该实时控制方案的可行,有效降低了双臂单腿跳跃机器人控制系统的开发难度和成本,是关键的阶段性成果。