【自学】——动力学建模

Robotics Notes

拉格朗日动力学模型

1. 简介:

拉格朗日动力学的基础是系统能量对系统变量及时间的变分。

对于复杂系统的分析上其要比“牛顿-欧拉”简单。

2. 建模步骤:

1)选择广义坐标

待写

2)计算拉格朗日函数:

首先,定义系统的动能为 K K K,势能为 P P P,然后拉格朗日函数定义为:

L = K − P L=K-P L=KP

对于机器鱼而言,由于重力 G G G等于其浮力 B B B,因此总势能 P = 0 P=0 P=0

3)利用Euler-Lagrange方程写出运动方程

定义 F i F_i Fi为产生线运动的所有外力之和,定义 T i T_i Ti为产生转动的所有外力矩之和,则根据Euler-Lagrange方程可得:

[ F i T i ] = d d t ( ∂ L ∂ q ˙ i ) − ∂ L ∂ q i \begin{bmatrix}F_i\\T_i\end{bmatrix}=\frac{d}{dt}(\frac{\partial L}{\partial \dot q_i})-\frac{\partial L}{\partial q_i} [FiTi]=dtd(q˙iL)qiL

3. 后续分析

3.1 雅可比矩阵(Jacobian Matrix)

雅可比矩阵源自于关节微分运动,主要解决的是:“如何通过各关节的运动变化求出未端的广义速度”,即Jacobian Matrix反映的是:关节变化 Δ Q i \Delta Q_i ΔQi与末端变化 Δ X \Delta X ΔX的关系。

原理上,可以从 X = f ( q ) X=f(q) X=f(q)上推导,即对 X X X的每一项进行全微分,有:

Δ x 1 = ∂ f 1 ∂ q 1 ⋅ Δ q 1 + ∂ f 1 ∂ q 2 ⋅ Δ q 2 + ⋯ + ∂ f 1 ∂ q n ⋅ Δ q n Δ x 2 = ∂ f 2 ∂ q 1 ⋅ Δ q 1 + ∂ f 2 ∂ q 2 ⋅ Δ q 2 + ⋯ + ∂ f 2 ∂ q n ⋅ Δ q n . . . Δ x m = ∂ f m ∂ q 1 ⋅ Δ q 1 + ∂ f m ∂ q 2 ⋅ Δ q 2 + ⋯ + ∂ f m ∂ q n ⋅ Δ q n \begin{aligned} &\Delta x_{1}= \frac{\partial f_{1}}{\partial q_{1}}\cdot\Delta q_{1}+\frac{\partial f_{1}}{\partial q_{2}}\cdot\Delta q_{2}+\cdots+\frac{\partial f_{1}}{\partial q_{n}}\cdot\Delta q_{n} \\ &\Delta x_{2}= \frac{\partial f_{2}}{\partial q_{1}}\cdot\Delta q_{1}+\frac{\partial f_{2}}{\partial q_{2}}\cdot\Delta q_{2}+\cdots+\frac{\partial f_{2}}{\partial q_{n}}\cdot\Delta q_{n} \\ \\ &\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad...\\ \\ &\Delta x_{m}= \frac{\partial f_{m}}{\partial q_{1}}\cdot\Delta q_{1}+\frac{\partial f_{m}}{\partial q_{2}}\cdot\Delta q_{2}+\cdots+\frac{\partial f_{m}}{\partial q_{n}}\cdot\Delta q_{n} \end{aligned} Δx1=q1f1Δq1+q2f1Δq2++qnf1ΔqnΔx2=q1f2Δq1+q2f2Δq2++qnf2Δqn...Δxm=q1fmΔq1+q2fmΔq2++qnfmΔqn

写成矩阵的形式,可表示为:

