想象一家公司。老板想知道公司未来会怎么发展,有两个办法:一是派审计团队把每个员工每小时的动线、每台设备的运转都拆解清楚——这就像牛顿力学,需要对每个物体、每个力做逐一分析;二是只盯两本账:总收入(动能)和总支出(势能),用“利润 = 收入 − 支出”这个总规律来预判公司走向——这就是拉格朗日动力学。 对机器人工程师来说,机械臂有好几个关节、好几条连杆。用牛顿方法,每条连杆都要做受力分析,方程多得像山一样。但拉格朗日方法只需要回答三个问题:系统有哪些部件、它们的能量是多少、能量随时间怎么变。回答完这三个问题,运动方程就自动浮现。这就是为什么现代机器人动力学几乎都站在拉格朗日的肩膀上。

岗位关联

掌握拉格朗日动力学,是理解机械臂控制、动力学仿真和轨迹规划的地基。无论将来做机器人控制算法、系统仿真还是运动规划,“能量账本”都是你绕不开的核心工具。

目录
  1. 可视化演示
  2. 能量与坐标:账本的两列
  3. 变分与方程:大自然的“最省”原则
  4. 建模四步法:财务部的一天
  5. 机械臂建模:双连杆的合并报表
  6. 优化实时性:从月报到毫秒级
  7. 工业应用:能量账本的实战
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示摆锤系统能量交换、欧拉-拉格朗日方程推导流程及双连杆机械臂广义坐标动力学,揭示L=T-V在机器人学中的应用。

本节配有交互动效(进入视口后自动加载,约 3KB)。

摆锤能量交换可视化 动能T=½ml²θ̇²随速度增大而增大 势能V=mgl(1-cosθ)随角度增大而增大 L = T - V = ½ml²θ̇² - mgl(1-cosθ) 拉格朗日量L为动能与势能之差,描述系统动力学

能量与坐标:账本的两列

回到那家公司的比喻。动能就像公司的“流水收入”——公司动得越快、规模越大,收入越高;势能像“账上储备”——公司所处的位置决定了它有多少底气。拉格朗日的天才之处在于:他不看员工的具体动作,只盯着“利润”这一个数字。这个“利润”就是拉格朗日量 L,它定义了系统的全部动力学行为。

在机器人学里,我们不用笛卡尔坐标去逐个描述每个质点的位置,而是引入广义坐标 q。广义坐标是一组能完全描述系统位形的最少独立变量。对机械臂来说,最自然的广义坐标就是各关节的转角 θ₁、θ₂。就像记账时你可以选择“按部门”还是“按项目”来归类——选得好,账目就清爽。

完整约束则保证了我们能用少于笛卡尔坐标个数的变量来刻画系统——比如机械臂末端被限制在一个平面上,就少了一个自由度。这就像公司规定“差旅必须走指定平台”,约束越多,需要盯的账目越少。

L(q,q˙)=T(q,q˙)−V(q)L(q, \dot{q}) = T(q, \dot{q}) - V(q)

1. 读作“拉格朗日量 L”:它是系统的“净活力”,等于动能减去势能,就像利润等于收入减支出。

L=T−VL = T - V

2. 动能 T 的写法:动能是广义速度的二次型,由惯性矩阵 M(q) 加权,就像流水规模越大、增速越快,收入越高。

T(q,q˙)=12q˙⊤M(q)q˙T(q, \dot{q}) = \frac{1}{2}\dot{q}^{\top}M(q)\dot{q}

3. 势能 V 的写法:势能只依赖位置,不依赖速度,就像账上储备只取决于仓库位置,和搬运速度无关。

V=V(q)V = V(q)

4. 整体结构:L 综合了位置和速度两个层面的信息,是后面一切推导的起点。

L(q,q˙)=T(q,q˙)−V(q)L(q, \dot{q}) = T(q, \dot{q}) - V(q)

这就是“能量账本”的第一行:不拆解任何一个力,只看总能量。有了这本账,下一步就是追问——这笔账该怎么“平衡”?

