阻抗和导纳控制原理

一、柔顺控制

所谓的柔顺控制(导纳或者阻抗控制),应该同时必须考虑“干涉碰撞”问题。

这两种控制的基本控制目的,是希望在执行器(例如机器人电机、液压缸)的作用下,将负载移动到绝对位置为{x_0}的目标位置。但一般在移动的过程中,负载不会顺利移动到{x_0}的位置,而是在中途中,会碰到障碍物。这时,柔顺控制(导纳或者阻抗控制)依据算法不同,修正执行器的行为。最终使执行器停止在一个平衡位置。这个平衡位置不等于{x_0} 。就是说以牺牲位置精度的方式,实现柔性接触(接触力取决于算法),从而对碰撞物体进行保护,反过来也对执行器有所保护。

二、导纳控制

以电液伺服执行器(电液伺服阀控制的液压缸)为例,电机驱动的机器人关节执行器也类似,说明导纳控制的原理

 图1 导纳控制原理图

        导纳控制原理图如图1所示。图中x为负载的当前位置。其余符号在下面的公式中进行说明。图1上部分表示系统的初始状态,下半部分表示液压缸驱动负载触碰到障碍物K(黄色)上,并对其进行了一定程度的挤压。

        当不存在导纳控制时,设定运动目标位置为 x_0 (注意如果移动到x_0的位置,将使绿色负载和黄色障碍物碰撞)。凭借液压缸的输出力,本是足以克服障碍物的弹性,驱动绿色负载移动到预设的x_0的位置。但是这样,可能会造成对障碍物的破坏。如果有了导纳控制,液压缸的目标移动位置就修正为 x_d(t)。这个x_d(t),就是根据导纳控制算法计算出来的。

导纳控制器的计算公式为

M_d\left(\ddot{x}_d-\ddot{x}_0\right)+D_d\left(\dot{x}_d-\dot{x}_0\right)+K_d\left(x_d-x_0\right)=-F_r

式中 F_r——为参考接触力,已知;

{M_d},{D_d},{K_d} ——为导纳控制器参数,已知;

{x_d},{\dot x_d},{\ddot x_d} ——为期望的目标位置、速度和加速度,计算得到。

为了使问题更清晰明确,可以对上式进行简化。当目标位置 {x_0} 不随时间改变时,则有

{\ddot x_0} = {\dot x_0} = 0

那么导纳控制器的公式变为

{M_d}{\ddot x_d} + {D_d}{\dot x_d} + {K_d}\left( {​{x_d} - {x_0}} \right) = - {F_r}

由于{x_0},{M_d},{D_d},{K_d}均为已知,则上式中只有 {x_d} 为未知数。如果已知 {F_r} (设定了参考接触力),则可以求解上式微分方程。这个微分方程的解 {x_d} ,是一个时变函数。控制器内部的位置闭环,将驱动执行机构,不断向着这个目标值{x_d}逼近。最终稳定在 {x_d}\left( {​{t_{end}}} \right)的位置上。在稳定状态时,控制器的力平衡方程变为

{K_d}\left( {​{x_d} - {x_0}} \right) = - {F_{ext}} = - {F_r}

图1的原理图可以整理为图2所示的方框图。

 图2 导纳控制原理方框图

其中,对于导纳控制(图2)来说,系统只有一个位置闭环。控制器根据已知的 {x_0},{F_r} 值,利用导纳控制算法,计算出{x_d} 。注意,这个{x_d} 是一个时间序列,将这个时间序列{x_d}作为目标值,驱动负载运动,直到 x = {x_d} 。

导纳控制框图可以花成如图3所示:

 图3 导纳控制框图

三、阻抗控制

 图4 阻抗控制原理图

        阻抗控制的原理图如图4所示。图4上部分表示系统的初始状态,下半部分表示在阻抗控制的作用下,液压缸驱动负载触碰到障碍物K(黄色)上,并对其进行了一定程度的挤压。

        阻抗控制的目标,也是希望执行器移动到绝对位置为 {x_0}的位置。与导纳控制的不同之处在于,阻抗控制形成的是力闭环。另外,与导纳控制不同,阻抗控制将x,{x_0}作为已知值,来计算期望力{F_d} 。阻抗控制算法的方程式为

{F_d} = {K_d}\left( {x - {x_0}} \right) + {B_d}\left( {\dot x - {​{\dot x}_0}} \right) + {M_d}\left( {\ddot x - {​{\ddot x}_0}} \right)

