2.2 提高实时性的关键技术
在实际的机器人控制软件设计中,采用几项提高软件实时性的关键技术,他们的引入,可以最大限度地发挥Windows的实时潜能,让上位机更好地按照上节给出的控制方案运行。
(1)进程及线程技术
进程是程序在计算机上的一次执行活动。当运行控制软件,其进程就被启动。
Windows虽然不是实时操作系统,但他的进程管理还是有优先级之分的。高优先级进程优先运行,只有当高优先级进程不运行时,才调度低优先级进程运行。
Windows下进程优先级有:实时、高、高于标准、标准、低于标准、低6个等级,一般程序的默认优先级为“标准”。
这里可以API函数SetPriorityClass()将控制软件进程设置成“实时级”。实时级进程能占用更多的CPU资源,这意味着减少Windows下其他任务对机器人控制的影响。
Windows下,一个进程可以包含若干个线程,这就是多线程技术,他让控制软件可以同时做几件事。
由图3可见,软件中主要有3个线程:线程1完成控制量的发送;线程2完成数据的接收与控制量运算;线程3负责人机交互。
(2)多媒体时钟
多媒体时钟是Windows下精度最高的定时器。在控制软件中,他负责发送控制,线程1就是由多媒体时钟建立的,他使上位完成运算任务后,能把已得的控制量及时发送给下位。
(3)缓冲技术
这是对提高实时共模电感器性效果最显著的技术,他包含预估工作,因为一次发送的多个控制量里有未来量。状态的微分值(一阶、二阶),是估计未来、预先给出控制量的基础。
缓冲区设在下位,只要上位一次给下位的控制量足够充足,即使上位有若干周期不发送控制量给下位也不会影响整体的控制效果。这为上位机争取了更多的时间用于复杂控制算法的解算,也提高了抗干扰的能力。
以缓冲区大小等于4为例,缓冲机制的过程如图4所示,其中T代表控制周期。可以看到即使PC有4个周期不发控制量,DSP依然能够读到所需的控制量(缓冲区中默认的无控制量状态是零)。
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靠读取其缓冲区中的估计控制量工作,但并不影响整体的控制效果。
[DCDC]浪涌电路分析本帖最后由它山之石于2016-3-2919:36编辑
求教图中Y电容的作用。
我有两点疑惑,希望大家指教。
1.当有电容时,CANH和大地之间打1000V浪涌的瞬间,CANH和GND之间电压会是多少?当
高性能、高能效的IGBT随着国际汽油价格的不断攀升,运输成本和所有其他能源生产成本也随着石油价格的上涨而不断增大。同时,人们对电力的需求也达到了一个前所未有的高度。同样糟糕的是,石化产品的价格也不可避免地提高了,导致广大电子
基于双DSP的大功率变流器通用控制平台的设计 摘要:介绍一种大功率变流器通用控制平台,是以TMS320C6713B为浮点算法运算核,TMS320F2812为系统定点控制核的双DSP的控制系统架构。详细分析该系统设计各模块硬件电路和软件程序设计。