变分与方程:大自然的“最省”原则

公司老板发现一个规律:所有高效的团队都倾向于用最少的投入获得最多的产出。物理世界也有类似的“KPI“——最小作用量原理:系统从状态 A 到状态 B,走的路径一定让作用量 S = ∫L dt 取极值。这不是玄学,而是大自然深层的”经济学”。

把“作用量取极值”翻译成数学语言,就是用变分法对 S 求“一阶导数为零”。经过严谨推导,就得到了整个分析力学的核心——欧拉-拉格朗日方程。它就像一个“账本平衡法则”:广义动量随时间的变化率,减去位形变化带来的影响,必须等于外部施加的广义力。

这个方程把“求极值”的全局问题,变成一个逐时刻成立的微分方程。就像老板不需要盯着员工每一秒,只需要在每个月底对照“收入变化率 − 支出变化率 = 利润目标”,就能把握公司脉搏。

ddt∂L∂q˙i−∂L∂qi=τi\frac{d}{dt}\frac{\partial L}{\partial \dot{q}_i} - \frac{\partial L}{\partial q_i} = \tau_i

1. 广义动量 pᵢ:先让拉格朗日量对广义速度求偏导,得到“广义动量”,就像算“流水对增速的敏感系数”。

pi=∂L∂q˙ip_i = \frac{\partial L}{\partial \dot{q}_i}

2. 动量变化率:再对时间求导,表示这个“敏感系数”随时间的变化,是惯性效应的体现。

ddt∂L∂q˙i\frac{d}{dt}\frac{\partial L}{\partial \dot{q}_i}

3. 位形力项:让拉格朗日量对广义坐标求偏导,相当于“位置变动对利润的直接冲击”。

∂L∂qi\frac{\partial L}{\partial q_i}

4. 平衡方程:两者之差等于外部广义力 τᵢ——如果系统不受外力,这个差就是零,系统按“最省”的原则自己演化。

ddt∂L∂q˙i−∂L∂qi=τi\frac{d}{dt}\frac{\partial L}{\partial \dot{q}_i} - \frac{\partial L}{\partial q_i} = \tau_i

到这里,“账本平衡法则”已握在手中。但它还是一张“资产负债表”,要变成可用的机器人模型,还需要一套记账流程——这就是下一节的“建模四步法”。

建模四步法:财务部的一天

财务部处理新业务有一套标准流程:先开户立科目,再记录收支,接着做试算平衡,最后出报表。拉格朗日建模也是同样的四步。

第一步,选广义坐标。找到能唯一描述系统位形的最少变量——机械臂通常选关节角。第二步,算动能势能。写出系统的总动能 T 和总势能 V,这个环节拼的是“能量视角”,不需要画受力图。第三步,代入方程。把 L = T − V 代入欧拉-拉格朗日方程,逐项求偏导。第四步,整理标准式。把所有项展开、合并、写成漂亮的矩阵形式。

这四步就像财务部的“四张凭证”,每一步都有明确的输入和输出。只要能量写对了,方程就错不了;如果方程有问题,回头看能量函数几乎总能找到原因。

ddt∂T∂q˙i−∂T∂qi+∂V∂qi=τi\frac{d}{dt}\frac{\partial T}{\partial \dot{q}_i} - \frac{\partial T}{\partial q_i} + \frac{\partial V}{\partial q_i} = \tau_i

1. 代入拉格朗日量:因为 V 不依赖速度,所以 ∂V/∂q̇ = 0,展开后只剩下三项。

L=T(q,q˙)−V(q)L = T(q,\dot{q}) - V(q)

2. 动能惯性项:动能的 q̇ 偏导再对时间求导,这一项最终会变成 M(q)q̈,对应“惯性阻力”。

ddt∂T∂q˙i\frac{d}{dt}\frac{\partial T}{\partial \dot{q}_i}

3. 动能的位形项:动能也可能显式依赖坐标(比如惯性矩阵随关节角变化),产生科氏力、离心力。

