浅谈阻抗
- 作者 · 师云雷
- 1905次浏览
- 2017-12-14
- 来源 · 知乎
- 分享
- 字体-+
阻抗控制是工业界设备(包括机器人)的关注的一个重要指标,作者从专业角度理解,阻抗控制背后的思路调整系统的表征惯量、阻尼、和刚度,并分别举例详加说明。
阻抗控制在工业界用的越来越多了,包括协同控制机器人,医疗机器人,服务机器人等,只要是涉及到与人和环境交互的机器人,大多都会考虑阻抗控制,会考虑让机器人操作起来更轻或者更重,或者对外力和能量输出限制等等,我大概写一下自己的理解,方便理解应用,也欢迎各位探讨拍砖。
很早之前就看过hogan三篇,但是其实很懵逼,后来慢慢看不同的书不同的文章,慢慢形成了自己的理解,只要公式不写错,理解可以有很多种,只要能应用到实际中正确指导设计实现自己的设计需求,暂时满足我的需求。
2.阻抗定义
阻抗出现在机器人与环境交互的关系描述上,一般用来描述力和运动之间的关系。
机器人和环境之间的力和运动分别用Vr Fr Ve Fe,下标表示robot 和 environment,其中F被称为力变量(effort variable),V被称为流变量(flow variable),此时F*V表征了瞬时功率,而乘积的积分表示了网络耗散的能量(或者机器人输出给环境的能量)。
力变量和流变量之间的关系可以通过阻抗操作符(impedance operator)来描述,在线性时不变系统可以使用S域来定义阻抗,如下面公式。
结合到实际物理系统,比如说一个质量-弹簧-阻尼系统,它的运动方程是:
需要说明的是,上式的M、B、K均是与环境有作用时才能表现出来。
进行拉式变换得到s域,然后按照阻抗的定义除以V(s)得到
那么如果让系统和外界之间的B和K为0,这个质量弹簧阻尼系统就只剩下了M,也就是质量,他就只表现出质量属性(惯性);如果让M和K为0,则系统只表现了阻尼属性(阻性),同理M和B为零,系统只表现了弹性属性(容性);另外此处稍微质疑一下spong的书:
黄色部分我的理解是系统与环境之间表现了惯性和阻性的作用,而不仅仅是阻性。
阻抗控制背后的思路调整系统的表征惯量、阻尼、和刚度。
3.举例
先举个调整刚度的例子,弹簧末端放置一个质量块,
然后与墙壁之间不放弹簧,但是加一个控制器(距离传感器和驱动器),其控制律为F=K(Xd-X),那么现在就可以说这个物块对外表现出了容性阻抗的属性,阻抗值为K,那么我们调整这个K值就能调整物块的阻抗属性。比如用途就可以是在擦玻璃时减少垂直于玻璃方向的刚度,来控制对玻璃的压力。
再举另外一个惯量的例子,示意图如下:
当控制律u输出为0的时候,那么系统就表现单纯的本身惯性,即
那么如果让控制律输出不为零并设定,根据质量乘以加速度等于合外力,得到。
对比上下两个式子,就发现系统对外表征的质量变了,此处注意:u的箭头方向只是示意,具体u的方向要根据m的符号判定,例如当m<0时,u的方向与F相反,相当于阻力,此时表征惯量变大,反之则表征惯量变小。
还有一个有趣的东西:负表征惯量,即当m<-1时,系统加速度方向与施加力的方向相反,就可以颠覆传统世界观。
再举一个简单的能够改变系统惯量的办法。在物块上安装力传感器,即可以确定与外界(人)的交互力F,将此交互力F定义为外力(忽略掉其他摩擦重力等,可以均用补偿去处理),考虑牛顿第二定律:F=Ma,在算法中自行设定M即可,就可以得到加速度a,然后对a进行积分得到速度,将速度作为指令发给伺服系统做速度闭环控制(假设响应很好),或者两次积分得到位置做位置闭环控制;改变算法中的M值,就可以随意定义系统的惯量。
改变惯量这个功能就可以用在康复或者健身器材设备上,可以轻易的修改参数来调整设备的表征质量,改变锻炼强度;改变阻尼和刚度也可以有类似的用途。
根据上述对改变惯量的计算方式可以知道,理论上改变刚度和阻尼可以利用位置和速度做开环控制,虽然不精确但是大多场合是可用的;但是改变惯量一般都要加力传感器。
另外根据hogan对阻抗和导纳的定义,上面控制系统的控制方法是输入力输出速度(运动),属于导纳控制。不过我感觉不要特别在意这些分类,要去理解物理含义,然后变换成自己能用的控制算法,实现自己想要的接触效果。
当然,从另外一个角度就是自己数学太差,不能用数学推理出公式(我能怎么办我也很绝望啊,我先去啃一啃,啃明白了就来补充)。
本文转载自知乎,作者:师云雷-许三多,如若转载请联系原作者。
参与评论