41、基于模型反演与参数识别的机器人运动控制技术

基于模型反演与参数识别的机器人运动控制技术

1. 模型反演在欠驱动系统中的运动规划

在欠驱动、非最小相位系统中,为实现精确的运动规划,可采用动态模型反演的方法。这里所涉及的系统是一个由龙门起重机带动双摆的装置,双摆由一个摆和一个模拟末端执行器的刚体组成,该系统具有 6 个自由度,但仅通过 2 个力来控制平台的平面笛卡尔运动。其目标是让末端执行器的尖端跟踪预定的轨迹。

1.1 系统输出与内部动力学

末端执行器尖端的输出通过一个关于驱动坐标和非驱动坐标的非线性可分离函数来描述,这使得在不进行任何近似的情况下能够精确获得系统的内部动力学。然而,在当前研究的案例中,所选择的受控输出会导致不稳定的内部动力学,为确保可行的控制指令,必须对其进行稳定化处理。

1.2 输出重新定义技术

为了稳定系统的内部动力学,采用了输出重新定义技术。通过对一个应跟踪圆形路径的双摆进行数值应用,评估了该方法的有效性。该方法计算量小且易于实现,使其成为此类多体系统运动规划的一个不错选择。

1.3 系统结构与目标流程

graph LR
    A[龙门起重机] --> B[双摆]
    B --> C[末端执行器]
    D[预定轨迹] --> E[控制算法]
    E --> F[平台运动控制]
    F --> C
    C --> G[轨迹跟踪]

2. 基于定点迭代的自适应控制与参数识别

在机器人及其他控制应用领域,基于模型的方法能够有效利用受控系统动态模型中预先存在的信息,相较于结合统计方法和迭代学习控制的无模型解决方案,具有显著优势,尤其是在控制的初始阶段,无模型方法的精度较低。

2.1 自适应技术的发展

从 90 年代初开始,人们就意识到为机器人开发精确的动态模型几乎是不可能的,因此开发了各种自适应技术来补偿建模误差。早期的自适应逆动力学控制器(AIDC)和 Slotine - Li 自适应机器人控制器使用 Lyapunov 直接方法实现渐近收敛,但由于数值稳定性问题,这些方法学习系统参数的速度较慢,在控制初始阶段精度较低。

2.2 定点迭代自适应控制(FPI)

定点迭代自适应控制(FPI)除了考虑积分跟踪误差、跟踪误差本身及其一阶时间导数外,还反馈了观测运动的二阶时间导数(对于二阶系统)。该方法使用不精确的可用动态模型,能够快速学习,无需识别系统参数,即使在控制的初始阶段也能提供良好的跟踪效果,但对噪声较为敏感。

2.3 与其他控制器的结合

FPI 已成功与 AIDC 和 Slotine - Li 自适应机器人控制器相结合,在这些方法中,使用原始的动态参数调整方法,但将运动学规定的 PID 型反馈项替换为 FPI 自适应控制器的反馈项,实现了缓慢的参数学习和即时精确的轨迹跟踪。

2.4 粒子群优化与 FPI 的结合

此前,粒子群优化(PSO)与 FPI 相结合的研究表明,即使使用最佳识别的近似模型,仍然存在一些建模误差,因此有必要保留基于 FPI 的校正。

2.5 自适应控制技术对比

控制技术 学习速度 初始阶段精度 噪声敏感性 参数识别需求
AIDC 和 Slotine - Li 一般
FPI
FPI + AIDC/Slotine - Li 一般
FPI + PSO 适中 一般

3. 基于线性回归的参数识别方法

为了进一步改进 FPI 自适应控制,尝试用简单的基于线性回归的方法替代粒子群优化(PSO)。以下是具体的参数识别方法。

3.1 机器人运动方程的转换

一般来说,机器人操作器的运动方程可以写成 $H(q)\ddot{q} + h(q, \dot{q}) = Q$ 的形式,其中 $H(q)$ 是正定惯性矩阵,$h(q, \dot{q})$ 是包含各种复杂非线性项(如离心力、科里奥利力、摩擦力和重力)的数组,$Q$ 是控制力。为了进行参数估计,采用类似自适应逆动力学控制器(AIDC)的方法,将每个系数重新定义为一个单独的参数,得到线性关系:
$H(q)\ddot{q} + h(q, \dot{q}) = Y(q, \dot{q}, \ddot{q})\Theta = Q$
其中,$Y \in R^{n×r}$ 是回归矩阵,$n$ 表示系统的自由度,$r$ 是独立动态参数的数量;$\Theta \in R^{r}$ 是包含所有独立动态参数的数组。

3.2 线性回归模型的构建