∂T∂qi\frac{\partial T}{\partial q_i}

4. 势能的位形项:势能对坐标的偏导沿等号移到右侧后变成正号,就是重力项 G(q)。

∂V∂qi\frac{\partial V}{\partial q_i}

流程闭环了。但纸上谈兵容易,“记账”记到真实机械臂上会是什么景象?我们来看机器人学中最经典的“双连杆实验田”。

机械臂建模:双连杆的合并报表

一间公司有两条业务线,每条都有自己的收支。机械臂的两条连杆也是如此——但它们共用一个底座、互相牵连,合并报表时必须把“内部往来”抵消掉。

对双连杆机械臂应用四步法:选广义坐标 q = (θ₁, θ₂);写出系统的总动能 T(两条连杆的平动加转动动能之和);写出总势能 V(两条连杆质心高度 × 重力);代入拉格朗日方程整理后,得到机器人动力学的标准形式:M(q)q̈ + C(q, q̇)q̇ + G(q) = τ。

其中 M(q) 是惯性矩阵,它描述关节加速度和力矩之间的惯性关系,且是对称正定矩阵;C(q, q̇)q̇ 是科氏力和离心力项,代表一条连杆运动对另一条连杆的“牵扯”——就像两个部门抢同一笔预算;G(q) 是重力项,永远需要额外力矩去“托住”手臂。

M(q)q¨+C(q,q˙)q˙+G(q)=τM(q)\ddot{q} + C(q, \dot{q})\dot{q} + G(q) = \boldsymbol{\tau}

1. 惯性项 M(q)q̈:M(q) 是 2×2 对称正定矩阵(双连杆时),它随位形变化——机械臂伸直时惯性最大,缩起来时最小。

M(q)q¨M(q)\ddot{q}

2. 科氏-向心力项:C(q, q̇) 矩阵乘以速度向量,捕获“关节联动带来的内耗”,比如一号臂快速转动会“甩动”二号臂。

C(q,q˙)q˙C(q, \dot{q})\dot{q}

3. 重力项 G(q):它等于势能对广义坐标的偏导,是系统“托住自己”所需的静态力矩。

G(q)=∂V∂qG(q) = \frac{\partial V}{\partial q}

4. 完整动力学方程:三项之和等于关节力矩向量 τ——左边是“账本消耗”,右边是“外部注入”。

M(q)q¨+C(q,q˙)q˙+G(q)=τM(q)\ddot{q} + C(q, \dot{q})\dot{q} + G(q) = \boldsymbol{\tau}

合并报表做出来了,但老板发现:报表做得再漂亮,出得太慢也来不及决策。要让“能量账本”在毫秒级的控制周期里跑起来,必须优化记账流程。

优化实时性:从月报到毫秒级

公司大了之后,财务部发现月末结账太慢,老板等不及。机器人也有同样的困境:机械臂控制器的控制周期通常是 1 毫秒(1 kHz),在这个时间窗口里必须算完动力学方程,否则控制就会“卡顿”甚至发散。

解决办法有三个方向。第一,递推算法:经典拉格朗日方程是 O(n⁴) 复杂度,而牛顿-欧拉递推算法把计算降到 O(n),从“重复计算全局矩阵”变成“逐连杆前向递推速度、后向递推力”。第二,参数辨识:M、C、G 里的质量、惯量、质心坐标往往未知,通过实验数据回归出这些参数,让“账本”贴合真实设备。第三,方程简化:利用 M(q) 的对称性缓存、忽略高频小项、查表插值,在精度和速度之间取平衡。

数值仿真也依赖同一个账本:由动力学方程解出 q̈,再对时间积分,就能预测机械臂未来的运动——这就是“账本预测未来”。

q˙k+1=q˙k+q¨kΔt,qk+1=qk+q˙k+1Δt\dot{q}_{k+1} = \dot{q}_k + \ddot{q}_k \Delta t, \qquad q_{k+1} = q_k + \dot{q}_{k+1}\Delta t