Δ X = [ ∂ f 1 ∂ q 1 ∂ f 1 ∂ q 2 ⋯ ∂ f 1 ∂ q n ∂ f 2 ∂ q 1 ∂ f 2 ∂ q 2 ⋯ ∂ f 2 ∂ q n ⋮ ⋮ ⋱ ⋮ ∂ f m ∂ q 1 ∂ f m ∂ q 2 ⋯ ∂ f m ∂ q n ] Δ Q = J Δ Q \Delta\mathrm{X}=\begin{bmatrix}\frac{\partial f_1}{\partial q_1}&\frac{\partial f_1}{\partial q_2}&\cdots&\frac{\partial f_1}{\partial q_n}\\\frac{\partial f_2}{\partial q_1}&\frac{\partial f_2}{\partial q_2}&\cdots&\frac{\partial f_2}{\partial q_n}\\\vdots&\vdots&\ddots&\vdots\\\frac{\partial f_m}{\partial q_1}&\frac{\partial f_m}{\partial q_2}&\cdots&\frac{\partial f_m}{\partial q_n}\end{bmatrix}\Delta\mathrm{Q}=J\Delta Q ΔX= q1f1q1f2q1fmq2f1q2f2q2fmqnf1qnf2qnfm ΔQ=JΔQ

其中,可以看出:

① 矩阵的行数 = X X X的项数 = 末端自由度的数量

② 矩阵的列数 = 广义坐标 Q Q Q维数 = 关节数

3.1.1 求解过程

计算连杆间的齐次变换矩阵 i − 1 T i = [ n o a p ] ^{i-1}T_{i}=\begin{bmatrix}n&o&a&p\end{bmatrix} i1Ti=[noap]

计算末端到前述各连杆的变换矩阵 0 T 6 , 1 T 6 , . . . , 5 T 6 ^0T_6,^1T_6 ,..., ^5T_6 0T6,1T6,...,5T6

由坐标系{T}和基坐标系间微分运动的坐标变换关系,计算 T J T_J TJ

T D = [ n x n y a x ( p × n ) x ( p × n ) y ( p × n ) z o x o y o z ( p × 0 ) x ( p × o ) y ( p × o ) z a x a y a z ( p × a ) x ( p × a ) y ( p × a ) z 0 0 0 n x n y a x 0 0 0 o x o y o z 0 0 0 a x a y a z ] D = T J D ^TD=\begin{bmatrix}\mathrm{n}_\mathrm{x}&\mathrm{n}_\mathrm{y}&\mathrm{a}_\mathrm{x}&\left(\mathrm{p}\times\mathrm{n}\right)_\mathrm{x}&\left(\mathrm{p}\times\mathrm{n}\right)_\mathrm{y}&\left(\mathrm{p}\times\mathrm{n}\right)_\mathrm{z}\\\mathrm{o}_\mathrm{x}&\mathrm{o}_\mathrm{y}&\mathrm{o}_\mathrm{z}&\left(\mathrm{p}\times0\right)_\mathrm{x}&\left(\mathrm{p}\times\mathrm{o}\right)_\mathrm{y}&\left(\mathrm{p}\times\mathrm{o}\right)_\mathrm{z}\\\mathrm{a}_\mathrm{x}&\mathrm{a}_\mathrm{y}&\mathrm{a}_\mathrm{z}&\left(\mathrm{p}\times\mathrm{a}\right)_\mathrm{x}&\left(\mathrm{p}\times\mathrm{a}\right)_\mathrm{y}&\left(\mathrm{p}\times\mathrm{a}\right)_\mathrm{z}\\0&0&0&\mathrm{n}_\mathrm{x}&\mathrm{n}_\mathrm{y}&\mathrm{a}_\mathrm{x}\\0&0&0&\mathrm{o}_\mathrm{x}&\mathrm{o}_\mathrm{y}&\mathrm{o}_\mathrm{z}\\0&0&0&\mathrm{a}_\mathrm{x}&\mathrm{a}_\mathrm{y}&\mathrm{a}_\mathrm{z}\end{bmatrix}D=T_JD TD= nxoxax000nyoyay000axozaz000(p×n)x(p×0)x(p×a)xnxoxax(p×n)y(p×o)y(p×a)ynyoyay(p×n)z(p×o)z(p×a)zaxozaz D=TJD

T D = [ R T − R T S ( p ) 0 R T ] D ^TD=\begin{bmatrix}R^T&&-R^TS(p)\\0&&R^T\end{bmatrix}D TD=[RT0RTS(p)RT]D