利用上述线性关系,在每个采样时刻 $t_i$,有 $Q(i) = Y(i)\Theta(i)$。构建简单的线性回归模型:
$\tilde{Y}\Theta(i) =
\begin{bmatrix}
Y(i - m + 1) \
\vdots \
Y(i - 1) \
Y(i)
\end{bmatrix}
\begin{bmatrix}
\Theta(i)_1 \
\Theta(i)_2 \
\vdots \
\Theta(i)_r
\end{bmatrix}
=
\begin{bmatrix}
Q(i) \
Q(i - 1) \
\vdots \
Q(i - m + 1)
\end{bmatrix}
= \tilde{Q}$
其中,$m$ 是用于回归的样本数量,可由用户任意设置;$\tilde{Y} \in R^{k×r}$,$k = nm$;$\tilde{Q} \in R^{k}$,$k = nm$。

3.3 参数估计的求解

求解上述线性方程组并不容易,因为存在许多冗余元素,可能会得到不同的解。为了找到最佳拟合所有点的直线,需要最小化误差:
$H = \sum_{l = 1}^{nm}
\left(
\tilde{Q} l - \sum {s = 1}^{r} \tilde{Y}_{ls}\Theta(i)_s
\right)^2
= \min$
对每个 $\Theta(i)_u$($u = 1, 2, \cdots, r$)求偏导数并令其为 0,可写成矩阵形式:$\tilde{Y}^T\tilde{Q} - \tilde{Y}^T\tilde{Y}\Theta(i) = 0$,从而得到估计参数:
$\Theta(i) = (\tilde{Y}^T\tilde{Y} + \mu I)^{-1}\tilde{Y}^T\tilde{Q}$
在矩阵接近奇异或奇异的情况下,可以使用 Levenberg 和 Marquardt 提出的方法,引入一个小的正参数 $\mu$。

3.4 参数识别流程

graph LR
    A[采集数据] --> B[构建回归矩阵 Y 和控制向量 Q]
    B --> C[构建线性回归模型]
    C --> D[求解参数估计方程]
    D --> E[得到估计参数 Θ]

4. 仿真结果与结论

使用 Julia 语言编写的仿真程序对基于线性回归的参数识别方法与基于定点迭代的控制方案相结合的情况进行了研究,以圆柱形机器人的动态模型为例进行仿真。

4.1 圆柱形机器人的动态方程

圆柱形机器人的动态方程如下:
$\begin{bmatrix}
\theta_0 + \theta_h & 0 & 0 \
0 & M_h & 0 \
0 & 0 & m_a + m_p
\end{bmatrix}
\begin{bmatrix}
\ddot{q}_1 \
\ddot{q}_2 \
\ddot{q}_3
\end{bmatrix}
+
\begin{bmatrix}
(m_a(2q_3 - R) + 2m_pq_3)\dot{q}_3\dot{q}_1 \
M_hg \
-\frac{1}{2}(m_a(2q_3 - R) + 2m_pq_3)
\end{bmatrix}
=
\begin{bmatrix}
Q_1 \
Q_2 \
Q_3
\end{bmatrix}$
其中,$M_h = M_0 + m_a + m_p$ 是水平臂总成的重量,$\theta_0$ 是垂直段的惯性,$\theta_h$ 是水平臂的惯性。

4.2 仿真设置与结果分析

  • 参数估计与轨迹跟踪 :仿真中引入了“精确”和“近似”参数集,使用近似参数计算控制力以跟踪名义轨迹,系统响应则使用精确参数计算。当使用 500 个样本进行参数估计时,如果采样数据不平衡,某些回归矩阵元素接近 0,会导致参数识别模糊。通过应用简单的低通滤波器可以补偿这一影响,尽管平滑后的参数仍存在小偏差,但控制质量显著提高,轨迹跟踪误差在控制器切换到估计参数后几乎降为 0。
  • 减少样本数量的影响 :减少用于参数估计的样本数量可以降低计算需求,但需要确保从系统的不同显著不同的操作点获取数据,以进行精确的线性回归。当采样时间为 0.01s 且使用 50 个样本进行参数估计时,估计参数的偏差略有增加,但自适应控制器能够很好地处理这些偏差,轨迹跟踪误差没有显著变化,同时节省了大量计算资源。

4.3 仿真结果对比

样本数量 参数估计偏差 轨迹跟踪误差 计算资源需求
500 几乎为 0
50 略有增加 无显著变化

综上所述,基于线性回归的参数识别方法可以进一步提高 FPI 控制器在机器人系统中的跟踪质量,并且由于其计算需求显著低于遗传算法(如粒子群优化),有望实现实时应用。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值