1. 速度更新:当前速度加上加速度乘以步长,得到下一步速度,就像“本月流水 + 增速 × 月份数 = 下月流水”。

q˙k+1=q˙k+q¨kΔt\dot{q}_{k+1} = \dot{q}_k + \ddot{q}_k \Delta t

2. 位置更新:用刚算出的新速度更新位置,注意顺序:先更新速度、后更新位置(半隐式欧拉)。

qk+1=qk+q˙k+1Δtq_{k+1} = q_k + \dot{q}_{k+1}\Delta t

3. 加速度来源:把动力学方程变形,用“外部力矩 − 内耗 − 重力”除以惯性矩阵得到加速度。

q¨=M−1(q)[τ−C(q,q˙)q˙−G(q)]\ddot{q} = M^{-1}(q)\left[\boldsymbol{\tau} - C(q,\dot{q})\dot{q} - G(q)\right]

账本终于能在毫秒级实时更新了。能力到位之后,接下来要回答一个工程问题:这套“能量账本”在真实的工业现场到底怎么用?

工业应用:能量账本的实战

工厂里的六轴机械臂每秒钟都在搬货物、焊车架、码托盘,它凭什么能又快又稳?答案藏在动力学模型里。

最核心的应用是计算力矩控制(前馈 + 反馈)。控制器用 M、C、G 模型算出“为了沿期望轨迹运动,每个关节需要多少力矩”,提前发力——这是前馈。模型总有误差(比如抓了不同重量的货),再用位置误差和速度误差做 PD 反馈修正——这是反馈。两者叠加,机械臂才能敏捷又精准。

轨迹规划也离不开动力学:规划器要检查“这条轨迹所需的力矩是否超过电机峰值”,有了动力学模型才能做可行性校验。负载变化时(机械爪抓了重物),参数辨识自动更新 M、C、G 里的质量项。调试诊断时,工程师盯着能量曲线——如果 L 异常漂移,往往意味着关节摩擦异常或模型参数老化。

τ=M(q)q¨d+C(q,q˙)q˙+G(q)+Kpe+Kde˙\boldsymbol{\tau} = M(q)\ddot{q}_d + C(q, \dot{q})\dot{q} + G(q) + K_p \mathbf{e} + K_d \dot{\mathbf{e}}

1. 前馈项:M(q)q̈_d + C(q,q̇)q̇ + G(q) 是模型预测的“名义力矩”,相当于按账本预算提前拨款。

M(q)q¨d+C(q,q˙)q˙+G(q)M(q)\ddot{q}_d + C(q, \dot{q})\dot{q} + G(q)

2. 位置误差项:期望位置减实际位置的偏差,乘以比例增益 K_p,纠正“位置账”上的偏差。

Kpe=Kp(qd−q)K_p \mathbf{e} = K_p (q_d - q)

3. 速度误差项:期望速度减实际速度的偏差,乘以微分增益 K_d,像“阻尼器”防止振荡。

Kde˙=Kd(q˙d−q˙)K_d \dot{\mathbf{e}} = K_d (\dot{q}_d - \dot{q})

4. 完整控制律:前馈保精度,反馈保稳定,两者相加就是发给电机的力矩指令。

τ=M(q)q¨d+C(q,q˙)q˙+G(q)+Kpe+Kde˙\boldsymbol{\tau} = M(q)\ddot{q}_d + C(q, \dot{q})\dot{q} + G(q) + K_p \mathbf{e} + K_d \dot{\mathbf{e}}

从能量账本到控制指令,拉格朗日动力学完成了从理论到产线的闭环。它不是什么高深玄学,而是一套“只算能量、不算力”的优雅记账术——机器人的每一次精准动作,背后都在这本账上写得清清楚楚。

AI 应用场景

工业机械臂的动力学前馈控制

阶段:动力学建模与控制策略设计