其中,反对称矩阵 S ( p ) S(p) S(p)定义为:

S ( p ) = [ 0 − p z p y p z 0 p x − p y p x 0 ] \mathrm{S(p)=\begin{bmatrix}0&-p_z&p_y\\p_z&0&p_x\\-p_y&p_x&0\end{bmatrix}} S(p)= 0pzpypz0pxpypx0

写出雅可比矩阵,原则为:

若关节 i i i为直线运动,则取 T J T_J TJ的第3列作为J的第 i i i列;
若关节 i i i为旋转运动,则取 T J T_J TJ的第6列作为J的第 i i i列;

3.1.2 示例

在这里插入图片描述
线速度累加
在这里插入图片描述
在这里插入图片描述
则:
在这里插入图片描述

3.1.3 应用1——静力变换

雅可比矩阵跟机器人的构型有关,机器人的构型发生变化,雅可比矩阵也会发生变化。所以为了实时求得关节力矩,需要实时重新计算雅可比矩阵。

如果已知任一坐标系 B {B} B相对于参考坐标系的齐次变换矩阵:

T = [ n o a p ] T=\begin{bmatrix}n&o&a&p\end{bmatrix} T=[noap]

若再有表用在物体上相对于参考坐标系的力:

F = [ f m ] F=\begin{bmatrix}f\\m\end{bmatrix} F=[fm]

则可以不通过雅可比矩阵得到该力在坐标系 B B B下等效的力和力矩:

B f x = n ⋅ f B f γ = o ⋅ f B f z = a ⋅ f B m x = n ⋅ [ ( f × p ) + m ] B m γ = o ⋅ [ ( f × p ) + m ] B m z = a ⋅ [ ( f × p ) + m ] \begin{aligned} &{}^{B}f_{x}=n\cdot f \\ &{}^{B}f_{\gamma}=o\cdot f \\ &{}^{B}f_{z}=a\cdot f \\ &^Bm_x=n\cdot[(f\times p)+m] \\ &^Bm_\gamma=\boldsymbol{o}\cdot[(\boldsymbol{f}\times\boldsymbol{p})+\boldsymbol{m}] \\ &^Bm_z=a\cdot[(f\times p)+m] \end{aligned} Bfx=nfBfγ=ofBfz=afBmx=n[(f×p)+m]Bmγ=o[(f×p)+m]Bmz=a[(f×p)+m]

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
FPGA自学笔记——设计与验证JMB FPGA(可编程逻辑门阵列)是一种可编程的硬件平台,可以实现各种数字电路的设计与验证。本文将简要介绍使用FPGA自学设计与验证JMB(低功耗、高效能、集成度高的多媒体芯片)的过程。 首先,我们需要了解JMB的功能和特性。JMB是一种面向多媒体应用的芯片,具备低功耗、高效能和高集成度的优势。我们需要详细研究JMB的硬件架构和内部模块,包括处理器核、存储器模块、图像和音频处理模块等。 接下来,我们可以使用FPGA开发板来设计和验证JMB。首先,我们需要熟悉FPGA设计工具,例如Vivado或Quartus等。这些工具提供了图形化界面和硬件描述语言(HDL)等设计方法。我们可以使用HDL编写JMB的功能模块,并将其综合为FPGA可执行的位流文件。 在设计完成后,我们需要验证JMB的功能和性能。我们可以使用仿真工具(例如ModelSim或ISE Simulator)来模拟JMB在不同情况下的行为。通过设计测试程序并运行仿真,我们可以验证JMB的各个模块是否正确地工作,是否满足设计要求。 在验证完成后,我们可以将位流文件下载到FPGA开发板中进行智能芯片的物理实现和测试。通过与外部设备的连接以及相关测试程序的运行,我们可以验证JMB在实际硬件中的功能和性能。 总结起来,学习FPGA设计与验证JMB,我们需要熟悉JMB的硬件架构和内部模块,并使用FPGA开发工具进行设计与验证。通过仿真和物理实现测试,我们可以验证JMB的功能和性能。这些过程需要理论知识和实践经验的结合,希望这些笔记能够给你提供一些参考和指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值