式中 {F_d}——为阻抗控制的输出期望力,计算得到;

x,\dot x,\ddot x——为当前负载的位置、速度和加速度,已知;

{x_0},{\dot x_0},{\ddot x_0}——为期望的位置、速度和加速度,已知。

        为了理解起来更加简单和方便,我们假设期望位置{x_0}不随时间改变时,则有 {\dot x_0} = {\ddot x_0} = 0。则阻抗控制算法的方程式简化为

{F_d} = {K_d}\left( {x - {x_0}} \right) + {B_d}\dot x + {M_d}\ddot x

则根据x,\dot x,\ddot x,{x_0} (这些均为已知量),可以计算 {F_d}(期望执行器输出的力)。在控制器中力闭环的作用下,不断进行 {F_d} 和 {F_{ext}}(接触力)进行比较,将差值驱动执行器运动,形成力闭环。当 {F_{ext}} = {F_d}时,系统达到了平衡状态。

        上图阻抗控制的原理图可以转化为方框图的形式,如图5所示。

 图5 阻抗控制原理方框图

对于阻抗控制(图5)来说,可以理解系统为两重闭环。内重为力闭环,外重为阻抗控制闭环。控制器根据 {x_0},x值和阻抗控制算法,计算出执行器修正力控制目标为{F_d} ,同时检测与被接触物体的接触力 {F_{ext}} ,两种做差值控制负载运动。当 {F_{ext}} = {F_d} 时,进入稳定状态。

导纳控制框图可以化成如图6所示:

 图6 阻抗控制框图 

### 神经网络在导纳控制中的应用及实现方式 #### 导纳控制的基本原理 导纳控制是一种基于力-位移关系的柔顺运动控制方法,其核心在于通过外部施加的力来调整机器人的位置输出。在这种控制模式下,外环控制器作为力控制器负责计算期望的位置变化,而内部则由位置控制器完成具体动作[^4]。 #### RBF神经网络的特点及其适用性 径向基函数(RBF)神经网络因其强大的非线性映射能力快速的学习速度,在复杂动态系统的建模与控制中表现出色。它能够灵活处理非线性问题并具备良好的泛化性能,这些特性使其成为解决导纳控制系统中不确定性因素的理想工具[^1]。 #### 应用场景分析 当面对具有不确定性时变特性的环境交互情况时,传统的刚体动力学模型可能无法满足精确描述需求。此时引入RBF神经网络可以有效补偿未知参数或者扰动带来的误差影响。例如,在机器人末端执行器接触到物体表面的过程中,如果摩擦系数随时间改变,则可以通过训练好的RBF网络实时估计当前状态下的最佳响应值[^2]。 #### 实现步骤概述 以下是利用RBF神经网络改进传统导纳控制框架的一个典型流程: ```python import numpy as np from sklearn.cluster import KMeans def rbf_network(x, centers, spread): """ 计算输入样本相对于各个中心节点的距离 """ G = np.exp(-np.sum((x[:, None] - centers)**2 / (2*spread**2), axis=2)) return G class AdaptiveImpedanceController: def __init__(self, num_centers=10): self.num_centers = num_centers def train(self, X_train, y_train): kmeans = KMeans(n_clusters=self.num_centers).fit(X_train) centers = kmeans.cluster_centers_ # 初始化权重矩阵W Phi = rbf_network(X_train, centers, 1.0) W = np.linalg.pinv(Phi.T @ Phi) @ Phi.T @ y_train self.centers = centers self.W = W def predict(self, x_test): Phi_test = rbf_network(x_test, self.centers, 1.0) output = Phi_test.dot(self.W) return output ``` 上述代码片段展示了如何构建一个简单的自适应阻抗/导纳控制器原型。其中采用了K均值聚类算法确定隐层神经元的数量以及它们对应的激活区域范围;接着通过对历史数据集进行最小二乘法拟合得到最终权值向量[W]。 #### 结论 综上所述,借助于像RBF这样的前馈型人工神经网络结构形式,不仅可以增强原有单纯依靠物理规律推导出来的经典导纳控制律对外界干扰信号抑制效果的能力,而且还能进一步简化整个闭环体系架构的设计难度。与此同时,由于这类智能化组件本身所固有的高度可塑性特点,也为未来探索更加先进高效的混合型复合控制策略提供了广阔的发展空间[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啵啵鱼爱吃小猫咪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值