解决的问题:传统 PID 控制只在误差出现后才被动修正,当机械臂高速运动时,模型非线性项(科氏力、重力变化)会造成明显跟踪滞后。利用拉格朗日动力学建立 M、C、G 模型,可以在误差出现之前主动补偿所需力矩。

具体案例:某汽车工厂的焊接机械臂需要以 2 m/s 的速度沿复杂焊缝移动。工程师先对机械臂做拉格朗日建模,辨识出各连杆的质量和惯量,然后在控制程序中加入前馈力矩项。实测轨迹跟踪误差从 ±3 mm 缩小到 ±0.3 mm,焊接质量显著提升。

机器人动力学仿真与数字孪生

阶段:仿真环境构建与数据生成

解决的问题:训练强化学习策略或验证运动规划算法时,不可能在真实机器人上反复试错,需要高保真的动力学仿真器。拉格朗日方程是仿真器内核的数学基础。

具体案例:一家物流机器人创业公司在训练机械臂码垛策略时,用拉格朗日动力学搭建了数字孪生模型,把真实机械臂的关节力矩、摩擦、负载都“刻”进仿真器。算法在仿真里训练 100 万步后部署到真机,首次上线成功率即达 92%。

Python 演示

python64 行
import numpy as npfrom scipy.integrate import odeintimport matplotlib.pyplot as plt # 双连杆机械臂参数: kg, mm1, m2 = 1.0, 1.0l1, l2 = 1.0, 1.0g = 9.81  def lagrange_matrices(q, dq):    """从拉格朗日方程得到 M(q), C(q,dq), G(q)"""    q1, q2 = q    dq1, dq2 = dq    c2 = np.cos(q2)    s2 = np.sin(q2)     # 惯性矩阵 M(q): 对称正定    M11 = (m1 + m2) * l1**2 + m2 * l2**2 + 2 * m2 * l1 * l2 * c2    M12 = m2 * l2**2 + m2 * l1 * l2 * c2    M22 = m2 * l2**2    M = np.array([[M11, M12],                  [M12, M22]])     # 科氏/向心矩阵 C(q, dq)    h = m2 * l1 * l2 * s2    C = np.array([[-h * dq2, -h * (dq1 + dq2)],                  [h * dq1, 0.0]])     # 重力项 G(q)    G = np.array([(m1 + m2) * g * l1 * np.cos(q1) + m2 * g * l2 * np.cos(q1 + q2),                  m2 * g * l2 * np.cos(q1 + q2)])    return M, C, G  def dynamics(y, t):    """状态: [q1, q2, dq1, dq2]"""    q = y[:2]    dq = y[2:]    M, C, G = lagrange_matrices(q, dq)    tau = np.zeros(2)  # 无外力, 自由摆动    ddq = np.linalg.solve(M, tau - C.dot(dq) - G)    return np.hstack([dq, ddq])  def main():    y0 = [0.6, 0.4, 0.0, 0.0]    t = np.linspace(0, 10, 400)    y = odeint(dynamics, y0, t)     plt.figure(figsize=(8, 4))    plt.plot(t, y[:, 0], label='theta1')    plt.plot(t, y[:, 1], label='theta2')    plt.xlabel('Time (s)')    plt.ylabel('Angle (rad)')    plt.legend()    plt.grid(True)    plt.tight_layout()    plt.savefig('double_pendulum_sim.png')    plt.show()  if __name__ == '__main__':    main()
目的:用拉格朗日四步法推导出双连杆机械臂的 M/C/G 矩阵,然后数值积分模拟它在无外力下的自由摆动。
  1. def lagrange_matrices(q, dq):对应“建模四步法”:选坐标、算能量、求偏导、整理成 M/C/G 标准式。
  2. M11 = (m1 + m2) * l1**2 + ...惯性矩阵元素来自动能对速度的二次型求导,是“账本”里的惯性账目。
  3. C = np.array([[-h * dq2, -h * (dq1 + dq2)], ...])科氏矩阵由动能对坐标的偏导产生,表示两连杆间的“内耗联动”。
  4. G = np.array([...np.cos(q1)...])重力项等于势能对关节角的偏导,是“托住手臂”所需的静态力矩。
  5. ddq = np.linalg.solve(M, tau - C.dot(dq) - G)核心一步:解线性方程组得到加速度,对应公式 q̈ = M⁻¹(τ − Cq̇ − G)。
  6. y = odeint(dynamics, y0, t)用数值积分让状态随时间演化,实现“账本预测未来运动”。

常见误区

误区我刚学的时候以为 L = T − V 里的 L 是“总能量”,毕竟动能和势能都有了,加起来才是能量,为什么要相减?所以我写方程时总是用 T + V。

正解L 是 T 减 V,不是总能量。总能量是 T + V(而且是守恒量),但拉格朗日量是“作用量”的被积函数,必须取差值才能通过变分法导出正确的运动方程。用“利润 = 收入 − 支出”来记就忘不了——利润不是总营收,但它最能反映经营状况。

为何常见:日常语言里“能量”听起来像“总和”,而减号显得反直觉;再加上不少教材直接抛出定义而不解释“为什么是减号”,初学者很容易记反。

误区讲机器人动力学时到处是 θ₁、θ₂,我以为广义坐标只能选关节角,用直角坐标建模就是错误的。

正解广义坐标的本质是“一组能唯一确定系统位形的独立变量”,关节角只是最常用的选择。你可以选笛卡尔坐标、极坐标甚至更抽象的变量,只要它们独立且完备。选得好,方程就简单;选得差,方程就冗长——这就是“记账科目决定报表复杂度”的道理。

为何常见:教材例题几乎都用角度示例,加上机器人领域习惯用关节角,让“广义坐标 = 角度”这个印象被过度强化。

误区看到方程里有 C(q, q̇)q̇,我以为这是摩擦力或者电机额外给的力,还奇怪它为什么和速度平方有关。

正解科氏力和离心力项是惯性效应,源自你选择的坐标系和广义坐标本身,不是任何外部施力。它出现是因为惯性矩阵随位形变化——就像两个部门共用资源时,一个部门动得快会“带偏”另一个。它在方程左侧,本质是“运动的几何代价”。

为何常见:名字里带“力”字,且它对运动的影响和真实外力很像,容易让人混淆来源。

误区学完拉格朗日方程后我觉得牛顿那套受力分析可以扔了,以后建模只要写能量就行。

正解拉格朗日方法确实自动消去了理想约束力(如关节反力),但外部驱动力 τ 仍然需要你搞清楚——比如电机力矩、摩擦力、负载力。而且写动能 T 时必须知道各连杆的速度分布,这本身就隐含了运动学分析。所以它取代的是“对每个约束力都做受力图”的繁琐,不是取代物理直觉。

为何常见:“不用受力分析”是拉格朗日方法的招牌卖点,初学者容易把“不用逐个拆约束力”夸大成“完全零受力分析”。

面试题

Q1. 拉格朗日函数 L 的正确定义是?

单选题 · easy

  • A.动能与势能之和 T + V
  • B.动能与势能之差 T − V← 正确答案
  • C.动能与势能的乘积 T × V
  • D.动能与势能的比值 T / V

答案:B。拉格朗日量定义为动能减势能 L = T − V,它是作用量的被积函数。用“利润 = 收入 − 支出”类比,和 T + V(总能量)是本质不同的两个量。

Q2. 广义坐标的核心作用是什么?

单选题 · easy

  • A.只能用直角坐标描述系统
  • B.固定为关节角度坐标
  • C.用最少独立变量描述位形← 正确答案
  • D.只能描述平动运动

答案:C。广义坐标是一组能完全确定系统位形的最少独立变量,可以是角度、长度甚至更抽象的物理量。关节角只是机械臂场景下的常用选择,不是唯一选择。

Q3. 欧拉-拉格朗日方程的标准形式是?

单选题 · mid

  • A.d/dt(∂L/∂q̇) − ∂L/∂q = τ← 正确答案
  • B.d/dt(∂L/∂q) − ∂L/∂q̇ = τ
  • C.∂L/∂q̇ − d/dt(∂L/∂q) = 0
  • D.∂L/∂q + ∂L/∂q̇ = τ

答案:A。欧拉-拉格朗日方程先对广义速度求偏导(得广义动量),再对时间求导,再减去对广义坐标的偏导。选项 B 把坐标和速度的偏导位置搞反了,C、D 的运算结构也不对。

Q4. 双连杆机械臂惯性矩阵 M(q) 的性质是?

单选题 · mid

  • A.恒为对角矩阵
  • B.对称正定矩阵← 正确答案
  • C.与坐标无关的常数矩阵
  • D.只包含重力效应

答案:B。动能是速度的二次型,二次型矩阵天然对称;只要系统有真实质量,M(q) 必然正定。它随位形变化(机械臂伸直惯性大),且对角项在外——所以 A、C 错,D 完全不是惯性矩阵的职责。

Q5. 拉格朗日方法相比牛顿方法的主要优势有?

多选题 · mid

  • A.自动消除理想约束力← 正确答案
  • B.不必计算系统动能
  • C.只需写出能量函数← 正确答案
  • D.完全不依赖物理直觉

答案:AC。拉格朗日方法通过广义坐标自动消去理想约束力,且建模只需写动能和势能两个标量函数,不需要逐个做受力分解。但动能必须算(B 错),物理直觉和运动学分析也必须有(D 错)。

Q6. 科氏力项 C(q, q̇)q̇ 的物理来源是?

单选题 · hard

  • A.外部施加的摩擦力
  • B.关节电机输出力矩
  • C.多连杆耦合惯性效应← 正确答案
  • D.重力随位置的变化

答案:C。科氏力和离心力来自惯性矩阵随位形变化而产生的“几何惯性效应”,本质是坐标系的挠曲带来的表观力,不是外力。它会在方程左侧以速度二次项的形式出现。

Q7. 在 M(q)q̈ + C(q,q̇)q̇ + G(q) = τ 中,G(q) 代表?

单选题 · easy

  • A.惯性矩阵
  • B.科氏力矩阵
  • C.重力项向量← 正确答案
  • D.关节摩擦力

答案:C。G(q) 是重力项,由势能对广义坐标求偏导得到。它表示机械臂在某个姿态下“托住自己”所需的静态力矩,是控制中必须前馈补偿的部分。

Q8. 关于拉格朗日建模四步法,正确的说法有?

多选题 · hard

  • A.先选广义坐标,再写动能和势能← 正确答案
  • B.先算势能,再选广义坐标
  • C.代入欧拉-拉格朗日方程求偏导← 正确答案
  • D.只需动能,势能可以省略

答案:AC。正确顺序是选广义坐标 → 算能量 → 代入方程 → 整理标准式。必须先定坐标才能写能量(B 顺序反了),势能也不能省略否则重力项丢失(D 错)。

Q9. 参数辨识在拉格朗日建模中的主要作用是?

单选题 · mid

  • A.把惯性矩阵变成常数矩阵
  • B.估计质量惯量质心参数← 正确答案
  • C.完全消除科氏力项
  • D.替代欧拉-拉格朗日方程

答案:B。M、C、G 里的物理参数(质量、惯量、质心位置)往往未知,参数辨识用实验数据回归出这些数值,让“能量账本”贴合真实设备。它不改变方程结构,也不能消除科氏力。

Q10. 提升机器人动力学计算实时性的合理手段有?

多选题 · hard

  • A.使用牛顿-欧拉递推算法← 正确答案
  • B.预计算或近似化简动力学项← 正确答案
  • C.忽略所有非线性项
  • D.用查表法逼近复杂项← 正确答案

答案:ABD。牛顿-欧拉递推把复杂度从 O(n⁴) 降到 O(n);预计算和查表是工程常用的取舍;合理近似要在精度和速度间权衡。但 C 把所有非线性项全忽略会让模型严重失真,不属于合理优化。