<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://yhbcode000.tech/feed.xml" rel="self" type="application/atom+xml" /><link href="https://yhbcode000.tech/" rel="alternate" type="text/html" /><updated>2026-07-28T15:18:53+00:00</updated><id>https://yhbcode000.tech/feed.xml</id><title type="html">Haobo Yang</title><subtitle>AI &amp; Robotics Researcher | Ph.D. Student at SUSTech | Embodied Intelligence, Multimodal Learning, Human-Robot Interaction</subtitle><author><name>Haobo Yang (杨昊波)</name><email>yhbcode000@foxmail.com</email><uri>https://blog.yhbcode000.tech</uri></author><entry><title type="html">A Comprehensive Survey of Robot Manipulation and Motion Control</title><link href="https://yhbcode000.tech/robotics-manipulation-review/" rel="alternate" type="text/html" title="A Comprehensive Survey of Robot Manipulation and Motion Control" /><published>2025-10-09T19:41:47+00:00</published><updated>2025-10-09T19:41:47+00:00</updated><id>https://yhbcode000.tech/robotics-manipulation-review</id><content type="html" xml:base="https://yhbcode000.tech/robotics-manipulation-review/"><![CDATA[<p>A comprehensive survey of robot manipulation and motion control: covering kinematics, dynamics, Jacobians, force closure, imitation learning, and state-space control methods.</p>

<h2 id="引言">引言</h2>

<p>2025年，机器人技术迎来前所未有的发展机遇。随着人工智能、传感器技术和计算能力的不断进步，现代机器人系统正从传统的程序化执行向真正的智能自主系统演进。本文将全面回顾当前机器人技术的核心领域进展，涵盖感知、规划、控制和学习等方面。</p>

<h2 id="1-生物学中的操控能力">1. 生物学中的操控能力</h2>

<h3 id="11-动物的操控能力">1.1 动物的操控能力</h3>

<p>在众多动物类群中，操控能力与智力之间存在显著相关性。拥有特殊附肢（如灵长类的手、大象的长鼻、章鱼的触腕、鸦科鸟类的喙）的物种通常表现出更高级的认知能力。</p>

<p>尽管这种关系并非普遍存在，但复杂操控能力的形成常与更高的智力共同进化，二者在问题解决、工具使用及环境适应中相互强化。</p>

<p><img src="https://image.yhbcode000.tech/1760025631256.png" alt="从左到右依次为使用树枝的黑猩猩、用树干的大象、实验中使用工具的章鱼、以及制作工具的乌鸦。" /></p>

<h3 id="12-最聪明的动物">1.2 最聪明的动物</h3>

<p>以下动物被认为具有高度智能：</p>

<ul>
  <li>黑猩猩（Chimpanzees）</li>
  <li>海豚（Dolphin）</li>
  <li>章鱼（Octopi）</li>
  <li>大象（Elephant）</li>
  <li>红猩猩（Orangutans）</li>
  <li>乌鸦（Crows）</li>
</ul>

<p>值得注意的是，章鱼的神经元约有 60–70% 分布在外周神经节中，而非集中在大脑，这使得其神经系统结构与其他动物截然不同。</p>

<h3 id="13-大脑结构与操控能力">1.3 大脑结构与操控能力</h3>

<p><img src="https://image.yhbcode000.tech/1760025791630.png" alt="脑容量与体重关系图" /></p>

<p><em>图说明：纵轴为脑容量（log brain volume），横轴为体重对数（log body weight）。图中展示了不同动物在脑容量与体重之间的分布关系：从鸽子、鹦鹉、鸦科鸟类、古人类（Australopithecus）、猿类、人类到海豚。章鱼被标注了一个问号，表示其脑结构与其他动物截然不同，尽管拥有高智能，但不遵循相同的脑-体比例规律。</em></p>

<p><img src="https://image.yhbcode000.tech/1760025963502.png" alt="" /></p>

<p>大脑皮层中负责身体不同部位的区域被夸张地拟人化后形成了“脑小人”模型：</p>

<ul>
  <li><strong>感觉小人（Sensory Homunculus）</strong>：表示身体各部位在躯体感觉皮层中所占比例。</li>
  <li><strong>运动小人（Motor Homunculus）</strong>：表示身体各部位在运动皮层中所占比例。</li>
</ul>

<p>这些模型突出了手、嘴唇、舌头等部位在感知与操控中的重要性。</p>

<h2 id="2-刚体运动学基础">2. 刚体运动学基础</h2>

<h3 id="21-旋转矩阵与姿态表示">2.1 旋转矩阵与姿态表示</h3>
<p><img src="https://image.yhbcode000.tech/1760026185139.png" alt="" /></p>

<p>旋转矩阵 $ R \in SO(3) $ 表示刚体的姿态方向，是一个 $ 3 \times 3 $ 的正交矩阵，满足：</p>

\[R^\top R = I, \quad \det(R) = 1\]

<p>在三维空间中，旋转矩阵有 <strong>3 个自由度</strong>，分别对应绕 x、y、z 轴的旋转。</p>

<h3 id="22-位置与速度关系">2.2 位置与速度关系</h3>

\[\dot{p} = v\]

<p>位置向量 $ p \in \mathbb{R}^3 $ 的时间导数是线速度向量 $ v $，表示刚体在惯性坐标系中的平移速度。</p>

<h3 id="23-旋转与角速度关系">2.3 旋转与角速度关系</h3>

<p>旋转矩阵随时间的变化由角速度向量 $ \omega \in \mathbb{R}^3 $ 描述：</p>

\[\dot{R} = R [\omega]\_\times\]

<p>其中 $ [\omega]_\times $ 是由角速度构成的反对称矩阵：</p>

\[[\omega]\_\times =
\begin{bmatrix}
0 &amp; -\omega\_z &amp; \omega\_y \\\\
\omega\_z &amp; 0 &amp; -\omega\_x \\\\
-\omega\_y &amp; \omega\_x &amp; 0
\end{bmatrix}\]

<h3 id="24-刚体位姿与速度扭量">2.4 刚体位姿与速度扭量</h3>

<p>刚体在空间中的位姿由下式定义：</p>

\[g = (R, p) \in SE(3)\]

<p>其中：</p>

<ul>
  <li>$ R $：姿态（Orientation）</li>
  <li>$ p $：位置（Position）</li>
</ul>

<p>线速度 $ v $ 与角速度 $ \omega $ 可组合成扭量向量：</p>

\[V =
\begin{bmatrix}
v \\
\omega
\end{bmatrix}
\in \mathbb{R}^6\]

<p>扭量 $ V $ 描述了刚体在空间中的线性与旋转运动状态。</p>

<p><strong>直观理解</strong></p>

<ul>
  <li><strong>惯性坐标系</strong>：固定的空间参考系。</li>
  <li><strong>刚体坐标系</strong>：随刚体移动的参考系。</li>
  <li>位姿 $ g = (R, p) $：刚体相对于惯性系的位置与姿态。</li>
  <li>扭量 $ V = [v; \omega] $：刚体此刻的速度状态。</li>
</ul>

<h2 id="3-泊松公式">3. 泊松公式</h2>

<p>泊松公式（Poisson Equation）如下：</p>

\[\dot{e}\_i = \omega \times e\_i\]

<p>该公式表明，刚体坐标系中每一个固定轴向量 $ e_i $ 的时间导数等于角速度向量 $ \omega $ 与该轴向量的叉积。</p>

<h3 id="31-反求公式">3.1 反求公式</h3>

<p>通过泊松公式可以反推出角速度向量：</p>

\[\omega = (\dot{e}\_2 \cdot e\_3) e\_1 + (\dot{e}\_3 \cdot e\_1) e\_2 + (\dot{e}\_1 \cdot e\_2) e\_3\]

<p><strong>解释：</strong></p>

<ul>
  <li>$ \dot{e}_i $：坐标轴的变化速率</li>
  <li>$ \omega $：整体角速度</li>
  <li>“·” 表示点积，“×” 表示叉积</li>
</ul>

<p>这个公式是连接旋转矩阵时间导数与角速度的关键桥梁之一。</p>

<h2 id="4-机械臂类型">4. 机械臂类型</h2>

<p><img src="https://image.yhbcode000.tech/1760026315443.png" alt="机械臂类型对比" /></p>

<h3 id="41-串联机械臂serial-manipulator">4.1 串联机械臂（Serial Manipulator）</h3>

<p>典型代表：UR机械臂、协作机器人等。</p>

<ul>
  <li><strong>特点</strong>：关节逐级连接，末端自由度由各关节叠加获得。</li>
  <li><strong>优点</strong>：
    <ul>
      <li>工作空间大</li>
      <li>结构灵活，适合复杂路径规划</li>
    </ul>
  </li>
  <li><strong>缺点</strong>：
    <ul>
      <li>刚度较低</li>
      <li>误差累积</li>
      <li>动态响应较慢</li>
    </ul>
  </li>
</ul>

<h3 id="42-并联机械臂parallel-manipulator">4.2 并联机械臂（Parallel Manipulator）</h3>

<p>典型代表：Delta 机器人、高速分拣机器人。</p>

<ul>
  <li><strong>特点</strong>：末端由多个支链共同驱动，结构闭环。</li>
  <li><strong>优点</strong>：
    <ul>
      <li>刚度高</li>
      <li>质量轻，加速度高，适合高速作业</li>
    </ul>
  </li>
  <li><strong>缺点</strong>：
    <ul>
      <li>工作空间较小</li>
      <li>运动学分析复杂</li>
    </ul>
  </li>
</ul>

<h3 id="43-混合型机械臂hybrid-manipulator">4.3 混合型机械臂（Hybrid Manipulator）</h3>

<p>典型代表：ABB 工业机器人、装配/搬运机器人。</p>

<ul>
  <li><strong>特点</strong>：综合串联与并联结构优点。</li>
  <li><strong>优点</strong>：
    <ul>
      <li>刚度与灵活性平衡</li>
      <li>能在较大空间内保持高负载能力</li>
      <li>实现高速、大范围搬运</li>
    </ul>
  </li>
  <li><strong>缺点</strong>：
    <ul>
      <li>结构复杂，成本高</li>
      <li>控制系统设计难度大</li>
    </ul>
  </li>
</ul>

<h3 id="44-类型对比总结">4.4 类型对比总结</h3>

<table>
  <thead>
    <tr>
      <th>类型</th>
      <th>工作空间</th>
      <th>刚度</th>
      <th>加速度</th>
      <th>应用场景</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>串联型</td>
      <td>⭐⭐⭐⭐</td>
      <td>⭐⭐</td>
      <td>⭐⭐</td>
      <td>协作机器人、灵巧操作</td>
    </tr>
    <tr>
      <td>并联型</td>
      <td>⭐⭐</td>
      <td>⭐⭐⭐⭐</td>
      <td>⭐⭐⭐⭐</td>
      <td>高速分拣、精密装配</td>
    </tr>
    <tr>
      <td>混合型</td>
      <td>⭐⭐⭐</td>
      <td>⭐⭐⭐</td>
      <td>⭐⭐⭐</td>
      <td>工业搬运、喷涂、焊接</td>
    </tr>
  </tbody>
</table>

<p>📌 <strong>一句话总结</strong>：</p>

<blockquote>
  <p>串联系统“灵活但软”，并联系统“刚且快”，混合系统“折中且强”。</p>
</blockquote>

<h2 id="5-人体手臂与机械臂的类比">5. 人体手臂与机械臂的类比</h2>

<p><img src="https://image.yhbcode000.tech/1760026371930.png" alt="" /></p>

<h3 id="51-单自由度旋转关节模型">5.1 单自由度旋转关节模型</h3>

<p>人体的肘关节可抽象为一个典型的单自由度旋转关节（revolute joint），手臂运动等价于两段连杆绕同一旋转轴运动的机械臂模型。</p>

<ul>
  <li>展示手臂在屈伸运动中的姿态变化</li>
  <li>关节角度记为 $ q_1 $</li>
</ul>

<h3 id="52-模型对应关系">5.2 模型对应关系</h3>

<table>
  <thead>
    <tr>
      <th>人体部位</th>
      <th>机械臂模型元素</th>
      <th>含义</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>肩到肘的上臂</td>
      <td>第一根连杆（Link 1）</td>
      <td>固定部分</td>
    </tr>
    <tr>
      <td>肘到手的前臂</td>
      <td>第二根连杆（Link 2）</td>
      <td>运动部分</td>
    </tr>
    <tr>
      <td>肘关节</td>
      <td>旋转关节</td>
      <td>角度变化 $ q_1 $</td>
    </tr>
    <tr>
      <td>肘关节旋转轴</td>
      <td>$ z_0 $</td>
      <td>关节旋转方向</td>
    </tr>
  </tbody>
</table>

<h3 id="53-运动学解释">5.3 运动学解释</h3>

<p>旋转关节的基本运动公式为：</p>

\[\mathbf{R}(q\_1) =
\begin{bmatrix}
\cos q\_1 &amp; -\sin q\_1 &amp; 0 \\
\sin q\_1 &amp; \cos q\_1 &amp; 0 \\
0 &amp; 0 &amp; 1
\end{bmatrix}\]

<ul>
  <li>当角度 $ q_1 $ 改变时，前臂位置随之旋转</li>
  <li>这是刚体旋转运动的典型形式</li>
  <li>是 DH 参数法的基础步骤之一</li>
</ul>

<p><img src="https://image.yhbcode000.tech/1760026427920.png" alt="人体手臂与机械臂类比" /><br />
<img src="https://image.yhbcode000.tech/1760026441913.png" alt="人体手臂与机械臂类比" /><br />
<img src="https://image.yhbcode000.tech/1760026472413.png" alt="人体手臂与机械臂类比" /></p>

<h2 id="6-关节坐标与工作空间">6. 关节坐标与工作空间</h2>

<h3 id="61-关节空间joint-space">6.1 关节空间（Joint Space）</h3>

<p>符号：
\(q\_i, \ \theta\_i, \ d\_i\)</p>

<p>这些变量描述机械臂各关节的配置状态：</p>

<table>
  <thead>
    <tr>
      <th>变量</th>
      <th>含义</th>
      <th>对应类型</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>$ q_i $</td>
      <td>关节变量</td>
      <td>通用符号</td>
    </tr>
    <tr>
      <td>$ \theta_i $</td>
      <td>旋转角度</td>
      <td>旋转关节（Revolute）</td>
    </tr>
    <tr>
      <td>$ d_i $</td>
      <td>线位移</td>
      <td>移动关节（Prismatic）</td>
    </tr>
  </tbody>
</table>

<p>由所有 $ q_i $ 组成的向量 $ \mathbf{q} = [q_1, q_2, …, q_n]^\top $ 定义了关节空间中的姿态。</p>

<h3 id="62-工作空间workspace">6.2 工作空间（Workspace）</h3>

<p>符号：
\(p\_i(x, y, z), \quad R\_i(p\_i, p\_j, p\_k)\)</p>

<p>这些变量描述机械臂末端在三维空间中的位置与姿态：</p>

<table>
  <thead>
    <tr>
      <th>变量</th>
      <th>含义</th>
      <th>对应</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>$ p_i(x,y,z) $</td>
      <td>末端位置向量</td>
      <td>位移</td>
    </tr>
    <tr>
      <td>$ R_i $</td>
      <td>旋转矩阵</td>
      <td>姿态</td>
    </tr>
  </tbody>
</table>

<h3 id="63-正运动学关系">6.3 正运动学关系</h3>

\[f: \text{Joint Space} \rightarrow \text{Workspace}\]

<p>即：
\((p\_i, R\_i) = f(q\_1, q\_2, \dots, q\_n)\)</p>

<p>这就是<strong>正运动学（Forward Kinematics）</strong>——将关节变量转换为末端执行器的位置和姿态。</p>

<h3 id="64-图示说明">6.4 图示说明</h3>

<p>将人体上肢建模为多关节系统（肩、肘、腕），对应机械臂的多自由度结构。</p>

<ul>
  <li>$ O_0 $：基坐标系</li>
  <li>$ a, b, c $：表示上臂、前臂、手部的连杆长度</li>
</ul>

<p>展示了一个五关节机械臂的关节坐标系标定过程，各关节角度 $ \theta_1, \theta_2, \dots, \theta_5 $ 对应人体手臂的旋转自由度。</p>

<p><img src="https://image.yhbcode000.tech/1760026608614.png" alt="关节坐标与工作空间" /></p>

<h3 id="65-总结">6.5 总结</h3>

<table>
  <thead>
    <tr>
      <th>空间类型</th>
      <th>坐标符号</th>
      <th>含义</th>
      <th>示例</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>关节空间</td>
      <td>$ q_i, \theta_i, d_i $</td>
      <td>机械臂关节的旋转/位移</td>
      <td>肩关节角度、肘关节角度</td>
    </tr>
    <tr>
      <td>工作空间</td>
      <td>$ p_i(x,y,z), R_i $</td>
      <td>末端执行器的位置与姿态</td>
      <td>手部在空间中的位置与方向</td>
    </tr>
  </tbody>
</table>

<p>📌 <strong>一句话总结</strong>：</p>

<blockquote>
  <p>关节空间描述“如何动”（内部角度变化），<br />
工作空间描述“动到哪”（外部位置姿态）。</p>
</blockquote>

<h2 id="7-力闭合force-closure">7. 力闭合（Force Closure）</h2>

<p><img src="https://image.yhbcode000.tech/1760028721563.png" alt="1760028721563.png" /></p>

<h3 id="71-定义">7.1 定义</h3>

<p>当机械手（如手指或夹爪）与物体的接触能产生<strong>任意方向的力和力矩（wrench）</strong>，使物体能够抵抗所有外部干扰并保持稳定时，我们称该抓取具有<strong>力闭合（Force Closure）</strong>。</p>

<h3 id="72-特性说明-️">7.2 特性说明 ✳️</h3>

<ul>
  <li>抓取可<strong>抵抗任意外力与外力矩（external forces and torques）</strong>；</li>
  <li>物体在受到任何方向的扰动时仍<strong>不会移动</strong>；</li>
  <li>是否具备力闭合取决于：
    <ul>
      <li><strong>接触点的位置（contact locations）</strong>；</li>
      <li><strong>接触点的摩擦特性（friction properties）</strong>。</li>
    </ul>
  </li>
</ul>

<h3 id="73-直观理解-">7.3 直观理解 🧠</h3>

<p>力闭合意味着：</p>

<blockquote>
  <p>“无论外界怎么推、拉、扭，物体都牢牢固定。”</p>
</blockquote>

<p>图中展示了一个三指机械手包裹抓取球体的情况，
各接触点通过摩擦与力矩共同形成稳定闭合，使物体完全受控。</p>

<h3 id="74-摩擦锥friction-cones">7.4 摩擦锥（Friction Cones）</h3>

<p>在每个接触点处，接触力的方向受<strong>摩擦模型</strong>限制，只能存在于摩擦锥内部。<br />
若要实现<strong>力闭合抓取（force closure grasp）</strong>，<br />
所有接触点的摩擦锥所覆盖的力方向组合，<br />
必须能够<strong>完全张成六维力矩空间（6D wrench space）</strong>：<br />
即既能产生任意方向的<strong>力（force）</strong>，又能产生任意方向的<strong>力矩（torque）</strong>。</p>

<h3 id="75-力闭合-vs-形闭合force-vs-form-closure">7.5 力闭合 vs. 形闭合（Force vs. Form Closure）</h3>

<table>
  <thead>
    <tr>
      <th>类型</th>
      <th>特征</th>
      <th>摩擦</th>
      <th>是否可移动</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>形闭合（Form closure）</strong></td>
      <td>仅靠几何约束锁定物体（被卡住）</td>
      <td>不需要摩擦</td>
      <td>不能移动</td>
    </tr>
    <tr>
      <td><strong>力闭合（Force closure）</strong></td>
      <td>通过摩擦 + 接触力共同作用</td>
      <td>需要摩擦</td>
      <td>不会移动</td>
    </tr>
  </tbody>
</table>

<p>📘 <strong>总结：</strong><br />
<strong>形闭合</strong>靠“几何限制”，<strong>力闭合</strong>靠“摩擦+力平衡”。</p>

<h3 id="76-最小接触数minimal-contacts">7.6 最小接触数（Minimal Contacts）</h3>

<ul>
  <li><strong>二维 (2D)</strong>：只需 <strong>2 个带摩擦的接触点</strong> 即可实现力闭合。</li>
  <li><strong>三维 (3D)</strong>：至少需要
    <ul>
      <li><strong>4 个带摩擦的接触点</strong>，或</li>
      <li><strong>7 个无摩擦的接触点</strong>，<br />
才能保证对物体施加任意 6 维方向的力与力矩。</li>
    </ul>
  </li>
</ul>

<h3 id="77-为什么是-4-而不是-3为什么是-7-而不是-6">7.7 为什么是 4 而不是 3？为什么是 7 而不是 6？</h3>

<ul>
  <li>在三维空间中，物体具有 <strong>6 个自由度（3 平移 + 3 旋转）</strong>。</li>
  <li>要实现力闭合，接触力系统必须能在 <strong>6D wrench 空间</strong> 内产生任意方向的组合。</li>
</ul>

<p><strong>当接触点太少（如 3 个）时：</strong></p>
<ul>
  <li>虽能固定位置，但无法对抗任意旋转扰动；</li>
  <li>力矩空间未被完全张成。</li>
</ul>

<p><strong>4 个带摩擦点：</strong></p>
<ul>
  <li>每点摩擦锥提供 3 个独立方向分量（切向 + 法向），</li>
  <li>足以覆盖 6D wrench 空间。</li>
</ul>

<p><strong>无摩擦情形：</strong></p>
<ul>
  <li>每接触仅能产生法向力（1 维），</li>
  <li>因此至少要 <strong>7 个接触点</strong> 才能张满 6 维空间。</li>
</ul>

<h3 id="78-总结-">7.8 总结 ✅</h3>

<table>
  <thead>
    <tr>
      <th>维度</th>
      <th>摩擦</th>
      <th>最少接触数</th>
      <th>原因</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>2D</td>
      <td>有摩擦</td>
      <td>2</td>
      <td>能抵抗平面内所有力与转矩</td>
    </tr>
    <tr>
      <td>3D</td>
      <td>有摩擦</td>
      <td>4</td>
      <td>能覆盖 6D 力矩空间</td>
    </tr>
    <tr>
      <td>3D</td>
      <td>无摩擦</td>
      <td>7</td>
      <td>仅靠法向力也能张满 6D 空间</td>
    </tr>
  </tbody>
</table>

<h2 id="8-刚体动力学rigid-body-dynamics">8. 刚体动力学（Rigid Body Dynamics）</h2>

<p><img src="https://image.yhbcode000.tech/1760028989739.png" alt="1760028989739.png" /></p>

<h3 id="81-牛顿欧拉方程newtoneuler-equations">8.1 牛顿–欧拉方程（Newton–Euler Equations）</h3>

<p>用于描述刚体（如机械臂连杆）的<strong>平动与转动动力学</strong>，<br />
由 <strong>牛顿定律（平动）</strong> 与 <strong>欧拉方程（转动）</strong> 组合而成。</p>

<h4 id="️-平动方程translation--newton">⚙️ 平动方程（Translation – Newton）</h4>

\[m \ddot{\mathbf{r} }\_G = \sum \mathbf{F}\_{\text{ext} }\]

<ul>
  <li>$ m $：刚体质量</li>
  <li>$ \ddot{\mathbf{r} }_G $：质心加速度</li>
  <li>$ \sum \mathbf{F}_{\text{ext} } $：外力总和</li>
</ul>

<p>👉 表示：<strong>外力 = 质量 × 加速度</strong></p>

<h4 id="-转动方程rotation--euler">🔁 转动方程（Rotation – Euler）</h4>

\[I\_G \dot{\omega} + \omega \times (I\_G \omega) = \sum \tau\_{G,\mathrm{ext} }\]

<ul>
  <li>$ \mathbf{I}_G $：质心处惯性张量</li>
  <li>$ \boldsymbol{\omega} $：角速度</li>
  <li>$ \sum \boldsymbol{\tau}_{G,\text{ext} } $：外力矩总和</li>
</ul>

<p>👉 表示：<strong>角动量的变化率 = 外力矩</strong></p>

<h3 id="82-图示符号说明">8.2 图示符号说明</h3>

<table>
  <thead>
    <tr>
      <th>符号</th>
      <th>含义</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>$ G_i $</td>
      <td>连杆 $ i $ 的质心</td>
    </tr>
    <tr>
      <td>$ O_i $</td>
      <td>连杆坐标系原点</td>
    </tr>
    <tr>
      <td>$ f_{i,eq}, \ \tau_{i,eq} $</td>
      <td>从相邻连杆传递的等效力与力矩</td>
    </tr>
    <tr>
      <td>$ V_i, \ \omega_i $</td>
      <td>线速度与角速度</td>
    </tr>
    <tr>
      <td>$ I_G $</td>
      <td>惯性矩阵</td>
    </tr>
    <tr>
      <td>$ f_{i,c}, \ \tau_{i,c} $</td>
      <td>关节处反作用力与力矩</td>
    </tr>
  </tbody>
</table>

<h3 id="83-物理意义总结">8.3 物理意义总结</h3>

<table>
  <thead>
    <tr>
      <th>作用</th>
      <th>方程</th>
      <th>描述</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>平动</td>
      <td>$ m \ddot{\mathbf{r} }_G = \sum \mathbf{F}_{\text{ext} } $</td>
      <td>合力决定质心加速度</td>
    </tr>
    <tr>
      <td>转动</td>
      <td>$ \mathbf{I}_G \dot{\boldsymbol{\omega} } + \boldsymbol{\omega} \times (\mathbf{I}_G \boldsymbol{\omega}) = \sum \boldsymbol{\tau}_{\text{ext} } $</td>
      <td>合力矩决定角加速度</td>
    </tr>
  </tbody>
</table>

<p>📘 <strong>结论：</strong><br />
牛顿–欧拉方程是机械臂动力学的核心，用于逐连杆计算<strong>力与力矩传播</strong>，<br />
并推导机器人动力学方程。</p>

<h2 id="9-非模型控制方法non-model-based-control">9. 非模型控制方法（Non-model Based Control）</h2>

<p><img src="https://image.yhbcode000.tech/1760029107501.png" alt="1760029107501.png" /></p>

<h3 id="91-概念">9.1 概念</h3>

<p>非模型控制依赖<strong>数据与学习</strong>，而非精确的物理建模。<br />
特别适用于 <strong>软体机器人</strong> 或 <strong>复杂非线性系统</strong>，这些系统难以建立解析模型但可通过数据观测。</p>

<h3 id="92-案例rnn--运动学混合控制器">9.2 案例：RNN + 运动学混合控制器</h3>

<p><strong>论文来源：</strong> <em>IEEE RA-L, IROS 2024</em><br />
<strong>研究团队：</strong> EPFL Dr. Josie Hughes（博士生 Zixi Chen）</p>

<p>该方法结合 <strong>循环神经网络 (RNN/LSTM)</strong> 与 <strong>运动学控制</strong>，<br />
实现对复杂系统的在线控制。</p>

<p><strong>结构组成：</strong></p>

<ol>
  <li><strong>输入：</strong> 期望轨迹 (desired trajectory)</li>
  <li><strong>核心模块：</strong>
    <ul>
      <li><strong>LSTM 模型：</strong> 学习动态与非线性行为</li>
      <li><strong>运动学模块：</strong> 保证几何约束与可达性</li>
    </ul>
  </li>
  <li><strong>输出：</strong> 加权融合后的控制信号（位置 + 驱动），直接作用于机器人系统。</li>
</ol>

<h3 id="93-特点与优势">9.3 特点与优势</h3>

<table>
  <thead>
    <tr>
      <th>特性</th>
      <th>表现</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>开环精度高</strong></td>
      <td>无需复杂建模即可精确轨迹跟踪</td>
    </tr>
    <tr>
      <td><strong>大工作空间</strong></td>
      <td>能实现柔顺大范围动作</td>
    </tr>
    <tr>
      <td><strong>高顺应性（Compliance）</strong></td>
      <td>自然适应外界干扰与接触</td>
    </tr>
    <tr>
      <td><strong>在线学习能力</strong></td>
      <td>LSTM 动态调整控制策略，提高鲁棒性</td>
    </tr>
  </tbody>
</table>

<p>📘 <strong>总结：</strong><br />
非模型控制将<strong>学习算法与运动学</strong>结合，<br />
使机器人在复杂环境中实现高精度与高柔顺度控制，<br />
无需完整动力学方程。</p>

<h2 id="10-模仿学习imitation-learning--行为克隆">10. 模仿学习（Imitation Learning / 行为克隆）</h2>

<p><img src="https://image.yhbcode000.tech/1760029177785.png" alt="1760029177785.png" /></p>

<h3 id="101-核心概念">10.1 核心概念</h3>

<p>模仿学习通过<strong>观察人类示范</strong>让机器人学会任务行为，<br />
无需显式建模环境或定义奖励函数。</p>

<p>机器人学习一个策略 $ \pi(a|s) $，<br />
使其在相似状态 $ s $ 下执行与人类相同的动作 $ a $。</p>

<h3 id="102-数据来源-">10.2 数据来源 📺</h3>

<ul>
  <li><strong>YouTube / HowTo 视频：</strong> 从人类教学视频中提取动作序列；</li>
  <li><strong>Ego4D, R3M, MVP, Voltron（Meta, Stanford, Berkeley）：</strong><br />
通过<strong>第一人称视角数据</strong>学习手部操作与视觉语义。</li>
</ul>

<h3 id="103-现实世界应用-">10.3 现实世界应用 🤖</h3>

<ul>
  <li><strong>ArmFarm, RT1, RT2</strong>（Google, DeepMind）：<br />
大规模真实机械臂模仿数据集。</li>
  <li><strong>Open-X Embodiment / DROID：</strong><br />
全球 20+ 机构合作，涵盖：
    <ul>
      <li>22 种机器人形态</li>
      <li>500+ 技能</li>
      <li>60+ 数据集</li>
    </ul>
  </li>
</ul>

<h3 id="104-仿真环境-">10.4 仿真环境 🧩</h3>

<ul>
  <li><strong>ManiSkill, Orbit, Isaac Sim</strong>（UCSD, NVIDIA）：<br />
高保真仿真用于任务学习与评测。</li>
  <li><strong>RoboTurk, MimicGen</strong>（Stanford, NVIDIA）：<br />
基于人类遥操作采集演示数据，
支持<strong>模仿学习 + 强化学习</strong>联合训练。</li>
</ul>

<h3 id="105-一句话总结-">10.5 一句话总结 🧠</h3>

<blockquote>
  <p>模仿学习让机器人“看人做事”后，学会“自己动手”。<br />
数据可来自<strong>视频、真实操作或仿真演示</strong>，<br />
是通向通用机器人智能的重要路径之一。</p>
</blockquote>

<p><strong>来源：</strong> Dr. Dieter Fox, NVIDIA</p>

<h2 id="11-机器人微分运动学与雅可比矩阵differential-kinematics-and-jacobian">11. 机器人微分运动学与雅可比矩阵（Differential Kinematics and Jacobian）</h2>

<h3 id="111-微分运动学基本关系">11.1 微分运动学基本关系</h3>

<p>在机器人学中，<strong>微分运动学（Differential Kinematics）</strong>描述了<strong>关节速度</strong>与<strong>末端执行器线速度/角速度</strong>之间的映射关系。</p>

<p>数学表达为：</p>

\[\mathbf{v} = \mathbf{J(q)} \cdot \dot{\mathbf{q} }\]

<p>其中：</p>

<table>
  <thead>
    <tr>
      <th>符号</th>
      <th>含义</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>$\mathbf{q} \in \mathbb{R}^n$</td>
      <td>关节变量（Joint Angles / Displacements）</td>
    </tr>
    <tr>
      <td>$\dot{\mathbf{q} } \in \mathbb{R}^n$</td>
      <td>关节速度（Joint Velocities）</td>
    </tr>
    <tr>
      <td>$\mathbf{v} \in \mathbb{R}^6$</td>
      <td>末端速度（Twist: [Linear; Angular]）</td>
    </tr>
    <tr>
      <td>$\mathbf{J(q)} \in \mathbb{R}^{6 \times n}$</td>
      <td>雅可比矩阵（Jacobian Matrix）</td>
    </tr>
  </tbody>
</table>

<h3 id="112-雅可比矩阵的物理意义">11.2 雅可比矩阵的物理意义</h3>

<p><img src="https://image.yhbcode000.tech/1760036574625.png" alt="1760036574625.png" /></p>

<p>雅可比矩阵的每一列，表示当单个关节以单位角速度运动时，末端线速度和角速度的贡献。</p>

<blockquote>
  <p><strong>Jacobian 是“关节空间 → 工作空间”速度映射的核心桥梁。</strong></p>
</blockquote>

<ul>
  <li>上半部分（蓝框）表示<strong>线速度</strong>对关节速度的映射；</li>
  <li>下半部分（红框）表示<strong>角速度</strong>对关节速度的映射。</li>
</ul>

<h3 id="113-旋转部分的雅可比矩阵rotational-part-of-jacobian">11.3 旋转部分的雅可比矩阵（Rotational Part of Jacobian）</h3>

<p>旋转部分由各关节的角速度累积贡献组成：</p>

\[{}^{0}\omega\_{6/wrt\,0} =
{}^{0}\mathbf{R}\_1 \hat{\mathbf{z} }\_1 \dot{q}\_1 +
{}^{0}\mathbf{R}\_2 \hat{\mathbf{z} }\_2 \dot{q}\_2 +
{}^{0}\mathbf{R}\_3 \hat{\mathbf{z} }\_3 \dot{q}\_3 +
{}^{0}\mathbf{R}\_4 \hat{\mathbf{z} }\_4 \dot{q}\_4 +
{}^{0}\mathbf{R}\_5 \hat{\mathbf{z} }\_5 \dot{q}\_5 +
{}^{0}\mathbf{R}\_6 \hat{\mathbf{z} }\_6 \dot{q}\_6\]

<p>其中：</p>

<ul>
  <li>$\hat{\mathbf{z} }_i$：第 $i$ 个关节的旋转轴方向</li>
  <li>${}^{0}\mathbf{R}_i$：从第 $i$ 坐标系到基坐标系的旋转矩阵</li>
  <li>$\dot{q}_i$：关节角速度</li>
</ul>

<h3 id="114-雅可比矩阵的结构分块">11.4 雅可比矩阵的结构分块</h3>

<p>完整的雅可比矩阵可分为两部分：</p>

\[\mathbf{J} =
\begin{bmatrix}
\mathbf{J}\_v \\\\
\mathbf{J}\_\omega
\end{bmatrix}\]

<table>
  <thead>
    <tr>
      <th>部分</th>
      <th>含义</th>
      <th>对应方程</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>$\mathbf{J}_v$</td>
      <td>线速度部分</td>
      <td>$\dot{\mathbf{p} } = \mathbf{J}_v \dot{\mathbf{q} }$</td>
    </tr>
    <tr>
      <td>$\mathbf{J}_\omega$</td>
      <td>角速度部分</td>
      <td>$\boldsymbol{\omega} = \mathbf{J}_\omega \dot{\mathbf{q} }$</td>
    </tr>
  </tbody>
</table>

<h3 id="115-雅可比矩阵的应用">11.5 雅可比矩阵的应用</h3>

<table>
  <thead>
    <tr>
      <th>应用场景</th>
      <th>说明</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>运动学控制</strong></td>
      <td>根据目标末端速度求解所需关节速度： $\dot{\mathbf{q} } = \mathbf{J}^{-1}\mathbf{v}$</td>
    </tr>
    <tr>
      <td><strong>力控制</strong></td>
      <td>雅可比矩阵可将力/力矩从末端映射到关节空间： $\boldsymbol{\tau} = \mathbf{J}^T \mathbf{F}$</td>
    </tr>
    <tr>
      <td><strong>奇异性分析</strong></td>
      <td>当 $\det(\mathbf{J}\mathbf{J}^T) = 0$ 时，系统失去某些方向的运动能力</td>
    </tr>
    <tr>
      <td><strong>冗余度控制</strong></td>
      <td>若 $n &gt; 6$，使用伪逆 $\mathbf{J}^+$ 实现最小范数或二级优化控制</td>
    </tr>
  </tbody>
</table>

<h3 id="116-直观理解-">11.6 直观理解 🧩</h3>

<ul>
  <li>雅可比矩阵像一个“齿轮系”：<br />
每个关节转动一点，末端的线速度和角速度都被“放大或缩小”地传递。</li>
  <li>它连接了：
    <ul>
      <li><strong>运动学（位置）</strong></li>
      <li><strong>动力学（力）</strong></li>
      <li><strong>控制（反馈与规划）</strong></li>
    </ul>
  </li>
</ul>

<p>📘 <strong>一句话总结：</strong></p>

<blockquote>
  <p>雅可比矩阵是机器人控制的“核心导数”，<br />
它连接了几何、运动与力学的三个世界。</p>
</blockquote>

<h2 id="12-雅可比逆与运动控制inverse-jacobian-and-motion-control">12. 雅可比逆与运动控制（Inverse Jacobian and Motion Control）</h2>

<h3 id="121-从目标速度到关节速度的反向映射">12.1 从目标速度到关节速度的反向映射</h3>

<p>在前一节中，我们看到雅可比矩阵用于描述<strong>关节速度 → 末端速度</strong>的正向映射：</p>

\[\mathbf{v} = \mathbf{J(q)} \, \dot{\mathbf{q} }\]

<p>若已知末端执行器的速度 $\mathbf{v}$，我们希望反推出各关节应当以何种速度运动以实现该目标，则可使用<strong>雅可比逆（Inverse Jacobian）</strong>：</p>

\[\dot{\mathbf{q} } = \mathbf{J}^{-1}(\mathbf{q}) \, \mathbf{v}\]

<blockquote>
  <p>即：通过逆雅可比矩阵，将末端速度映射回关节速度空间。</p>
</blockquote>

<h3 id="122-位置控制position-control">12.2 位置控制（Position Control）</h3>

<p><img src="https://image.yhbcode000.tech/1760036985440.png" alt="Inverse Jacobian – from initial to target position" /></p>

<p>在执行<strong>从初始位置到目标位置的运动</strong>时，我们通常已知：</p>

<ul>
  <li>方向（由起点和终点决定）与距离（路径长度）；</li>
  <li>期望执行时间（Desired execution time）；</li>
  <li>通过时间微分可得线速度 $\mathbf{v}$。</li>
</ul>

<p>因此，可以逐步迭代求解：</p>

\[\dot{\mathbf{q} } = \mathbf{J}^{-1}(\mathbf{q}) \, \mathbf{v}\]

<p>通过积分 $\dot{\mathbf{q} }$，即可更新每个时刻的关节角度，实现末端沿目标方向平滑运动。</p>

<h3 id="123-姿态控制orientation-control">12.3 姿态控制（Orientation Control）</h3>

<p><img src="https://image.yhbcode000.tech/1760037008592.png" alt="Orientation Control – Inverse Jacobian" /></p>

<p>对于姿态控制，我们不仅关心位置变化，还要使末端的<strong>方向矩阵（Orientation Matrix）</strong>从初始朝向旋转到目标朝向。</p>

<p>已知：</p>

<ul>
  <li>初始旋转矩阵 $R_i$</li>
  <li>目标旋转矩阵 $R_f$</li>
  <li>期望执行时间 $t_f$</li>
</ul>

<p>则控制目标是求解旋转轴与角速度向量 $\boldsymbol{\omega}$，即：</p>

<blockquote>
  <p>“以哪个方向旋转、以多快的速度旋转？”</p>
</blockquote>

<p>由雅可比逆关系：</p>

\[\dot{\mathbf{q} } = \mathbf{J}^{-1}(\mathbf{q}) \, \mathbf{v}\]

<p>其中 $\mathbf{v}$ 的角速度分量由 $\boldsymbol{\omega}$ 提供。</p>

<h3 id="124-从旋转矩阵计算旋转向量">12.4 从旋转矩阵计算旋转向量</h3>

<p><img src="https://image.yhbcode000.tech/1760037023803.png" alt="Rotation Vector from Rotation Matrix" /></p>

<p>设旋转矩阵：</p>

\[R =
\begin{bmatrix}
a &amp; b &amp; c \\\\
d &amp; e &amp; f \\\\
g &amp; h &amp; i
\end{bmatrix}\]

<p>旋转向量 $\mathbf{u}$ 定义为：</p>

\[\mathbf{u} =
\begin{bmatrix}
h - f \\\\
c - g \\\\
d - b
\end{bmatrix},
\quad \|\mathbf{u}\| = 2 \sin \theta\]

<p>其中：</p>
<ul>
  <li>$\mathbf{u}$ 的方向为旋转轴；</li>
  <li>$|\mathbf{u}|$ 的大小与旋转角度 $\theta$ 成正比。</li>
</ul>

<h3 id="125-雅可比伪逆jacobian-pseudoinverse">12.5 雅可比伪逆（Jacobian Pseudoinverse）</h3>

<p>当机械臂<strong>冗余自由度 $n &gt; 6$</strong> 或存在奇异点时，$\mathbf{J}$ 不可逆。<br />
此时可采用 <strong>广义逆（Moore–Penrose Pseudoinverse）</strong>：</p>

\[\mathbf{J}^{+} = \mathbf{J}^T (\mathbf{J}\mathbf{J}^T)^{-1}\]

<p>并使用：</p>

\[\dot{\mathbf{q} } = \mathbf{J}^{+}(\mathbf{q}) \, \mathbf{v}\]

<p>该解满足最小范数条件，保证末端速度最优匹配。</p>

<h2 id="13-雅可比矩阵的维度与形态分类jacobian-dimension-and-shape-summary">13. 雅可比矩阵的维度与形态分类（Jacobian Dimension and Shape Summary）</h2>

<p>雅可比矩阵 $\mathbf{J(q)}$ 将关节速度 $\dot{\mathbf{q} }$ 与末端速度 $\mathbf{v}$ 联系起来：</p>

\[\mathbf{v} = \mathbf{J(q)} \, \dot{\mathbf{q} }\]

<p>其矩阵维度为：</p>

\[\mathbf{v} \in \mathbb{R}^{6 \times 1}, \quad 
\mathbf{J(q)} \in \mathbb{R}^{6 \times n}, \quad 
\dot{\mathbf{q} } \in \mathbb{R}^{n \times 1}\]

<p>因此，系统的解空间取决于关节数 $n$ 与任务空间维度（6，自由移动与旋转）的关系：</p>

<h3 id="131-三种情形three-cases">13.1 三种情形（Three Cases）</h3>

<table>
  <thead>
    <tr>
      <th>情形</th>
      <th>说明</th>
      <th>解的数量</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>$n &lt; 6$</td>
      <td>欠驱动（Under-actuated）系统，通常无精确解</td>
      <td>无解（No exact solution）</td>
    </tr>
    <tr>
      <td>$n = 6$</td>
      <td>完全驱动（Fully-actuated）系统，雅可比矩阵为方阵</td>
      <td>唯一解（One exact solution）</td>
    </tr>
    <tr>
      <td>$n &gt; 6$</td>
      <td>冗余驱动（Over-actuated）系统，末端可由多种关节组合实现</td>
      <td>无穷多解（Infinite solutions）</td>
    </tr>
  </tbody>
</table>

<h3 id="132-雅可比矩阵的形态分类jacobian-shape-summary">13.2 雅可比矩阵的形态分类（Jacobian Shape Summary）</h3>

<p><img src="https://image.yhbcode000.tech/1760037373982.png" alt="Illustration of Jacobian shape summary" /></p>

<p>不同的机械臂结构会导致雅可比矩阵 $\mathbf{J(q)}$ 的形态（shape）不同，<br />
反映出系统的<strong>可控性（actuation）</strong>与<strong>运动自由度（DoF）</strong>特征。<br />
根据关节数 $N$ 与任务空间维度（通常为 6，自由移动与旋转）之间的关系，<br />
我们可以将雅可比矩阵分为三类：<strong>Square / Slim / Fat Jacobian</strong>。</p>

<h4 id="-方形雅可比矩阵square-jacobian">① 方形雅可比矩阵（Square Jacobian）</h4>

<p><strong>条件：</strong><br />
\(N = 6\)<br />
\(\mathbf{J(q)} \in \mathbb{R}^{6 \times 6}\)</p>

<p><strong>特征：</strong></p>
<ul>
  <li>完全驱动（Fully actuated）；</li>
  <li>对 $SE(3)$（三维刚体运动群）具有完整控制；</li>
  <li>雅可比矩阵可逆；</li>
  <li>典型代表：六轴工业机械臂（如 ABB、KUKA、UR）。</li>
</ul>

<p><strong>优点：</strong></p>
<ul>
  <li>可以直接计算逆矩阵 $\mathbf{J}^{-1}$；</li>
  <li>运动学与动力学求解简洁。</li>
</ul>

<h4 id="-瘦雅可比矩阵slim-jacobian">② 瘦雅可比矩阵（Slim Jacobian）</h4>

<p><strong>条件：</strong><br />
\(N &lt; 6\)<br />
\(\mathbf{J(q)} \in \mathbb{R}^{6 \times N}, \quad N &lt; 6\)</p>

<p><strong>特征：</strong></p>
<ul>
  <li>欠驱动系统（Under-actuated）；</li>
  <li>对 $SE(3)$ 的访问受限；</li>
  <li>无法独立控制全部 6 个空间自由度；</li>
  <li>通常用于平面机械臂（如 SCARA 机械臂）。</li>
</ul>

<p><strong>结果：</strong></p>
<ul>
  <li>系统丢失部分姿态或方向控制；</li>
  <li>某些任务空间方向上无法施加速度或力。</li>
</ul>

<h4 id="-胖雅可比矩阵fat-jacobian">③ 胖雅可比矩阵（Fat Jacobian）</h4>

<p><strong>条件：</strong><br />
\(N &gt; 6\)<br />
\(\mathbf{J(q)} \in \mathbb{R}^{6 \times N}, \quad N &gt; 6\)</p>

<p><strong>特征：</strong></p>
<ul>
  <li>冗余驱动系统（Over-actuated / Redundant manipulator）；</li>
  <li>对 $SE(3)$ 拥有完全访问能力；</li>
  <li>可使用<strong>伪逆</strong> $\mathbf{J}^{+}$ 来计算最优关节速度；</li>
  <li>存在<strong>冗余关节（spare joints）</strong>；</li>
  <li>可进行<strong>零空间运动（Null-space motion）</strong>。</li>
</ul>

<p><strong>应用：</strong></p>
<ul>
  <li>避障控制（Obstacle avoidance）；</li>
  <li>能量最小化（Energy optimization）；</li>
  <li>次级任务规划（Secondary task planning）；</li>
  <li>柔性或蛇形机器人、连续体机械臂等。</li>
</ul>

<h4 id="-三种雅可比矩阵形态对比">📊 三种雅可比矩阵形态对比</h4>

<table>
  <thead>
    <tr>
      <th>类型</th>
      <th>条件</th>
      <th>特征</th>
      <th>典型系统</th>
      <th>逆矩阵类型</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>方形（Square）</td>
      <td>$N = 6$</td>
      <td>完全驱动</td>
      <td>六轴机械臂</td>
      <td>$\mathbf{J}^{-1}$</td>
    </tr>
    <tr>
      <td>瘦型（Slim）</td>
      <td>$N &lt; 6$</td>
      <td>欠驱动</td>
      <td>SCARA、2D机械臂</td>
      <td>无逆（欠约束）</td>
    </tr>
    <tr>
      <td>胖型（Fat）</td>
      <td>$N &gt; 6$</td>
      <td>冗余驱动</td>
      <td>柔性、蛇形臂</td>
      <td>$\mathbf{J}^{+}$（伪逆）</td>
    </tr>
  </tbody>
</table>

<h3 id="133-伪逆pseudoinverse与最优解">13.3 伪逆（Pseudoinverse）与最优解</h3>

<p>当雅可比矩阵 $\mathbf{J(q)}$ 不可逆（例如 $N \neq 6$ 或奇异状态）时，<br />
我们使用 <strong>Moore–Penrose 伪逆（Pseudoinverse）</strong> 来求得最优近似解：</p>

<h4 id="1-欠约束系统under-constrained-n--6">(1) 欠约束系统（Under-constrained, $N &lt; 6$）</h4>

\[\mathbf{J}^{+} = \mathbf{J}^{T} \, (\mathbf{J}\mathbf{J}^{T})^{-1}\]

<p>该形式最小化关节速度范数：</p>

\[\min \| \dot{\mathbf{q} } \|\]

<p>即找到使末端运动尽量匹配、同时关节速度最小的解。</p>

<h4 id="2-过约束系统over-constrained-n--6">(2) 过约束系统（Over-constrained, $N &gt; 6$）</h4>

\[\mathbf{J}^{+} = (\mathbf{J}^{T}\mathbf{J})^{-1} \, \mathbf{J}^{T}\]

<p>该形式最小化末端误差：</p>

\[\min \| \mathbf{J}\dot{\mathbf{q} } - \dot{\mathbf{x} } \|\]

<p>保证末端运动的最小均方误差（Least Squares Solution）。</p>

<p>📘 <strong>总结：</strong></p>

<table>
  <thead>
    <tr>
      <th>系统类型</th>
      <th>伪逆形式</th>
      <th>优化目标</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>欠驱动 ($N &lt; 6$)</td>
      <td>$\mathbf{J}^{+} = \mathbf{J}^{T}(\mathbf{J}\mathbf{J}^{T})^{-1}$</td>
      <td>最小化 $|\dot{\mathbf{q} }|$</td>
    </tr>
    <tr>
      <td>冗余驱动 ($N &gt; 6$)</td>
      <td>$\mathbf{J}^{+} = (\mathbf{J}^{T}\mathbf{J})^{-1}\mathbf{J}^{T}$</td>
      <td>最小化 $|\mathbf{J}\dot{\mathbf{q} } - \dot{\mathbf{x} }|$</td>
    </tr>
  </tbody>
</table>

<p>📖 <strong>一句话总结：</strong></p>

<blockquote>
  <p>当雅可比矩阵不可逆时，伪逆提供了最“合理”的近似解，<br />
欠约束系统追求最小关节运动，冗余系统追求最小误差。</p>
</blockquote>

<h2 id="14-状态空间表示state-space-representation">14. 状态空间表示（State Space Representation）</h2>

<h3 id="141-定义与基本思想">14.1 定义与基本思想</h3>

<p><strong>状态空间模型（State-Space Model）</strong>是一种以<strong>一阶微分方程组</strong>形式描述物理系统行为的数学模型。<br />
它将系统的动态特性用<strong>状态变量（state variables）</strong>、<strong>输入（inputs）</strong>和<strong>输出（outputs）</strong>表示。</p>

<p>系统状态空间方程一般写为：</p>

<p>\(\dot{x}(t) = A x(t) + B u(t)\)
\(y(t) = C x(t) + D u(t)\)</p>

<p>其中：</p>

<table>
  <thead>
    <tr>
      <th>符号</th>
      <th>含义</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>$x(t)$</td>
      <td>状态向量（State Vector）</td>
    </tr>
    <tr>
      <td>$\dot{x}(t)$</td>
      <td>状态向量的一阶导数（随时间变化率）</td>
    </tr>
    <tr>
      <td>$u(t)$</td>
      <td>输入或控制向量（Input / Control Vector）</td>
    </tr>
    <tr>
      <td>$y(t)$</td>
      <td>输出向量（Output Vector）</td>
    </tr>
    <tr>
      <td>$A$</td>
      <td>系统矩阵（System Matrix）</td>
    </tr>
    <tr>
      <td>$B$</td>
      <td>输入矩阵（Input Matrix）</td>
    </tr>
    <tr>
      <td>$C$</td>
      <td>输出矩阵（Output Matrix）</td>
    </tr>
    <tr>
      <td>$D$</td>
      <td>直接传输矩阵（Feedforward Matrix）</td>
    </tr>
  </tbody>
</table>

<p>📘 <strong>直观理解：</strong></p>

<ul>
  <li><strong>状态变量（State variables）</strong>：表示系统的记忆，例如位置、速度、电流等。</li>
  <li><strong>输入（Inputs）</strong>：表示外部激励，如力、转矩、电压信号。</li>
  <li><strong>输出（Outputs）</strong>：表示可测量的系统响应，如位移、速度、角度等。</li>
</ul>

<h3 id="142-单输入单输出系统siso-single-input-single-output">14.2 单输入单输出系统（SISO, Single-Input Single-Output）</h3>

<p><img src="https://image.yhbcode000.tech/1760039592864.png" alt="state space representation SISO" /></p>

<p>在 SISO 系统中，系统只有一个输入和一个输出：</p>

<p>\(\dot{x}(t) = A x(t) + B u(t)\)
\(y(t) = C x(t) + D u(t)\)</p>

<p>矩阵维度如下：</p>

<table>
  <thead>
    <tr>
      <th>矩阵/变量</th>
      <th>维度</th>
      <th>说明</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>$x(t)$</td>
      <td>$n \times 1$</td>
      <td>状态向量</td>
    </tr>
    <tr>
      <td>$\dot{x}(t)$</td>
      <td>$n \times 1$</td>
      <td>状态导数</td>
    </tr>
    <tr>
      <td>$u(t)$</td>
      <td>$1 \times 1$</td>
      <td>单输入</td>
    </tr>
    <tr>
      <td>$y(t)$</td>
      <td>$1 \times 1$</td>
      <td>单输出</td>
    </tr>
    <tr>
      <td>$A$</td>
      <td>$n \times n$</td>
      <td>系统矩阵</td>
    </tr>
    <tr>
      <td>$B$</td>
      <td>$n \times 1$</td>
      <td>输入矩阵</td>
    </tr>
    <tr>
      <td>$C$</td>
      <td>$1 \times n$</td>
      <td>输出矩阵</td>
    </tr>
    <tr>
      <td>$D$</td>
      <td>$1 \times 1$</td>
      <td>直接传输矩阵</td>
    </tr>
  </tbody>
</table>

<p>📖 <strong>理解要点：</strong></p>
<ul>
  <li>状态方程决定系统的动态特性；</li>
  <li>输出方程描述状态与输出的映射；</li>
  <li>SISO 模型在机械臂单关节、单电机或单回路控制中广泛应用。</li>
</ul>

<h3 id="143-多输入多输出系统mimo-multi-input-multi-output">14.3 多输入多输出系统（MIMO, Multi-Input Multi-Output）</h3>

<p><img src="https://image.yhbcode000.tech/1760039623774.png" alt="state space representation MIMO" /></p>

<p>当系统具有多个输入与多个输出时，模型扩展为 MIMO 形式：</p>

<p>\(\dot{x}(t) = A x(t) + B u(t)\)
\(y(t) = C x(t) + D u(t)\)</p>

<p>矩阵维度如下：</p>

<table>
  <thead>
    <tr>
      <th>矩阵/变量</th>
      <th>维度</th>
      <th>说明</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>$x(t)$</td>
      <td>$n \times 1$</td>
      <td>状态向量</td>
    </tr>
    <tr>
      <td>$\dot{x}(t)$</td>
      <td>$n \times 1$</td>
      <td>状态导数</td>
    </tr>
    <tr>
      <td>$u(t)$</td>
      <td>$z \times 1$</td>
      <td>$z$ 个输入（多控制信号）</td>
    </tr>
    <tr>
      <td>$y(t)$</td>
      <td>$m \times 1$</td>
      <td>$m$ 个输出（多观测量）</td>
    </tr>
    <tr>
      <td>$A$</td>
      <td>$n \times n$</td>
      <td>系统矩阵</td>
    </tr>
    <tr>
      <td>$B$</td>
      <td>$n \times z$</td>
      <td>输入矩阵</td>
    </tr>
    <tr>
      <td>$C$</td>
      <td>$m \times n$</td>
      <td>输出矩阵</td>
    </tr>
    <tr>
      <td>$D$</td>
      <td>$m \times z$</td>
      <td>直接传输矩阵</td>
    </tr>
  </tbody>
</table>

<h3 id="144-状态空间模型的优势">14.4 状态空间模型的优势</h3>

<p>✅ <strong>统一性：</strong><br />
适用于线性与非线性系统、连续与离散系统。</p>

<p>✅ <strong>可扩展性：</strong><br />
易于扩展到高维、耦合系统。</p>

<p>✅ <strong>分析便利：</strong><br />
便于求解稳定性、可控性（Controllability）、可观性（Observability）。</p>

<p>✅ <strong>现代控制基础：</strong><br />
是 PID 控制、最优控制、LQR、状态反馈等方法的核心数学基础。</p>

<p>📘 <strong>一句话总结：</strong></p>

<blockquote>
  <p>状态空间模型是将系统动态从“输入-输出关系”推广到“内部状态演化”的现代控制理论核心形式，
为复杂机械臂与多自由度系统的建模与控制提供了统一框架。</p>
</blockquote>

<h2 id="15-非线性系统与线性化控制nonlinear-systems-and-linearization-control">15. 非线性系统与线性化控制（Nonlinear Systems and Linearization Control）</h2>

<p><img src="https://image.yhbcode000.tech/1760040096231.png" alt="1760040096231.png" /></p>

<h3 id="151-非线性系统nonlinear-systems">15.1 非线性系统（Nonlinear Systems）</h3>

<p>在现实世界中，大多数机械、电气、生物及机器人系统都是<strong>非线性（nonlinear）</strong>的。<br />
这意味着它们的动态关系<strong>无法完全用线性方程描述</strong>。</p>

<p><strong>示例：</strong></p>

<ul>
  <li>单摆系统：
\(m l^2 \ddot{\theta} + b \dot{\theta} + m g l \sin(\theta) = T\)</li>
  <li>机械臂动力学（包含三角项和耦合项）；</li>
  <li>飞行器在湍流作用下的非线性运动。</li>
</ul>

<p><img src="https://image.yhbcode000.tech/1760040152646.png" alt="1760040152646.png" /></p>

<h3 id="152-为什么非线性是问题why-is-this-a-problem">15.2 为什么非线性是问题？（Why is this a Problem?）</h3>

<ul>
  <li>非线性方程<strong>难以分析</strong>（稳定性 controllability、可控性 stability、可观性 observability 等）；</li>
  <li>许多标准工具（如传递函数 transfer functions、频率响应 frequency response、根轨迹法 root locus）<strong>仅适用于线性系统</strong>。</li>
  <li></li>
</ul>

<h3 id="153-解决方案线性化linearization">15.3 解决方案：线性化（Linearization）</h3>

<p><strong>核心思想：</strong></p>
<blockquote>
  <p>在某个工作点或平衡点附近，用线性系统近似原非线性系统。</p>
</blockquote>

<p>线性化后的模型可分为：</p>
<ul>
  <li><strong>线性时变系统（LTV, Linear Time-Varying）</strong></li>
  <li><strong>线性时不变系统（LTI, Linear Time-Invariant）</strong></li>
</ul>

<p><strong>优点：</strong></p>
<ul>
  <li>便于分析与控制；</li>
  <li>可使用经典线性控制工具（如 PID、LQR、Observer）。</li>
</ul>

<h3 id="154-线性化状态空间模型linearized-state-space-model">15.4 线性化状态空间模型（Linearized State-Space Model）</h3>

<p>对于一个非线性系统：</p>

\[\dot{x}(t) = f(x(t), u(t)), \quad y(t) = g(x(t), u(t))\]

<p>我们希望在某个工作点 $(x^{sol}, u^{sol})$ 附近用线性系统来近似它的动态。<br />
这种近似允许我们在小扰动范围内分析系统的稳定性与控制特性。</p>

<h4 id="-最终线性化系统final-linearized-system">🧩 最终线性化系统（Final Linearized System）</h4>

<p>\(\delta \dot{x}(t) = A(t)\,\delta x(t) + B(t)\,\delta u(t)\)
\(\delta y(t) = C(t)\,\delta x(t) + D(t)\,\delta u(t)\)</p>

<p>其中：</p>

<ul>
  <li>$\delta x(t)$ 表示状态变量相对于工作点的微小偏差；</li>
  <li>$\delta u(t)$ 表示输入的微小变化；</li>
  <li>$\delta y(t)$ 表示输出响应的变化。</li>
</ul>

<h4 id="-雅可比矩阵定义jacobian-matrices">📐 雅可比矩阵定义（Jacobian Matrices）</h4>

\[A(t) = \frac{\partial f}{\partial x}(x^{sol}, u^{sol}), \quad
B(t) = \frac{\partial f}{\partial u}(x^{sol}, u^{sol})\]

\[C(t) = \frac{\partial g}{\partial x}(x^{sol}, u^{sol}), \quad
D(t) = \frac{\partial g}{\partial u}(x^{sol}, u^{sol})\]

<h4 id="-与机器人系统的关系conceptual-link-to-robots">🤖 与机器人系统的关系（Conceptual Link to Robots）</h4>

<table>
  <thead>
    <tr>
      <th>矩阵</th>
      <th>含义</th>
      <th>对应物理解释</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>$A(t)$</td>
      <td>状态对自身的影响</td>
      <td>关节角、角速度等状态如何相互作用</td>
    </tr>
    <tr>
      <td>$B(t)$</td>
      <td>输入对状态的影响</td>
      <td>控制输入（力矩、推力）如何驱动系统</td>
    </tr>
    <tr>
      <td>$C(t)$</td>
      <td>状态对输出的影响</td>
      <td>内部状态如何通过传感器体现</td>
    </tr>
    <tr>
      <td>$D(t)$</td>
      <td>输入对输出的直接影响</td>
      <td>一般在机械系统中近似为零</td>
    </tr>
  </tbody>
</table>

<h4 id="-工程意义practical-meaning">💡 工程意义（Practical Meaning）</h4>

<p>在机器人学中，这种线性化状态空间模型的意义在于：</p>

<ul>
  <li>它让我们能够<strong>设计线性控制器（如 LQR、PID、Observer）</strong>，<br />
即使系统本质上是非线性的；</li>
  <li>该模型在局部范围内有效，能使机器人<strong>在小扰动下保持预期轨迹</strong>；</li>
  <li>这是分析机器人<strong>稳定性与轨迹跟踪误差</strong>的核心工具。</li>
</ul>

<p>📘 <strong>总结：</strong></p>
<blockquote>
  <p>线性化状态空间模型通过在工作点附近的局部线性近似，<br />
将复杂的非线性动力学系统转化为可控、可分析的形式，<br />
从而奠定了现代机器人控制与状态估计的基础。</p>
</blockquote>

<h3 id="155-平衡点线性化linearization-about-an-equilibrium-point">15.5 平衡点线性化（Linearization about an Equilibrium Point）</h3>

<p>在线性系统理论中，我们经常需要将一个<strong>非线性系统</strong><br />
在其<strong>平衡点（Equilibrium Point）</strong>附近进行线性化，以得到一个等效的<strong>线性时不变系统（LTI System）</strong>。</p>

<h4 id="️-非线性系统定义">⚙️ 非线性系统定义</h4>

<p>考虑如下非线性状态方程：</p>

\[\dot{x}(t) = f(x(t), u(t)), \quad y(t) = g(x(t), u(t))\]

<p>其中：</p>

<ul>
  <li>$x(t) \in \mathbb{R}^n$ —— 系统状态向量（如位置、速度、角度等）；</li>
  <li>$u(t) \in \mathbb{R}^k$ —— 控制输入（如力矩、电压等）；</li>
  <li>$y(t) \in \mathbb{R}^m$ —— 输出（传感器测量量或系统响应）。</li>
</ul>

<h4 id="️-平衡点equilibrium-point">⚖️ 平衡点（Equilibrium Point）</h4>

<p>若存在一对 $(x^{eq}, u^{eq})$ 满足：</p>

\[f(x^{eq}, u^{eq}) = 0\]

<p>则称该点为系统的<strong>平衡点</strong>。<br />
此时系统满足：</p>

\[u(t) = u^{eq}, \quad x(t) = x^{eq}, \quad y(t) = y^{eq} = g(x^{eq}, u^{eq})\]

<p>这意味着在平衡点处，系统保持静止或匀速运动，状态不再随时间变化。</p>

<h4 id="-平衡点附近线性化linearizing-around-xeq-ueq">🔁 平衡点附近线性化（Linearizing around $(x^{eq}, u^{eq})$）</h4>

<p>在平衡点附近进行泰勒展开，并忽略高阶项，可得线性近似系统：</p>

<p>\(\delta \dot{x}(t) = A \delta x(t) + B \delta u(t)\)
\(\delta y(t) = C \delta x(t) + D \delta u(t)\)</p>

<p>其中：</p>

\[A = \frac{\partial f}{\partial x}(x^{eq}, u^{eq}), \quad
B = \frac{\partial f}{\partial u}(x^{eq}, u^{eq})\]

\[C = \frac{\partial g}{\partial x}(x^{eq}, u^{eq}), \quad
D = \frac{\partial g}{\partial u}(x^{eq}, u^{eq})\]

<h4 id="-系统含义说明">🧩 系统含义说明</h4>

<table>
  <thead>
    <tr>
      <th>矩阵</th>
      <th>含义</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>$A$</td>
      <td>状态变化对自身动态的线性影响（系统固有动力学）</td>
    </tr>
    <tr>
      <td>$B$</td>
      <td>控制输入对系统状态的影响（外部控制作用）</td>
    </tr>
    <tr>
      <td>$C$</td>
      <td>状态变化对输出的影响（测量关系）</td>
    </tr>
    <tr>
      <td>$D$</td>
      <td>输入对输出的直接耦合（机械系统中通常为 0）</td>
    </tr>
  </tbody>
</table>

<h4 id="-工程意义in-robotics-context">💡 工程意义（In Robotics Context）</h4>

<p>在机器人控制中，平衡点线性化是建立<strong>线性时不变模型（LTI）</strong>的基础步骤。<br />
例如：</p>

<ul>
  <li>在线性化平衡点（如机械臂的静止姿态）附近设计控制器；</li>
  <li>分析系统在局部扰动下的<strong>稳定性（Stability）</strong>；</li>
  <li>构造局部线性模型以实现 <strong>LQR、PID、Observer</strong> 等控制策略。</li>
</ul>

<p>📘 <strong>总结：</strong></p>
<blockquote>
  <p>平衡点线性化将复杂的非线性动力学系统转化为局部线性形式，<br />
便于应用经典线性控制理论，实现对系统局部稳定性的分析与控制。</p>
</blockquote>

<h3 id="156-反馈线性化feedback-linearization">15.6 反馈线性化（Feedback Linearization）</h3>

<p>反馈线性化（Feedback Linearization）是一种强大的非线性控制技术，<br />
通过<strong>设计非线性反馈控制律</strong>，将原始<strong>非线性系统转化为等效线性系统</strong>，<br />
从而能够应用线性控制理论进行分析与设计。</p>

<h4 id="-定义definition">🧩 定义（Definition）</h4>

<blockquote>
  <p><strong>反馈线性化（Feedback Linearization）</strong> 是一种利用非线性反馈控制输入<br />
来抵消系统内部非线性项，使其在输入输出关系上表现为线性系统的控制方法。</p>
</blockquote>

<p>数学上，它通过引入输入变换：</p>

\[u = \alpha(x) + \beta(x)v\]

<p>其中：</p>

<ul>
  <li>$\alpha(x)$ —— 非线性补偿项，用于抵消系统的固有非线性；</li>
  <li>$\beta(x)$ —— 输入增益项，用于调整输入信号的作用比例；</li>
  <li>$v$ —— 新的控制输入，用于设计线性控制律。</li>
</ul>

<p>将系统</p>

\[\dot{x} = f(x) + g(x)u, \quad y = h(x)\]

<p>其中：</p>

<ul>
  <li>$x \in \mathbb{R}^n$ —— 系统状态；</li>
  <li>$u \in \mathbb{R}$ 或 $\mathbb{R}^m$ —— 控制输入；</li>
  <li>$\dot{x}$ —— 状态的时间导数。</li>
  <li>$f(x)$：系统的<strong>自然动态项</strong>（或漂移项），反映系统在无输入时的自然演化；</li>
  <li>$g(x)$：系统的<strong>控制输入通道</strong>，决定输入 $u$ 如何影响状态；</li>
  <li>$h(x)$：输出函数，定义可测的系统输出。</li>
</ul>

<p>变换为线性系统形式：</p>

\[\dot{x} = A x + B v\]

<p>其中：</p>

<ul>
  <li>$A$ 和 $B$ 是常数或局部线性矩阵；</li>
  <li>$v$ 是新的“等效线性输入”；</li>
  <li>系统在该形式下可以直接应用线性控制工具。</li>
</ul>

<p>此时，控制输入 $v$ 可以通过常规线性控制器（如 LQR、PID）设计得到。</p>

<p>附：</p>

<table>
  <thead>
    <tr>
      <th>控制方法</th>
      <th>核心思想</th>
      <th>优点</th>
      <th>缺点</th>
      <th>典型应用</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>PID</strong></td>
      <td>基于误差的比例-积分-微分反馈</td>
      <td>简单可靠，易实现</td>
      <td>难以最优，需调参</td>
      <td>工业过程控制、舵机控制</td>
    </tr>
    <tr>
      <td><strong>LQR</strong></td>
      <td>最小化状态与能量代价</td>
      <td>数学上最优控制</td>
      <td>需系统模型，线性假设</td>
      <td>飞行器姿态、机器人控制</td>
    </tr>
  </tbody>
</table>

<h4 id="-推导过程step-by-step-derivation">📘 推导过程（Step-by-step Derivation）</h4>

<p>将 $u = \alpha(x) + \beta(x)v$ 代入原方程：</p>

\[\dot{x} = f(x) + g(x)[\alpha(x) + \beta(x)v]\]

<p>展开：</p>

\[\dot{x} = [f(x) + g(x)\alpha(x)] + g(x)\beta(x)v\]

<p>我们希望这个系统能写成线性形式：</p>

\[\dot{x} = A x + B v\]

<p>于是只需<strong>选择合适的 $\alpha(x)$ 和 $\beta(x)$</strong>，使得：</p>

<ul>
  <li>第一项 $[f(x) + g(x)\alpha(x)]$ 成为线性函数 $A x$；</li>
  <li>第二项 $g(x)\beta(x)$ 等价于常数矩阵 $B$。</li>
</ul>

<p>这就意味着通过 $\alpha(x)$ 的选择，我们“抵消”掉系统中复杂的非线性项，<br />
而通过 $\beta(x)$ 的选择，我们“线性化”输入通道。</p>

<h4 id="-为什么需要反馈线性化why-is-it-necessary">💡 为什么需要反馈线性化（Why is it Necessary?）</h4>

<ul>
  <li>大多数真实系统（如单摆、机械臂、飞行器）本质上都是<strong>非线性系统</strong>；</li>
  <li>非线性方程难以进行稳定性分析与控制设计；</li>
  <li>通过反馈线性化：
    <ul>
      <li>使用反馈<strong>抵消系统中的非线性项</strong>；</li>
      <li>系统行为表现为<strong>线性时不变（LTI）形式</strong>；</li>
      <li>可以直接使用经典的线性控制工具。</li>
    </ul>
  </li>
</ul>

<h4 id="️-优势key-advantages">⚙️ 优势（Key Advantages）</h4>

<table>
  <thead>
    <tr>
      <th>特性</th>
      <th>优点</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>分析方便</td>
      <td>系统线性化后便于稳定性与性能分析</td>
    </tr>
    <tr>
      <td>控制设计</td>
      <td>可使用线性控制器（如 LQR、Observer、Pole Placement）</td>
    </tr>
    <tr>
      <td>实际应用</td>
      <td>常用于机械臂控制、飞行器姿态控制、移动机器人动态补偿等</td>
    </tr>
  </tbody>
</table>

<h4 id="-示例一机械臂动力学中的反馈线性化">📘 示例一：机械臂动力学中的反馈线性化</h4>

<p>考虑一个机械臂的动力学模型：</p>

\[M(q)\ddot{q} + B(q, \dot{q})\dot{q} + G(q) = F\]

<p>其中：</p>

<ul>
  <li>$q \in \mathbb{R}^k$ 为关节角向量；</li>
  <li>$F \in \mathbb{R}^k$ 为关节力矩；</li>
  <li>$M(q)$ 是质量惯量矩阵；</li>
  <li>$B(q, \dot{q})$ 表示科氏力与离心力；</li>
  <li>$G(q)$ 是重力项。</li>
</ul>

<h5 id="-步骤-1定义新的输入">🧠 步骤 1：定义新的输入</h5>

<p>设控制输入为：</p>

\[F = u = u_{nl}(q, \dot{q}) + M(q)v\]

<p>其中非线性补偿项定义为：</p>

\[u_{nl}(q, \dot{q}) = B(q, \dot{q})\dot{q} + G(q)\]

<h5 id="️-步骤-2代入系统方程">⚙️ 步骤 2：代入系统方程</h5>

<p>将其代入原动力学方程：</p>

\[M(q)\ddot{q} + B(q, \dot{q})\dot{q} + G(q) = F\]

<p>得到：</p>

\[\ddot{q} = v\]

<p>这意味着系统的复杂非线性动态被消除，变为简单的<strong>双积分系统</strong>（Double Integrator）。</p>

<h5 id="-步骤-3状态空间形式">🧾 步骤 3：状态空间形式</h5>

<p>定义状态向量：</p>

\[x = \begin{bmatrix} q \\ \dot{q} \end{bmatrix} \in \mathbb{R}^{2k}\]

<p>则系统可以写为：</p>

\[\dot{x} =
\begin{bmatrix}
0 &amp; I \\
0 &amp; 0
\end{bmatrix}
x +
\begin{bmatrix}
0 \\
1
\end{bmatrix}
v\]

<h4 id="-示例二严格反馈形式strict-feedback-form">📘 示例二：严格反馈形式（Strict Feedback Form）</h4>

<p>考虑非线性系统：</p>

\[\dot{x}_1 = f_1(x_1) + x_2, \quad
\dot{x}_2 = f_2(x_1, x_2) + u\]

<h5 id="步骤-1引入新变量">步骤 1：引入新变量</h5>

<p>定义新的状态变量：</p>

\[z_2 := f_1(x_1) + x_2\]

<p>则有：</p>

\[\dot{x}_1 = z_2\]

<p>对 $z_2$ 求导：</p>

<p>\(\dot{z}_2 = \frac{\partial f_1}{\partial x_1}(x_1) \dot{x}_1 + \dot{x}_2\)
\(= \frac{\partial f_1}{\partial x_1}(x_1)[f_1(x_1) + x_2] + f_2(x_1, x_2) + u\)</p>

<h5 id="步骤-2设计反馈输入">步骤 2：设计反馈输入</h5>

<p>选择控制律：</p>

\[u = u_{nl}(x_1, x_2) + v\]

<p>其中非线性补偿项为：</p>

\[u_{nl}(x_1, x_2) = -\frac{\partial f_1}{\partial x_1}(x_1)[f_1(x_1) + x_2] - f_2(x_1, x_2)\]

<h5 id="步骤-3代入系统">步骤 3：代入系统</h5>

<p>代入后得到简化系统：</p>

\[\dot{x}_1 = z_2, \quad \dot{z}_2 = v\]

<p>这就是一个<strong>线性时不变系统（LTI System）</strong>，<br />
控制输入 $v$ 可以通过线性控制器（如 LQR 或 PID）来设计。</p>

<h4 id="-总结">✅ 总结</h4>

<table>
  <thead>
    <tr>
      <th>步骤</th>
      <th>含义</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1️⃣ 系统分析</td>
      <td>确定系统的非线性项 $f(x), g(x)$</td>
    </tr>
    <tr>
      <td>2️⃣ 反馈设计</td>
      <td>定义 $u = u_{nl}(x) + \beta(x)v$ 抵消非线性</td>
    </tr>
    <tr>
      <td>3️⃣ 状态变换</td>
      <td>构造线性等效模型</td>
    </tr>
    <tr>
      <td>4️⃣ 控制设计</td>
      <td>对 $v$ 使用线性控制方法</td>
    </tr>
  </tbody>
</table>

<p>📘 <strong>一句话总结：</strong></p>
<blockquote>
  <p>反馈线性化通过“补偿非线性 + 重新定义输入”，<br />
将非线性系统等效转化为线性系统，<br />
从而使复杂的机器人控制问题变得可分析、可设计、可实现。</p>
</blockquote>

<p>📖 <strong>总结：</strong></p>

<blockquote>
  <p>非线性系统虽普遍存在，但通过平衡点线性化与反馈线性化，<br />
我们能利用线性控制理论的成熟工具，让复杂系统在局部范围内表现出可预测、可控的行为。</p>
</blockquote>

<h2 id="16-稳定性分析system-stability-analysis">16. 稳定性分析（System Stability Analysis）</h2>

<p>系统稳定性（System Stability）是控制理论中的核心概念，<br />
它描述系统在受到扰动或输入信号时，是否能保持或回到平衡状态。</p>

<p>稳定性决定了机器人或任何动态系统<strong>能否在控制下正常工作</strong>。<br />
例如，一个稳定的机械臂能在停止施加力矩后保持静止，<br />
而一个不稳定的机械臂则可能持续震荡或偏离目标。</p>

<h3 id="161-稳定性的概念concept-of-stability">16.1 稳定性的概念（Concept of Stability）</h3>

<p><strong>定义：</strong><br />
若系统在有界输入（bounded input）下产生有界输出（bounded output），<br />
则称该系统是<strong>BIBO 稳定（Bounded Input Bounded Output Stable）</strong>。</p>

<p>数学定义如下：</p>

\[|u(t)| &lt; \infty \quad \Rightarrow \quad |y(t)| &lt; \infty\]

<h4 id="-为什么稳定性很重要why-stability-matters">💡 为什么稳定性很重要（Why Stability Matters）</h4>

<p>在机器人学中：</p>
<ul>
  <li><strong>稳定的机器人</strong>能平稳移动、准确响应指令；</li>
  <li><strong>不稳定的机器人</strong>可能发生振荡、抖动或发散。</li>
</ul>

<p><strong>示例：</strong></p>
<ul>
  <li>稳定：机械臂在停止施加力矩后保持位置；</li>
  <li>不稳定：机械臂在停止控制后仍剧烈摆动。</li>
</ul>

<h3 id="162-稳定性的类型types-of-stability">16.2 稳定性的类型（Types of Stability）</h3>

<p>稳定性可从不同角度定义与分析：</p>

<table>
  <thead>
    <tr>
      <th>类型</th>
      <th>依据</th>
      <th>描述</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>BIBO 稳定性</strong></td>
      <td>输入输出关系</td>
      <td>使用传递函数（Transfer Function）分析系统输出是否有界</td>
    </tr>
    <tr>
      <td><strong>内部稳定性（Internal Stability）</strong></td>
      <td>状态空间模型</td>
      <td>通过状态矩阵的特征值分析系统内部状态是否收敛</td>
    </tr>
    <tr>
      <td><strong>李雅普诺夫稳定性（Lyapunov Stability）</strong></td>
      <td>能量函数（Energy Function）</td>
      <td>适用于非线性系统，通过能量函数变化判断稳定性</td>
    </tr>
  </tbody>
</table>

<blockquote>
  <p>我们在第<a href="#17-传递函数与-bibo-稳定性transfer-function-and-bibo-stability">17部分</a>讨论BIBO</p>
</blockquote>

<h3 id="163-状态空间下的稳定性stability-in-state-space">16.3 状态空间下的稳定性（Stability in State-Space）</h3>

<p>对于状态空间方程：</p>

\[\dot{x}(t) = A x(t) + B u(t), \quad y(t) = C x(t) + D u(t)\]

<p>系统的稳定性取决于矩阵 $A$ 的特征值（Eigenvalues）。</p>

<h4 id="判据criterion"><strong>判据（Criterion）</strong></h4>

<p>系统稳定当且仅当所有特征值的实部为负：</p>

\[\Re(\lambda_i(A)) &lt; 0 \quad \forall i\]

<p>系统的稳定性取决于特征值在复平面上的位置，可以总结如下表所示：</p>

<table>
  <thead>
    <tr>
      <th>特征值实部情况</th>
      <th>系统类型</th>
      <th>动态特征</th>
      <th>稳定性描述</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>$\Re(\lambda_i) &lt; 0$</td>
      <td>渐近稳定（Asymptotically Stable）</td>
      <td>指数衰减</td>
      <td>状态随时间收敛到平衡点</td>
    </tr>
    <tr>
      <td>$\Re(\lambda_i) = 0$</td>
      <td>边界稳定（Marginally Stable）</td>
      <td>持续振荡</td>
      <td>不发散也不衰减，能量守恒</td>
    </tr>
    <tr>
      <td>$\Re(\lambda_i) &gt; 0$</td>
      <td>不稳定（Unstable）</td>
      <td>指数增长</td>
      <td>状态随时间发散</td>
    </tr>
  </tbody>
</table>

<h4 id="示例解释">示例解释：</h4>

<ul>
  <li>若 $A = \begin{bmatrix}-2 &amp; 0 \ 0 &amp; -3\end{bmatrix}$，则 $\lambda = {-2, -3}$ → 稳定；</li>
  <li>若 $A = \begin{bmatrix}1 &amp; 0 \ 0 &amp; -2\end{bmatrix}$，则 $\lambda = {1, -2}$ → 不稳定；</li>
  <li>若 $\lambda = {0, -2}$，则边界稳定。</li>
</ul>

<!-- ## 为什么只看实部而不看虚部？

在分析线性系统稳定性时，我们常见判据为：

$$
\Re(\lambda_i(A)) < 0 \quad \forall i
$$

许多人会疑问：**为什么不考虑虚部？虚部不也影响系统吗？**

下面详细解释这一点。


### 🧩 一、复特征值的物理意义

假设系统矩阵的特征值为：

$$
\lambda = \alpha + j\omega
$$

则系统响应中对应的时间项为：

$$
e^{\lambda t} = e^{(\alpha + j\omega)t} = e^{\alpha t}(\cos \omega t + j \sin \omega t)
$$

其中：
- **实部 $\alpha$**：决定“衰减或增长”的速度；
- **虚部 $\omega$**：决定“振荡频率”。

因此，虚部控制系统**如何振荡**，  
但实部控制系统**是否收敛或发散**。


### ⚙️ 二、为什么只关心实部（Re(λ)）

系统稳定的判据是：

$$
\lim_{t \to \infty} e^{\lambda t}
$$

代入展开式：

$$
e^{\lambda t} = e^{\alpha t}(\cos \omega t + j \sin \omega t)
$$

于是：
- 当 $\alpha < 0$：指数项 $e^{\alpha t}$ 衰减 → 系统 **稳定（Stable）**；
- 当 $\alpha = 0$：振幅不变 → 系统 **边界稳定（Marginally Stable）**；
- 当 $\alpha > 0$：指数项发散 → 系统 **不稳定（Unstable）**。

✅ 因此：
> **稳定性只取决于实部 $\Re(\lambda)$ 的符号，虚部只影响振荡形式。**


### 🎯 三、物理类比：阻尼振子（Damped Oscillator）

想象一个带阻尼的弹簧系统，其运动方程：

$$
m\ddot{x} + c\dot{x} + kx = 0
$$

解的形式取决于阻尼比：
| 情况 | 数学特征值 | 物理现象 | 稳定性 |
|------|--------------|-------------|----------|
| 过阻尼 | 实数负特征值 | 缓慢衰减回原位 | 稳定 |
| 欠阻尼 | 复数（实部负） | 振荡衰减 | 稳定 |
| 临界阻尼 | 双重负实根 | 最快回稳 | 稳定 |
| 无阻尼 | 纯虚数 | 振荡不衰减 | 边界稳定 |
| 反阻尼 | 实部正 | 振幅发散 | 不稳定 |

💬 结论：
- 虚部 $\omega$ → 决定振荡速度；
- 实部 $\alpha$ → 决定能量衰减或增长；
- 能量是否衰减决定系统是否稳定。


### 📘 一句话总结

> 虚部决定“系统怎么动”，  
> 实部决定“系统能不能停”。  
>  
> 因此在稳定性分析中，我们只需关注特征值的实部。 -->

<h3 id="164-李雅普诺夫稳定性lyapunov-stability">16.4 李雅普诺夫稳定性（Lyapunov Stability）</h3>

<p>李雅普诺夫稳定性是分析<strong>非线性系统</strong>稳定性的基本方法，<br />
核心思想是用一个能量函数 $V(x)$ 来判断系统状态随时间的变化。</p>

<h4 id="-直观理解explanation">🧠 直观理解（Explanation）</h4>

<p><img src="https://image.yhbcode000.tech/1760042446908.png" alt="" /></p>

<p>可以将系统状态想象为一个小球在不同地形上的运动：</p>

<ul>
  <li>在碗底（能量最低点） → 小球会滚回 → <strong>稳定</strong>；</li>
  <li>在山顶 → 轻微扰动即滚下 → <strong>不稳定</strong>；</li>
  <li>在平面上 → 停在原地但不会回到原点 → <strong>边界稳定（Marginally Stable）</strong>。</li>
</ul>

<h4 id="-数学定义mathematical-definition">📐 数学定义（Mathematical Definition）</h4>

<p>对于非线性系统：</p>

\[\dot{x} = f(x), \quad x \in \mathbb{R}^n\]

<p>若平衡点在 $x = 0$，则系统在该点<strong>李雅普诺夫稳定</strong>当且仅当：</p>

\[\forall \epsilon &gt; 0, \ \exists \delta &gt; 0, \ \text{使得} \ ||x(0)|| &lt; \delta \Rightarrow ||x(t)|| &lt; \epsilon, \ \forall t \ge 0\]

<p>即：系统从接近平衡点出发后，始终保持在有限邻域内。</p>

<h3 id="165-李雅普诺夫函数法lyapunov-function-method">16.5 李雅普诺夫函数法（Lyapunov Function Method）</h3>

<p><img src="https://image.yhbcode000.tech/1760042474799.png" alt="简谐摆：非线性动力系统的典型示例——在最低点平衡位置稳定，在顶部倒立位置不稳定。" /></p>

<p>我们引入一个“能量型”函数 $V(x)$（称为李雅普诺夫函数）：</p>

\[V(x) &gt; 0 \text{ for } x \ne 0, \quad V(0) = 0\]

<p>并计算其导数：</p>

\[\dot{V}(x) = \frac{dV}{dt}\]

<h4 id="判断标准">判断标准：</h4>

<table>
  <thead>
    <tr>
      <th>条件</th>
      <th>稳定性类型</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>$\dot{V}(x) &lt; 0$</td>
      <td>渐近稳定（Asymptotically Stable）</td>
    </tr>
    <tr>
      <td>$\dot{V}(x) = 0$</td>
      <td>稳定（但非渐近）</td>
    </tr>
    <tr>
      <td>$\dot{V}(x) &gt; 0$</td>
      <td>不稳定（Unstable）</td>
    </tr>
  </tbody>
</table>

<h4 id="-一维系统数值例子1d-example">💡 一维系统数值例子（1D Example）</h4>

<p>考虑系统：</p>

\[\dot{x} = -x\]

<p>选择李雅普诺夫函数：</p>

\[V(x) = x^2\]

<p>计算导数：</p>

\[\dot{V}(x) = 2x\dot{x} = 2x(-x) = -2x^2 &lt; 0\]

<p>因此，该系统是<strong>渐近稳定（Asymptotically Stable）</strong>的。</p>

<h3 id="-小结summary">✅ 小结（Summary）</h3>

<table>
  <thead>
    <tr>
      <th>稳定性类型</th>
      <th>分析依据</th>
      <th>判据</th>
      <th>应用场景</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>内部稳定性</strong></td>
      <td>状态矩阵 $A$ 特征值</td>
      <td>$\Re(\lambda_i(A)) &lt; 0$</td>
      <td>线性状态空间系统</td>
    </tr>
    <tr>
      <td><strong>李雅普诺夫稳定性</strong></td>
      <td>能量函数 $V(x)$</td>
      <td>$\dot{V}(x) &lt; 0$</td>
      <td>非线性系统、机器人控制</td>
    </tr>
  </tbody>
</table>

<p>📘 <strong>一句话总结：</strong></p>
<blockquote>
  <p>稳定性是控制系统的生命线。<br />
线性系统依赖特征值判定稳定，非线性系统则依赖李雅普诺夫函数。<br />
若系统能在扰动下回归平衡点，即可认为其“稳定”。</p>
</blockquote>

<h2 id="17-传递函数与-bibo-稳定性transfer-function-and-bibo-stability">17. 传递函数与 BIBO 稳定性（Transfer Function and BIBO Stability）</h2>

<h3 id="171-传递函数transfer-function">17.1 传递函数（Transfer Function）</h3>

<p><img src="https://image.yhbcode000.tech/1760043576253.png" alt="1760043576253.png" /></p>

<p><strong>定义：</strong>
传递函数（Transfer Function）描述了系统<strong>输入与输出</strong>之间的数学关系，通常定义在 <strong>拉普拉斯域（Laplace Domain）</strong>，适用于线性、时不变（LTI）系统。</p>

<p>其一般形式为：</p>

\[G(s) = \frac{Y(s)}{U(s)}\]

<p>其中：</p>
<ul>
  <li>$U(s)$：输入信号的拉普拉斯变换；</li>
  <li>$Y(s)$：输出信号的拉普拉斯变换；</li>
  <li>$G(s)$：系统的传递函数。</li>
</ul>

<p>📘 <strong>直观理解：</strong><br />
传递函数是系统的“频域指纹”，帮助我们分析<strong>稳定性、频率响应、动态特性</strong>等。</p>

<h3 id="172-拉普拉斯变换laplace-transform">17.2 拉普拉斯变换（Laplace Transform）</h3>

<h4 id="定义"><strong>定义：</strong></h4>
<p>拉普拉斯变换是一种将<strong>时域函数</strong>转换为<strong>复频域函数（s 域）</strong>的工具，用以简化微分方程求解。</p>

\[\mathcal{L}[f(t)] = F(s) = \int_0^{\infty} f(t)e^{-st}dt\]

<p>反变换为：</p>

\[\mathcal{L}^{(-1)}[F(s)] = f(t) = \frac{1}{2\pi j} \int_{c-j\infty}^{c+j\infty} F(s)e^{st}ds, \quad t&gt;0\]

<p>🧭 <strong>意义：</strong></p>
<blockquote>
  <p>拉普拉斯变换是连接“微分方程”与“传递函数”的桥梁。</p>
</blockquote>

<h3 id="173-拉普拉斯变换性质properties">17.3 拉普拉斯变换性质（Properties）</h3>

<table>
  <thead>
    <tr>
      <th>性质</th>
      <th>数学表达</th>
      <th>含义</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>线性性</td>
      <td>$\mathcal{L}[a f(t) + b g(t)] = aF(s) + bG(s)$</td>
      <td>可线性叠加</td>
    </tr>
    <tr>
      <td>一阶微分</td>
      <td>$\mathcal{L}[\dot{f}(t)] = sF(s) - f(0^+)$</td>
      <td>导数变乘法</td>
    </tr>
    <tr>
      <td>二阶微分</td>
      <td>$\mathcal{L}[\ddot{f}(t)] = s^2 F(s) - s f(0^+) - \dot{f}(0^+)$</td>
      <td>高阶导数扩展</td>
    </tr>
    <tr>
      <td>积分</td>
      <td>$\mathcal{L}\left[\int_0^t f(\tau)d\tau\right] = \frac{F(s)}{s}$</td>
      <td>积分变除法</td>
    </tr>
    <tr>
      <td>时移</td>
      <td>$\mathcal{L}[f(t-T)] = e^{-sT}F(s)$</td>
      <td>延迟产生指数项</td>
    </tr>
  </tbody>
</table>

<h3 id="174-初值与终值定理initial--final-value-theorems">17.4 初值与终值定理（Initial &amp; Final Value Theorems）</h3>

<table>
  <thead>
    <tr>
      <th>定理</th>
      <th>数学表达</th>
      <th>说明</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>初值定理</td>
      <td>$f(0^+) = \lim_{s\to\infty} sF(s)$</td>
      <td>求瞬时响应初值</td>
    </tr>
    <tr>
      <td>终值定理</td>
      <td>$\lim_{t\to\infty} f(t) = \lim_{s\to 0} sF(s)$</td>
      <td>求系统稳态响应</td>
    </tr>
  </tbody>
</table>

<p>⚠️ 注意：<br />
若系统不稳定（极点在右半平面），终值定理不适用。</p>

<h3 id="175-bibo-稳定性bounded-input--bounded-output">17.5 BIBO 稳定性（Bounded Input – Bounded Output）</h3>

<p><strong>定义：</strong>
若系统在有界输入下产生有界输出，则称系统是 <strong>BIBO 稳定（Bounded Input Bounded Output Stable）</strong>：</p>

\[|u(t)| &lt; \infty \Rightarrow |y(t)| &lt; \infty\]

<h4 id="基于传递函数的判据"><strong>基于传递函数的判据：</strong></h4>

<p>若系统传递函数为：</p>

\[G(s) = \frac{N(s)}{D(s)}\]

<p>系统的极点（Poles）定义为 $D(s) = 0$ 的根。</p>

<p>系统 BIBO 稳定的条件是：</p>

\[\Re(p_i) &lt; 0 \quad \forall \text{极点 } p_i\]

<table>
  <thead>
    <tr>
      <th>极点位置</th>
      <th>系统状态</th>
      <th>说明</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>所有极点在左半平面</td>
      <td>稳定</td>
      <td>响应指数衰减</td>
    </tr>
    <tr>
      <td>极点在虚轴上</td>
      <td>边界稳定</td>
      <td>持续振荡</td>
    </tr>
    <tr>
      <td>任意极点在右半平面</td>
      <td>不稳定</td>
      <td>响应发散</td>
    </tr>
  </tbody>
</table>

<h3 id="176-对比bibo-vs-内部稳定internal-stability">17.6 对比：BIBO vs 内部稳定（Internal Stability）</h3>

<table>
  <thead>
    <tr>
      <th>稳定性类型</th>
      <th>基于</th>
      <th>判据</th>
      <th>适用系统</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>BIBO 稳定</strong></td>
      <td>输入输出关系</td>
      <td>极点在左半平面</td>
      <td>传递函数模型</td>
    </tr>
    <tr>
      <td><strong>内部稳定（State Stability）</strong></td>
      <td>状态空间</td>
      <td>$\Re(\lambda_i(A)) &lt; 0$</td>
      <td>状态空间模型</td>
    </tr>
    <tr>
      <td><strong>Lyapunov 稳定</strong></td>
      <td>能量函数</td>
      <td>$\dot{V}(x) &lt; 0$</td>
      <td>非线性系统</td>
    </tr>
  </tbody>
</table>

<p>📘 <strong>总结：</strong></p>

<blockquote>
  <p>传递函数与拉普拉斯变换为我们提供了从“时域”到“频域”的分析工具。</p>

  <p>BIBO 稳定性判据帮助我们通过<strong>极点位置</strong>快速判断系统是否在外部输入下保持稳定。</p>
</blockquote>

<h2 id="18-非线性状态空间模型nonlinear-state-model">18. 非线性状态空间模型（Nonlinear State Model）</h2>

<h3 id="181-状态方程的定义state-equations">18.1 状态方程的定义（State Equations）</h3>

<p>考虑一个具有 $n$ 个状态变量、$m$ 个输入变量的非线性系统：</p>

\[\begin{cases}
\dot{x}\_1 = f\_1(t, x\_1, \ldots, x\_n, u\_1, \ldots, u\_m) \\
\dot{x}\_2 = f\_2(t, x\_1, \ldots, x\_n, u\_1, \ldots, u\_m) \\
\vdots \\
\dot{x}\_n = f\_n(t, x\_1, \ldots, x\_n, u\_1, \ldots, u\_m)
\end{cases}\]

<p>其中：</p>

<ul>
  <li>$u_1, u_2, \ldots, u_m$：<strong>输入变量（Input Variables）</strong></li>
  <li>$x_1, x_2, \ldots, x_n$：<strong>状态变量（State Variables）</strong></li>
  <li>$\dot{x}_i = \dfrac{dx_i}{dt}$：状态变量的时间导数</li>
</ul>

<p>📘 <strong>意义说明：</strong></p>
<blockquote>
  <p>非线性状态方程用于描述系统的内部动态，<br />
每个状态变量的变化率取决于系统的当前状态和输入。</p>
</blockquote>

<h3 id="182-向量形式vector-form">18.2 向量形式（Vector Form）</h3>

<p>将状态和输入写成向量形式：</p>

\[x =
\begin{bmatrix}
x\_1 \\ x\_2 \\ \vdots \\ x\_n
\end{bmatrix},
\quad
u =
\begin{bmatrix}
u\_1 \\ u\_2 \\ \vdots \\ u\_m
\end{bmatrix},
\quad
f(t, x, u) =
\begin{bmatrix}
f\_1(t, x, u) \\ f\_2(t, x, u) \\ \vdots \\ f\_n(t, x, u)
\end{bmatrix}.\]

<p>于是系统可写为紧凑形式：</p>

\[\dot{x} = f(t, x, u)\]

<p>📘 <strong>直观理解：</strong></p>
<blockquote>
  <p>向量形式使得系统分析更方便，<br />
它是非线性控制系统研究的标准表示形式。</p>
</blockquote>

<h3 id="183-输出方程与特殊形式output-equation--special-cases">18.3 输出方程与特殊形式（Output Equation &amp; Special Cases）</h3>

<p>引入输出映射函数：</p>

\[\dot{x} = f(t, x, u), \quad y = h(t, x, u)\]

<p>其中 $y$ 为系统输出。</p>

<h4 id="特殊情况special-cases">特殊情况（Special Cases）：</h4>

<table>
  <thead>
    <tr>
      <th>系统类型</th>
      <th>数学形式</th>
      <th>特点</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>线性时变系统（LTV）</strong></td>
      <td>$\dot{x} = A(t)x + B(t)u,\quad y = C(t)x + D(t)u$</td>
      <td>系数随时间变化，但系统仍为线性</td>
    </tr>
    <tr>
      <td><strong>无输入系统（Unforced System）</strong></td>
      <td>$\dot{x} = f(t, x)$</td>
      <td>系统仅由内部状态驱动</td>
    </tr>
    <tr>
      <td><strong>自治系统（Autonomous System）</strong></td>
      <td>$\dot{x} = f(x)$</td>
      <td>不显含时间或外部输入</td>
    </tr>
    <tr>
      <td><strong>时不变系统（Time-Invariant System）</strong></td>
      <td>$\dot{x} = f(x, u), \; y = h(x, u)$</td>
      <td>若输入波形整体平移，系统响应轨迹仅发生时间平移</td>
    </tr>
  </tbody>
</table>

<h3 id="184-时不变性的含义meaning-of-time-invariance">18.4 时不变性的含义（Meaning of Time Invariance）</h3>

<p><strong>定义：</strong><br />
若将初始时间从 $t_0$ 平移至 $t_0 + a$，并施加相同的输入波形（但时间也相应平移），<br />
系统轨迹保持不变（仅时间平移），则系统为<strong>时不变系统（Time-Invariant System）</strong>。</p>

\[f(t, x, u) = f(x, u) \quad \Rightarrow \quad \text{系统不随时间变化}\]

<p>📘 <strong>直观理解：</strong></p>
<blockquote>
  <p>时不变系统意味着系统的规律不会随时间变化，<br />
相同的输入模式在不同时间施加，产生的响应只是延迟而非变化。</p>
</blockquote>

<p>✅ <strong>总结</strong></p>

<table>
  <thead>
    <tr>
      <th>分类</th>
      <th>方程形式</th>
      <th>是否含时间</th>
      <th>是否含输入</th>
      <th>举例</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>自治系统（Autonomous）</td>
      <td>$\dot{x} = f(x)$</td>
      <td>❌</td>
      <td>❌</td>
      <td>单摆系统（无控制力）</td>
    </tr>
    <tr>
      <td>时不变系统（Time-Invariant）</td>
      <td>$\dot{x} = f(x, u)$</td>
      <td>❌</td>
      <td>✅</td>
      <td>线性电路</td>
    </tr>
    <tr>
      <td>时变系统（Time-Varying）</td>
      <td>$\dot{x} = f(t, x, u)$</td>
      <td>✅</td>
      <td>✅</td>
      <td>参数随时间变化的控制系统</td>
    </tr>
    <tr>
      <td>无输入系统（Unforced）</td>
      <td>$\dot{x} = f(t, x)$</td>
      <td>✅</td>
      <td>❌</td>
      <td>自然衰减系统</td>
    </tr>
  </tbody>
</table>

<p>📘 <strong>一句话总结：</strong></p>
<blockquote>
  <p>非线性状态模型统一了各种动力系统的数学表达，是理解线性化与控制设计的基础。</p>
</blockquote>

<h2 id="19-解的存在与唯一性existence-and-uniqueness-of-solutions">19. 解的存在与唯一性（Existence and Uniqueness of Solutions）</h2>

<h3 id="191-基本形式fundamental-form">19.1 基本形式（Fundamental Form）</h3>

<p>对于系统：</p>

\[\dot{x} = f(t, x)\]

<p>我们关心的是：<br />
是否存在解？以及解是否唯一？</p>

<p>这依赖于 $f(t, x)$ 的连续性与 <strong>利普希茨（Lipschitz）条件</strong>。</p>

<h3 id="192-条件-1分段连续性piecewise-continuity">19.2 条件 1：分段连续性（Piecewise Continuity）</h3>

<p>为了保证微分<strong>方程的解能够“存在”</strong>，<br />
我们首先要求 $f(t, x)$ 对时间 $t$ 的变化是<strong>分段连续的（piecewise continuous）</strong>。</p>

<ul>
  <li>这意味着在任意有限时间区间 $J_0 \subset J$ 内，<br />
函数 $f(t, x)$ 关于时间 $t$ 是连续的，<br />
只允许在<strong>有限个时间点</strong>出现跳变（例如切换控制、冲击输入等）。</li>
</ul>

<p>📘 <strong>直观理解：</strong></p>
<blockquote>
  <p>系统的右端项不能“乱跳”太多，只能有有限次不连续。<br />
比如，开关电路或机器人控制中有限次模式切换的系统，都属于分段连续系统。</p>
</blockquote>

<h3 id="193-条件-2局部-lipschitz-连续性locally-lipschitz-in-x">19.3 条件 2：局部 Lipschitz 连续性（Locally Lipschitz in $x$）</h3>

<p>为了保证<strong>解的唯一性（uniqueness）</strong>，<br />
我们要求 $f(t, x)$ 在状态变量 $x$ 上满足 <strong>局部 Lipschitz 连续性</strong>。</p>

<p>定义如下：<br />
存在某个邻域</p>

\[N(x\_0, r) = \{ x \in \mathbb{R}^n \mid \|x - x\_0\| &lt; r \}\]

<p>以及一个常数 $L &gt; 0$，<br />
使得对该邻域中的任意两个点 $x, y$，都有：</p>

\[\|f(t, x) - f(t, y)\| \le L \|x - y\|\]

<p>则称 $f(t, x)$ 在 $x_0$ 处 <strong>局部 Lipschitz（locally Lipschitz）</strong>。</p>

<p>📘 <strong>几何意义：</strong></p>
<blockquote>
  <p>在小范围内，$f(t, x)$ 的变化不会比直线变化更剧烈。<br />
也就是说，函数曲线的“斜率”被某个常数 $L$ 限制住了。</p>
</blockquote>

<p>📘 <strong>直观理解：</strong></p>
<blockquote>
  <p>如果系统方程对状态变量变化得太“陡”（例如无穷大斜率或断点），<br />
那么解的轨迹可能会分叉或不唯一。<br />
局部 Lipschitz 条件保证了系统在局部区域内的“可预测性”。</p>
</blockquote>

<h3 id="194-进一步定义与判定准则further-definitions-and-characterization">19.4 进一步定义与判定准则（Further Definitions and Characterization）</h3>

<p>为了在数学上更准确地刻画 <strong>Lipschitz 连续性</strong>，我们需要引入一些更一般的定义与判定方法。</p>

<p>📘 <strong>解释：</strong><br />
局部 Lipschitz 意味着函数在每个点附近变化率是“可控的”，但这个控制常数 $L$ 可以随位置变化。</p>

<h4 id="一维情况when--n--1-">一维情况（When $ n = 1 $）</h4>

<p>当 $f$ 仅依赖于一个变量 $x$ 时，存在常数 $L &gt; 0$，使得：</p>

\[\frac{|f(y) - f(x)|}{|y - x|} \le L, \quad \forall x, y \in I\]

<p>这意味着函数曲线上任意两点连线的斜率绝对值都有上界。</p>

<p>📘 <strong>几何意义：</strong></p>
<blockquote>
  <p>在 $f(x)$ 的图像上，任意局部区域内的曲线斜率不会“无限大”，<br />
从而保证函数图像的光滑性和解的可预测性。</p>
</blockquote>

<h4 id="通过导数的判定characterization-via-derivatives">通过导数的判定（Characterization via Derivatives）</h4>

<ul>
  <li>若 $f’(x)$ 在某点 $x_0$ 连续，则 $f(x)$ 在该点局部 Lipschitz。<br />
因为在 $x_0$ 附近 $|f’(x)|$ 有界，可以取常数 $L = k$ 使：</li>
</ul>

\[|f(y) - f(x)| \le \sup_{\xi \in [x, y]} |f'(\xi)| \, |y - x| \le k |y - x|\]

<ul>
  <li><strong>推广到多维情况：</strong></li>
</ul>

<p>设 $t \in J \subset \mathbb{R}$ 且 $x \in D \subset \mathbb{R}^n$，<br />
若 $f(t, x)$ 及其偏导数 $\frac{\partial f_i}{\partial x_j}$ 在 $J \times D$ 上连续，<br />
则 $f(t, x)$ 在 $x$ 上是局部 Lipschitz。</p>

<p>📘 <strong>结论：</strong></p>
<blockquote>
  <p>连续的一阶偏导数（$\mathcal{C}^1$ 函数） ⇒ 必然是局部 Lipschitz。<br />
换言之，只要函数在局部区域内“可微且导数连续”，<br />
就能保证系统解的存在与唯一性。</p>
</blockquote>

<h4 id="局部与全局-lipschitz-的区别">局部与全局 Lipschitz 的区别</h4>

<table>
  <thead>
    <tr>
      <th>类型</th>
      <th>数学定义</th>
      <th>特征</th>
      <th>是否保证解唯一</th>
      <th>示例</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>局部 Lipschitz</td>
      <td>$\forall x_0, \exists L(x_0)$ 使 $|f(x) - f(y)| \le L(x_0)|x - y|$</td>
      <td>只在小范围内约束</td>
      <td>✅ 局部唯一</td>
      <td>$f(x) = x^2$</td>
    </tr>
    <tr>
      <td>全局 Lipschitz</td>
      <td>存在全局常数 $L$ 对所有 $x, y$ 成立</td>
      <td>全局约束变化率</td>
      <td>✅ 全局唯一</td>
      <td>$f(x) = -x$</td>
    </tr>
    <tr>
      <td>非 Lipschitz</td>
      <td>不满足连续导数或存在无穷斜率</td>
      <td>变化率不可控</td>
      <td>❌ 可能多解</td>
      <td>$f(x) = x^{1/3}$</td>
    </tr>
  </tbody>
</table>

<h4 id="非-lipschitz-例子与直观解释">非 Lipschitz 例子与直观解释</h4>

<ul>
  <li>
    <p><strong>不连续函数：</strong><br />
若 $f(x)$ 在某点不连续，则该点不可能是局部 Lipschitz。</p>
  </li>
  <li>
    <p><strong>示例：</strong><br />
$f(x) = x^{1/3}$ 在 $x = 0$ 处不是局部 Lipschitz，因为：</p>
  </li>
</ul>

\[f'(x) = \frac{1}{3}x^{-2/3} \to \infty \quad \text{当 } x \to 0\]

<ul>
  <li><strong>解释：</strong><br />
在 $x = 0$ 附近，函数斜率变得无限大，意味着系统对初始条件极端敏感，<br />
解可能出现分叉或不唯一。</li>
</ul>

<h3 id="195-定理lemma-1存在与唯一性">19.5 定理（Lemma 1：存在与唯一性）</h3>

<blockquote>
  <p>若 $f(t, x)$ 在 $t$ 上分段连续，并在 $x$ 上于 $x_0$ 局部 Lipschitz，<br />
则存在 $\delta &gt; 0$ 使得初值问题：</p>

\[\dot{x} = f(t, x), \quad x(t\_0) = x\_0\]

  <p>在区间 $[t_0, t_0 + \delta]$ 上存在唯一解。</p>
</blockquote>

<h4 id="为什么-lipschitz-条件重要">为什么 Lipschitz 条件重要？</h4>

<ul>
  <li>若没有 Lipschitz 条件，唯一性无法保证。<br />
例如：</li>
</ul>

\[\dot{x} = x^{1/3}, \quad x(0) = 0\]

<p>有两个解：</p>

\[x(t) \equiv 0, \quad x(t) = \left(\frac{2t}{3}\right)^{3/2}\]

<h3 id="196-有限逃逸时间finite-escape-time">19.6 有限逃逸时间（Finite Escape Time）</h3>

<p><strong>示例：</strong></p>

\[\dot{x} = -x^2, \quad x(0) = -1\]

<p>求得：</p>

\[x(t) = \frac{1}{t - 1}, \quad x(t) \to -\infty \text{ 当 } t \to 1\]

<p>📘 <strong>结论：</strong><br />
此解在 $t = 1$ 处发生<strong>有限时间逃逸（finite escape time）</strong>。</p>

<p><strong>一般情况（Remark）：</strong></p>

<p>若 $f(t, x)$ 在区域 $D$ 上局部 Lipschitz，<br />
且 $\dot{x} = f(t, x)$ 的解存在有限逃逸时间 $t_e$，<br />
则当 $t \to t_e$，轨迹 $x(t)$ 必离开 $D$ 的任意紧子集。</p>

<h3 id="197-全局-lipschitz-连续性globally-lipschitz-in-x">19.7 全局 Lipschitz 连续性（Globally Lipschitz in $x$）</h3>

<p>若存在常数 $L &gt; 0$，对所有 $x, y \in \mathbb{R}^n$ 恒有：</p>

\[\|f(t, x) - f(t, y)\| \le L \|x - y\|\]

<p>则称 $f(t, x)$ 在 $x$ 上 <strong>全局 Lipschitz（globally Lipschitz）</strong>。</p>

<h4 id="判定方式characterization-via-partials">判定方式（Characterization via Partials）</h4>

<p>若 $f(t, x)$ 及其偏导数 $\partial f_i / \partial x_j$ 在所有 $x \in \mathbb{R}^n$ 上连续，<br />
则当且仅当所有偏导数<strong>全局有界</strong>时，$f(t, x)$ 全局 Lipschitz。</p>

<h4 id="示例example">示例（Example）</h4>

\[f(x) = -x^2\]

<ul>
  <li>局部 Lipschitz ✅ （在每个有限区间内成立）</li>
  <li>全局 Lipschitz ❌ （因为 $f’(x) = -2x$ 非全局有界）</li>
</ul>

<p>✅ <strong>总结表</strong></p>

<table>
  <thead>
    <tr>
      <th>类型</th>
      <th>数学定义</th>
      <th>是否唯一解</th>
      <th>示例</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>局部 Lipschitz</td>
      <td>$|f(x) - f(y)| \le L|x - y|$ 在邻域内成立</td>
      <td>仅局部保证</td>
      <td>$f(x)=x^{1/3}$（不满足）</td>
    </tr>
    <tr>
      <td>全局 Lipschitz</td>
      <td>对所有 $x,y$ 成立</td>
      <td>全局唯一解</td>
      <td>$f(x)=-x$</td>
    </tr>
    <tr>
      <td>非 Lipschitz</td>
      <td>不连续或斜率无界</td>
      <td>唯一性丧失</td>
      <td>$f(x)=x^{1/3}$</td>
    </tr>
    <tr>
      <td>有限逃逸</td>
      <td>解有限时间发散</td>
      <td>轨迹离开有界域</td>
      <td>$f(x)=-x^2$</td>
    </tr>
  </tbody>
</table>

<p>📘 <strong>一句话总结：</strong></p>

<blockquote>
  <p>若 $f(t, x)$ 满足分段连续性与局部 Lipschitz 条件，则系统的解在某个时间区间内存在且唯一；<br />
若进一步满足全局 Lipschitz，则解在整个定义域内唯一且连续存在。</p>
</blockquote>

<h2 id="20-平衡点与相平面分析equilibrium-and-phase-plane-analysis">20. 平衡点与相平面分析（Equilibrium and Phase Plane Analysis）</h2>

<h3 id="201-平衡点定义equilibrium-point-definition">20.1 平衡点定义（Equilibrium Point Definition）</h3>

<p>对于系统：</p>

\[\dot{x} = f(t, x)\]

<p>若存在一个常数向量 $x^*$ 满足：</p>

\[x(t_0) = x^* \Rightarrow x(t) \equiv x^*, \quad \forall t \ge t_0\]

<p>则称 $x^*$ 为系统的<strong>平衡点（equilibrium point）</strong>。</p>

<p>📘 <strong>直观理解：</strong></p>
<blockquote>
  <p>当系统处于平衡点时，其状态不再随时间变化，即 $\dot{x}=0$，系统“静止”。</p>
</blockquote>

<h4 id="autonomous-情况自治系统">Autonomous 情况（自治系统）</h4>

<p>对于自治系统（不显含时间）：</p>

\[\dot{x} = f(x)\]

<p>平衡点由下式给出：</p>

\[f(x) = 0\]

<h4 id="平衡点的类型">平衡点的类型</h4>

<ul>
  <li>平衡点可以是<strong>孤立的（isolated）</strong>，即单独存在；</li>
  <li>也可以构成<strong>连续集（continuum）</strong>，如一条线或一个面上的点都满足 $f(x)=0$。</li>
</ul>

<p>📘 <strong>例子：</strong></p>
<blockquote>
  <p>简单摆系统在最低点和平衡位置（垂直向下）是孤立平衡点，<br />
而一个滑块在水平面上静止的所有位置则形成连续平衡态。</p>
</blockquote>

<h3 id="202-二维自治系统planar-autonomous-system">20.2 二维自治系统（Planar Autonomous System）</h3>

<p>考虑一个二维系统：</p>

\[\begin{cases}
\dot{x}_1 = f_1(x_1, x_2) \\
\dot{x}_2 = f_2(x_1, x_2)
\end{cases}\]

<p>系统的瞬时速度向量为：</p>

\[\vec{v}(x_1, x_2) = \big(f_1(x_1, x_2), \, f_2(x_1, x_2)\big)\]

<p>该向量场（vector field）描述了系统在状态空间中的<strong>运动方向与速率</strong>。</p>

<h3 id="203-零流线nullclines">20.3 零流线（Nullclines）</h3>

<ul>
  <li>
    <p><strong>$x_1$-nullcline：</strong><br />
当 $f_1(x_1, x_2)=0$ 时，$\dot{x}_1 = 0$，<br />
系统在该线上<strong>竖直流动</strong>（上下运动）。</p>
  </li>
  <li>
    <p><strong>$x_2$-nullcline：</strong><br />
当 $f_2(x_1, x_2)=0$ 时，$\dot{x}_2 = 0$，<br />
系统在该线上<strong>水平流动</strong>（左右运动）。</p>
  </li>
  <li>
    <p><strong>交点：</strong><br />
满足 $f_1 = f_2 = 0$ 的点即为<strong>平衡点（equilibria）</strong>。</p>
  </li>
</ul>

<p>📘 <strong>几何解释：</strong></p>
<blockquote>
  <p>零流线是状态变量“速度为零”的集合，<br />
它们的交点对应系统在状态空间中的静止状态。</p>
</blockquote>

<h3 id="204-等斜率线isoclines-constant-slope-lines">20.4 等斜率线（Isoclines, Constant-Slope Lines）</h3>

<p>沿着系统轨迹：</p>

\[\frac{dx_2}{dx_1} = \frac{\dot{x}_2}{\dot{x}_1} = \frac{f_2(x_1, x_2)}{f_1(x_1, x_2)} = m\]

<p>若给定常数斜率 $m$，则有：</p>

\[f_2(x_1, x_2) = m f_1(x_1, x_2)\]

<p>称这些曲线为<strong>等斜率线（isoclines）</strong>，<br />
表示系统在相空间中<strong>方向相同的流动轨迹</strong>。</p>

<p>📘 <strong>应用：</strong></p>
<blockquote>
  <p>等斜率线常用于手工绘制相平面图，只需绘制少量等斜率线，就能近似看出系统流场的方向分布。
可以帮助分析系统的动态行为，例如流向、稳定性与震荡趋势。</p>
</blockquote>

<h3 id="205-相平面方法总结phase-plane-overview">20.5 相平面方法总结（Phase Plane Overview）</h3>

<table>
  <thead>
    <tr>
      <th>概念</th>
      <th>数学定义</th>
      <th>几何意义</th>
      <th>作用</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>平衡点</td>
      <td>$f(x)=0$</td>
      <td>静止点</td>
      <td>分析稳定性</td>
    </tr>
    <tr>
      <td>零流线（Nullcline）</td>
      <td>$f_i(x)=0$</td>
      <td>变量速度为零的轨迹</td>
      <td>确定平衡点位置</td>
    </tr>
    <tr>
      <td>等斜率线（Isocline）</td>
      <td>$f_2 = m f_1$</td>
      <td>相同方向的轨迹</td>
      <td>近似流场方向</td>
    </tr>
    <tr>
      <td>向量场（Vector Field）</td>
      <td>$(f_1, f_2)$</td>
      <td>流动方向</td>
      <td>描述系统运动状态</td>
    </tr>
  </tbody>
</table>

<p>📘 <strong>一句话总结：</strong></p>

<blockquote>
  <p>平衡点是系统的“静止状态”，零流线和等斜率线帮助我们可视化系统的流动趋势，<br />
从而通过相平面方法判断系统的稳定性与动态特征。</p>
</blockquote>

<h2 id="21-平面线性系统与平衡点附近的行为linear-systems-in-the-plane--behavior-near-equilibria">21. 平面线性系统与平衡点附近的行为（Linear Systems in the Plane &amp; Behavior Near Equilibria）</h2>

<h3 id="211-平面线性系统的形式form-of-a-linear-system">21.1 平面线性系统的形式（Form of a Linear System）</h3>

<p>考虑二维线性系统：</p>

\[\dot{x} = A x, \quad A \in \mathbb{R}^{2\times2}\]

<p>存在一个可逆矩阵 $M$ 使得：</p>

\[x(t) = M e^{Jt} M^{-1} x_0\]

<p>其中 $J$ 为 $A$ 的实 <strong>Jordan 标准形（real Jordan form）</strong>：</p>

\[J =
\begin{bmatrix}
\lambda_1 &amp; 0 \\
0 &amp; \lambda_2
\end{bmatrix}
\quad \text{或} \quad
J =
\begin{bmatrix}
\alpha &amp; -\beta \\
\beta &amp; \alpha
\end{bmatrix}\]

<p>若定义 $z = M^{-1}x$，则系统变为：</p>

\[\dot{z} = Jz\]

<p>此时系统被“解耦”，每个方向独立描述不同的动力学行为。</p>

<h3 id="212-情况一两个实特征值case-i-two-real-eigenvalues">21.2 情况一：两个实特征值（Case I: Two Real Eigenvalues）</h3>

<p>若 $A v_i = \lambda_i v_i$，其中 $(\lambda_1, v_1), (\lambda_2, v_2)$ 为实特征对，则：</p>

\[\dot{z}_1 = \lambda_1 z_1, \quad \dot{z}_2 = \lambda_2 z_2\]

<p>因此：</p>

\[z_1(t) = z_{10} e^{\lambda_1 t}, \quad
z_2(t) = z_{20} e^{\lambda_2 t}\]

<p>消去 $t$ 得到轨迹方程：</p>

\[z_2 = C z_1^{\lambda_2 / \lambda_1}, \quad C = z_{20} / z_{10}^{\lambda_2 / \lambda_1}\]

<p>系统的相图形状取决于 $\lambda_1$ 和 $\lambda_2$ 的符号。</p>

<p><img src="https://image.yhbcode000.tech/1760073691980.png" alt="1760073691980.png" /></p>

<h4 id="1-当-lambda_2--lambda_1--0-时--稳定节点stable-node">(1) 当 $\lambda_2 &lt; \lambda_1 &lt; 0$ 时 —— 稳定节点（Stable Node）</h4>

<ul>
  <li>两个指数项 $e^{\lambda_1 t}$、$e^{\lambda_2 t}$ 均 $\to 0$；</li>
  <li>$\lambda_2$ 的衰减更快，称为 <strong>快特征值（fast eigenvalue）</strong>；</li>
  <li>$\lambda_1$ 对应 <strong>慢特征方向（slow eigenvector）</strong>。</li>
</ul>

<p>轨迹方程（消去 $t$）：
\(z_2 \;=\; c\, z_1^{\lambda_2/\lambda_1}, \qquad \frac{\lambda_2}{\lambda_1} &gt; 1 .\)</p>

<p>→ 解随时间单调收敛，所有轨迹指向平衡点（原点），沿慢特征方向“拉长”。</p>

<h4 id="2当-0--lambda_1--lambda_2-时--不稳定节点unstable-node">（2）当 $0 &lt; \lambda_1 &lt; \lambda_2$ 时 —— 不稳定节点（Unstable Node）</h4>

<ul>
  <li>两个指数项 $e^{\lambda_1 t}$、$e^{\lambda_2 t}$ 均 $\to \infty$；</li>
  <li>$\lambda_2$ 增长更快，是 <strong>快不稳定特征值</strong>；$\lambda_1$ 为 <strong>慢不稳定特征值</strong>；</li>
  <li>轨迹从原点沿特征方向向外发散。</li>
</ul>

<p>同样有轨迹方程：
\(z_2 \;=\; c\, z_1^{\lambda_2/\lambda_1}, \qquad \frac{\lambda_2}{\lambda_1} &gt; 1 .\)</p>

<p>区别在于：对稳定节点 $t !\to! +\infty$ 时 $z !\to! 0$；<br />
而对不稳定节点，$t !\to! +\infty$ 时 $z !\to! \infty$。<br />
→ 相图上所有轨迹自原点“喷出”，并在快特征方向上扩张更显著。</p>

<h4 id="3-当-lambda_2--0--lambda_1-时--鞍点saddle-point">(3) 当 $\lambda_2 &lt; 0 &lt; \lambda_1$ 时 —— 鞍点（Saddle Point）</h4>

<p>在这种情况下，系统存在一个稳定方向和一个不稳定方向：</p>

<ul>
  <li>$e^{\lambda_1 t} \to \infty$，沿特征向量 $v_1$ 的方向发散（不稳定方向）；</li>
  <li>$e^{\lambda_2 t} \to 0$，沿特征向量 $v_2$ 的方向收敛（稳定方向）。</li>
</ul>

<p>我们称：</p>
<ul>
  <li>$\lambda_2$ 为 <strong>稳定特征值（stable eigenvalue）</strong>，对应 <strong>稳定特征向量 $v_2$</strong>；</li>
  <li>$\lambda_1$ 为 <strong>不稳定特征值（unstable eigenvalue）</strong>，对应 <strong>不稳定特征向量 $v_1$</strong>。</li>
</ul>

<p>轨迹方程为：
\(z_2 = c \, z_1^{\lambda_2 / \lambda_1}, \quad \frac{\lambda_2}{\lambda_1} &lt; 0\)</p>

<p>由此可以看出：</p>
<ul>
  <li>部分轨迹（沿 $v_2$）随着时间收敛至原点；</li>
  <li>其余轨迹（沿 $v_1$）则会随时间发散离开原点。</li>
</ul>

<p>因此，系统的相图呈现典型的 <strong>鞍形结构（saddle pattern）</strong>：<br />
原点是平衡点，但仅在稳定流形（stable manifold）上局部吸引，其余方向上均发散。</p>

<p>📘 <strong>总结：</strong></p>
<blockquote>
  <p>鞍点系统既包含“吸引”又包含“排斥”特征。<br />
平衡点在某方向稳定、另一方向不稳定，<br />
因此轨迹会沿稳定方向被吸引，同时沿不稳定方向被推离。</p>
</blockquote>

<p><img src="https://image.yhbcode000.tech/1760073777210.png" alt="1760073777210.png" /></p>

<h3 id="213-情况二复特征值case-ii-complex-conjugate-eigenvalues">21.3 情况二：复特征值（Case II: Complex Conjugate Eigenvalues）</h3>

<p>若特征值为共轭对：</p>

\[\lambda_{1,2} = \alpha \pm j \beta, \quad \beta \ne 0\]

<p>则系统为：</p>

\[\begin{cases}
\dot{z}_1 = \alpha z_1 - \beta z_2 \\
\dot{z}_2 = \beta z_1 + \alpha z_2
\end{cases}\]

<p>转化为极坐标形式：</p>

\[r = \sqrt{z_1^2 + z_2^2}, \quad \theta = \tan^{-1}(z_2/z_1)\]

<p>得到：</p>

\[r(t) = r_0 e^{\alpha t}, \quad \theta(t) = \theta_0 + \beta t\]

<ul>
  <li>$\alpha &lt; 0$ → $r(t) \to 0$ → <strong>稳定焦点（stable focus）</strong></li>
  <li>$\alpha &gt; 0$ → $r(t) \to \infty$ → <strong>不稳定焦点（unstable focus）</strong></li>
  <li>$\alpha = 0$ → $r(t)$ 恒定 → <strong>中心（center）</strong></li>
</ul>

<p>📘 <strong>几何解释：</strong></p>
<blockquote>
  <p>当系统存在复特征值时，轨迹绕平衡点旋转，形成螺旋或圆形轨迹，<br />
旋转角速度由 $\beta$ 决定，收敛或发散速度由 $\alpha$ 决定。</p>
</blockquote>

<h3 id="214-平衡点附近系统的行为behavior-near-equilibria">21.4 平衡点附近系统的行为（Behavior Near Equilibria）</h3>

<p>非线性系统在平衡点附近的<strong>定性行为（qualitative behavior）</strong><br />
往往与对应线性系统相似，因此可通过线性化（linearization）分析。</p>

\[\dot{x} = f(x), \quad f(x^*) = 0\]

<p>在平衡点 $x^*$ 附近展开一阶泰勒近似：</p>

\[\dot{x} \approx A(x - x^*), \quad A = \frac{\partial f}{\partial x}\bigg|_{x=x^*}\]

<p>此处的 $A$ 即为 <strong>Jacobian 矩阵（雅可比矩阵）</strong>。<br />
系统局部行为取决于 $A$ 的特征值。</p>

<h3 id="215-平衡点分类总结表classification-of-equilibria">21.5 平衡点分类总结表（Classification of Equilibria）</h3>

<table>
  <thead>
    <tr>
      <th>特征值形式</th>
      <th>平衡点类型</th>
      <th>稳定性</th>
      <th>轨迹形状</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>$\lambda_1, \lambda_2 &lt; 0$</td>
      <td>稳定节点 (Stable Node)</td>
      <td>渐近稳定</td>
      <td>所有轨迹收敛到原点</td>
    </tr>
    <tr>
      <td>$\lambda_1, \lambda_2 &gt; 0$</td>
      <td>不稳定节点 (Unstable Node)</td>
      <td>不稳定</td>
      <td>所有轨迹发散</td>
    </tr>
    <tr>
      <td>$\lambda_1 &lt; 0 &lt; \lambda_2$</td>
      <td>鞍点 (Saddle)</td>
      <td>不稳定</td>
      <td>一部分收敛，一部分发散</td>
    </tr>
    <tr>
      <td>$\lambda_{1,2} = \alpha \pm j\beta$, $\alpha&lt;0$</td>
      <td>稳定焦点 (Stable Focus)</td>
      <td>渐近稳定</td>
      <td>螺旋收敛</td>
    </tr>
    <tr>
      <td>$\lambda_{1,2} = \alpha \pm j\beta$, $\alpha&gt;0$</td>
      <td>不稳定焦点 (Unstable Focus)</td>
      <td>不稳定</td>
      <td>螺旋发散</td>
    </tr>
    <tr>
      <td>$\lambda_{1,2} = j\beta$</td>
      <td>中心 (Center)</td>
      <td>稳定（但不渐近）</td>
      <td>闭合圆轨迹</td>
    </tr>
  </tbody>
</table>

<p>📘 <strong>总结：</strong></p>
<blockquote>
  <p>线性系统的特征值决定了其平衡点的类型与稳定性。<br />
对非线性系统，可通过线性化近似，使用雅可比矩阵的特征值判断其局部动力学行为。</p>
</blockquote>

<h2 id="22-linearization-around-an-equilibrium">22. Linearization Around an Equilibrium</h2>

<p><strong>Linearization（线性化）</strong> 是在系统平衡点附近，用一阶泰勒展开将非线性系统近似为线性系统的过程。<br />
其核心思想是：</p>

<blockquote>
  <p>在平衡点附近，系统的行为可以通过雅可比矩阵（Jacobian matrix）所定义的线性系统来描述。</p>
</blockquote>

<h3 id="221-非线性系统形式nonlinear-system-form">22.1 非线性系统形式（Nonlinear System Form）</h3>

<p>考虑一个二维非线性系统：
\(\dot{x}\_1 = f\_1(x\_1, x\_2), \quad
\dot{x}\_2 = f\_2(x\_1, x\_2)\)</p>

<p>设 $(p_1, p_2)$ 是系统的平衡点，即：
\(f\_1(p\_1, p\_2) = 0, \quad f\_2(p\_1, p\_2) = 0\)</p>

<h3 id="222-泰勒展开与线性近似taylor-expansion--local-approximation">22.2 泰勒展开与线性近似（Taylor Expansion &amp; Local Approximation）</h3>

<p>在平衡点 $(p_1, p_2)$ 处展开一阶泰勒级数：
\(\dot{x}\_1 = f\_1(p\_1, p\_2) + a\_{11}(x\_1 - p\_1) + a\_{12}(x\_2 - p\_2) + \text{H.O.T.},\)</p>

\[\dot{x}\_2 = f\_2(p\_1, p\_2) + a\_{21}(x\_1 - p\_1) + a\_{22}(x\_2 - p\_2) + \text{H.O.T.}\]

<p>其中 <strong>H.O.T.（Higher Order Terms）</strong> 表示高阶项，在局部线性化分析中通常忽略。</p>

<h3 id="223-雅可比矩阵jacobian-matrix">22.3 雅可比矩阵（Jacobian Matrix）</h3>

<p>系数矩阵 $A = [a_{ij}]$ 定义为系统在平衡点处的雅可比矩阵：</p>

\[A = [a\_{ij}] = 
\left[
\frac{\partial f\_i}{\partial x\_j}
\right]\Big|\_{x = p}\]

<p>展开形式为：</p>

\[A =\begin{pmatrix}
a\_{11} &amp; a\_{12} \\
a\_{21} &amp; a\_{22}
\end{pmatrix}=\begin{pmatrix}
\dfrac{\partial f\_1}{\partial x\_1} &amp; \dfrac{\partial f\_1}{\partial x\_2} \\
\dfrac{\partial f\_2}{\partial x\_1} &amp; \dfrac{\partial f\_2}{\partial x\_2}
\end{pmatrix}\Big|\_{x = p}\]

<h3 id="224-局部坐标变换local-coordinates">22.4 局部坐标变换（Local Coordinates）</h3>

<p>定义偏移变量：
\(y\_1 = x\_1 - p\_1, \quad y\_2 = x\_2 - p\_2\)</p>

<p>向量形式表示为：
\(y = (y\_1, y\_2)^\top\)</p>

<p>代入后，线性化系统变为：
\(\dot{y} = A y\)</p>

<h3 id="225-符号说明variable-explanation">22.5 符号说明（Variable Explanation）</h3>

<table>
  <thead>
    <tr>
      <th>符号</th>
      <th>含义</th>
      <th>说明</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>$x_1, x_2$</td>
      <td>状态变量</td>
      <td>系统的动态状态（如位置、速度等）</td>
    </tr>
    <tr>
      <td>$f_1, f_2$</td>
      <td>非线性函数</td>
      <td>定义系统的动力学关系</td>
    </tr>
    <tr>
      <td>$(p_1, p_2)$</td>
      <td>平衡点</td>
      <td>满足 $\dot{x} = 0$ 的点</td>
    </tr>
    <tr>
      <td>$A$</td>
      <td>雅可比矩阵</td>
      <td>系统在平衡点处的线性近似矩阵</td>
    </tr>
    <tr>
      <td>$a_{ij}$</td>
      <td>雅可比元素</td>
      <td>$a_{ij} = \dfrac{\partial f_i}{\partial x_j}$</td>
    </tr>
    <tr>
      <td>$y_1, y_2$</td>
      <td>局部偏移变量</td>
      <td>表示状态相对于平衡点的偏移</td>
    </tr>
    <tr>
      <td>$\text{H.O.T.}$</td>
      <td>高阶项</td>
      <td>在线性化过程中被忽略的高阶非线性项</td>
    </tr>
  </tbody>
</table>

<h3 id="226-局限性limitations-of-linearization">22.6 局限性（Limitations of Linearization）</h3>

<ul>
  <li>线性化是<strong>局部一阶近似</strong>，仅在平衡点附近有效；</li>
  <li>无法反映系统的<strong>全局非线性行为</strong>；</li>
  <li>某些动力学现象（如极限环、混沌）仅在非线性系统中出现，线性模型无法捕捉。</li>
</ul>

<h3 id="227-非线性现象nonlinear-phenomena">22.7 非线性现象（Nonlinear Phenomena）</h3>

<table>
  <thead>
    <tr>
      <th>现象</th>
      <th>描述</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>有限逃逸时间（Finite Escape Time）</strong></td>
      <td>状态变量在有限时间内趋于无穷大</td>
    </tr>
    <tr>
      <td><strong>多个平衡点（Multiple Equilibria）</strong></td>
      <td>系统可能具有多个孤立平衡解</td>
    </tr>
    <tr>
      <td><strong>极限环（Limit Cycle）</strong></td>
      <td>状态沿闭合轨迹周期运动</td>
    </tr>
    <tr>
      <td><strong>次谐波或近周期振荡（Subharmonic，harmonic，or almost-periodic oscillations）</strong></td>
      <td>出现与驱动频率非整数倍关系的振荡</td>
    </tr>
    <tr>
      <td><strong>混沌（Chaos）</strong></td>
      <td>对初值敏感、非周期且复杂的行为</td>
    </tr>
    <tr>
      <td><strong>多模态行为（Multiple Modes）</strong></td>
      <td>不同区域呈现不同动力学模式</td>
    </tr>
  </tbody>
</table>

<p>📘 <strong>总结：</strong></p>
<blockquote>
  <p>线性化是分析非线性系统局部稳定性与动态特性的关键工具，<br />
它将复杂的非线性方程在平衡点附近简化为可解析的线性形式。<br />
然而，它仅能描述<strong>局部行为</strong>，不能替代完整的非线性动力学分析。</p>
</blockquote>

<h2 id="23-极限环limit-cycles">23. 极限环（Limit Cycles）</h2>

<h3 id="231-引言introduction">23.1 引言（Introduction）</h3>

<p>在非线性系统中，除了平衡点（Equilibrium Point）之外，还存在一种<strong>自激振荡现象</strong>：<br />
系统的状态会在相平面上形成<strong>封闭轨迹</strong>并周期性运动。<br />
这种封闭轨迹被称为 <strong>极限环（Limit Cycle）</strong>。</p>

<blockquote>
  <p>极限环是一种<strong>孤立的封闭轨迹</strong>，其周围的轨迹要么向其收敛（稳定极限环），<br />
要么远离它发散（不稳定极限环）。</p>
</blockquote>

<h3 id="232-范德波尔振子van-der-pol-oscillator">23.2 范德波尔振子（Van der Pol Oscillator）</h3>

<p>考虑一个经典的二阶非线性系统：</p>

\[\dot{x}\_1 = x\_2, \qquad
\dot{x}\_2 = -x\_1 + \varepsilon(1 - x\_1^2)x\_2\]

<p>其中参数 $\varepsilon &gt; 0$ 控制系统的非线性与阻尼程度：</p>

<ul>
  <li>当 $\varepsilon$ 很小时，系统接近线性，表现为<strong>轻微阻尼振荡</strong>；</li>
  <li>当 $\varepsilon$ 增大时，非线性效应显著，系统产生<strong>自维持振荡</strong>。</li>
</ul>

<h3 id="233-相图分析phase-portrait-analysis">23.3 相图分析（Phase Portrait Analysis）</h3>

<p>下图展示了不同 $\varepsilon$ 值下系统的相平面行为：</p>

<p><img src="https://image.yhbcode000.tech/1760076457500.png" alt="1760076457500.png" /></p>

<ul>
  <li><strong>图 (a)</strong>：$\varepsilon = 0.2$，轨迹逐渐向内收敛，形成近似椭圆的封闭轨迹；</li>
  <li><strong>图 (b)</strong>：$\varepsilon = 1$，非线性阻尼增强，轨迹收敛至一个稳定的封闭曲线（极限环）。</li>
</ul>

\[\text{Figure (a): } \varepsilon = 0.2 \qquad
\text{Figure (b): } \varepsilon = 1\]

<p>这些封闭曲线的存在说明系统在经历短暂的过渡后，进入<strong>稳定的周期运动状态</strong>。</p>

<h3 id="234-极限环的数学特征mathematical-property">23.4 极限环的数学特征（Mathematical Property）</h3>

<p>对于极限环 $\Gamma$，存在周期 $T &gt; 0$ 使得：</p>

\[x(t + T) = x(t), \quad \forall t\]

<p>并且在 $\Gamma$ 周围的邻域内，轨迹的渐近行为满足：</p>

<ul>
  <li>若轨迹趋向于 $\Gamma$：称为 <strong>稳定极限环（Stable Limit Cycle）</strong>；</li>
  <li>若轨迹远离 $\Gamma$：称为 <strong>不稳定极限环（Unstable Limit Cycle）</strong>。</li>
</ul>

<p>下图展示了两种典型情形：</p>

<p><img src="https://image.yhbcode000.tech/1760076383692.png" alt="1760076383692.png" /></p>

\[\text{(a) 稳定极限环} \qquad \text{(b) 不稳定极限环}\]

<h3 id="235-变量变换与奇异摄动slowfast-system-form">23.5 变量变换与奇异摄动（Slow–Fast System Form）</h3>

<p>当 $\varepsilon$ 很大时，可通过变量变换简化系统行为：</p>

\[\dot{z}\_1 = \frac{1}{\varepsilon}z\_2, \qquad
\dot{z}\_2 = -\varepsilon\left(z\_1 - z\_2 + \frac{1}{3}z\_2^3\right)\]

<p>此时系统分为<strong>快变量（Fast Variable）</strong> 与 <strong>慢变量（Slow Variable）</strong>：</p>

<ul>
  <li>快变量决定轨迹的跳跃与突变；</li>
  <li>慢变量决定轨迹沿“慢流形”的缓慢爬升。</li>
</ul>

<p>这类系统被称为 <strong>慢–快系统（Slow–Fast System）</strong>，广泛应用于神经振荡与电子电路建模。</p>

<h3 id="236-小结summary">23.6 小结（Summary）</h3>

<table>
  <thead>
    <tr>
      <th>概念</th>
      <th>说明</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>极限环（Limit Cycle）</strong></td>
      <td>非线性系统中的孤立封闭轨迹</td>
    </tr>
    <tr>
      <td><strong>稳定极限环</strong></td>
      <td>周围轨迹逐渐收敛到该轨迹</td>
    </tr>
    <tr>
      <td><strong>不稳定极限环</strong></td>
      <td>周围轨迹远离该轨迹发散</td>
    </tr>
    <tr>
      <td><strong>范德波尔方程</strong></td>
      <td>展示极限环存在的典型非线性系统</td>
    </tr>
    <tr>
      <td><strong>慢–快系统形式</strong></td>
      <td>在 $\varepsilon$ 很大时的等价形式，用于分析快跳变与慢演化</td>
    </tr>
  </tbody>
</table>

<p>📘 <strong>总结：</strong></p>
<blockquote>
  <p>极限环是非线性系统独有的稳定振荡现象，<br />
它揭示了系统在没有外部激励时仍能产生<strong>自维持周期运动</strong>的本质。<br />
范德波尔振子为研究极限环、振荡与混沌等非线性行为奠定了理论基础。</p>
</blockquote>

<h2 id="24-平衡点与-lyapunov-稳定性stability-of-equilibrium-points">24. 平衡点与 Lyapunov 稳定性（Stability of Equilibrium Points）</h2>

<h3 id="241-平衡点的定义equilibrium-point">24.1 平衡点的定义（Equilibrium Point）</h3>

<p>考虑一个自治系统：</p>

\[\dot{x} = f(x)\]

<h4 id="-定义">🔹 定义</h4>
<p>若存在某点 $x^*$ 满足：</p>

\[f(x^\*) = 0\]

<p>则称该点为系统的<strong>平衡点（Equilibrium Point）</strong>。</p>

<h4 id="-解释">🔹 解释</h4>
<ul>
  <li>若系统状态从 $x(0) = x^*$ 开始，则由于 $\dot{x} = 0$，系统保持静止：
\(x(t) \equiv x^\*, \quad \forall t \ge 0\)</li>
  <li>因此，平衡点代表<strong>系统的稳态解</strong>。</li>
</ul>

<h4 id="-示例">🔹 示例</h4>
<p>例如一维系统 $\dot{x} = -x$，有 $f(x) = -x$，<br />
则 $f(0) = 0$，因此 $x^* = 0$ 是平衡点。</p>

<h3 id="242-稳定性的定义definition-of-stability">24.2 稳定性的定义（Definition of Stability）</h3>

<p>考虑系统 $\dot{x} = f(x)$ 的平衡点 $x = 0$。</p>

<h4 id="1稳定stable">（1）稳定（Stable）</h4>

<p>若对于任意小的 $\varepsilon &gt; 0$，存在 $\delta = \delta(\varepsilon) &gt; 0$，<br />
使得只要初始条件满足 $|x(0)| &lt; \delta$，系统轨迹始终保持在 $\varepsilon$ 半径的邻域内：</p>

\[\|x(0)\| &lt; \delta \Rightarrow \|x(t)\| &lt; \varepsilon, \quad \forall t \ge 0\]

<p>则称该平衡点是<strong>稳定的</strong>。</p>

<p>👉 直观理解：<br />
初始条件的微小扰动不会让系统远离平衡点。</p>

<h4 id="2不稳定unstable">（2）不稳定（Unstable）</h4>

<p>若存在任意小的扰动导致系统轨迹发散（离开平衡点邻域），<br />
则称平衡点<strong>不稳定</strong>。</p>

<h4 id="3渐近稳定asymptotically-stable">（3）渐近稳定（Asymptotically Stable）</h4>

<p>如果系统既稳定，且随着时间推移系统轨迹最终收敛到平衡点：</p>

\[\lim\_{t \to \infty} x(t) = 0\]

<p>则称系统<strong>渐近稳定</strong>。</p>

<p>👉 直观解释：<br />
不仅不会发散，还能“自动回到”平衡点，就像摆球最终停在最低点。</p>

<h3 id="243-吸引域region-of-attraction">24.3 吸引域（Region of Attraction）</h3>

<p>若原点是渐近稳定的平衡点，则定义：</p>

<h4 id="1吸引域定义">（1）吸引域定义</h4>
<p>所有使系统解收敛到平衡点的初始状态 $x_0$ 的集合：</p>

\[\mathcal{R} = \{ x\_0 \in D \mid \lim\_{t \to \infty} x(t; x\_0) = 0 \}\]

<p>称为<strong>吸引域（Region of Attraction）</strong>。</p>

<h4 id="2全局渐近稳定global-asymptotic-stability">（2）全局渐近稳定（Global Asymptotic Stability）</h4>
<p>若吸引域为整个 $\mathbb{R}^n$，即无论初始状态在哪，系统最终都回到平衡点：
\(\mathcal{R} = \mathbb{R}^n\)
则称该平衡点<strong>全局渐近稳定</strong>。</p>

<h3 id="244-线性系统的稳定性lti-stability-via-eigenvalues">24.4 线性系统的稳定性（LTI Stability via Eigenvalues）</h3>

<p>考虑线性系统：
\(\dot{x} = A x\)
其解为：
\(x(t) = e^{At} x(0)\)</p>

<p>若矩阵 $A$ 的所有特征值 $\lambda_i$ 满足：
\(\Re(\lambda\_i) &lt; 0, \quad \forall i\)
则系统渐近稳定。</p>

<p>若 $\Re(\lambda_i) = 0$，还需判断其代数重数和几何重数相等，否则系统发散。</p>

<h3 id="245-指数稳定性exponential-stability">24.5 指数稳定性（Exponential Stability）</h3>

<h4 id="1定义">（1）定义</h4>
<p>若存在常数 $k \ge 1$、$\lambda &gt; 0$、$c &gt; 0$，使得：
\(\|x(t)\| \le k \|x(0)\| e^{-\lambda t}, \quad \forall t \ge 0, \ \|x(0)\| &lt; c\)
则称系统在原点<strong>指数稳定（Exponentially Stable）</strong>。</p>

<h4 id="2解释">（2）解释</h4>
<ul>
  <li>系统的收敛速度与 $e^{-\lambda t}$ 成比例；</li>
  <li>$\lambda$ 越大，收敛越快；</li>
  <li>若对任意初始条件成立，则为<strong>全局指数稳定</strong>。</li>
</ul>

<h4 id="3关系总结">（3）关系总结</h4>
<p>\(\text{指数稳定} \Rightarrow \text{渐近稳定}\)
但反之不成立。</p>

<h3 id="246-示例非指数稳定系统">24.6 示例：非指数稳定系统</h3>

<p>考虑：
\(\dot{x} = -x^3\)
解析解：
\(x(t) = \frac{x(0)}{\sqrt{1 + 2t x(0)^2} }\)</p>

<h4 id="1渐近性判断">（1）渐近性判断</h4>
<p>当 $t \to \infty$：
\(x(t) \to 0\)
故系统渐近稳定。</p>

<h4 id="2指数性检验">（2）指数性检验</h4>
<p>假设指数稳定，则应存在常数 $k, \lambda &gt; 0$，使得：
\(|x(t)| \le k e^{-\lambda t} |x(0)|\)</p>

<p>代入解析解：
\(\frac{|x(0)|}{\sqrt{1 + 2t x(0)^2} } \le k e^{-\lambda t}|x(0)|\)
化简得：
\(\frac{e^{2\lambda t} }{1 + 2t x(0)^2} \le k^2\)</p>

<p>但当 $t \to \infty$ 时：
\(\frac{e^{2\lambda t} }{1 + 2t x(0)^2} \to \infty\)</p>

<p>出现矛盾，故系统 <strong>仅渐近稳定，而非指数稳定</strong>。</p>

<h3 id="247-lyapunov-稳定性函数lyapunovs-function">24.7 Lyapunov 稳定性函数（Lyapunov’s Function）</h3>

<h4 id="1lyapunov-函数定义">（1）Lyapunov 函数定义</h4>
<p>设 $V(x)$ 是连续可微函数，定义其沿系统轨迹的导数：
\(\dot{V}(x) = \frac{\partial V}{\partial x} f(x) = \nabla V(x)^\top f(x)\)</p>

<p>若：</p>
<ul>
  <li>$V(x) &gt; 0, \ \forall x \ne 0$；</li>
  <li>$\dot{V}(x) \le 0, \ \forall x$；
则系统稳定。</li>
</ul>

<h3 id="2解释步骤">（2）解释步骤</h3>
<ol>
  <li>构造能量型函数 $V(x)$，例如 $V(x) = x^\top P x$；</li>
  <li>计算 $\dot{V}(x)$；</li>
  <li>若 $\dot{V}(x)$ 恒为负，则能量单调下降，系统收敛；</li>
  <li>若 $\dot{V}(x)$ 仅非正，则能量不增，系统不发散。</li>
</ol>

<h3 id="248-lyapunov-定理lyapunovs-theorem">24.8 Lyapunov 定理（Lyapunov’s Theorem）</h3>

<h4 id="条件">条件</h4>
<p>设系统 $\dot{x} = f(x)$，且存在 $V(x)$ 满足：</p>

<ol>
  <li>$V(0) = 0, \ V(x) &gt; 0, \forall x \ne 0$；</li>
  <li>$\dot{V}(x) \le 0, \forall x$。</li>
</ol>

<h4 id="结论">结论</h4>
<ul>
  <li>若 $\dot{V}(x) \le 0$：系统稳定；</li>
  <li>若 $\dot{V}(x) &lt; 0$：系统渐近稳定；</li>
  <li>若 $V(x)$ 在全空间径向无界且条件全局成立，则系统<strong>全局渐近稳定</strong>。</li>
</ul>

<h3 id="249-lyapunov-函数术语表">24.9 Lyapunov 函数术语表</h3>

<table>
  <thead>
    <tr>
      <th>条件</th>
      <th>中文定义</th>
      <th>英文名称</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>$V(0)=0, V(x)\ge0$</td>
      <td>正半定</td>
      <td>Positive semidefinite</td>
    </tr>
    <tr>
      <td>$V(0)=0, V(x)&gt;0$</td>
      <td>正定</td>
      <td>Positive definite</td>
    </tr>
    <tr>
      <td>$\dot{V}(0)=0, \dot{V}(x)\le0$</td>
      <td>负半定</td>
      <td>Negative semidefinite</td>
    </tr>
    <tr>
      <td>$\dot{V}(0)=0, \dot{V}(x)&lt;0$</td>
      <td>负定</td>
      <td>Negative definite</td>
    </tr>
    <tr>
      <td>$|x|\to\infty \Rightarrow V(x)\to\infty$</td>
      <td>径向无界</td>
      <td>Radially unbounded</td>
    </tr>
  </tbody>
</table>

<h3 id="2410-lyapunov-定理总结总结性说明">24.10 Lyapunov 定理总结（总结性说明）</h3>

<ul>
  <li>若存在连续可微的正定函数 $V(x)$，且其导数 $\dot{V}(x)$ 为负半定，则系统稳定；</li>
  <li>若 $\dot{V}(x)$ 严格负定，则系统渐近稳定；</li>
  <li>若 $V(x)$ 同时径向无界且定义于整个空间，则系统全局渐近稳定。</li>
</ul>

<p>📘 <strong>最终总结</strong></p>

<p>Lyapunov 方法的关键思想是通过“能量函数”的角度理解系统：</p>
<ul>
  <li>$V(x)$ 表示系统的能量；</li>
  <li>$\dot{V}(x)$ 表示能量变化率；</li>
  <li>若能量持续下降，则系统状态最终必定回到平衡点。</li>
</ul>

<table>
  <thead>
    <tr>
      <th>类型</th>
      <th>条件</th>
      <th>稳定性</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>$V&gt;0$, $\dot{V}=0$</td>
      <td>恒能系统</td>
      <td>稳定（但可能不收敛）</td>
    </tr>
    <tr>
      <td>$V&gt;0$, $\dot{V}&lt;0$</td>
      <td>能量单调下降</td>
      <td>渐近稳定</td>
    </tr>
    <tr>
      <td>$V&gt;0$, $\dot{V}&lt;0$, 径向无界</td>
      <td>全空间能量耗散</td>
      <td>全局渐近稳定</td>
    </tr>
  </tbody>
</table>

<blockquote>
  <p>Lyapunov 理论是一种“无需解方程即可判断系统稳定性”的方法，<br />
是现代非线性控制与动力系统分析的基础工具。</p>
</blockquote>

<h2 id="25-模型预测控制model-predictive-control-mpc">25. 模型预测控制（Model Predictive Control, MPC）</h2>

<h3 id="251-引言introduction-to-model-predictive-control">25.1 引言（Introduction to Model Predictive Control）</h3>

<p><strong>模型预测控制（Model Predictive Control, MPC）</strong> 是一种先进的反馈控制策略，<br />
其核心思想是在每个采样时刻利用系统的显式模型预测未来的系统行为，<br />
并通过滚动优化（receding horizon）实时求解有限时域内的最优控制输入。</p>

<h4 id="-控制原理概述">🧩 控制原理概述</h4>

<p>在每个时刻 $ k $：</p>

<ol>
  <li>
    <p><strong>测量当前状态：</strong>
\(x\_k\)</p>
  </li>
  <li>
    <p><strong>求解有限时域最优控制问题：</strong>
\(\min\_{u\_0, \dots, u\_{N-1} } 
\sum\_{j=0}^{N-1} \ell(x\_j, u\_j) + V\_f(x\_N)\)
满足系统动力学约束与输入/状态约束：
\(x\_{j+1} = f(x\_j, u\_j), \quad (x\_j, u\_j) \in \mathcal{X} \times \mathcal{U}\)</p>
  </li>
  <li>
    <p><strong>应用最优输入：</strong>
\(u\_k^\* = u\_0^\*\)
然后向前滚动预测窗口（receding horizon），重复上述步骤。</p>
  </li>
</ol>

<h3 id="252-核心要素core-ingredients-of-predictive-control">25.2 核心要素（Core Ingredients of Predictive Control）</h3>

<ul>
  <li>
    <p><strong>显式内部模型（Explicit Internal Model）</strong><br />
可以是线性（LTI）、线性时变（LTV）或非线性（Nonlinear）系统：
\(x\_{k+1} = f(x\_k, u\_k)\)</p>
  </li>
  <li>
    <p><strong>滚动时域思想（Receding Horizon Idea）</strong><br />
控制器在每个采样周期重新预测与优化，始终基于最新状态进行反馈调整。</p>
  </li>
</ul>

<p>📘 <strong>注意：</strong><br />
MPC 并非单一算法，而是一个<strong>框架（framework）</strong>，<br />
不同的优化器、模型或代价函数定义会导致不同的 MPC 实现（线性、非线性、鲁棒等）。</p>

<h3 id="253-为什么在机器人中使用-mpcwhy-mpc-for-robots">25.3 为什么在机器人中使用 MPC（Why MPC for Robots）</h3>

<p>在机器人控制中，MPC 的优势主要体现在同时处理<strong>约束（constraints）</strong>与<strong>多目标权衡（trade-offs）</strong>。</p>

<h4 id="-硬约束hard-constraints">🧱 硬约束（Hard Constraints）</h4>

<p>MPC 能够显式地将各种物理约束纳入优化问题：</p>

<ul>
  <li><strong>执行器饱和（Actuator saturation）</strong>：
\(\tau\_{\min} \le \tau\_k \le \tau\_{\max}\)</li>
  <li><strong>关节、位置、速度、加速度限制（Joint/Position/Velocity/Acceleration limits）</strong>：
\(q \in [q\_{\min}, q\_{\max}], \quad \dot{q} \in [\dot{q}\_{\min}, \dot{q}\_{\max}]\)</li>
  <li><strong>安全距离（Safety distances）</strong>：
\(\text{dist}(x\_k, \text{obstacles}) \ge d\_{\text{safe} }\)</li>
</ul>

<h4 id="️-多目标代价函数multi-objective-cost-function">⚖️ 多目标代价函数（Multi-Objective Cost Function）</h4>

<p>MPC 通过代价函数平衡<strong>精度（accuracy）</strong>、<strong>平滑性（smoothness）</strong>与<strong>能耗（energy）</strong>：</p>

\[J = \sum\_{k=0}^{N-1}
\|x\_k - x\_k^{\text{ref} }\|\_Q^2 +
\|u\_k\|\_R^2 +
\|x\_N - x\_N^{\text{ref} }\|\_P^2\]

<p>其中：</p>
<ul>
  <li>$ Q $：位置误差权重</li>
  <li>$ R $：控制输入权重</li>
  <li>$ P $：终端误差权重</li>
</ul>

<h4 id="-参数调优与折中tuning-and-trade-offs">🎯 参数调优与折中（Tuning and Trade-offs）</h4>

<p>调节 $(Q, R, P)$ 可以在不同目标之间建立清晰的量化折中关系：</p>

<table>
  <thead>
    <tr>
      <th>目标</th>
      <th>增大权重</th>
      <th>效果</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>精度（accuracy）</td>
      <td>$ Q \uparrow $</td>
      <td>跟踪误差减小，但控制更剧烈</td>
    </tr>
    <tr>
      <td>平滑性（smoothness）</td>
      <td>$ R \uparrow $</td>
      <td>控制动作更平滑，但响应变慢</td>
    </tr>
    <tr>
      <td>稳态误差（terminal accuracy）</td>
      <td>$ P \uparrow $</td>
      <td>最终状态更接近目标，代价更高</td>
    </tr>
  </tbody>
</table>

<h3 id="254-直观理解intuitive-understanding">25.4 直观理解（Intuitive Understanding）</h3>

<p>MPC 就像一个“<strong>预测型驾驶员</strong>”：</p>

<blockquote>
  <p>它不仅看到当前的路况，还能预判未来的转弯、坡度与障碍，<br />
并提前调整油门与方向，使系统始终平稳且安全地运行。</p>
</blockquote>

<h3 id="255-一句话总结-">25.5 一句话总结 🧠</h3>

<blockquote>
  <p><strong>MPC = 预测 + 优化 + 反馈。</strong><br />
它通过显式模型预测未来、求解最优输入，并实时滚动优化，<br />
实现了传统控制无法兼顾的“约束处理 + 多目标最优”能力。</p>
</blockquote>

<h2 id="26-线性化模型预测控制linearization-and-linear-mpc">26. 线性化模型预测控制（Linearization and Linear MPC）</h2>

<h3 id="261-从连续到离散采样与零阶保持sampling-and-zero-order-hold">26.1 从连续到离散：采样与零阶保持（Sampling and Zero-Order Hold）</h3>

<p>MPC 通常在<strong>离散时间系统（Discrete-Time System）</strong>上实现，<br />
因此需要将连续时间模型离散化。</p>

<h4 id="连续时间模型continuous-lti-model">连续时间模型（Continuous LTI Model）</h4>

\[\dot{x}(t) = A\_c x(t) + B\_c u(t)\]

<p>选择采样周期 $ T_s $，并对输入采用<strong>零阶保持（Zero-Order Hold, ZOH）</strong>：</p>

\[u(t) = u\_k, \quad \text{for } t \in [kT\_s, (k+1)T\_s)\]

<blockquote>
  <p>在实际数字控制系统中，控制信号 $ u(t) $ 由计算机以离散时间生成，并在相邻采样周期内保持不变。这种<strong>“采样-保持”机制</strong>称为<strong>零阶保持（ZOH）</strong></p>
</blockquote>

<h4 id="离散时间模型discrete-time-model">离散时间模型（Discrete-Time Model）</h4>

<p>经过采样与保持，得到精确的离散化形式：</p>

\[x\_{k+1} = A x\_k + B u\_k\]

<p>其中：</p>

\[A = e^{A\_c T\_s}, \quad
B = \int\_0^{T\_s} e^{A\_c \tau} B\_c \, d\tau\]

<h3 id="262-采样时间的选择choosing-the-sampling-time-t_s">26.2 采样时间的选择（Choosing the Sampling Time $T_s$）</h3>

<p>采样周期的选取至关重要——它决定了系统的预测精度与实时性之间的平衡。</p>

<h4 id="-目标">🎯 目标</h4>

<p>捕获系统<strong>最快的相关动态</strong>，同时保证优化问题（QP）规模适中。</p>

<blockquote>
  <p>“QP 规模”指的是该优化问题的<strong>变量数量和约束数量</strong>。换言之，它反映了每次求解时优化器需要处理的问题复杂度。</p>
</blockquote>

<h4 id="-经验法则rule-of-thumb">✅ 经验法则（Rule of Thumb）</h4>

\[T\_s \le 0.1 \tau\_{\min}\]

<p>即在系统最小时间常数 $\tau_{\min}$ 上至少取 10 个采样点，<br />
或者选择采样频率至少为闭环带宽的 <strong>10 倍</strong>。</p>

<h4 id="️-常见频率范围typical-control-rates">⚙️ 常见频率范围（Typical Control Rates）</h4>

<table>
  <thead>
    <tr>
      <th>控制层级</th>
      <th>典型频率范围</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>内环（力矩/速度环）</td>
      <td>500 Hz – 2 kHz</td>
    </tr>
    <tr>
      <td>外环（位置/轨迹跟踪）</td>
      <td>50 Hz – 200 Hz</td>
    </tr>
  </tbody>
</table>

<h4 id="️-采样时间过大too-large-t_s">⚠️ 采样时间过大（Too Large $T_s$）</h4>

<ul>
  <li>产生混叠（Aliasing）；</li>
  <li>模型不匹配（Model mismatch）；</li>
  <li>难以满足约束（Constraint violation）。</li>
</ul>

<h4 id="️-采样时间过小too-small-t_s">⚠️ 采样时间过小（Too Small $T_s$）</h4>

<ul>
  <li>优化问题（QP）频繁求解，计算负载过高；</li>
  <li>求解器可能错过实时截止期限（Solver misses deadlines）。</li>
</ul>

<p>📘 <strong>总结：</strong></p>
<blockquote>
  <p>选择合适的 $T_s$ 是 MPC 实时性与精度平衡的关键，<br />
太慢会失真，太快会过载。</p>
</blockquote>

<h3 id="263-为什么要线性化why-linearization-for-mpc">26.3 为什么要线性化（Why Linearization for MPC）</h3>

<p>机器人动力学通常是非线性的：</p>

\[\dot{x} = f(x, u)\]

<p>然而，标准的线性 MPC（即二次规划 QP）仅适用于<strong>仿射系统（Affine Systems）</strong>：</p>

\[\dot{x} \approx A x + B u + c\]

<h4 id="-线性化方法linearization-approach">🧩 线性化方法（Linearization Approach）</h4>

<ul>
  <li>在一个<strong>平衡点（equilibrium）</strong>或<strong>标称轨迹（nominal trajectory）</strong>附近展开；</li>
  <li>使用泰勒展开的一阶近似构造线性模型；</li>
  <li>在每次 MPC 滚动优化时，<strong>在线重线性化（re-linearization online）</strong>：
\(\delta \dot{x} = A(t)\, \delta x + B(t)\, \delta u\)
保证在当前状态附近的精确性（小偏差假设）。</li>
</ul>

<h4 id="-优势benefits">📈 优势（Benefits）</h4>

<ul>
  <li>转化为<strong>凸优化问题（convex QP）</strong>；</li>
  <li>具有可预测的计算时间；</li>
  <li>能直接处理约束条件；</li>
  <li>适用于小范围调节与轨迹跟踪。</li>
</ul>

<h4 id="️-注意caveat">⚠️ 注意（Caveat）</h4>

<p>仅在接近平衡点 $(x^*, u^*)$ 时有效。<br />
若偏差过大，线性模型将失准，需重新线性化。</p>

<h3 id="264-平衡点与轨迹线性化equilibria-vs-trajectories">26.4 平衡点与轨迹线性化（Equilibria vs. Trajectories）</h3>

<h4 id="-平衡点线性化at-an-equilibrium-x-u">🧭 平衡点线性化（At an Equilibrium $(x^*, u^*)$）</h4>

\[f(x^\*, u^\*) = 0\]

<p>则线性化系统为：</p>

\[\delta \dot{x} = A \delta x + B \delta u\]

<ul>
  <li>对应 <strong>线性时不变系统（LTI）</strong>；</li>
  <li>适用于稳态调节与小扰动响应；</li>
  <li>常用于姿态保持或位置维持。</li>
</ul>

<h4 id="-轨迹线性化at-a-nominal-trajectory-xt-ut">🚗 轨迹线性化（At a Nominal Trajectory $(x^*(t), u^*(t))$）</h4>

<ul>
  <li>系统沿时间变化的参考路径运动；</li>
  <li>对应 <strong>线性时变系统（LTV）</strong>；</li>
  <li>MPC 使用参考输入 $u^*(t)$ 作为前馈项；</li>
  <li>在每个时间步 $k$ 重新线性化：
\(\delta x\_{k+1} = A\_k \delta x\_k + B\_k \delta u\_k\)</li>
</ul>

<p>📘 <strong>总结：</strong></p>
<blockquote>
  <p>平衡点线性化用于稳定控制，<br />
轨迹线性化用于动态跟踪。</p>
</blockquote>

<h3 id="265-线性与非线性-mpc-对比linear-vs-nonlinear-mpc">26.5 线性与非线性 MPC 对比（Linear vs. Nonlinear MPC）</h3>

<table>
  <thead>
    <tr>
      <th>特性</th>
      <th><strong>线性 MPC</strong></th>
      <th><strong>非线性 MPC (NMPC)</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>模型形式</td>
      <td>$ x_{k+1} = A x_k + B u_k $</td>
      <td>$ x_{k+1} = f(x_k, u_k) $</td>
    </tr>
    <tr>
      <td>优化类型</td>
      <td>二次规划（QP）</td>
      <td>非线性规划（NLP）</td>
    </tr>
    <tr>
      <td>可解性</td>
      <td>快速、全局凸</td>
      <td>精度高但非凸</td>
    </tr>
    <tr>
      <td>计算复杂度</td>
      <td>低</td>
      <td>高</td>
    </tr>
    <tr>
      <td>适用范围</td>
      <td>局部线性区域</td>
      <td>宽范围动态系统</td>
    </tr>
    <tr>
      <td>主要挑战</td>
      <td>模型局限</td>
      <td>局部最优、实时性困难</td>
    </tr>
  </tbody>
</table>

<p>📘 <strong>总结：</strong></p>

<blockquote>
  <p><strong>Linear MPC</strong> 在实时性与稳定性上具有优势，适合局部控制与工业机器人；<br />
<strong>Nonlinear MPC</strong> 适合处理复杂动力学与高机动性任务，但计算代价更高。</p>
</blockquote>

<h2 id="27-模型预测控制的标准形式standard-formulation-of-mpc">27. 模型预测控制的标准形式（Standard Formulation of MPC）</h2>

<h3 id="271-基本概念fundamental-idea">27.1 基本概念（Fundamental Idea）</h3>

<p>模型预测控制（Model Predictive Control, MPC）的核心是<strong>在有限预测时域（finite prediction horizon）内求解约束最优控制问题</strong>。<br />
在每一个采样时刻，MPC 通过预测未来系统演化，优化未来一段时间内的输入序列，使系统状态尽可能接近期望轨迹或目标点。</p>

<p>MPC 的一般优化问题可以表示为：</p>

\[\min\_{ \{u\_i\}\_{i=0}^{N-1} } 
\sum\_{i=0}^{N-1} \ell(x\_i, u\_i) + V\_f(x\_N)\]

<p>subject to:
\(\begin{cases}
x\_{i+1} = f(x\_i, u\_i), &amp; i = 0, \dots, N-1, \\
x\_0 = \hat{x}\_k, &amp; \text{(当前测量状态)} \\
g(x\_i, u\_i) \le 0, &amp; \text{(一般不等式约束)} \\
h(x\_N) \le 0, &amp; \text{(终端约束或稳定性条件)} \\
u\_i \in \mathcal{U},\; x\_i \in \mathcal{X}, &amp; \text{(输入与状态约束)} 
\end{cases}\)</p>

<hr />

<h3 id="272-组成部分constituent-components">27.2 组成部分（Constituent Components）</h3>

<p>该标准形式包含三个核心部分：</p>

<h4 id="1-阶段代价函数stage-cost">(1) 阶段代价函数（Stage Cost）</h4>

<p>阶段代价函数定义为：</p>

\[\ell(x, u) = \|x - x\_{\text{ref} }\|\_Q^2 + \|u\|\_R^2\]

<ul>
  <li>第一项衡量状态偏离目标 $x_{\text{ref} }$ 的程度；</li>
  <li>第二项限制控制输入的大小，保证平滑性与能耗控制；</li>
  <li>矩阵 $ Q $ 和 $ R $ 是正定加权矩阵，用于调节两者权重。</li>
</ul>

<p><strong>直观解释：</strong></p>
<blockquote>
  <p>阶段代价是 MPC 的“即时损失”，它鼓励状态接近参考目标，同时惩罚剧烈的控制变化。</p>
</blockquote>

<hr />

<h4 id="2-终端代价函数terminal-cost">(2) 终端代价函数（Terminal Cost）</h4>

<p>在预测时域的末尾，引入一个终端项来提升系统稳定性：</p>

\[V\_f(x\_N) = \|x\_N - x\_{\text{ref} }\|\_P^2\]

<p>或与稳定终端集合 $ h(x_N) \le 0 $ 结合使用。</p>

<ul>
  <li>$ P $：终端权重矩阵（通常由李雅普诺夫方程或黎卡提方程计算）。</li>
  <li>$ V_f $：保证状态在预测末尾收敛到稳定区域。</li>
</ul>

<p><strong>直观解释：</strong></p>
<blockquote>
  <p>终端代价确保系统不会“提前停止优化”而偏离目标，
它为系统提供了“远视能力”，避免短期最优但长期失稳。</p>
</blockquote>

<hr />

<h4 id="3-约束条件constraints">(3) 约束条件（Constraints）</h4>

<p>MPC 的强大之处在于其<strong>显式处理约束</strong>：</p>

<ol>
  <li>
    <p><strong>输入约束（Input Constraints）</strong><br />
反映执行器物理极限：
\(u\_{\min} \le u\_i \le u\_{\max}\)</p>
  </li>
  <li>
    <p><strong>状态约束（State Constraints）</strong><br />
确保系统安全运行：
\(x\_{\min} \le x\_i \le x\_{\max}\)</p>
  </li>
  <li>
    <p><strong>一般不等式约束（General Inequalities）</strong><br />
表示复杂的几何或任务条件：
\(g(x\_i, u\_i) \le 0\)</p>
  </li>
  <li>
    <p><strong>终端约束（Terminal Constraints）</strong><br />
保证最终状态位于可稳定控制的集合内：
\(h(x\_N) \le 0\)</p>
  </li>
</ol>

<hr />

<h3 id="273-预测模型与离散化prediction-model-and-discretization">27.3 预测模型与离散化（Prediction Model and Discretization）</h3>

<p>MPC 依赖于一个能够预测系统未来状态的模型。<br />
连续时间非线性动力学通常表示为：</p>

\[\dot{x} = f\_c(x, u)\]

<p>通过选定采样周期 $T_s$，可将其离散化为：</p>

\[x\_{k+1} \approx x\_k + T\_s f\_c(x\_k, u\_k)
\quad \text{(Euler 离散化)}\]

<p>或采用更高精度的积分方法：</p>
<ul>
  <li><strong>RK2 / RK4（Runge–Kutta）</strong>：逐步积分精度更高；</li>
  <li><strong>Collocation</strong>：在区间内部强制动力学一致；</li>
  <li><strong>Multiple-shooting</strong>：将长时间预测分段优化以增强鲁棒性。</li>
</ul>

<hr />

<h4 id="-不同离散化方法的特性比较">📘 不同离散化方法的特性比较</h4>

<table>
  <thead>
    <tr>
      <th>方法</th>
      <th>特点</th>
      <th>优点</th>
      <th>缺点</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Euler</td>
      <td>一阶精度，简单快速</td>
      <td>计算负担低</td>
      <td>精度有限，误差积累</td>
    </tr>
    <tr>
      <td>RK4</td>
      <td>四阶精度</td>
      <td>高精度稳定</td>
      <td>计算量大</td>
    </tr>
    <tr>
      <td>Collocation</td>
      <td>约束连续性</td>
      <td>高精度拟合</td>
      <td>实现复杂</td>
    </tr>
    <tr>
      <td>Multiple-shooting</td>
      <td>分段优化</td>
      <td>数值稳定性好</td>
      <td>变量数量增加</td>
    </tr>
  </tbody>
</table>

<hr />

<h3 id="274-优化问题结构optimization-problem-structure">27.4 优化问题结构（Optimization Problem Structure）</h3>

<p>MPC 优化问题可总结为：</p>

<ul>
  <li><strong>变量：</strong> 控制序列 ${u_0, \dots, u_{N-1}}$</li>
  <li><strong>目标：</strong> 最小化加权误差与控制能量；</li>
  <li><strong>约束：</strong> 动力学方程 + 安全限制 + 稳定条件。</li>
</ul>

<p>当 $ f(x,u) $ 线性、$\ell(x,u)$ 二次时，<br />
问题变为<strong>二次规划（Quadratic Program, QP）</strong>：</p>

\[\min\_U \frac{1}{2} U^\top H U + F^\top U
\quad \text{s.t. } G U \le b\]

<p>这是线性 MPC 的常见形式，能保证全局最优与快速求解。</p>

<hr />

<h3 id="275-在机器人中的意义relevance-to-robotics">27.5 在机器人中的意义（Relevance to Robotics）</h3>

<p>MPC 的标准形式特别适用于机器人系统，因为它：</p>

<ul>
  <li><strong>自然适应约束性系统</strong>（例如关节极限、障碍物、安全距离）；</li>
  <li><strong>允许多目标调优</strong>（平衡精度、能耗、平滑度与安全性）；</li>
  <li><strong>支持非线性扩展</strong>（通过近似或直接求解 NMPC）。</li>
</ul>

<p>在移动机器人、机械臂、无人机控制等领域，MPC 已成为最主流的约束最优控制框架。</p>

<hr />

<h3 id="276-一句话总结-">27.6 一句话总结 🧠</h3>

<blockquote>
  <p><strong>标准 MPC 形式 = 预测模型 + 二次代价 + 约束条件。</strong><br />
它将“未来规划”转化为一个可实时求解的优化问题，<br />
使机器人在动态环境中实现稳定、平滑且安全的自主控制。</p>
</blockquote>

<h2 id="28-模型预测控制实例examples-of-model-predictive-control">28. 模型预测控制实例（Examples of Model Predictive Control）</h2>

<p>在理解了模型预测控制（MPC）的标准形式与离散化原理之后，本节通过几个<strong>典型实例</strong>展示 MPC 如何应用于机器人系统，从线性移动机器人到非线性机械臂控制。</p>

<hr />

<h3 id="281-示例一单轮差动机器人unicycle-robot">28.1 示例一：单轮差动机器人（Unicycle Robot）</h3>

<h4 id="-连续时间运动学模型">🚗 连续时间运动学模型</h4>

<p>单轮机器人（如移动底盘）具有如下连续时间模型：</p>

\[\dot{p}\_x = v \cos \theta, \quad
\dot{p}\_y = v \sin \theta, \quad
\dot{\theta} = \omega\]

<p>其中：</p>
<ul>
  <li>$ (p_x, p_y) $：平面位置；</li>
  <li>$ \theta $：航向角；</li>
  <li>$ v, \omega $：线速度与角速度（控制输入）。</li>
</ul>

<hr />

<h4 id="-线性化linearization">🔹 线性化（Linearization）</h4>

<p>当机器人在近似直线运动（$\theta \approx 0, v \approx v_0$）时，可线性化：</p>

\[\dot{p}\_x \approx v, \quad
\dot{p}\_y \approx v\_0 \theta, \quad
\dot{\theta} = \omega\]

<p>以矩阵形式表示为：</p>

\[\dot{x} = A\_c x + B\_c u\]

<p>其中：</p>

\[x = 
\begin{bmatrix}
p\_x \\\\ p\_y \\\\ \theta
\end{bmatrix}, \quad
u = \begin{bmatrix}
v \\\\ \omega
\end{bmatrix}, \quad
A\_c =\begin{bmatrix}
0 &amp; 0 &amp; 0 \\\\
0 &amp; 0 &amp; v\_0 \\\\
0 &amp; 0 &amp; 0
\end{bmatrix}, \quad
B\_c =\begin{bmatrix}
1 &amp; 0 \\\\
0 &amp; 0 \\\\
0 &amp; 1
\end{bmatrix}\]

<hr />

<h4 id="-离散化discrete-time-form">🔸 离散化（Discrete-Time Form）</h4>

<p>采用采样周期 $ T_s $ 并通过零阶保持（ZOH）离散化：</p>

\[A\_d = e^{A\_c T\_s} \approx
\begin{bmatrix}
1 &amp; 0 &amp; 0 \\\\
0 &amp; 1 &amp; T\_s v\_0 \\\\
0 &amp; 0 &amp; 1
\end{bmatrix}, \quad
B\_d = 
\begin{bmatrix}
T\_s &amp; 0 \\\\
0 &amp; 0 \\\\
0 &amp; T\_s
\end{bmatrix}\]

<p>因此离散系统为：</p>

\[x\_{k+1} = A\_d x\_k + B\_d u\_k\]

<hr />

<h4 id="️-mpc-优化问题qp-formulation">⚙️ MPC 优化问题（QP Formulation）</h4>

<p>预测时域长度 $N$ 下的优化问题：</p>

\[\min\_{ \{u\_i\} } \sum\_{i=0}^{N-1} \big(\|x\_i - x\_i^{\text{ref} }\|\_Q^2 + \|u\_i\|\_R^2\big) + \|x\_N - x\_N^{\text{ref} }\|\_P^2\]

<p>subject to:
\(x\_{i+1} = A\_d x\_i + B\_d u\_i, \quad u\_{\min} \le u\_i \le u\_{\max}, \quad x\_{\min} \le x\_i \le x\_{\max}\)</p>

<blockquote>
  <p>✅ 这是典型的线性 MPC（二次规划 QP）形式，<br />
可用于路径跟踪、避障或稳定姿态等任务。</p>
</blockquote>

<hr />

<h4 id="-直观理解">🧠 直观理解</h4>

<p>MPC 通过预测机器人未来的运动轨迹，<br />
在满足输入/状态约束的同时最小化轨迹偏差，<br />
实现平滑、安全的路径跟踪控制。</p>

<p><img src="https://image.yhbcode000.tech/mpc_unicycle_example.png" alt="" /></p>

<hr />

<h3 id="282-示例二两自由度机械臂2-dof-robot-arm">28.2 示例二：两自由度机械臂（2-DOF Robot Arm）</h3>

<h4 id="-动力学方程continuous-dynamics">🤖 动力学方程（Continuous Dynamics）</h4>

<p>两自由度机械臂的动力学可由欧拉–拉格朗日方程给出：</p>

\[M(q)\ddot{q} + C(q, \dot{q})\dot{q} + g(q) = \tau\]

<p>其中：</p>
<ul>
  <li>$q = [q_1, q_2]^\top$：关节角；</li>
  <li>$\dot{q}$：角速度；</li>
  <li>$\tau = [\tau_1, \tau_2]^\top$：关节力矩（控制输入）；</li>
  <li>$M, C, g$：分别为惯性矩阵、科氏项与重力项。</li>
</ul>

<hr />

<h4 id="-状态空间形式">🔹 状态空间形式</h4>

<p>定义状态 $x = [q, \dot{q}]^\top$，则：</p>

\[\dot{x} =
\begin{bmatrix}
\dot{q} \\ M^{-1}(q)\big(\tau - C(q, \dot{q})\dot{q} - g(q)\big)
\end{bmatrix}
= f\_c(x, u)\]

<hr />

<h4 id="-离散化rk4-integration">🔸 离散化（RK4 Integration）</h4>

<p>采用四阶 Runge–Kutta（RK4）离散化：</p>

\[x\_{k+1} = x\_k + \frac{T\_s}{6}(k\_1 + 2k\_2 + 2k\_3 + k\_4)\]

<p>其中：
\(\begin{aligned}
k\_1 &amp;= f\_c(x\_k, u\_k), \\
k\_2 &amp;= f\_c(x\_k + \tfrac{T\_s}{2}k\_1, u\_k), \\
k\_3 &amp;= f\_c(x\_k + \tfrac{T\_s}{2}k\_2, u\_k), \\
k\_4 &amp;= f\_c(x\_k + T\_s k\_3, u\_k)
\end{aligned}\)</p>

<blockquote>
  <p>RK4 具有高精度数值稳定性，适合 NMPC 使用。</p>
</blockquote>

<hr />

<h4 id="️-nmpc-优化问题nlp-formulation">⚙️ NMPC 优化问题（NLP Formulation）</h4>

\[\min\_{ \{u\_i\} } \sum\_{i=0}^{N-1} (\|x\_i - x\_i^{\text{ref} }\|\_Q^2 + \|u\_i\|\_R^2) + \|x\_N - x\_N^{\text{ref} }\|\_P^2\]

<p>subject to:
\(x\_{i+1} = \Phi\_{\text{RK4} }(x\_i, u\_i; T\_s), \quad \tau\_{\min} \le u\_i \le \tau\_{\max}, \quad \dot{q}\_{\min} \le \dot{q}\_i \le \dot{q}\_{\max}\)</p>

<p>此时，优化问题为<strong>非线性规划（NLP）</strong>，<br />
通常需通过 SQP 或 interior-point 方法求解。</p>

<hr />

<h4 id="-特点总结">🧩 特点总结</h4>

<table>
  <thead>
    <tr>
      <th>对比项</th>
      <th>线性 MPC</th>
      <th>非线性 MPC</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>模型</td>
      <td>线性近似 $x_{k+1}=A x_k + B u_k$</td>
      <td>真正非线性 $x_{k+1}=f(x_k, u_k)$</td>
    </tr>
    <tr>
      <td>优化类型</td>
      <td>QP（二次规划）</td>
      <td>NLP（非线性规划）</td>
    </tr>
    <tr>
      <td>可解性</td>
      <td>快速、凸</td>
      <td>精确但计算代价高</td>
    </tr>
    <tr>
      <td>应用场景</td>
      <td>移动机器人、航迹跟踪</td>
      <td>机械臂、无人机、复杂约束系统</td>
    </tr>
  </tbody>
</table>

<hr />

<h3 id="283-示例三带约束的温度控制系统thermal-system-mpc">28.3 示例三：带约束的温度控制系统（Thermal System MPC）</h3>

<h4 id="️-系统模型">🌡️ 系统模型</h4>

<p>考虑一维温度场（例如炉内温控或电子设备冷却）：</p>

\[\dot{T}(t) = -\alpha (T(t) - T\_{\text{env} }) + \beta u(t)\]

<p>其中：</p>
<ul>
  <li>$T(t)$：系统温度；</li>
  <li>$T_{\text{env} }$：环境温度；</li>
  <li>$u(t)$：加热功率（控制输入）；</li>
  <li>$\alpha, \beta &gt; 0$：热传导系数与加热效率。</li>
</ul>

<p>离散化形式：</p>

\[T\_{k+1} = (1 - \alpha T\_s)T\_k + \beta T\_s u\_k\]

<hr />

<h4 id="️-mpc-控制目标">⚙️ MPC 控制目标</h4>

<ul>
  <li>目标温度 $T^{\text{ref} }$</li>
  <li>输入限制 $0 \le u_k \le 1$</li>
  <li>最小化能耗与温度误差：</li>
</ul>

\[\min\_{ \{u\_i\} } \sum\_{i=0}^{N-1} \big((T\_i - T^{\text{ref} })^2 Q + u\_i^2 R\big)\]

<blockquote>
  <p>该问题为一维 QP，可实时求解，用于空调系统、加热控制等场景。</p>
</blockquote>

<hr />

<h3 id="284-总结summary">28.4 总结（Summary）</h3>

<table>
  <thead>
    <tr>
      <th>示例</th>
      <th>系统类型</th>
      <th>离散化方式</th>
      <th>优化类型</th>
      <th>特点</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>单轮机器人</td>
      <td>线性近似</td>
      <td>ZOH / Euler</td>
      <td>QP</td>
      <td>快速求解，路径平滑</td>
    </tr>
    <tr>
      <td>两自由度机械臂</td>
      <td>非线性</td>
      <td>RK4</td>
      <td>NLP</td>
      <td>高精度控制，复杂动态</td>
    </tr>
    <tr>
      <td>温控系统</td>
      <td>一维线性</td>
      <td>Euler</td>
      <td>QP</td>
      <td>简单易实现，能耗最优</td>
    </tr>
  </tbody>
</table>

<hr />

<p>📘 <strong>一句话总结：</strong></p>

<blockquote>
  <p>不论是差动机器人、机械臂还是温控系统，<br />
MPC 的核心思想始终是——<br />
<strong>“预测未来、最优控制、实时滚动”</strong>，<br />
并通过模型离散化与优化算法实现动态环境下的智能决策。</p>
</blockquote>

<h2 id="29-基于模型的动力学控制model-based-dynamic-control">29. 基于模型的动力学控制（Model-Based Dynamic Control）</h2>

<h3 id="291-引言introduction">29.1 引言（Introduction）</h3>

<p>机器人系统的动力学通常具有显著的<strong>非线性特征</strong>，<br />
例如惯性随构型变化、存在科氏力与离心力项、以及重力效应等。<br />
在这种情况下，传统的线性控制（如 PD 控制）往往无法在全工作空间内保持稳定与高精度。</p>

<p><strong>基于模型的动力学控制（Model-Based Dynamic Control）</strong>通过显式利用系统的动力学模型，<br />
在控制律中对非线性项进行补偿或抵消，使得误差动力学接近线性系统。<br />
这种方法不仅能提高跟踪精度，还能保证系统的可预测性与稳定性。</p>

<hr />

<h3 id="292-为什么需要基于模型的控制why-model-based-control">29.2 为什么需要基于模型的控制（Why Model-Based Control）</h3>

<h4 id="️-机器人动力学模型">⚙️ 机器人动力学模型</h4>

<p>多关节机器人系统的一般形式为：</p>

\[M(q)\ddot{q} + C(q, \dot{q})\dot{q} + g(q) = \tau\]

<p>其中：</p>
<ul>
  <li>$M(q)$：惯性矩阵（与构型相关）；</li>
  <li>$C(q, \dot{q})$：科氏与离心项；</li>
  <li>$g(q)$：重力项；</li>
  <li>$\tau$：关节力矩（控制输入）。</li>
</ul>

<p>这些非线性项导致系统难以直接使用线性控制器设计。<br />
因此，基于模型的方法通过动力学补偿，使误差动态具有更好的可控性和可分析性。</p>

<hr />

<h4 id="-核心目标">🎯 核心目标</h4>

<ul>
  <li>消除或补偿非线性效应；</li>
  <li>获取“线性化”的误差动力学；</li>
  <li>允许基于李雅普诺夫分析证明系统稳定性；</li>
  <li>在不同负载或高动态任务下保持精确控制。</li>
</ul>

<hr />

<h4 id="-优势总结">💡 优势总结</h4>

<table>
  <thead>
    <tr>
      <th>优势</th>
      <th>描述</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>高精度跟踪</td>
      <td>补偿动力学非线性后，误差趋于零</td>
    </tr>
    <tr>
      <td>可预测瞬态</td>
      <td>系统动态可被线性化处理，响应一致</td>
    </tr>
    <tr>
      <td>稳定性可分析</td>
      <td>可用能量函数或李雅普诺夫函数分析稳定性</td>
    </tr>
    <tr>
      <td>适用场景广</td>
      <td>高速轨迹、负载变化、力控任务等</td>
    </tr>
  </tbody>
</table>

<hr />

<h3 id="293-符号定义notation-and-error-representation">29.3 符号定义（Notation and Error Representation）</h3>

<h4 id="误差定义">误差定义</h4>

<p>设参考轨迹为 $q_d(t)$，则定义：</p>

\[e = q - q_d, \quad \dot{e} = \dot{q} - \dot{q}_d\]

<p>即位置误差与速度误差。</p>

<h4 id="参考轨迹光滑性">参考轨迹光滑性</h4>

<p>假设 $q_d(t)$、$\dot{q}_d(t)$、$\ddot{q}_d(t)$ 为二阶连续可导函数，且有界：</p>

\[\|q_d(t)\| \le M_0, \quad
\|\dot{q}_d(t)\| \le M_1, \quad
\|\ddot{q}_d(t)\| \le M_2, \quad \forall t\]

<h4 id="输入与扰动">输入与扰动</h4>

<p>控制输入 $\tau \in \mathbb{R}^n$，外部扰动 $d \in \mathbb{R}^n$，<br />
且扰动项有界，即 $|d(t)| \le D_{\max}$。</p>

<h4 id="增益矩阵定义">增益矩阵定义</h4>

<p>$K_P, K_D, \Lambda, \Gamma, K, K_S$ 等均为对称正定矩阵（SPD），<br />
它们决定系统的收敛速率与阻尼特性。</p>

<hr />

<h3 id="294-控制环结构model-based-control-loop">29.4 控制环结构（Model-Based Control Loop）</h3>

<p>下图展示了典型的基于模型的控制闭环结构：</p>

<p><img src="https://image.yhbcode000.tech/1760083245728.png" alt="1760083245728.png" /></p>

<p>该控制回路表明控制器利用当前的状态反馈 $(q, \dot{q})$ 与参考轨迹 $(q_d, \dot{q}_d, \ddot{q}_d)$，<br />
生成力矩指令 $\tau$，通过模型补偿项来消除非线性效应，使得系统整体表现如线性二阶系统。</p>

<hr />

<h3 id="295-应用场景use-cases">29.5 应用场景（Use Cases）</h3>

<ol>
  <li>
    <p><strong>高精度轨迹跟踪（High-Precision Tracking）</strong><br />
适用于高端工业机械臂（如协作机器人、焊接机器人），<br />
可在复杂路径中维持亚毫米级误差。</p>
  </li>
  <li>
    <p><strong>高速运动控制（Fast Motion Control）</strong><br />
在快速抓取、抛接、无人机姿态控制等任务中，<br />
通过动态补偿防止非线性惯性项引起的不稳定。</p>
  </li>
  <li>
    <p><strong>负载变化补偿（Payload Variation Compensation）</strong><br />
机器人在操作不同质量负载时，惯性矩阵 $M(q)$ 变化显著，<br />
基于模型控制可自动适应不同动态条件。</p>
  </li>
  <li>
    <p><strong>仿人机器人控制（Humanoid and Bipedal Systems）</strong><br />
用于保持平衡与协调动作，抵消重力与非线性相互作用。</p>
  </li>
</ol>

<hr />

<h3 id="296-一句话总结-">29.6 一句话总结 🧠</h3>

<blockquote>
  <p><strong>基于模型的动力学控制</strong>通过利用系统模型补偿非线性项，<br />
将复杂的机器人动力学转换为线性可控的误差系统，<br />
从而实现高精度、高动态与高稳定性的控制性能。</p>
</blockquote>

<h2 id="30-计算力矩控制computed-torque-control-ctc">30. 计算力矩控制（Computed Torque Control, CTC）</h2>

<h3 id="301-理论基础from-inverse-dynamics-derivation">30.1 理论基础（From Inverse Dynamics Derivation）</h3>

<p><strong>计算力矩控制（CTC）</strong>是一种基于<strong>逆动力学补偿</strong>的非线性控制方法，<br />
它利用系统模型将复杂的动力学方程“线性化”，从而将控制问题化简为多个独立的二阶子系统。</p>

<hr />

<h3 id="302-动力学模型robot-dynamics">30.2 动力学模型（Robot Dynamics）</h3>

<p>机器人系统的动力学方程为：</p>

\[M(q)\ddot{q} + C(q, \dot{q})\dot{q} + g(q) = \tau\]

<p>其中：</p>
<ul>
  <li>$M(q)$：惯性矩阵；</li>
  <li>$C(q, \dot{q})$：科氏与离心项；</li>
  <li>$g(q)$：重力项；</li>
  <li>$\tau$：关节力矩输入。</li>
</ul>

<hr />

<h3 id="303-控制目标goal">30.3 控制目标（Goal）</h3>

<p>希望系统的<strong>误差动态</strong>服从线性、可解耦的形式，例如：</p>

\[\ddot{e} + K_d \dot{e} + K_p e = 0\]

<p>其中：</p>
<ul>
  <li>$e = q - q_d$：位置误差；</li>
  <li>$\dot{e} = \dot{q} - \dot{q}_d$：速度误差；</li>
  <li>$K_p \succ 0, K_d \succ 0$：正定增益矩阵。</li>
</ul>

<hr />

<h3 id="304-控制律设计control-law-design">30.4 控制律设计（Control Law Design）</h3>

<p>为实现上述误差动态，设计一个<strong>辅助输入变量</strong> $v$，并定义控制律：</p>

\[\tau = M(q) v + C(q, \dot{q})\dot{q} + g(q)\]

<p>其中辅助变量 $v$ 选为：</p>

\[v = \ddot{q}\_d - K\_d \dot{e} - K\_p e\]

<p>将其代入系统动力学方程，得到闭环形式：</p>

\[M(q)\ddot{q} + C(q, \dot{q})\dot{q} + g(q)
= M(q)(\ddot{q}\_d - K\_d \dot{e} - K\_p e) + C(q, \dot{q})\dot{q} + g(q)\]

<p>化简得：</p>

\[\ddot{e} + K\_d \dot{e} + K\_p e = 0\]

<hr />

<h3 id="305-闭环特性closed-loop-behavior">30.5 闭环特性（Closed-Loop Behavior）</h3>

<p>该闭环系统等价于<strong>解耦的二阶系统</strong>：</p>

\[\ddot{e}\_i + k_{d,i} \dot{e}\_i + k_{p,i} e\_i = 0\]

<p>每个关节 $i$ 的动态都表现为一个二阶线性系统，<br />
其<strong>自然频率</strong>与<strong>阻尼比</strong>由增益矩阵 $(K_p, K_d)$ 决定：</p>

\[\omega_n = \sqrt{K_p}, \quad \zeta = \frac{K_d}{2\sqrt{K_p}}\]

<p>因此，只需调整 $K_p$ 与 $K_d$，即可实现期望的动态响应与稳定性。</p>

<hr />

<h3 id="306-实际实现条件implementation-conditions">30.6 实际实现条件（Implementation Conditions）</h3>

<p>为了实现精确的 CTC，需要以下条件：</p>

<ol>
  <li><strong>模型项可得：</strong><br />
$M(q)$、$C(q, \dot{q})$、$g(q)$ 必须在每个控制周期计算或近似得到；</li>
  <li><strong>参考轨迹已知且光滑：</strong><br />
$q_d(t) \in C^2$，即已知 $\dot{q}_d$、$\ddot{q}_d$；</li>
  <li><strong>可测状态：</strong><br />
$q$ 通常可直接测量，$\dot{q}$ 可通过编码器差分或滤波估计；</li>
  <li><strong>执行器可实现：</strong><br />
电机或液压驱动器应能输出所需的扭矩指令（饱和单独处理）。</li>
</ol>

<hr />

<h3 id="307-特点总结summary">30.7 特点总结（Summary）</h3>

<table>
  <thead>
    <tr>
      <th>特性</th>
      <th>说明</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>控制原理</td>
      <td>基于逆动力学补偿</td>
    </tr>
    <tr>
      <td>闭环结构</td>
      <td>线性二阶系统</td>
    </tr>
    <tr>
      <td>模型需求</td>
      <td>高（需 $M,C,g$ 准确）</td>
    </tr>
    <tr>
      <td>动态性能</td>
      <td>优秀，响应快且精确</td>
    </tr>
    <tr>
      <td>缺点</td>
      <td>对建模误差与噪声敏感</td>
    </tr>
    <tr>
      <td>改进方向</td>
      <td>自适应控制、鲁棒控制、学习补偿等</td>
    </tr>
  </tbody>
</table>

<hr />

<h3 id="308-直观理解intuitive-view">30.8 直观理解（Intuitive View）</h3>

<p>CTC 本质上是在<strong>每个控制周期精确反算系统动力学</strong>，<br />
通过“前馈补偿 + 反馈校正”的方式让系统表现如理想线性系统：</p>

\[\text{Nonlinear system + Inverse model → Linear-like behavior}\]

<hr />

<h3 id="309-一句话总结-">30.9 一句话总结 🧠</h3>

<blockquote>
  <p><strong>计算力矩控制（CTC）</strong>是利用动力学模型实现非线性系统线性化的核心方法，<br />
它使每个关节的运动误差服从二阶线性系统，从而获得精确、可预测的轨迹跟踪性能。</p>
</blockquote>

<h2 id="31-全状态反馈线性化full-state-feedback-linearization-joint-space">31. 全状态反馈线性化（Full-State Feedback Linearization, Joint Space）</h2>

<h3 id="311-理念概述concept-overview">31.1 理念概述（Concept Overview）</h3>

<p><strong>全状态反馈线性化（Full-State Feedback Linearization）</strong>是一种利用系统动力学模型实现精确输入输出解耦的控制方法。<br />
通过在控制律中引入非线性补偿项，可以消除机器人动力学中的耦合效应与非线性项，使闭环系统表现为线性二阶系统。<br />
这种方法是<strong>计算力矩控制（CTC）</strong>的理论推广，也是非线性控制中的经典设计思路。</p>

<hr />

<h3 id="312-动力学模型robot-dynamics">31.2 动力学模型（Robot Dynamics）</h3>

<p>机器人系统的动力学方程为：</p>

\[M(q)\ddot{q} + C(q, \dot{q})\dot{q} + g(q) = \tau\]

<p>其中：</p>
<ul>
  <li>$M(q)$：惯性矩阵；</li>
  <li>$C(q, \dot{q})$：科氏力与离心力矩阵；</li>
  <li>$g(q)$：重力项；</li>
  <li>$\tau$：关节力矩输入。</li>
</ul>

<hr />

<h3 id="313-控制律inverse-dynamics-control-law">31.3 控制律（Inverse Dynamics Control Law）</h3>

<p>设计基于逆动力学的控制律：</p>

\[\tau = M(q)(\ddot{q}_d - K_d \dot{e} - K_p e) + C(q, \dot{q})\dot{q} + g(q)\]

<p>其中：</p>
<ul>
  <li>$e = q - q_d$；</li>
  <li>$\dot{e} = \dot{q} - \dot{q}_d$；</li>
  <li>$K_p, K_d$ 为对称正定矩阵。</li>
</ul>

<p>通过将系统的非线性项 $C(q, \dot{q})\dot{q}$ 和 $g(q)$ 显式补偿，<br />
系统误差方程变为线性形式。</p>

<hr />

<h3 id="314-闭环误差动力学closed-loop-dynamics">31.4 闭环误差动力学（Closed-Loop Dynamics）</h3>

<p>代入控制律后得到：</p>

\[\ddot{e} + K_d \dot{e} + K_p e = 0\]

<p>这是一个标准的二阶线性微分方程，<br />
每个关节可视为独立的线性系统，<br />
系统极点由矩阵 $K_p$ 与 $K_d$ 决定。</p>

<ul>
  <li>当 $K_d$ 较大时，系统响应更快但阻尼较强；</li>
  <li>当 $K_p$ 较大时，稳态误差减小但超调可能增大。</li>
</ul>

<hr />

<h3 id="315-理论解释interpretation">31.5 理论解释（Interpretation）</h3>

<ul>
  <li><strong>输入状态线性化（Exact Input-State Linearization）：</strong><br />
系统在关节空间被完全线性化，非线性耦合项被模型补偿掉；</li>
  <li><strong>解耦特性（Decoupling）：</strong><br />
每个关节独立表现为二阶线性系统；</li>
  <li><strong>参数影响：</strong><br />
系统的自然频率与阻尼比由 $(K_p, K_d)$ 共同设定。</li>
</ul>

<hr />

<h3 id="316-李雅普诺夫稳定性分析lyapunov-stability-sketch">31.6 李雅普诺夫稳定性分析（Lyapunov Stability Sketch）</h3>

<p>定义候选李雅普诺夫函数：</p>

\[V = \frac{1}{2}\dot{e}^T M(q)\dot{e} + \frac{1}{2} e^T K_p e\]

<p>对其求导：</p>

\[\dot{V} = -\dot{e}^T K_d \dot{e} \le 0\]

<p>因此系统渐近稳定，<br />
且误差 $e(t)$ 与 $\dot{e}(t)$ 均随时间趋于零。</p>

<hr />

<h3 id="317-实际意义practical-implications">31.7 实际意义（Practical Implications）</h3>

<ul>
  <li>精确建模是关键，否则补偿误差会引入动态不稳定；</li>
  <li>在高精度控制与轨迹跟踪中，全状态反馈线性化能显著提升性能；</li>
  <li>常用于：
    <ul>
      <li>高速机械臂；</li>
      <li>双足机器人姿态稳定；</li>
      <li>飞行器姿态与轨迹控制。</li>
    </ul>
  </li>
</ul>

<hr />

<h2 id="32-输入输出线性化inputoutput-linearization-task-space">32. 输入输出线性化（Input–Output Linearization, Task Space）</h2>

<h3 id="321-引言motivation">32.1 引言（Motivation）</h3>

<p>在许多任务中，我们并不直接控制关节变量 $q$，<br />
而是希望控制<strong>任务空间（Task Space）</strong>中的输出变量，例如：</p>

\[y = h(q) \in \mathbb{R}^m\]

<p>其中 $h(q)$ 是从关节空间到任务空间的光滑映射函数。</p>

<p>例如：</p>
<ul>
  <li>末端执行器的位置 $(x, y, z)$；</li>
  <li>姿态角 $(\phi, \theta, \psi)$；</li>
  <li>或者其他与任务相关的函数（如抓取力、传感器视角等）。</li>
</ul>

<hr />

<h3 id="322-任务空间动力学task-space-dynamics">32.2 任务空间动力学（Task Space Dynamics）</h3>

<p>从关节动力学：</p>

\[M(q)\ddot{q} + C(q, \dot{q})\dot{q} + g(q) = \tau\]

<p>映射到任务空间变量 $y = h(q)$，<br />
其一阶、二阶导数为：</p>

\[\dot{y} = J(q)\dot{q}, \quad \ddot{y} = J(q)\ddot{q} + \dot{J}(q, \dot{q})\dot{q}\]

<p>其中 $J(q) = \frac{\partial h}{\partial q}$ 为雅可比矩阵。</p>

<hr />

<h3 id="323-控制目标与设计goal-and-control-law">32.3 控制目标与设计（Goal and Control Law）</h3>

<p>目标：使任务空间误差 $e_y = y - y_d$ 满足线性闭环动态：</p>

\[\ddot{e}\_y + K\_{dy}\dot{e}\_y + K_{py} e\_y = 0\]

<p>设计控制律：</p>

\[\tau = M(q)J(q)^{-1} \left( \ddot{y}\_d - K\_{dy}\dot{e}\_y - K\_{py} e\_y - \dot{J}(q, \dot{q})\dot{q} \right) + C(q, \dot{q})\dot{q} + g(q)\]

<p>当 $J(q)$ 非奇异时，该控制律实现任务空间的精确线性化。</p>

<hr />

<h3 id="324-实际意义与对比comparison-with-joint-space">32.4 实际意义与对比（Comparison with Joint-Space）</h3>

<table>
  <thead>
    <tr>
      <th>控制方式</th>
      <th>控制变量</th>
      <th>优点</th>
      <th>缺点</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>关节空间线性化</td>
      <td>$q$</td>
      <td>结构简单，稳定性易分析</td>
      <td>不直接控制末端位置</td>
    </tr>
    <tr>
      <td>任务空间线性化</td>
      <td>$y = h(q)$</td>
      <td>直观控制末端轨迹</td>
      <td>依赖 $J(q)$ 及其导数，奇异点敏感</td>
    </tr>
  </tbody>
</table>

<hr />

<h3 id="325-结论summary">32.5 结论（Summary）</h3>

<blockquote>
  <p><strong>全状态反馈线性化</strong>与<strong>输入输出线性化</strong>是非线性控制中最核心的两种补偿策略。<br />
前者在关节空间实现完全线性化，后者在任务空间直接控制末端运动。<br />
它们共同构成了基于模型控制（Model-Based Control）的理论基础，<br />
在高精度机器人控制、航空航天系统、仿人运动控制等领域具有广泛应用。</p>
</blockquote>

<h2 id="33-相对阶与反馈线性化控制律relative-degree-and-control-law">33. 相对阶与反馈线性化控制律（Relative Degree and Control Law）</h2>

<h3 id="331-从关节动力学出发from-joint-dynamics">33.1 从关节动力学出发（From Joint Dynamics）</h3>

<p>机器人任务空间动力学可由关节空间动力学导出：</p>

\[\ddot{y} = J(q)M(q)^{-1}\big(\tau - C(q, \dot{q})\dot{q} - g(q)\big) + \dot{J}(q, \dot{q})\dot{q}\]

<p>其中：</p>
<ul>
  <li>$y = h(q)$ 为任务空间输出；</li>
  <li>$J(q)$ 为雅可比矩阵；</li>
  <li>$M(q)$、$C(q, \dot{q})$、$g(q)$ 分别为惯性矩阵、科氏/离心项与重力补偿项；</li>
  <li>$\tau$ 为控制输入（关节力矩）。</li>
</ul>

<hr />

<h3 id="332-观察observation">33.2 观察（Observation）</h3>

<p>控制输入 $\tau$ <strong>直接出现在输出的二阶导数 $\ddot{y}$ 中</strong>，<br />
因此该系统的<strong>相对阶（Relative Degree）为 2</strong>。</p>

<p>这意味着：</p>
<ul>
  <li>系统从输入 $\tau$ 到输出 $y$ 之间存在两个积分环节；</li>
  <li>控制目标应在加速度层面（$\ddot{y}$）进行补偿与线性化。</li>
</ul>

<hr />

<h3 id="333-辅助输入的定义auxiliary-input-design">33.3 辅助输入的定义（Auxiliary Input Design）</h3>

<p>为线性化系统输出动态，引入辅助输入 $v$，并定义控制律：</p>

\[\tau = M(q)J(q)^{\top} \Big[ v - \dot{J}(q, \dot{q})\dot{q} + J(q)M(q)^{-1}\big(C(q, \dot{q})\dot{q} + g(q)\big) \Big]\]

<p>代入后得：</p>

\[\ddot{y} = v\]

<p>结果是：<strong>非线性机器人动力学被完全抵消，输入输出映射成为线性形式</strong>。</p>

<hr />

<h3 id="334-控制律直观意义interpretation">33.4 控制律直观意义（Interpretation）</h3>

<p>该控制律的核心思想是通过对系统动力学的精确建模与补偿，<br />
将复杂的非线性动力学方程转化为任务空间内的<strong>线性二阶系统</strong>。</p>

<p>在此情况下，$v$ 成为一个“虚拟控制输入”，可以用经典线性控制理论设计。</p>

<hr />

<h2 id="34-误差动态与控制设计error-dynamics-and-comparison">34. 误差动态与控制设计（Error Dynamics and Comparison）</h2>

<h3 id="341-误差定义define-errors">34.1 误差定义（Define Errors）</h3>

<p>任务空间误差定义为：</p>

\[e = y - y\_d, \quad \dot{e} = \dot{y} - \dot{y}\_d\]

<p>选择辅助输入为：</p>

\[v = \ddot{y}\_d - K\_d \dot{e} - K\_p e\]

<p>代入线性化系统 $\ddot{y} = v$，得到闭环误差动态：</p>

\[\ddot{e} + K\_d \dot{e} + K\_p e = 0\]

<p>该闭环方程与前面关节空间的线性化系统完全一致，<br />
说明<strong>反馈线性化</strong>在任务空间与<strong>计算力矩控制（CTC）</strong>在关节空间具有等价关系。</p>

<hr />

<h3 id="342-比较comparison">34.2 比较（Comparison）</h3>

<table>
  <thead>
    <tr>
      <th>控制策略</th>
      <th>控制变量</th>
      <th>数学形式</th>
      <th>特点</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>CTC（Computed Torque Control）</td>
      <td>关节空间 $q$</td>
      <td>$\ddot{e} + K_d \dot{e} + K_p e = 0$</td>
      <td>精确控制每个关节；结构简单</td>
    </tr>
    <tr>
      <td>反馈线性化（Feedback Linearization）</td>
      <td>任务空间 $y$</td>
      <td>$\ddot{e}_y + K_{dy}\dot{e}_y + K_{py}e_y = 0$</td>
      <td>直接控制末端执行器的运动轨迹</td>
    </tr>
  </tbody>
</table>

<p>✅ <strong>CTC 是反馈线性化的一种特例</strong>（在关节空间下实现）。</p>

<hr />

<h2 id="35-优势与挑战advantages-and-challenges">35. 优势与挑战（Advantages and Challenges）</h2>

<h3 id="351-优势advantages">35.1 优势（Advantages）</h3>

<ul>
  <li>✅ <strong>输入–输出线性化精确：</strong><br />
使任务变量（如末端位置）与输入力矩之间的动态完全线性。</li>
  <li>✅ <strong>直接控制任务变量：</strong><br />
适合末端轨迹控制、力控、交互控制等任务。</li>
  <li>✅ <strong>便于设计线性控制器：</strong><br />
线性化后可直接使用 PD、LQR 等线性控制理论进行设计。</li>
</ul>

<hr />

<h3 id="352-挑战challenges">35.2 挑战（Challenges）</h3>

<table>
  <thead>
    <tr>
      <th>挑战</th>
      <th>说明</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>对模型精度要求高</strong></td>
      <td>需要完整的 $M(q)$、$C(q, \dot{q})$、$g(q)$、$J(q)$ 信息</td>
    </tr>
    <tr>
      <td><strong>对参数误差敏感</strong></td>
      <td>建模误差或摩擦未建模项会导致非线性补偿失效</td>
    </tr>
    <tr>
      <td><strong>执行器饱和问题</strong></td>
      <td>力矩上限会破坏线性化效果，需额外饱和处理</td>
    </tr>
  </tbody>
</table>

<hr />

<h3 id="353-实践应用practical-applications">35.3 实践应用（Practical Applications）</h3>

<ul>
  <li>机械臂末端轨迹控制（如抓取、装配、焊接）；</li>
  <li>医疗机器人和康复机器人（高精度运动控制）；</li>
  <li>飞行与水下机器人姿态线性化控制；</li>
  <li>人形机器人行走与稳定控制。</li>
</ul>

<hr />

<h3 id="354-一句话总结-">35.4 一句话总结 🧩</h3>

<blockquote>
  <p><strong>反馈线性化（Feedback Linearization）</strong>通过对非线性动力学的精确补偿，<br />
将复杂的机器人系统转化为线性二阶动态结构，<br />
使得任务空间的轨迹跟踪可以像控制线性系统一样简单明了。</p>
</blockquote>

<h2 id="36-自适应控制adaptive-control">36. 自适应控制（Adaptive Control）</h2>

<h3 id="361-动机motivation">36.1 动机（Motivation）</h3>

<ul>
  <li>
    <p><strong>真实系统存在不确定性：</strong><br />
参数（质量、摩擦、阻力、空气动力等）通常无法被精确获取。</p>
  </li>
  <li>
    <p><strong>问题：</strong><br />
若使用固定控制器且参数设定错误，系统可能失去稳定性或出现跟踪误差。</p>
  </li>
  <li><strong>自适应思想（Adaptive Idea）：</strong>
    <ul>
      <li>在线估计未知参数；</li>
      <li>根据误差信号实时调整控制器参数。</li>
    </ul>
  </li>
  <li><strong>主要收益（Benefit）：</strong><br />
控制器具备“自我调整能力”，能在存在不确定性的情况下保持稳定与精确跟踪。</li>
</ul>

<hr />

<h3 id="362-一般形式general-form">36.2 一般形式（General Form）</h3>

<p>对于一般非线性系统：</p>

\[\dot{x} = f(x, u), \quad y = h(x)\]

<p><strong>自适应假设：</strong><br />
系统的动力学在未知参数上是线性依赖的：</p>

\[f(x, u) = Y(x, u)\theta\]

<p>其中：</p>
<ul>
  <li>$Y(x, u)$：已知的回归矩阵（regressor），由可测信号构成；</li>
  <li>$\theta$：未知但常数的参数向量。</li>
</ul>

<p><strong>控制目标：</strong><br />
设计控制律 $u(x, \hat{\theta})$ 及参数更新律 $\dot{\hat{\theta}}$，<br />
使得即便 $\theta$ 未知，也能保证输出 $y(t) \to y_d(t)$。</p>

<hr />

<h3 id="363-自适应控制回路adaptive-control-loop">36.3 自适应控制回路（Adaptive Control Loop）</h3>

<p>控制结构通常包括：</p>
<ol>
  <li><strong>内环（Inner Loop）</strong>：控制器，根据当前参数估计计算控制输入 $\tau$；</li>
  <li><strong>外环（Outer Loop）</strong>：自适应律（Adaptation Law），根据误差信号调整参数 $\hat{\theta}$；</li>
  <li><strong>参考模型（Reference Model）</strong>：提供理想响应 $y_m$；</li>
  <li><strong>误差信号（$e = y - y_m$）</strong>：用于调整参数与控制律。</li>
</ol>

<p>该结构保证控制器能动态适应模型不确定性。</p>

<hr />

<h3 id="364-机器人系统中的自适应控制adaptive-control-for-robotics">36.4 机器人系统中的自适应控制（Adaptive Control for Robotics）</h3>

<p>机器人动力学模型为：</p>

\[M(q)\ddot{q} + C(q, \dot{q})\dot{q} + g(q) = \tau\]

<p>满足标准性质：</p>
<ul>
  <li>$M(q) = M(q)^{\top} \succ 0$（对称正定）；</li>
  <li>$\dot{M}(q, \dot{q}) - 2C(q, \dot{q})$ 为反对称矩阵；</li>
  <li>
    <p><strong>线性参数化（Linear Parameterization）：</strong></p>

    <p>对任意 $(\xi, \zeta)$：</p>

\[M(q)\xi + C(q, \dot{q})\zeta + g(q)
= Y(q, \dot{q}, \zeta, \xi)\theta\]
  </li>
</ul>

<p>其中：</p>
<ul>
  <li>$Y(\cdot)$ 是已知的回归矩阵；</li>
  <li>$\theta$ 是未知但常数的系统参数向量。</li>
</ul>

<blockquote>
  <p>通过该形式，可以将动力学不确定性转化为参数估计问题，<br />
结合自适应律实现实时补偿。</p>
</blockquote>

<h2 id="37-自适应-slotineli-控制adaptive-slotineli-control">37. 自适应 Slotine–Li 控制（Adaptive Slotine–Li Control）</h2>

<h3 id="371-跟踪设定与滤波误差tracking-setup--filtered-error">37.1 跟踪设定与滤波误差（Tracking Setup &amp; Filtered Error）</h3>

<p>设定期望轨迹 $q_d(t)$，该轨迹为<strong>二阶可导且有界</strong>。<br />
定义<strong>跟踪误差</strong>与<strong>滤波（滑模）误差</strong>为：</p>

\[e := q - q\_d, \quad s := \dot{e} + \Lambda e\]

<p>其中 $\Lambda = \Lambda^{\top} &gt; 0$ 为设计矩阵。<br />
再定义<strong>参考速度与加速度</strong>：</p>

\[\dot{q}\_r := \dot{q}\_d - \Lambda e, \quad
\ddot{q}\_r := \ddot{q}\_d - \Lambda \dot{e}\]

<p>于是可得：</p>

\[s = \dot{q} - \dot{q}\_r, \quad
\dot{s} = \ddot{q} - \ddot{q}\_r\]

<blockquote>
  <p>滤波误差 $s$ 表示系统当前速度与期望参考速度的偏差，是控制器的核心反馈变量。</p>
</blockquote>

<hr />

<h3 id="372-回归模型与控制律regressor-control-law-and-adaptation">37.2 回归模型与控制律（Regressor, Control Law, and Adaptation）</h3>

<p>基于机器人动力学的线性参数化性质：</p>

\[M(q)\ddot{q}\_r + C(q, \dot{q})\dot{q}\_r + g(q)
= Y(q, \dot{q}, \dot{q}\_r, \ddot{q}\_r)\theta\]

<p><strong>Slotine–Li 自适应控制律</strong>定义为：</p>

\[\tau = Y(q, \dot{q}, \dot{q}\_r, \ddot{q}\_r)\hat{\theta} - K\_d s\]

<p>其中：</p>
<ul>
  <li>$K_d = K_d^{\top} &gt; 0$：反馈增益矩阵；</li>
  <li>$\hat{\theta}$：参数估计值；</li>
  <li>$Y(\cdot)$：已知的回归矩阵。</li>
</ul>

<p><strong>参数更新律（Adaptation Law）：</strong></p>

\[\dot{\hat{\theta}} = -\Gamma Y(q, \dot{q}, \dot{q}\_r, \ddot{q}\_r)^{\top}s\]

<p>其中 $\Gamma = \Gamma^{\top} &gt; 0$ 为自适应增益矩阵。</p>

<blockquote>
  <p>控制律补偿了系统的动力学项，而参数更新律根据实时误差信号调整模型估计值。</p>
</blockquote>

<table>
  <thead>
    <tr>
      <th>项</th>
      <th>数学形式</th>
      <th>功能</th>
      <th>直觉类比</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>$Y(q, \dot{q}, \dot{q}_r, \ddot{q}_r)\hat{\theta}$</td>
      <td>前馈项</td>
      <td>抵消非线性与耦合项</td>
      <td>“预见性补偿”</td>
    </tr>
    <tr>
      <td>$-K_d s$</td>
      <td>反馈项</td>
      <td>抑制误差与振荡</td>
      <td>“阻尼校正”</td>
    </tr>
    <tr>
      <td>$\dot{\hat{\theta}} = -\Gamma Y^{\top}s$</td>
      <td>自适应律</td>
      <td>实时调整参数估计</td>
      <td>“学习与自校正”</td>
    </tr>
  </tbody>
</table>

<hr />

<h3 id="373-闭环误差动力学closed-loop-error-dynamics">37.3 闭环误差动力学（Closed-Loop Error Dynamics）</h3>

<p>将控制律代入系统方程：</p>

\[M(q)\dot{s} + C(q, \dot{q})s + K\_d s
= Y(q, \dot{q}, \dot{q}\_r, \ddot{q}\_r)\tilde{\theta}\]

<p>其中 $\tilde{\theta} = \hat{\theta} - \theta$ 为参数估计误差。</p>

<hr />

<h3 id="374-李雅普诺夫稳定性分析lyapunov-stability-analysis">37.4 李雅普诺夫稳定性分析（Lyapunov Stability Analysis）</h3>

<p>定义李雅普诺夫候选函数：</p>

\[V = \frac{1}{2}s^{\top}M(q)s + \frac{1}{2}\tilde{\theta}^{\top}\Gamma^{-1}\tilde{\theta}\]

<p>求导：</p>

\[\dot{V} = s^{\top}(C s + M\dot{s}) + \tilde{\theta}^{\top}\Gamma^{-1}\dot{\tilde{\theta}}\]

<p>利用动力学矩阵的反对称性质与自适应律可得：</p>

\[\dot{V} = -s^{\top}K\_d s \le 0\]

<blockquote>
  <p>表明系统能量单调下降，因此闭环系统稳定。</p>
</blockquote>

<hr />

<h3 id="375-稳定性结论stability-conclusions">37.5 稳定性结论（Stability Conclusions）</h3>

<p>根据 $\dot{V} = -s^{\top}K_d s$，可得：</p>

<ul>
  <li>$V(t)$ 单调不增且下界有界 $\Rightarrow s(t), \tilde{\theta}(t)$ 有界；</li>
  <li>$s^{\top}K_d s \in L_2 \cap L_{\infty}$；</li>
  <li>$q, \dot{q}, \dot{q}_r$ 有界 $\Rightarrow \dot{s}$ 有界；</li>
  <li>由 Barbalat 引理：$s(t) \to 0$；</li>
  <li>因为 $s = \dot{e} + \Lambda e \to 0$，所以 $e(t) \to 0$ 指数收敛。</li>
</ul>

<hr />

<h3 id="376-结果总结result">37.6 结果总结（Result）</h3>

<blockquote>
  <p><strong>结论：</strong></p>
  <ul>
    <li>关节跟踪误差 $e(t)$ 全局收敛到 0；</li>
    <li>参数 $\theta$ 即使未知，控制器仍可保证稳定与精确跟踪；</li>
    <li>Slotine–Li 控制是<strong>自适应控制与动力学补偿的完美结合</strong>，<br />
兼顾实时性、稳定性与鲁棒性。</li>
  </ul>
</blockquote>

<h2 id="38-滑模控制sliding-mode-control-smc">38. 滑模控制（Sliding Mode Control, SMC）</h2>

<h3 id="381-动机与核心思想motivation--core-idea">38.1 动机与核心思想（Motivation &amp; Core Idea）</h3>

<ul>
  <li>目标：在存在匹配扰动 $d(t)$（通过输入通道作用）和模型不确定性的情况下，实现对期望轨迹 $q_d(t)$ 的鲁棒跟踪。</li>
  <li>SMC 思路：设计滑模面 $s(q,\dot{q},t)=0$ 并构造控制，使轨迹在有限时间内到达该面（reaching phase），并在该面上按期望动力学滑行（sliding phase），从而获得对匹配扰动的强鲁棒性。</li>
</ul>

<hr />

<h3 id="382-机器人模型与关键性质robot-model--key-property">38.2 机器人模型与关键性质（Robot Model &amp; Key Property）</h3>

<p>连续关节空间动力学带扰动：</p>

\[M(q)\ddot{q} + C(q,\dot{q})\dot{q} + g(q) = \tau + d(t)\]

<p>重要性质（用于分析）：</p>
<ul>
  <li>$M(q)=M(q)^\top \succ 0$；</li>
  <li>$\dot{M}(q,\dot{q}) - 2C(q,\dot{q})$ 为反对称矩阵（skew-symmetric）；</li>
  <li>
    <table>
      <tbody>
        <tr>
          <td>假设扰动分量有界： $</td>
          <td>d_i(t)</td>
          <td>\le \Delta_i$（对每个关节分量）。</td>
        </tr>
      </tbody>
    </table>
  </li>
</ul>

<hr />

<h3 id="383-跟踪误差与滑模变量tracking-errors--sliding-variable">38.3 跟踪误差与滑模变量（Tracking Errors &amp; Sliding Variable）</h3>

<p>定义：
\(e := q - q\_d, \qquad \dot{e} := \dot{q} - \dot{q}\_d\)</p>

<p>滑模（滤波）误差：
\(s := \dot{e} + \Lambda e, \qquad \Lambda = \Lambda^\top \succ 0\)</p>

<p>在 $s=0$ 上，误差满足 $\dot{e} + \Lambda e = 0 \Rightarrow e(t)=e(0)e^{-\Lambda t}\to 0$，因此到达并保持在 $s=0$ 即实现期望误差衰减。</p>

<hr />

<h3 id="384-推导-dots-与关键平衡deriving-dots">38.4 推导 $\dot{s}$ 与关键平衡（Deriving $\dot{s}$）</h3>

<p>从动力学：
\(\ddot{q} = M(q)^{-1}\big(\tau - C(q,\dot{q})\dot{q} - g(q) + d(t)\big)\)</p>

<p>参考速度/加速度定义（与前节一致）：
\(\dot{q}\_r := \dot{q}\_d - \Lambda e,\qquad \ddot{q}\_r := \ddot{q}\_d - \Lambda \dot{e}\)</p>

<p>有 $s = \dot{q} - \dot{q}_r$ 与 $\dot{s} = \ddot{q} - \ddot{q}_r$。乘以 $M$ 并加减 $C\dot{q}_r$ 得：</p>

\[M\dot{s} + C s = \tau - \underbrace{\big(M\ddot{q}\_r + C\dot{q}\_r + g\big)}_{\tau\_{eq}} + d(t)\]

<p>即关键平衡为：
\(M\dot{s} + C s = (\tau - \tau\_{eq}) + d(t).\)</p>

<hr />

<h3 id="385-到达律与李雅普诺夫分析reaching-law">38.5 到达律与李雅普诺夫分析（Reaching Law）</h3>

<p>取李雅普诺夫函数：
\(V\_s = \tfrac{1}{2} s^\top M(q) s.\)</p>

<p>因反对称性可得：
\(\dot{V}\_s = s^\top (M\dot{s} + C s) = s^\top\big((\tau - \tau\_{eq}) + d\big).\)</p>

<p>为了保证有限时间到达滑模面，应设计 $u := \tau - \tau_{eq}$ 使得
\(\dot{V}\_s \le -\alpha \|s\|\_1, \quad \alpha&gt;0.\)</p>

<p>若成立，则 $s(t)$ 在有限时间到达 0（componentwise arguments 给出线性衰减界）。</p>

<hr />

<h3 id="386-经典-smc-控制律与鲁棒条件classic-smc--robustness">38.6 经典 SMC 控制律与鲁棒条件（Classic SMC &amp; Robustness）</h3>

<p>取不连续切换控制（理想分析）：
\(u = -K\,\operatorname{sgn}(s), \qquad K=\operatorname{diag}\{k_i\}\succ 0,\)
即 $\tau = \tau_{eq} + u$。</p>

<p>代入 $\dot{V}_s$ 给出：
\(\dot{V}\_s = s^\top(-K\operatorname{sgn}(s) + d) = -\sum_i k_i|s_i| + \sum_i d_i s_i.\)</p>

<p>若 $|d_i s_i| \le \Delta_i |s_i|$，则
\(\dot{V}\_s \le -\sum_i (k_i - \Delta_i)|s_i|.\)</p>

<p><strong>设计规则：</strong> 选取 $k_i &gt; \Delta_i$，则 $\dot{V}_s \le -\alpha|s|_1$，保证有限时到达性与鲁棒性。</p>

<hr />

<h3 id="387-抖振chattering与边界层boundary-layer">38.7 抖振（Chattering）与边界层（Boundary Layer）</h3>

<ul>
  <li>理想 $\operatorname{sgn}(s)$ 导致高频切换（chattering）；执行器和传感器无法无限快切换 -&gt; 实际系统出现小幅高频振荡，带来振动和磨损。</li>
  <li>常用缓和方法：边界层饱和函数
\(u = -K\,\operatorname{sat}(s/\phi),\qquad
\operatorname{sat}(z)=\begin{cases}
\operatorname{sgn}(z), &amp; |z|\ge 1,\\[4pt]
z, &amp; |z|&lt;1,
\end{cases}\)
这里取 $\operatorname{sat}(s/\phi)$ 表示分量式的饱和（bandwidth $\phi$）。</li>
  <li>边界层去除抖振，但引入终值误差（ultimate bound）。边界层规模与稳态误差成正比。</li>
</ul>

<hr />

<h3 id="388-完整关节空间-smccomplete-smc-law">38.8 完整关节空间 SMC（Complete SMC Law）</h3>

<p>将名义等效力矩与切换项合并：</p>

\[\tau\_{eq} = M(q)(\ddot{q}\_d - \Lambda \dot{e}) + C(q,\dot{q})\dot{q} + g(q)\]

\[\tau = \tau\_{eq} - K\,\operatorname{sat}(s/\phi)\]

<p>闭环在 $s$ 上满足：
\(M\dot{s} + C s = -K\,\operatorname{sat}(s/\phi) + d,\)
从而可证明到达性与最终有界性（ultimate boundedness）。</p>

<hr />

<h3 id="389-二阶滑模super-twisting以减小抖振reduced-chattering">38.9 二阶滑模（Super-Twisting）以减小抖振（Reduced Chattering）</h3>

<p>为获得连续控制且降低抖振，可采用 super-twisting（二阶 SMC）形式（每个关节 $i$）：</p>

\[u_i = -k_{1i} |s_i|^{1/2}\operatorname{sgn}(s_i) + v_i,\qquad
\dot{v}_i = -k_{2i}\operatorname{sgn}(s_i),\]

<p>再将 $u$ 注入為 $\tau = \tau_{eq} + u$。该方法给出连续（累积）控制输入，能显著抑制抖振，并在满足扰动导数有界及增益条件下实现有限时收敛。</p>

<hr />

<h3 id="3810-要点回顾takeaways">38.10 要点回顾（Takeaways）</h3>

<ul>
  <li>设计 $s=\dot{e}+\Lambda e$ 编码期望误差衰减。</li>
  <li>用 $\tau_{eq}$ 抵消名义动力学，用 $-K\,\operatorname{sat}(s/\phi)$ 提供鲁棒性并抑制抖振。</li>
  <li>用 $V_s=\tfrac{1}{2}s^\top M s$ 证明可达性；选择 $k_i&gt;\Delta_i$。</li>
  <li>
    <table>
      <tbody>
        <tr>
          <td>边界层 $\phi$ 给出终值界： $</td>
          <td>s_i</td>
          <td>\le (\phi_i \Delta_i)/k_i$。</td>
        </tr>
      </tbody>
    </table>
  </li>
  <li>在执行器和传感器现实约束下调参 $(\Lambda,K,\phi)$；如需更少抖振可考虑 super-twisting。</li>
</ul>

<hr />

<h3 id="39-四类情形中-tau-的作用">39. 四类情形中 $\tau$ 的作用</h3>

<h4 id="391-a-关节空间逆动力学--计算力矩控制ctc-joint-space">39.1 (A) 关节空间逆动力学 / 计算力矩控制（CTC, Joint space）</h4>

<p><strong>控制律：</strong>
\(\tau = M(q)\,v + C(q,\dot{q})\dot{q} + g(q),\qquad v = \ddot{q}\_d - K\_d\dot{e} - K\_p e\)</p>

<p><strong>$\tau$ 的作用与直觉：</strong></p>
<ul>
  <li>前馈 / 等效部分 $M v + C\dot{q} + g$ 精确抵消名义动力学，使闭环误差动力学成为线性二阶： $ \ddot{e} + K_d\dot{e} + K_p e = 0$（在模型准确时）。</li>
  <li>完全依赖精确模型；不含自适应或切换项；优点是高跟踪精度且无抖振；缺点对建模误差或快速扰动敏感。</li>
</ul>

<hr />

<h4 id="392-b-任务空间输入输出线性化ctc-task-space">39.2 (B) 任务空间输入—输出线性化（CTC, Task-space）</h4>

<p><strong>任务空间力与映射：</strong>
\(F\_{eq} = \Lambda(\ddot{x}\_d - \Lambda\_x \dot{e}\_x) + \bar{\Xi}\dot{x} + p,\qquad F = F\_{eq} - K\_x\operatorname{sat}(s\_x/\phi\_x)\)
<strong>关节力矩由雅可比映射：</strong>
\(\tau = J(q)^\top F\)</p>

<p><strong>$\tau$ 的作用与直觉：</strong></p>
<ul>
  <li>先在任务空间构造所需的力 $F$（等效前馈 + 鲁棒切换/饱和项），再通过 $\tau = J^\top F$ 把這些力映射回关节力矩。</li>
  <li>优点是直接控制末端/任务变量（位置、力等）；仍需名义的模型/雅可比；若用饱和/边界层可减小抖振。</li>
</ul>

<hr />

<h4 id="393-c-slotineli-自适应">39.3 (C) Slotine–Li 自适应</h4>

<p><strong>控制律：</strong>
\(\tau = Y(q,\dot{q},\dot{q}\_r,\ddot{q}\_r)\,\hat{\theta} - K\_d s\)
自适应律：
\(\dot{\hat{\theta}} = -\Gamma Y^\top s\)</p>

<p><strong>$\tau$ 的作用与直觉：</strong></p>
<ul>
  <li>前馈项 $Y\hat{\theta}$ 用在线估计的参数替代精确 $M\ddot{q}_r + C\dot{q}_r + g$，实现对名义动力学的补偿（当 $\hat{\theta}\approx\theta$ 时效果很好）。</li>
  <li>反馈项 $-K_d s$ 提供阻尼與修正以对抗估计误差與瞬时扰动。</li>
  <li>优点：在参数未知但固定（或慢变）时能保证渐近收敛且无抖振；缺点：对快变扰动/未建模动态的瞬时鲁棒性不及 SMC。</li>
</ul>

<hr />

<h4 id="394-d-滑模控制smc">39.4 (D) 滑模控制（SMC）</h4>

<p><strong>名义等效项：</strong>
\(\tau\_{eq} = M(q)(\ddot{q}\_d - \Lambda \dot{e}) + C(q,\dot{q})\dot{q} + g(q)\)
<strong>切换 / 鲁棒项（示例，带边界层）：</strong>
\(\tau = \tau\_{eq} - K\,\operatorname{sat}(s/\phi)\)
（理想形式可用 $-K\operatorname{sgn}(s)$）</p>

<p><strong>$\tau$ 的作用與直觉：</strong></p>
<ul>
  <li>$\tau_{eq}$ 抵消名义动力学，讓系統“就绪”做到滑模；額外項 $-K\operatorname{sat}(\cdot)$ 提供能量注入/抽取以克服匹配扰动，强制 $s$ 在有限时间到达 0。</li>
  <li>优点：对有界匹配扰动有强鲁棒性与有限时收敛；缺点：理想切换会导致抖振，需用边界层或二阶 SMC（super-twisting）抑制。</li>
</ul>

<hr />

<h4 id="395-简要比较compact-comparison">39.5 简要比较（Compact Comparison）</h4>

<table>
  <thead>
    <tr>
      <th>面向</th>
      <th style="text-align: right">前馈（名义）</th>
      <th>额外项</th>
      <th>需求</th>
      <th>鲁棒/抖振</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>CTC</td>
      <td style="text-align: right">精确 $M v + C\dot{q}+g$</td>
      <td>无</td>
      <td>精确模型</td>
      <td>精度高；对扰动敏感</td>
    </tr>
    <tr>
      <td>Task-space</td>
      <td style="text-align: right">$F_{eq}$ 映射 $J^\top F_{eq}$</td>
      <td>$-K_x\operatorname{sat}$</td>
      <td>$J,\Lambda$ 等</td>
      <td>控制末端直观；受雅可比奇异影响</td>
    </tr>
    <tr>
      <td>Slotine–Li</td>
      <td style="text-align: right">$Y\hat{\theta}$（估计）</td>
      <td>$-K_d s$</td>
      <td>线性参数化 $Y\theta$</td>
      <td>无抖振；对快变扰动弱</td>
    </tr>
    <tr>
      <td>SMC</td>
      <td style="text-align: right">$\tau_{eq}$</td>
      <td>$-K\operatorname{sgn/sat}$</td>
      <td>扰动上界 $\Delta$</td>
      <td>有限时鲁棒；需防抖振</td>
    </tr>
  </tbody>
</table>

<table>
  <thead>
    <tr>
      <th>Approach</th>
      <th style="text-align: right">Nominal Feedforward</th>
      <th>Additional Term</th>
      <th>Requirements</th>
      <th>Robustness / Chattering</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>CTC, joint space</strong></td>
      <td style="text-align: right">Exact $M v + C\dot{q} + g$</td>
      <td>None</td>
      <td>Accurate model</td>
      <td>High precision; sensitive to disturbances</td>
    </tr>
    <tr>
      <td><strong>CTC task-space</strong></td>
      <td style="text-align: right">$F_{eq}$ mapped via $J^\top F_{eq}$</td>
      <td>$-K_x \operatorname{sat}$</td>
      <td>Requires $J$, $\Lambda$, etc.</td>
      <td>Intuitive end-effector control; affected by Jacobian singularities</td>
    </tr>
    <tr>
      <td><strong>Slotine–Li</strong></td>
      <td style="text-align: right">$Y\hat{\theta}$ (estimated)</td>
      <td>$-K_d s$</td>
      <td>Linear parameterization $Y\theta$</td>
      <td>No chattering; weaker against fast-varying disturbances</td>
    </tr>
    <tr>
      <td><strong>SMC</strong></td>
      <td style="text-align: right">$\tau_{eq}$</td>
      <td>$-K,\operatorname{sgn/sat}$</td>
      <td>Requires disturbance bound $\Delta$</td>
      <td>Finite-time robustness; potential chattering (needs suppression)</td>
    </tr>
  </tbody>
</table>

<hr />

<h4 id="396-设计建议practical-guidance">39.6 设计建议（Practical Guidance）</h4>

<ul>
  <li>若模型可信、需求最高精度：优先 CTC。</li>
  <li>若关心末端任务（位置/力）且希望用同样的鲁棒手段：用 Task-space 控制（$F$ 然后 $\tau=J^\top F$）。</li>
  <li>若参数未知但较慢变化且希望无抖振：Slotine–Li。</li>
  <li>若扰动大且需有限时鲁棒性：SMC（并用边界层或 super-twisting 控制抖振）。</li>
  <li>实务上常把名义补偿 $\tau_{eq}$ 与自适应或滑模项结合，以兼顾精度與鲁棒性。</li>
</ul>

<hr />

<p><strong>一句话总结：</strong> 四类方法都包含“名义补偿/前馈”部分（抵消 $M,C,g$ 或其估计），但附加项不同：CTC 直接线性化、Task-space 先在任务空间设计力再映射、Slotine–Li 用在线估计替代精确模型并加线性反馈、SMC 则在名义补偿上再加切换/鲁棒项以实现有限时鲁棒性。</p>

<hr />

<blockquote>
  <p><strong>🍀后记🍀</strong><br />
博客的关键词集中在编程、算法、机器人、人工智能、数学等等，持续高质量输出中。<br />
<strong>🌸唠嗑QQ群</strong>：<a href="https://jq.qq.com/?_wv=1027&amp;k=EaGddTQg">兔叽の魔术工房</a> (942848525)<br />
<strong>⭐B站账号</strong>：<a href="https://space.bilibili.com/98639326">白拾ShiroX</a>（活跃于知识区和动画区）<br />
<strong>✨GitHub主页</strong>：<a href="https://github.com/yhbcode000">yhbcode000</a>（工程文件）<br />
<strong>⛳Discord社区</strong>：<a href="https://discord.g/nn5NDXMgae">AierLab</a>（人工智能社区）</p>
</blockquote>]]></content><author><name>Haobo Yang (杨昊波)</name><email>yhbcode000@foxmail.com</email><uri>https://blog.yhbcode000.tech</uri></author><summary type="html"><![CDATA[A comprehensive survey of robot manipulation and motion control: covering kinematics, dynamics, Jacobians, force closure, imitation learning, and state-space control methods.]]></summary></entry><entry><title type="html">Geometric Visual Illusions as Inductive Biases for Vision Models</title><link href="https://yhbcode000.tech/visual-illusions-research/" rel="alternate" type="text/html" title="Geometric Visual Illusions as Inductive Biases for Vision Models" /><published>2025-04-20T11:08:34+00:00</published><updated>2025-04-20T11:08:34+00:00</updated><id>https://yhbcode000.tech/visual-illusions-research</id><content type="html" xml:base="https://yhbcode000.tech/visual-illusions-research/"><![CDATA[<p>Research notes on leveraging geometric visual illusions as perceptual inductive biases for vision models — the foundational exploration behind the InDL dataset and related publications.</p>

<ol>
  <li>如果我们投递neuralps dataset and benchmark track, evaluate cost on the illusion dataset is a good idea which provide a new insight into the machine learning models, how well they can react to human illusion and give valuable insights from the result with evaluation results and with the evaluation we can make modification to ml models and make them working more smoothly.</li>
  <li>besides if we get into human side, illusion is where human bad at, therefore this illusion dataset would be the one give AI an idea that human may suffer from this and do collaboration working with human may not a good idea. but this illusion might be the source of creativity, but to be honest, creativity is the most difficult thing to evaluate by human, and by certain metrics.</li>
  <li>therefore in this case what is the contribution of our method? besides cost, we can also get into the latent space to evaluate if an attention machnism has similar idea as human and generate illusion effect in a high dimension, and to remove such illusion, we have to provide tools for it to better understand the world instead of percept with bare eye or attention. We have to admit that, it is impossible for human to measure something with bare eye, so does doing math, we need thinking tools to help us do math etc.</li>
  <li>所以按照两篇论文去写，一篇是数据集的论文，按照榜单，分析，利用的思路去做。另一篇是从错觉诞生的过程中获得insight，优化attention甚至是multi-head attention的效果（因为已经有人分析说diffusion model存在和人类似的错觉了，但diffusion model更多是色彩上的，而不是特征层面的，所以讨论attention优化需要更抽象更小心些）这篇文章就不需要使用视错觉数据集了，但可以在视错觉数据集上进行测试和验证，看是否有一个很好的排名，毕竟是是错觉剔除后的模型。</li>
  <li>第二篇论文要用vit或者支持transformer架构的模型来做，而且是使用最基础的vit架构去做。（但是另一方面，如果我们在讨论频率和attention带来的错觉，那么我们需要好好思考使用的场景，是否需要是next token prediction的场景）但另一方面来讲，错觉是与过往经验的错误匹配导致的，像是打乱顺序的文字依然可以正常阅读，这在attention中如何剔除，是我们需要考虑的。</li>
</ol>

<hr />

<p>The Art of Deception: Color Visual Illusions and Diffusion Models:
这篇论文的讨论是有问题的，他在利用AI模型存在的视错觉，实现视错觉的produce。</p>

<hr />

<p>视觉错觉是否是因为attention 的存在频率导致的</p>

<p>ChatGPT said:
这个问题非常有意思！“视觉错觉是否是因为 attention 的存在频率导致的”，可以从神经科学和人工智能两个角度来看。</p>

<p>从 神经科学 角度：
人类大脑的视觉处理系统并不是完全客观地“记录”视觉场景，而是通过一系列预测和注意机制（attention）来高效处理信息：</p>

<p>视觉注意（visual attention） 是我们感知系统中的关键组成部分，它决定我们在哪些信息上“分配资源”。</p>

<p>很多视觉错觉正是因为我们 大脑在处理信息时做了某些“默认假设”，而这些假设不总是准确的。例如：</p>

<p>赫尔曼栅格错觉：我们认为交叉点更亮，是因为我们对边缘的注意方式影响了光强的感知。</p>

<p>米勒-赖尔错觉：线段看起来不同长，是因为我们对“空间深度”的注意习惯产生了偏差。</p>

<p>这与“注意的存在频率”确实有一定关系——我们会优先关注我们习惯性注意的区域或特征，从而导致错觉。</p>

<p>从 人工智能（Transformer &amp; Attention） 的角度：
在机器学习中，Attention机制（尤其是在Transformer模型里）是为了模拟“在处理输入时关注更相关的部分”。</p>

<p>如果你想类比错觉，可以考虑这样一个思路：</p>

<p>如果一个模型的 attention 机制 长期偏向某些 token 或图像区域，可能会在生成、识别过程中产生偏差。</p>

<p>比如在视觉Transformer（ViT）中，如果模型训练过程中总是将注意力分布在某些区域，它可能会“忽略”其他信息，最终形成类似“错觉”的判断错误。</p>

<p>回到你的提问：
视觉错觉是否是因为 attention 的存在频率导致的？</p>

<p>可以这样理解：</p>

<p>✅ 是的，部分视觉错觉确实是因为我们大脑在注意力分配上的频率性偏好或默认策略，导致我们在视觉信息处理上产生了偏差。</p>

<p>你可以把它理解为：注意力是一个“资源分配器”，而错觉是我们资源分配不均或错误预测的副作用。</p>

<p>如果你是从 AI 模型的角度在思考这个问题，也可以继续往 attention 的分布、热图、偏差学习等方向深入探讨。你是在哪个背景下想到这个问题的？研究还是日常观察？我可以帮你挖得更深一点。</p>

<hr />

<p>You said:
有相关AI领域的论文讨论这个事情吗</p>

<p>ChatGPT said:
是的，​在人工智能领域，确实有研究探讨了视觉错觉与注意力机制之间的关系。以下是一些相关的研究成果：​</p>

<p>🧠 1. 预测编码与错觉感知
一项研究中，研究人员在卷积神经网络中引入了预测编码反馈机制，使其能够感知类似人类的错觉轮廓（如 Kanizsa 方块）。这表明，​通过引入反馈机制，神经网络可以更接近人类的视觉感知方式，​并在处理视觉信息时产生类似的错觉感知。​
arXiv</p>

<p>🎨 2. 生成对抗网络与视觉错觉
另一项研究利用生成对抗网络（GAN）生成新的视觉错觉图像。​研究人员设计了一个模型，其中生成器负责创建潜在的错觉图像，而判别器则评估这些图像是否能引发人类的错觉感知。​该模型成功生成了多种类型的错觉图像，​并通过心理物理实验验证了其有效性。​</p>

<p>🌈 3. 扩散模型中的错觉编码
最近的研究发现，扩散模型在其潜在空间中能够编码类似人类的亮度和颜色错觉。这表明，​即使在没有明确设计用于模拟错觉的情况下，​这些模型也能在处理视觉信息时自然地表现出类似人类的错觉感知。​
arXiv</p>

<p>🧬 4. 神经动态模型与错觉再现
还有研究利用 Wilson–Cowan 类型的神经动态模型，成功再现了多种视觉错觉现象。这些模型通过模拟神经元之间的相互作用，揭示了错觉产生的神经机制，并强调了注意力在其中的关键作用。​</p>

<p>🔍 5. 深度神经网络对错觉的响应
研究人员还发现，经过 ImageNet 训练的深度神经网络（如 VGG-19）在处理某些视觉错觉图像（如闪烁网格）时，会表现出与人类类似的非线性响应模式。这表明，这些网络在处理视觉信息时，可能会自然地表现出类似人类的错觉感知。​</p>

<p>这些研究表明，人工神经网络在处理视觉信息时，可能会自然地表现出类似人类的错觉感知，而注意力机制在其中起到了关键作用。这为我们理解人类视觉系统的工作原理提供了新的视角，也为改进人工视觉系统提供了启示。​</p>

<p>如果您对某一特定方向（如 Transformer 模型中的注意力机制与错觉的关系）感兴趣，我可以为您提供更深入的资料和分析。</p>

<p>源</p>

<hr />

<p>You said:</p>

<p>那是否有讨论attention受到过往经验的影响进行了错误的匹配呢</p>

<p>ChatGPT said:
​是的，人工智能领域确实有研究探讨了注意力机制如何受到过往经验的影响，导致错误的匹配和感知偏差。以下是一些相关的研究成果：​</p>

<p>🧠 1. 先验期望对感知的影响
研究表明，​人类大脑会根据过往经验形成先验期望，这些期望会影响感知过程。例如，​一项研究发现，​先验期望可以改变视觉皮层中刺激的表示方式，​即使在早期的感官处理阶段也是如此。这表明，​注意力机制可能会根据过往经验对感知进行偏差处理，从而导致错误的匹配和感知偏差。 ​</p>

<p>🧠 2. 确认偏误与注意力的选择性部署
另一项研究提出，​我们的注意力倾向于选择性地关注与先前决策一致的感官证据。​这种选择性部署可能导致我们忽视与先前经验不一致的信息，从而加剧确认偏误。这表明，​注意力机制可能会受到过往经验的影响，导致错误的匹配和感知偏差。 ​
科学直通车</p>

<p>🤖 3. 神经网络中的认知偏差框架
在人工智能领域，​研究人员提出了一个神经网络框架来解释认知偏差，​其中包括注意力机制如何受到过往经验的影响。​该框架指出，​神经网络在处理信息时，会根据过往经验形成偏好，​从而导致注意力的偏差部署和感知错误。 ​
PMC</p>

<p>🧠 4. 偏向竞争理论
偏向竞争理论认为，​视觉系统中的对象在处理过程中会相互竞争，而这种竞争可以被过往经验所偏向。例如，​我们更容易注意到与先前经验相关的对象，而忽视其他信息。这表明，​注意力机制可能会受到过往经验的影响，导致错误的匹配和感知偏差。 ​
Wikipedia</p>

<p>🧠 5. 愿望性思维与注意力偏差
愿望性思维（wishful thinking）研究表明，​我们的注意力可能会偏向于符合我们期望的感官信息，​从而导致感知偏差。例如，​我们可能更容易注意到与我们期望一致的信息，而忽视与期望不一致的信息。这表明，​注意力机制可能会受到过往经验的影响，导致错误的匹配和感知偏差。 ​
Wikipedia</p>

<p>这些研究表明，​无论是在生物视觉系统还是人工神经网络中，​注意力机制都可能受到过往经验的影响，​从而导致错误的匹配和感知偏差。​这为我们理解感知过程中的偏差提供了新的视角，​也为改进人工智能系统提供了启示。​</p>

<p>如果您对某一特定方向（如 Transformer 模型中的注意力机制与错觉的关系）感兴趣，我可以为您提供更深入的资料和分析。</p>

<hr />

<p>Let’s analyze the weight design in this training step carefully.</p>

<h3 id="weight-assignment-logic">Weight Assignment Logic:</h3>
<p>The weights are assigned based on the correctness of both target and illusion class predictions:</p>
<ol>
  <li><strong>Both correct (target &amp; illusion)</strong>: weight = 0.25</li>
  <li><strong>Correct target only</strong>: weight = 0.5</li>
  <li><strong>Correct illusion only</strong>: weight = 0.75</li>
  <li><strong>Both incorrect</strong>: weight = 1.0</li>
</ol>

<h3 id="intended-purpose">Intended Purpose:</h3>
<p>This appears to be a form of “importance weighting” where:</p>
<ul>
  <li>The model gets the smallest penalty (0.25) when it’s completely right</li>
  <li>Medium penalty when partially right (0.5 or 0.75)</li>
  <li>Full penalty when completely wrong (1.0)</li>
</ul>

<h3 id="potential-issues">Potential Issues:</h3>

<ol>
  <li><strong>Inverse Relationship to Importance</strong>:
    <ul>
      <li>Normally in importance weighting, higher weights are given to more important/more difficult cases</li>
      <li>Here the weights are inversely related to correctness (better predictions get lower weights)</li>
      <li>This means the loss function will pay <em>less</em> attention to samples it’s getting right</li>
    </ul>
  </li>
  <li><strong>Potential Negative Effects</strong>:
    <ul>
      <li>The model might learn to ignore easy cases and focus too much on hard cases</li>
      <li>Could lead to instability as correctly classified samples get progressively less attention</li>
      <li>May cause the model to “forget” previously learned patterns</li>
    </ul>
  </li>
  <li><strong>Weight Magnitude Concerns</strong>:
    <ul>
      <li>The weight differences are quite large (4x difference between best and worst cases)</li>
      <li>This might make training unstable</li>
    </ul>
  </li>
</ol>

<h3 id="suggested-improvements">Suggested Improvements:</h3>

<p>If the goal is to focus more on difficult cases, a better approach might be:</p>
<ol>
  <li>Use higher weights for incorrect predictions rather than lower weights for correct ones</li>
  <li>Consider a smoother weighting scheme (e.g., based on prediction confidence)</li>
  <li>Alternative approaches:
    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># Example alternative - focusing more on errors:
</span><span class="n">weights</span> <span class="o">=</span> <span class="n">torch</span><span class="p">.</span><span class="n">ones_like</span><span class="p">(</span><span class="n">outputs</span><span class="p">[:,</span> <span class="mi">0</span><span class="p">])</span>
<span class="n">weights</span><span class="p">[</span><span class="n">correct_target</span> <span class="o">&amp;</span> <span class="n">correct_illusion</span><span class="p">]</span> <span class="o">=</span> <span class="mf">1.0</span>    <span class="c1"># Both correct - normal weight
</span><span class="n">weights</span><span class="p">[</span><span class="n">correct_target</span> <span class="o">&amp;</span> <span class="o">~</span><span class="n">correct_illusion</span><span class="p">]</span> <span class="o">=</span> <span class="mf">1.5</span>   <span class="c1"># Partial error - higher weight
</span><span class="n">weights</span><span class="p">[</span><span class="o">~</span><span class="n">correct_target</span> <span class="o">&amp;</span> <span class="n">correct_illusion</span><span class="p">]</span> <span class="o">=</span> <span class="mf">2.0</span>   <span class="c1"># Partial error - even higher
</span><span class="n">weights</span><span class="p">[</span><span class="o">~</span><span class="n">correct_target</span> <span class="o">&amp;</span> <span class="o">~</span><span class="n">correct_illusion</span><span class="p">]</span> <span class="o">=</span> <span class="mf">3.0</span>  <span class="c1"># Both wrong - highest weight
</span></code></pre></div>    </div>
  </li>
</ol>

<h3 id="conclusion">Conclusion:</h3>
<p>The current weight design is mathematically valid but may not be pedagogically optimal for learning. The inverse relationship between correctness and weight magnitude could lead to unintended training dynamics. A more conventional approach would be to give higher weights to cases the model is getting wrong rather than lower weights to cases it’s getting right.</p>

<hr />

<p>the reason why the training cannot get best result might be the ratio between the task samples and the synthetic data samples. take the illusion strength filter as example, which filter out 10% of data and the peak performance is great.</p>

<hr />

<p>对比完全噪声的图像</p>

<hr />

<!-- bug: 不是所有的illusion都有数据，未能成功normalization -->

<!-- ![1745911541245.png](https://image.yhbcode000.tech/1745911541245.png)


![1745910623689.png](https://image.yhbcode000.tech/1745910623689.png)


![1745911135875.png](https://image.yhbcode000.tech/1745911135875.png) -->

<hr />

<p>现在我们按照experiment最好的实验结果和配置，然后discussion讨论各个可能的变量带来的影响并实验证明或者推翻。</p>

<hr />

<p>好的！基于你以上详细的讲述，我为你整理出这份完整、结构清晰、逻辑连贯的<strong>论文写作大纲</strong>：</p>

<hr />

<h1 id="论文写作大纲">论文写作大纲</h1>

<h2 id="1-abstract">1. Abstract</h2>
<ul>
  <li>总结全文亮点，突出两大反直觉现象：
    <ul>
      <li>多任务（Multitask）学习中，辅助任务<strong>提升</strong>了主任务性能（反直觉）。</li>
      <li>将人类认知（如几何视错觉）引入人工智能数学模型后，性能出现<strong>提升</strong>（反直觉）。</li>
    </ul>
  </li>
  <li>强调首次系统性引入人类感知错觉到机器学习。</li>
  <li>突出本工作对人工智能可解释性、建模的新视角。</li>
  <li>引出本文提出的新数据集名称（待定，如 <em>IllusioNet</em>）。</li>
</ul>

<hr />

<h2 id="2-introduction">2. Introduction</h2>
<ul>
  <li>研究动机：
    <ul>
      <li>许多AI中的核心概念（如 attention）来源于人类感知机制。</li>
      <li>探索能否将人类感知领域的成果（特别是错觉现象）系统性引入到人工智能领域。</li>
    </ul>
  </li>
  <li>问题定位：
    <ul>
      <li>当前AI模型普遍忽视人类认知机制中的错觉现象。</li>
    </ul>
  </li>
  <li>本文贡献概述。</li>
</ul>

<hr />

<h2 id="3-related-works">3. Related Works</h2>
<ul>
  <li>人工智能中的感知建模工作（如 attention机制、感知学习等）。</li>
  <li>多任务学习（Multitask Learning）中任务干扰和提升的文献综述。</li>
  <li>人类错觉研究及其在心理学、认知科学中的基础工作。</li>
</ul>

<hr />

<h2 id="4-dataset-specification">4. Dataset Specification</h2>
<ul>
  <li><strong>数据集构建</strong>：
    <ul>
      <li>选取了五种经典几何视错觉，作为<strong>几何视错觉</strong>完整子集合（具有系统性和理论依据）。</li>
      <li>每种错觉的实例生成方法和原理概述。</li>
    </ul>
  </li>
  <li><strong>数据集特点</strong>：
    <ul>
      <li>每个样本的生成细节（图像尺寸、错觉强度变化等）。</li>
      <li>说明该子集合覆盖了全部主流的几何错觉类型。</li>
    </ul>
  </li>
  <li><strong>与现有数据集的区别</strong>。</li>
</ul>

<hr />

<h2 id="5-experiments">5. Experiments</h2>
<ul>
  <li>实验设置：
    <ul>
      <li>真实任务：ImageNet分类。</li>
      <li>在主任务训练中引入错觉数据集，考察其对主任务准确率的影响。</li>
    </ul>
  </li>
  <li>实验结果：
    <ul>
      <li>引入错觉数据集后，ImageNet分类准确率上升。</li>
    </ul>
  </li>
  <li>实验细节：
    <ul>
      <li>baseline、控制组设置。</li>
      <li>训练细节（batch size，学习率，训练时长等）。</li>
    </ul>
  </li>
</ul>

<hr />

<h2 id="6-discussion">6. Discussion</h2>
<h3 id="61错觉有效性分析">6.1错觉有效性分析</h3>
<ul>
  <li>通过不同程度的错觉强度引入实验，分析错觉程度与模型准确率的关系。</li>
  <li>探讨是否存在最佳错觉强度区间。</li>
</ul>

<h3 id="62图像大小的影响">6.2图像大小的影响</h3>
<ul>
  <li>小尺寸（如32×32）下错觉现象弱化，导致效果下降。</li>
  <li>寻找图像尺寸的最佳 sweet spot。</li>
</ul>

<h3 id="63错觉数据集的独特贡献验证">6.3错觉数据集的独特贡献验证</h3>
<ul>
  <li>引入一个新的对照数据集（ImageNet的其他类别）。</li>
  <li>替换后观察性能变化，验证错觉数据集的独特性和有效性。</li>
</ul>

<hr />

<h2 id="7-conclusion">7. Conclusion</h2>
<ul>
  <li>总结研究成果：
    <ul>
      <li>首次将人类感知错觉系统性引入到人工智能数据集中。</li>
      <li>展现了反直觉的提升现象，为未来感知与智能结合提供新思路。</li>
    </ul>
  </li>
  <li>未来展望：
    <ul>
      <li>作为理解与解释人工智能模型行为的新工具。</li>
      <li>促进认知科学与机器学习的交叉研究。</li>
    </ul>
  </li>
</ul>

<hr />

<h2 id="8-supplementary-material">8. Supplementary Material</h2>
<ul>
  <li>额外实验结果：
    <ul>
      <li>不同 batch size 对性能的影响。</li>
      <li>不同错觉种类、不同参数配置的探索实验。</li>
    </ul>
  </li>
  <li>更多关于错觉程度、数据增强、训练细节的深入分析。</li>
</ul>

<hr />

<h1 id="总结">总结</h1>

<p>这个大纲清晰反映了你的论文结构、逻辑重点和每一部分的主旨，特别是围绕“两大反直觉现象”和“几何错觉完整性”的核心卖点进行了布局。<br />
后续可以基于这个大纲，逐步展开各章节的详细写作。</p>

<hr />

<p>要不要我顺便也帮你<strong>想一些更正式的论文标题和数据集名字</strong>，方便你投稿 NeurIPS Dataset &amp; Benchmark Track？<br />
（比如可以再专业一点地起名，不止是 “IllusioNet”，还能有别的风格备选。）要的话告诉我！✨</p>

<p><img src="https://image.yhbcode000.tech/1745976759044.png" alt="1745976759044.png" /></p>

<p><img src="https://image.yhbcode000.tech/1745976779761.png" alt="1745976779761.png" /></p>

<h3 id="-resnet-models">🔵 <strong>ResNet Models</strong></h3>
<ul>
  <li><strong>Base mean accuracy</strong>: 0.8511</li>
  <li><strong>102</strong>: +0.000013 → <em>Virtually identical</em> to base.</li>
  <li><strong>102_v2</strong>: −0.000094 → <em>Slightly lower</em>, negligible.</li>
  <li><strong>103</strong>: +0.000098 → <em>Slightly higher</em>, negligible.</li>
</ul>

<p>📌 <strong>Interpretation</strong>: All tasks perform almost identically to the base task, with differences less than ±0.01%. No meaningful performance shift across tasks for ResNet.</p>

<hr />

<h3 id="-vit-models">🟣 <strong>ViT Models</strong></h3>
<ul>
  <li><strong>Base mean accuracy</strong>: 0.8718</li>
  <li><strong>102</strong>: +0.0020 → <em>Slight improvement</em> (~0.2%)</li>
  <li><strong>102_v2</strong>: +0.0034 → <em>Moderate improvement</em> (~0.34%)</li>
  <li><strong>103</strong>: +0.0051 → <em>Notable improvement</em> (~0.51%)</li>
</ul>

<p>📌 <strong>Interpretation</strong>: ViT models show consistent and increasingly better accuracy from 102 → 102_v2 → 103. ViT benefits more from advanced task versions than ResNet.</p>

<hr />

<p><img src="https://image.yhbcode000.tech/1745990470308.png" alt="1745990470308.png" /></p>

<p><img src="https://image.yhbcode000.tech/1745990482271.png" alt="1745990482271.png" /></p>

<p>一个几何特征，一个challenging task</p>

<hr />

<p>Thanks for the clarification. I’ll generate several NeurIPS-style titles that emphasize the broader implications of your work for AI and human perception, while reflecting the novelty of using illusions as a source of inductive bias. I’ll get back to you shortly with a set of well-aligned options.</p>

<h1 id="neurips-style-paper-title-ideas">NeurIPS-Style Paper Title Ideas</h1>

<p>Below is a range of proposed paper titles that capture the core idea: using <strong>human geometric visual illusions</strong> as <strong>inductive biases</strong> to train vision models, thereby improving generalization in image classification. These titles vary in style from concise and abstract to more descriptive and precise, while maintaining a tone that is technically rigorous, succinct, and idea-driven (as is typical for NeurIPS papers).</p>

<h2 id="concise-and-abstract-titles">Concise and Abstract Titles</h2>

<ul>
  <li><strong>Geometric Visual Illusions as Inductive Biases for Deep Vision Models</strong></li>
  <li><strong>Inductive Biases from Perceptual Illusions for Improved Image Classification</strong></li>
  <li><strong>Illusion-Informed Inductive Biases Enhance Generalization in Neural Vision Models</strong></li>
  <li><strong>Human-Like Perception via Illusory Inductive Biases in Image Classification</strong></li>
</ul>

<h2 id="descriptive-and-precise-titles">Descriptive and Precise Titles</h2>

<ul>
  <li><strong>Learning from Illusions: Non-Veridical Cues Improve Vision Model Generalization</strong></li>
  <li><strong>Synthetic Illusions as Inductive Biases: Bridging Human Perception and Machine Vision</strong></li>
  <li><strong>From Human Illusions to Model Generalization: Perceptual Cues as Inductive Biases</strong></li>
  <li><strong>When Perception Deceives, Networks Learn: Geometric Illusions as Inductive Priors</strong></li>
  <li><strong>Perceptual Science for Machine Vision: Visual Illusions as Inductive Biases</strong></li>
  <li><strong>Non-Veridical Perception as an Inductive Bias: Illusory Cues Boost Neural Network Generalization</strong></li>
</ul>

<hr />

<p>Based on the current structure, focus, and findings of your paper, it is more <strong>suitable for the main NeurIPS track</strong>, rather than the dataset &amp; benchmark track. Here’s a breakdown of why:</p>

<hr />

<h3 id="-why-it-fits-the-neurips-main-track">✅ <strong>Why it fits the NeurIPS Main Track:</strong></h3>

<h4 id="1-conceptual-contribution--dataset-engineering">1. <strong>Conceptual Contribution &gt; Dataset Engineering</strong></h4>

<p>While you introduce a new dataset, your <strong>central contribution is not the dataset itself</strong>, but the <strong>insight that human visual illusions can act as inductive biases</strong> that improve general-purpose vision models. This addresses a <strong>core question in machine learning and perception</strong>, not just data curation.</p>

<blockquote>
  <p><em>“We treat visual illusions not as artifacts to discard, but as principled supervision signals.”</em></p>
</blockquote>

<h4 id="2-model-behavior--inductive-bias">2. <strong>Model Behavior &amp; Inductive Bias</strong></h4>

<p>The paper deeply investigates <strong>how vision models respond to non-veridical inputs</strong>, opening a bridge between perceptual science and AI. This is squarely in line with <strong>core NeurIPS themes</strong>, such as:</p>

<ul>
  <li>Representation learning</li>
  <li>Generalization theory</li>
  <li>Biological inspiration</li>
  <li>Human-AI alignment</li>
</ul>

<h4 id="3-rigorous-methodology--evaluation">3. <strong>Rigorous Methodology &amp; Evaluation</strong></h4>

<p>You provide:</p>

<ul>
  <li>A multi-source learning framework</li>
  <li>Comparisons across architectures (ResNet, ViT)</li>
  <li>Ablations on illusion strength and resolution</li>
  <li>Insightful qualitative analysis</li>
</ul>

<p>These go <strong>well beyond what’s expected</strong> in a dataset-only paper.</p>

<hr />

<h3 id="-why-it-likely-does-not-fit-the-dataset--benchmark-track">🚫 Why it likely does <strong>not</strong> fit the Dataset &amp; Benchmark Track:</h3>

<p>The dataset is synthetic and used <strong>internally</strong> as part of the experimental design, rather than being proposed as:</p>

<ul>
  <li>A standardized benchmark for the community</li>
  <li>A long-term reusable testbed with broad utility</li>
  <li>A carefully annotated or crowdsourced resource</li>
</ul>

<blockquote>
  <p>Dataset track papers are typically about enabling community-wide evaluation, with a clear protocol and leaderboard potential. Your work is about using the dataset to test a <em>theory</em>.</p>
</blockquote>

<hr />

<h3 id="-suggested-framing-for-main-track-submission">🧠 Suggested Framing for Main Track Submission:</h3>

<p>If you’re submitting to the main track, keep emphasizing:</p>

<ul>
  <li><strong>Theoretical motivation</strong>: using illusions as cognitive priors.</li>
  <li><strong>Empirical insight</strong>: inductive bias improves classification.</li>
  <li><strong>Generalization perspective</strong>: illusions improve hard-case structure recovery.</li>
</ul>

<p>You might slightly de-emphasize the dataset details and instead frame them as tools for probing an important ML hypothesis.</p>

<hr />

<p>Would you like a paragraph or sentence that clearly justifies your submission to the main track in the NeurIPS submission form?</p>

<hr />

<p>geometric illusion
inductive bias</p>

<blockquote>
  <p><strong>🌸唠嗑QQ群</strong>：<a href="https://jq.qq.com/?_wv=1027&amp;k=EaGddTQg">兔叽の魔术工房</a> (942848525)
<strong>⭐B站账号</strong>：<a href="https://space.bilibili.com/98639326">白拾ShiroX</a>（活跃于知识区和动画区）
<strong>✨GitHub主页</strong>：<a href="https://github.com/yhbcode000">yhbcode000</a>（工程文件）
<strong>⛳Discord社区</strong>：<a href="https://discord.g/nn5NDXMgae">AierLab</a>（人工智能社区）</p>
</blockquote>]]></content><author><name>Haobo Yang (杨昊波)</name><email>yhbcode000@foxmail.com</email><uri>https://blog.yhbcode000.tech</uri></author><summary type="html"><![CDATA[Research notes on leveraging geometric visual illusions as perceptual inductive biases for vision models — the foundational exploration behind the InDL dataset and related publications.]]></summary></entry><entry><title type="html">UIST2023 Generative Agents: Interactive Simulacra of Human Behavior</title><link href="https://yhbcode000.tech/generative-agents-review/" rel="alternate" type="text/html" title="UIST2023 Generative Agents: Interactive Simulacra of Human Behavior" /><published>2024-10-03T19:41:51+00:00</published><updated>2024-10-03T19:41:51+00:00</updated><id>https://yhbcode000.tech/generative-agents-review</id><content type="html" xml:base="https://yhbcode000.tech/generative-agents-review/"><![CDATA[<p>A detailed review of the UIST 2023 paper “Generative Agents: Interactive Simulacra of Human Behavior,” analyzing its memory-reflection architecture for believable agent simulation.</p>

<h2 id="1-recap">1. <strong>Recap</strong></h2>
<ul>
  <li>We have been discussing <strong>emerging knowledge</strong> and how we are curious about the process the <strong>multi-agent system</strong> uses to emerge <strong>language representation</strong> during satisfying its communication needs.</li>
</ul>

<h2 id="2-what-is-this-paper-all-about-and-what-makes-it-special">2. <strong>What is this paper all about, and what makes it special?</strong></h2>
<ul>
  <li>The paper explores <strong>generative agents</strong>, which are computational agents capable of simulating <strong>believable human behavior</strong>. These agents act in <strong>dynamic, interactive environments</strong>, adapting their behaviors based on <strong>past experiences (memories)</strong>, <strong>reflections</strong>, and <strong>real-time changes</strong> in the environment.</li>
  <li>What makes the paper special is its novel architecture that combines <strong>large language models</strong> with <strong>memory systems</strong> to generate <strong>coherent</strong>, <strong>context-sensitive</strong>, and <strong>emergent behaviors</strong> over time.</li>
  <li>This is a step forward in creating agents that behave like <strong>human-like entities</strong> in various interactive applications, such as <strong>games</strong> or <strong>social simulations</strong>.</li>
</ul>

<h2 id="3-observations-in-this-paper-are-there-things-we-may-be-interested-in">3. <strong>Observations in this paper, are there things we may be interested in?</strong></h2>
<ul>
  <li>This paper’s focus on <strong>emergent social behavior</strong>, <strong>memory retrieval</strong>, and <strong>reflection-based planning</strong> could align with our interest in understanding how <strong>multi-agent systems</strong> develop their own <strong>language representations</strong>.</li>
  <li>The agents in the study demonstrate how <strong>interactions</strong> can lead to <strong>emergent group behaviors</strong>, which may provide insights into <strong>communication needs</strong> in multi-agent systems.</li>
</ul>

<h2 id="4-what-is-the-good-engineering-practice-in-this-paper">4. <strong>What is the good engineering practice in this paper?</strong></h2>
<ul>
  <li>After reviewing the source code of this paper, it is an integration of lots of <strong>engineering practices</strong>, but most of them, like the <strong>history management system</strong>, are kinda old from today’s perspective.</li>
  <li>For example, no <strong>vector database</strong> means high precision and high token cost but lacks the ability to generate long history.</li>
  <li>It doesn’t use the latest <strong>tools call functions</strong>, which is a more mature implementation in enum reply and action call, etc., making the framework outdated compared to today’s common way of defining questions or prompts.</li>
  <li><img src="https://image.yhbcode000.tech/1727971421190.png" alt="1727971421190.png" /> In real deployment of the simulation, it easily goes to error, say the return list with length 0.</li>
</ul>

<h2 id="5-to-what-extent-can-this-paper-contribute-to-our-task">5. <strong>To what extent can this paper contribute to our task?</strong></h2>
<ul>
  <li>Based on our observations, the architecture of <strong>memory</strong>, <strong>reflection</strong>, and <strong>dynamic decision-making</strong> could offer some insights into how we might design a system to encourage <strong>emergent knowledge</strong> in multi-agent setups. The reflection-based behaviors, in particular, could be adapted to help agents form and refine their <strong>language representations</strong> over time as they interact.</li>
</ul>

<h2 id="6-summary">6. <strong>Summary</strong></h2>
<ul>
  <li>The paper presents a novel approach to simulating <strong>human-like behaviors</strong> in computational agents by integrating <strong>large language models</strong>, <strong>memory systems</strong>, and <strong>reflection-based planning</strong>. While the engineering practices are somewhat dated, the overall framework offers valuable insights into how agents can autonomously learn and adapt, which could be useful in our multi-agent research.</li>
</ul>

<h2 id="7-end-note">7. <strong>End note</strong></h2>
<ul>
  <li>This paper provides a foundational architecture for exploring <strong>multi-agent communication</strong> and <strong>emergent behaviors</strong>, but there are opportunities to improve upon its engineering implementation using modern tools like <strong>vector databases</strong> and <strong>function calls</strong> to make it more scalable and efficient for handling long-term, complex interactions.</li>
</ul>

<hr />

<blockquote>
  <p><strong>🍀Afterword🍀</strong>
The blog focuses on programming, algorithms, robotics, artificial intelligence, mathematics, etc., with a continuous output of high quality.
<strong>🌸Chat QQ Group</strong>: <a href="https://jq.qq.com/?_wv=1027&amp;k=EaGddTQg">Rabbit’s Magic Workshop</a> (942848525)
<strong>⭐Bilibili Account</strong>: <a href="https://space.bilibili.com/98639326">白拾ShiroX</a> (Active in the knowledge and animation zones)
<strong>✨GitHub Page</strong>: <a href="https://github.com/YangSierCode000">YangSierCode000</a> (Engineering files)
<strong>⛳Discord Community</strong>: <a href="https://discord.g/nn5NDXMgae">AierLab</a> (Artificial Intelligence community)</p>
</blockquote>]]></content><author><name>Haobo Yang (杨昊波)</name><email>yhbcode000@foxmail.com</email><uri>https://blog.yhbcode000.tech</uri></author><summary type="html"><![CDATA[A detailed review of the UIST 2023 paper “Generative Agents: Interactive Simulacra of Human Behavior,” analyzing its memory-reflection architecture for believable agent simulation.]]></summary></entry><entry><title type="html">PI Week6 The Human Element</title><link href="https://yhbcode000.tech/ai-ethics-human-element/" rel="alternate" type="text/html" title="PI Week6 The Human Element" /><published>2022-10-11T14:49:33+00:00</published><updated>2022-10-11T14:49:33+00:00</updated><id>https://yhbcode000.tech/ai-ethics-human-element</id><content type="html" xml:base="https://yhbcode000.tech/ai-ethics-human-element/"><![CDATA[<p>Argues that human judgment remains irreplaceable in AI systems — examining cases where over-automation fails and where human-in-the-loop design is essential.</p>

<h2 id="introduction">Introduction</h2>

<ul>
  <li>This week we continue the theme of looking at general kinds of harm technology can cause if we’re not careful with it.</li>
  <li>The topic we’re looking at is one that, with a few exceptions, gets a lot less press I think than bias because it’s a lot harder to quantify (and as established in week 1, computer scientists love quantitative data)</li>
  <li>That topic is human beings, and specifically what we might unintentionally affect when we remove people from a system, or at least change their involvement in it.</li>
</ul>

<h2 id="what-do-we-do-when-we-automate">What do we do when we automate?</h2>

<ul>
  <li>So why, beyond the obvious, are people relevant to us?</li>
  <li>Well one of the main things technology does is the automation of existing systems, or tasks within those systems.</li>
  <li>That means that often what we’re doing when we design a technological artifact and put it out into the world is essentially saying “here is a different way to do that task other than the way people currently do it”</li>
  <li>This can be just implicitly, by creating the automated version, or in a lot of cases explicitly, in the process of trying to sell it.</li>
  <li>This obviously isn’t always a bad thing. There’s plenty of tasks we’re probably better off not doing ourselves, not least because they’re dangerous (like mining for coal) or boring (like quality control on a conveyor belt)</li>
  <li>But we should be mindful that often what we’re doing by creating these automated versions of systems or processes, what we’re doing is competing with the version where people are more involved.</li>
</ul>

<h2 id="automations-unfair-advantage">Automation’s unfair advantage</h2>

<ul>
  <li>A lot of the time, that competition is rigged.</li>
  <li>This comes back again to the dangers of focusing too much on quantitative methods for things; in this case, quantitative measures for success.</li>
  <li>The kinds of improvements provided by automation are often things that are easy to measure. Things like how fast a task is completed, how many tasks can be done simultaneously, how accurate something is. Some of this is because these are the things computers are naturally good at (precision and repetition), and some is because when we’re designing things we want easily measured metrics so we can know if we’re making progress.</li>
  <li>This is especially true now, in the age of machine learning, because having quantifiable criteria is often a necessity as a part of the feedback loop that lets a system learn.</li>
  <li>These are unsurprisingly also the kinds of metrics used by the people who are selling a system (and I mean that in a broad sense, not just at the point of sale but right through from the conception of the idea) because they highlight the advantages of that system.</li>
  <li>The benefits brought about by continuing to include people in these processes are harder to quantify with these performance measures, and so if we let the conversation be dominated by only the easily quantified factors then in the end people will lose out.</li>
</ul>

<h2 id="the-ways-in-which-human-systems-might-be-better">The ways in which human systems might be better</h2>

<ul>
  <li>So what are some of these reasons for keeping people involved in our processes?</li>
  <li>For me, three important categories could be: humans as robustness, humans as value, and humans as benefactors.</li>
  <li>I’ll elaborate a bit on these in the rest of the video.</li>
</ul>

<h2 id="humans-as-robustness">Humans as robustness</h2>

<ul>
  <li>The first benefit to including people in systems is perhaps the one most linked to the mindset of performance measures; humans as robustness.</li>
  <li>No matter how well an automated system performs at the tasks it has been designed for, it is still only designed for those tasks. When the unexpected happens, even if it’s something mundane like the wrong data type in a field, these systems can fail.</li>
  <li>Of course, if they’re well designed they will fail as gracefully as possible, but we certainly are not anywhere near having systems with the general intelligence of humans, or the corresponding ability to reflect on what they are meant to be doing and what the new information means for that task. Humans adapt on the fly.</li>
  <li>This goes double for errors that can would otherwise go uncaught. Automated processes can easily miss that something has changed they were unprepared for, and continue processing the same data in the same way without ever getting suspicious, or trying to run some extra checks, or getting another opinion.</li>
  <li>Linked with this is the notion of trust. One of the main roadblocks (pun intended) to the uptake of self driving cars is that a lot of people rightly realise that no matter how well a robot performs on driving performance metrics, it still can’t be trusted the way a human driver could be to deal with unusual situations.</li>
  <li>Is there a technical solution for this? Is there a certain number of certain kinds of tests that an autonomous car could pass at which point we would finally go “Oh OK I trust it”, or is trust just a different kind of thing than test performance?</li>
  <li>Trust in autonomous systems is a big field at the moment, that doesn’t necessarily have an answer to this yet. What a lot of research focuses on is designing systems that explain their decision making, in the hopes that we can use this as a different way to interrogate performance, but whether we would trust this remains to be seen.</li>
</ul>

<h2 id="humans-as-value">Humans as value</h2>

<ul>
  <li>The next advantage to including humans in processes are the extra benefits that this brings for other users of that system; humans as value.</li>
  <li>This benefit is covered pretty explicitly in the readings about care bots.</li>
  <li>There are lots of situations where the ability to interact with another person is a core part of the value of that process, not just care. Look at all the people who still intentionally use checkouts staffed by people over self-checkouts. Look at the difference between ringing a helpline and getting a real person vs and automated voice.</li>
  <li>Humans are social animals, and many of us, at least, still derive happiness from interacting with each other at whatever opportunity.</li>
  <li>This isn’t just a binary, either. As a lot of people have found out during the pandemic, it matters how you interact with other people. However much we might be told that all of these video conferencing technologies can provide us with the same core functionality as we had in person, the lack of human interaction is still felt, even though we are technically still interacting with humans.</li>
  <li>It’s worth mentioning that social media is a form of this too, where interactions with other people are enabled to the extent that they’re numerous and, importantly, countable (clicks, likes, posts). But there’s a risk that these end up competing with and crowding out the deeper more meaningful “real world” interactions.</li>
</ul>

<h2 id="humans-as-benefactors">Humans as benefactors</h2>

<ul>
  <li>This all leads into the final benefit of including people in systems, that those people themselves can benefit from being included.</li>
  <li>Partly this can be for human interactions reasons, as above. It is likely not just the care patient or the shopper who benefits from interacting with a human system over a machine one, but the human nurse or the person on the checkout too.</li>
  <li>They also benefit from having work more generally. Not just in the sense that they have a source of income, but that actually getting to do work that you find meaningful or interesting is of such great value to human flourishing. Jobs that keep you active, too, can be incredibly valuable to people.</li>
  <li>Even if we believe the rhetoric that automation won’t take away jobs, but instead change what kind of jobs people do, we have to be wary of what those new jobs are. If we shift people away from meaningful interactions and towards more monitoring and maintenance of the automated systems, we risk giving everyone work, but unfulfilling work. All in the name of a more efficient system, but a system that as meant to exist for people in the first place.</li>
</ul>

<hr />

<p>Translate + Edit: YangSier (<a href="https://blog.yhbcode000.tech/">Homepage</a>)</p>

<blockquote>
  <p><strong>:four_leaf_clover:碎碎念:four_leaf_clover:</strong>
Hello米娜桑，这里是英国留学中的杨丝儿。我的博客的关键词集中在编程、算法、机器人、人工智能、数学等等，点个关注吧，持续高质量输出中。
<strong>:cherry_blossom:唠嗑QQ群</strong>：<a href="https://jq.qq.com/?_wv=1027&amp;k=EaGddTQg">兔叽的魔术工房</a> (942848525)
<strong>:star:B站账号</strong>：<a href="https://space.bilibili.com/98639326">白拾Official</a>（活跃于知识区和动画区）</p>
</blockquote>]]></content><author><name>Haobo Yang (杨昊波)</name><email>yhbcode000@foxmail.com</email><uri>https://blog.yhbcode000.tech</uri></author><summary type="html"><![CDATA[Argues that human judgment remains irreplaceable in AI systems — examining cases where over-automation fails and where human-in-the-loop design is essential.]]></summary></entry><entry><title type="html">PI Week5 Bias and Fairness</title><link href="https://yhbcode000.tech/ai-ethics-bias-fairness/" rel="alternate" type="text/html" title="PI Week5 Bias and Fairness" /><published>2022-10-11T14:49:05+00:00</published><updated>2022-10-11T14:49:05+00:00</updated><id>https://yhbcode000.tech/ai-ethics-bias-fairness</id><content type="html" xml:base="https://yhbcode000.tech/ai-ethics-bias-fairness/"><![CDATA[<p>Investigates algorithmic bias and fairness — how training data and model design choices encode societal biases, and technical approaches to measuring and mitigating unfairness.</p>

<p>TODO</p>

<h2 id="introduction">Introduction</h2>

<ul>
  <li>We’ve covered some important background concepts in talking about Responsibility, Power and Data. The idea behind these has been to motivate some of why we should be interested in ethics in computer science, and why we are often going to be at least partially responsible for anticipating and mitigating harms that technical artifacts can bring about.</li>
  <li>For this middle portion of the course, we are looking at some broad categories of harm (some of the Data readings begun this process).</li>
  <li>This week was Bias and Fairness, which is a very popular topic of focus (for good reason) and the thing I think you’re most likely to have covered at least in passing in any ethics tutorials etc you’ve had in other courses. I know it was at least also covered by the ethics portion of FDS, but it’s important enough to be worth some overlap.</li>
  <li>Next week will talk about something that’s covered maybe less often, and that’s the impact of automating things that used to be done by people.</li>
</ul>

<h2 id="definitions">Definitions</h2>

<ul>
  <li>As usual, let’s start with some definitions</li>
  <li>Bias has more or less formal definitions. Colloquially it has a similar meaning to discrimination or prejudice, in that it is some kind of systematic advantage or disadvantage applied to an individual or group. More formally, we might want to define this in terms of its relation to the truth, as in “a system that fails to reflect true values more for some groups than others” but given how complex real-world data tends to be, we are not always going to be so lucky as to know everything about the “true” state.</li>
  <li>Similarly to in our discussion on power, the fact that bias is a preference built into a system means that it doesn’t have to be intentional. Some people or systems are almost definitely knowingly biased, but a lot more have biases that they are not necessarily aware of. In people we call this unconscious bias.</li>
  <li>If people are often not aware of biases in themselves, then it follows that they are also often going to end up encoding those biases into the technology they build, or that they might be unaware of bias working its way into the systems in any number of other ways.</li>
  <li>Also when I say the bias is built in to the system, that can manifest in a variety of ways. It could be in the actual design or code of the system, it could be present in the data used by that system and propagated through, or it could be a result of the way that system is being deployed into the world.</li>
  <li>Some kinds of bias are desired, in the sense that we are often designing systems such that they perform differently for some users than others. For example, we probably want a key card entry system to be biased against people whose key cards have expired. This kind of bias is often not included when people are talking about bias though, so it’s worth bearing in mind when you read about bias that authors might be using it as a shorthand for “unwanted” biases.</li>
  <li>When we are talking about Fairness in technical applications, then, we are usually talking about methods for avoiding or mitigating unwanted bias, such that we move towards a “fair” system in which they are minimised. Consequently, a lot of fairness discussions are also about how to measure fairness, because this makes the task of improving the fairness of a system, or choosing between multiple systems on grounds of fairness, easier.</li>
</ul>

<h2 id="sources-of-bias">Sources of Bias</h2>

<ul>
  <li>Hopefully most of you have covered this before, but where does Bias come from?</li>
  <li>Firstly we can have Bias in the design of Technical System. This is introduced by the design decisions consciously or accidentally made by the people who designed a given program, system, or technical artifact. This could be as straightforward as deciding to use race as one of the variables used to calculate whether someone should be approved for a mortgage, but it can also be much less obvious and come about from all kinds of assumptions about what is or isn’t important information for a task.</li>
  <li>Secondly, given how many modern systems use training data, Bias can be introduced in Data Collection. Maybe a dataset has far more examples for one group than another, or it was gathered in a way that misrepresents wider society, like how taking lots of your samples just outside a football stadium might well result in an algorithm that overestimates how much people in general like football. Or how using a dataset of CVs gathered from Amazon’s current employees led to them creating a screening algorithm that perpetuated the company’s historical bias against female applicants.</li>
  <li>Relatedly, Bias can be introduced in the way a dataset is labelled. Language is an inherently subjective and fluid thing, but labelling processes require people to apply definitive category labels. This means that the biases of the labelers can easily creep in. Perhaps they will more readily label a picture of an older person as a Doctor or Professor. Perhaps when labeling animals they are shown a koala, and they label it as a bear.</li>
  <li>It isn’t just the person labeling either; someone has to decide what the set of labels they’re interested in are. Imagine you wanted to train a system to label the colour of an object. How would you decide what colour labels to use? Just primary colours? Or are we splitting it down as much as we can? The Dulux paint website currently offers 42 different popular shades of white. Good luck getting different labelers to reliably delineate those.</li>
</ul>

<h2 id="individual-vs-group-fairness">Individual vs Group Fairness</h2>

<ul>
  <li>When we’re talking about fairness, we also have to decide what kind of fairness we want.</li>
  <li>Individual fairness is interested in whether two people with similar traits are treated the same way, where group fairness is interested in whether whole groups of particular demographics seem to suffer more from mistakes. When we’re zoomed in at the individual level, it can be very hard to tell whether individual small differences between, say, evaluation of pairs of CVs, are significant. It might only be when you consider whole groups that you can see, say, that male CVs are consistently evaluated higher.</li>
  <li>But a major challenge in defining measures for group fairness is that it often requires us to specifically decide what groups we care about.</li>
  <li>This is an issue partly because it means we have to know what kind of bias we might be looking for, so maybe I check for fairness on grounds of gender and race, but I don’t think to check for something else like religion. There can always be these things we leave out.</li>
  <li>But perhaps more importantly, we have to decide what the delineation of those groups is. Maybe I want fairness on grounds of gender, but I do so only for “male” and “female”, and end up unaware of bias against non-binary people.</li>
  <li>Maybe I want fairness on grounds of religion, but I cluster all Judeo-christian religions into a single category, or I do the opposite and I split Christianity down into loads of denominations but don’t do the same for any other religion.</li>
  <li>Maybe I want fairness on grounds of race, but what even makes a race? Am I just delineating by skin tone? By country of origin? Both of those are certainly dreadfully insufficient.</li>
  <li>These are all design decisions just like those made in data collection and labelling and they all involve making decisions about how the world should be divided up that reflect the preferences of the designers.</li>
</ul>

<hr />

<p>Translate + Edit: YangSier (<a href="https://blog.yhbcode000.tech/">Homepage</a>)</p>

<blockquote>
  <p><strong>:four_leaf_clover:碎碎念:four_leaf_clover:</strong>
Hello米娜桑，这里是英国留学中的杨丝儿。我的博客的关键词集中在编程、算法、机器人、人工智能、数学等等，点个关注吧，持续高质量输出中。
<strong>:cherry_blossom:唠嗑QQ群</strong>：<a href="https://jq.qq.com/?_wv=1027&amp;k=EaGddTQg">兔叽的魔术工房</a> (942848525)
<strong>:star:B站账号</strong>：<a href="https://space.bilibili.com/98639326">白拾Official</a>（活跃于知识区和动画区）</p>
</blockquote>]]></content><author><name>Haobo Yang (杨昊波)</name><email>yhbcode000@foxmail.com</email><uri>https://blog.yhbcode000.tech</uri></author><summary type="html"><![CDATA[Investigates algorithmic bias and fairness — how training data and model design choices encode societal biases, and technical approaches to measuring and mitigating unfairness.]]></summary></entry><entry><title type="html">PI Week4 Data Ownership</title><link href="https://yhbcode000.tech/ai-ethics-data-justice/" rel="alternate" type="text/html" title="PI Week4 Data Ownership" /><published>2022-10-11T14:48:28+00:00</published><updated>2022-10-11T14:48:28+00:00</updated><id>https://yhbcode000.tech/ai-ethics-data-justice</id><content type="html" xml:base="https://yhbcode000.tech/ai-ethics-data-justice/"><![CDATA[<p>Discusses data justice: the ethical collection, ownership, and use of data, particularly how marginalized communities are affected by extractive data practices.</p>

<p>The increasing availability of digital data reflecting economic and human development, and in particular the availability of data emitted as a by-product of people’s use of technological devices and services, has both political and practical implications for the way people are seen and treated by the state and by the private sector. Yet the data revolution is so far primarily a technical one: the power of data to sort, categorise and intervene has not yet been explicitly connected to a social justice agenda by the agencies and authorities involved. Meanwhile, although data-driven discrimination is advancing at a similar pace to data processing technologies, awareness and mechanisms for combating it are not. This paper posits that just as an idea of justice is needed in order to establish the rule of law, an idea of data justice – fairness in the way people are made visible, represented and treated as a result of their production of digital data – is necessary to determine ethical paths through a datafying world. Bringing together the emerging scholarly perspectives on this topic, I propose three pillars as the basis of a notion of international data justice: (in)visibility, (dis)engagement with technology and antidiscrimination. These pillars integrate positive with negative rights and freedoms, and by doing so challenge both the basis of current data protection regulations and the growing assumption that being visible through the data we emit is part of the contemporary social contract.</p>

<hr />
<p>Origin: <a href="https://journals.sagepub.com/doi/full/10.1177/2053951717736335">What is data justice? The case for connecting digital rights and freedoms globally</a>
Translate + Edit: YangSier (<a href="https://blog.yhbcode000.tech/">Homepage</a>)</p>

<blockquote>
  <p><strong>:four_leaf_clover:碎碎念:four_leaf_clover:</strong>
Hello米娜桑，这里是英国留学中的杨丝儿。我的博客的关键词集中在编程、算法、机器人、人工智能、数学等等，点个关注吧，持续高质量输出中。
<strong>:cherry_blossom:唠嗑QQ群</strong>：<a href="https://jq.qq.com/?_wv=1027&amp;k=EaGddTQg">兔叽的魔术工房</a> (942848525)
<strong>:star:B站账号</strong>：<a href="https://space.bilibili.com/98639326">白拾Official</a>（活跃于知识区和动画区）</p>
</blockquote>]]></content><author><name>Haobo Yang (杨昊波)</name><email>yhbcode000@foxmail.com</email><uri>https://blog.yhbcode000.tech</uri></author><summary type="html"><![CDATA[Discusses data justice: the ethical collection, ownership, and use of data, particularly how marginalized communities are affected by extractive data practices.]]></summary></entry><entry><title type="html">PI Week3 Power</title><link href="https://yhbcode000.tech/ai-ethics-power/" rel="alternate" type="text/html" title="PI Week3 Power" /><published>2022-10-11T14:47:54+00:00</published><updated>2022-10-11T14:47:54+00:00</updated><id>https://yhbcode000.tech/ai-ethics-power</id><content type="html" xml:base="https://yhbcode000.tech/ai-ethics-power/"><![CDATA[<p>Examines power dynamics in AI development — how concentrated computational and data resources shape algorithmic outcomes and reinforce structural inequalities.</p>

<h2 id="definition">Definition</h2>

<ul>
  <li>Your ability to see your will made manifest in the world.</li>
</ul>

<h2 id="explanation">Explanation</h2>

<ul>
  <li>If you want to do something, how easy is it for you to do it. To naively put this in informatics terms, you could think of it as the weight associated with a person’s node in a network.</li>
  <li>Because we live in a world of systems (political, legal, cultural, organisational, social), a lot of that is tied up in how those system are designed. And a lot of that is dependent on who they were designed for, or by. Because, intentionally or unintentionally, people tend to design things for people like them.</li>
</ul>

<h2 id="traits-of-power">Traits of Power</h2>

<ul>
  <li>It doesn’t have to be explicit. In common usage we talk about powerful people as those with particular positions or titles, but this kind of clearly named power is only really a small subset and shouldn’t be confused for the wider concept.</li>
  <li>Power does not have to be wielded intentionally. The powerful do not need to be vindictive to harm those with less power. Whenever their goals are at odds, the less powerful are more likely to lose out.</li>
  <li>It isn’t a single axis. Someone can have power in some interactions and very little in others. But it is certainly correlated. There are some people and groups with power in a lot of different ways, and by the nature of power it tends to let you more easily accrue more power.</li>
  <li>Power also doesn’t have to be active at all. As in, someone doesn’t have to be doing something to or with another person for the power dynamic to come into play. A system can just be set up such that one of them has an easier time moving through it than the other. Like they’re travelling two different roads, but one of those roads is well tended and the other is filled with potholes. In some places, this isn’t even an analogy.</li>
  <li>This can be thought of as what people are talking about when they talk about Privilege. Privileged groups are the ones by or for whom society’s systems have historically been designed, and as a result people in those groups tend to hold more power.</li>
</ul>

<h1 id="power-in-tech">Power in Tech</h1>

<p>What we produce are tools of Power, in one of maybe three ways:</p>

<ul>
  <li>First is amplifying the ability to do something (reduced costs, increased scale, increased reach).
    <ul>
      <li>This is a multiplicative effect on existing power, because people who already had superior capacity to do something will be able to take advantage of the scaling more. For example, the use of robots in factories speeds up or reduces the cost of production, but the larger your factory operation the more able you are to benefit from this. So small scale producers, or indeed the people working in those factories, have little to no chance of benefiting.</li>
    </ul>
  </li>
  <li>Second is entrenching the power in existing systems by taking them from something informal, administered by humans who can understand nuance, adapt to different circumstances, and be questioned, to something rigid enshrined in rules, administered by unassailable machines.
    <ul>
      <li>We see this in the COMPAS case study, where the part of the decision being made by the algorithm isn’t transparent to the judge or to the accused, so even if it was making similar decisions to a human in the same role, there is no opportunity to dispute or appeal.</li>
    </ul>
  </li>
  <li>Third is providing a new capability that wasn’t available before at all.
    <ul>
      <li>This is maybe just a special case of number one. But something like DeepFakes, which are starting to allow convincing footage or audio of people to be created without their involvement, might only allow this to be done by the people with large compute capacity and plentiful training data (or the ability to acquire these things).</li>
    </ul>
  </li>
</ul>

<p>It is worth noting that these aspects are also the reasons for the great potential of technology. Being able to make these kinds of impacts can drastically improve people’s lives, by redressing existing power imbalances.</p>

<p>The internet, while is has ended up coming with many of its own problems, has given regular people in much of the world access to information and to each other on an unprecedented scale, enabling things like mass organisation of regime-ending protests.</p>

<p>Prosthetics can give physical freedom to people who have been denied it.</p>

<p>The automation of factories that may culminate in those job-stealing robots has, for now, made the people who still work there generally much safer.</p>

<p>What we have more control over are the multitude of other interactions in our work where we hold some power or privilege over other people who might be affected by the artifacts we produce, as well as making sure that those artifacts are not further unfairly taking power away from people.</p>

<hr />

<p>Translate + Edit: YangSier (<a href="https://blog.yhbcode000.tech/">Homepage</a>)</p>

<blockquote>
  <p><strong>:four_leaf_clover:碎碎念:four_leaf_clover:</strong>
Hello米娜桑，这里是英国留学中的杨丝儿。我的博客的关键词集中在编程、算法、机器人、人工智能、数学等等，点个关注吧，持续高质量输出中。
<strong>:cherry_blossom:唠嗑QQ群</strong>：<a href="https://jq.qq.com/?_wv=1027&amp;k=EaGddTQg">兔叽的魔术工房</a> (942848525)
<strong>:star:B站账号</strong>：<a href="https://space.bilibili.com/98639326">白拾Official</a>（活跃于知识区和动画区）</p>
</blockquote>]]></content><author><name>Haobo Yang (杨昊波)</name><email>yhbcode000@foxmail.com</email><uri>https://blog.yhbcode000.tech</uri></author><summary type="html"><![CDATA[Examines power dynamics in AI development — how concentrated computational and data resources shape algorithmic outcomes and reinforce structural inequalities.]]></summary></entry><entry><title type="html">PI Week2 Responsibility</title><link href="https://yhbcode000.tech/ai-ethics-responsibility/" rel="alternate" type="text/html" title="PI Week2 Responsibility" /><published>2022-10-10T14:40:48+00:00</published><updated>2022-10-10T14:40:48+00:00</updated><id>https://yhbcode000.tech/ai-ethics-responsibility</id><content type="html" xml:base="https://yhbcode000.tech/ai-ethics-responsibility/"><![CDATA[<p>Explores the concept of responsibility in AI systems: who is accountable when autonomous systems cause harm, and how to design for responsible deployment.</p>

<blockquote>
  <p>More note for this course check: <a href="/categories/University/Professional-Issues/">Professional Issues</a></p>
</blockquote>

<h2 id="responsibility">Responsibility</h2>

<h3 id="definition">Definition</h3>

<ul>
  <li>Responsibility is an <strong>assigning of roles</strong> by <strong>some larger section of society</strong>.</li>
</ul>

<h3 id="explanation">Explanation</h3>

<ul>
  <li>We are talking about responsibility as the degree to which <strong>individuals or groups</strong> are accountable for <strong>actions, events, or other changes in the world</strong>.
    <ul>
      <li>This might mean attributing a certain amount of <strong>praise or blame</strong> to those <strong>agents</strong> for those <strong>actions</strong>.</li>
      <li>But also it means attributing an <strong>imperative</strong> to them that they <strong>should be thinking about possible actions within some domain</strong>.</li>
    </ul>
  </li>
</ul>

<h3 id="example-cases">Example cases</h3>

<ul>
  <li>A person being reliable or rule following.</li>
  <li>A guard is responsible for times when they stop, or fail to stop, unwanted access to the place they are guarding. But they are also responsible, more generally, for the security of that place.
    <ul>
      <li>Their responsibility doesn’t just come into play only at the moments that they are stopping someone or finding out that they failed: they are meant to spend the rest of their time increasing the chances of one of those and decreasing the chances of the other.</li>
      <li>A guard who has their eyes closed all the time is presumably failing their responsibility here (superhuman echolocation powers notwithstanding)</li>
    </ul>
  </li>
</ul>

<h3 id="traits-of-responsibility">Traits of Responsibility</h3>

<ul>
  <li>It’s often <strong>not an explicit exchange</strong>.
    <ul>
      <li>The guard is presumably being paid, but someone taking on responsibility for looking after a sick relative is not necessarily doing it to get anything back. They are instead maybe benefitting from being part of a society where this is that sort of thing people do.</li>
    </ul>
  </li>
  <li>It’s also <strong>not always a choice</strong>.
    <ul>
      <li>Both of the previous examples to some extent chose these roles, but a person who sees a dam breaking gains the responsibility to inform people in danger from it whether they want that responsibility or not.</li>
    </ul>
  </li>
  <li>It’s <strong>not always a specific role</strong>,
    <ul>
      <li>but responsibilities like “following the law” are applied to all of us by virtue of being parts of societies that expect them.</li>
    </ul>
  </li>
</ul>

<h3 id="factors-in-responsibility">Factors in Responsibility</h3>

<p>Importantly, it’s variable. Your responsibility is dependent on many factors.</p>

<ul>
  <li>One such factor is <strong>power, or capacity</strong>.
    <ul>
      <li>That is, the degree to which you are actually able to make a difference to an outcome.</li>
      <li>
        <blockquote>
          <p>In the example of the dam, the person is much more likely to be considered responsible for alerting others than they are for diverting the flow of the flood water, because they are much more likely to have the ability to do on of these things than the other.</p>
        </blockquote>
      </li>
    </ul>
  </li>
  <li>Related to capacity is <strong>the cost to you</strong>.
    <ul>
      <li>If following the law means you will be harmed, many people would agree that you are less obliged to follow it in that instance.</li>
    </ul>
  </li>
  <li>Another factor is <strong>knowledge</strong>.
    <ul>
      <li>This can be knowledge that effects your ability to predict outcomes.</li>
      <li>
        <blockquote>
          <p>The guard is perhaps not as responsible for catching people entering using experimental invisibility cloaks. It might also be knowledge of your responsibilities: the guard was also meant to be watering the plants, but no one has told them.</p>
        </blockquote>
      </li>
      <li>
        <blockquote>
          <p>Does this mean though that intentionally avoiding learn about something is a legitimate way of avoiding responsbility? No.</p>
        </blockquote>
      </li>
    </ul>
  </li>
</ul>

<h2 id="shared-responsibility">Shared Responsibility</h2>

<h3 id="definition-1">Definition</h3>

<ul>
  <li><strong>Shared responsibility</strong> is a number of people with the same responsibility, they are assigned to a similar role.</li>
</ul>

<h3 id="explanation-1">Explanation</h3>

<ul>
  <li>Purely one person’s responsibility only be taken with incredibly specific assignment.</li>
  <li><strong>Many larger issues</strong> require kind of <strong>ongoing engagement from people</strong>, and so the responsibility in these instances is not to single handedly produce a “correct action” but to play a proportioned part in a larger, longer-term solution.</li>
  <li>Sometimes a problem is only solvable by collective action, and therefore it makes sense that the responsibility becomes being a part of that collection action.</li>
</ul>

<h3 id="example-cases-1">Example cases</h3>

<ul>
  <li>One person leaving a room should turn the light off, but if ten people are leaving that room then none of them is likely to feel that same level of responsibility. This can lead to the “<strong>Bystander Effect</strong>” though, where no one takes action because they each assume someone else will.</li>
  <li>Often, problems will require the engagement of many people over a long period of time and perhaps aren’t even within the power of any individual. Something like climate change (or the pandemic) might not even have an agreed roadmap to resolution.</li>
  <li>If we look at the problem of “recycling”, everyone probably bears some portion of the responsibility, but not equally. Some won’t have access to some recycling facilities, so their power is impacted, or the cost to them is higher if they have to travel a long distance to gain access. Some won’t have been informed about resource issues and so their knowledge is impacted. All of these reasons will reduce people’s responsibility for this issue, but only in extreme cases does this go down to essentially nothing.</li>
</ul>

<h3 id="promoting-shared-responsibility">Promoting shared responsibility</h3>

<ul>
  <li>Conversely, some people such as those in government or who produce packaging might have greater capacity to individually or collectively make a difference, often by fixing the things holding everyone else back, or by making large changes no ordinary person has the power to enact, such as introducing a country-wide network of recycling centers.</li>
  <li>The existence of people with this greater power doesn’t absolve the people with less entirely though. Indeed, often they will still need to be motivated by others to take action themselves.</li>
</ul>

<h2 id="responsibility-for-ethical-tech">Responsibility for Ethical Tech</h2>

<p>So let’s have a quick look at some stakeholder groups in tech and have a think about what kind of responsibilities they might have.</p>

<ul>
  <li>Consumers
    <ul>
      <li>Some tech solutions are bought specifically by the people impacted most by them (eg phones and their apps)</li>
      <li>In their individual cases they often have all the power necessary to make a difference, say by not buying an app they disagree with the ethics of</li>
      <li>Sometimes they don’t have this level of choice, because the thing they disapprove of is a part of a larger collection of products it would be much more challenging to opt out of, maybe because there aren’t obvious alternatives</li>
      <li>Many people disapprove of some of Facebook’s practices, but the choice to leaving the platform can feel like too much to lose, especially if you don’t feel like it would make a difference as just you. So companies can make lots of unethical choices, as long as they don’t make so many as to push people into mass exodus.</li>
      <li>Making an impact on mass can also be a challenge, especially if it requires coordination.</li>
      <li>Average consumers often just don’t have the knowledge of how something works, what potential issues this might lead to, or how to address any problems.</li>
    </ul>
  </li>
  <li>Subjects
    <ul>
      <li>I am using this as a term for people who do not specifically choose to use or buy a technology, but who have it used on them by someone else.</li>
      <li>For example when police decide to start using a particular face recognition algorithm to find criminals.</li>
      <li>These people have very little power to effect any change, other than whatever is afforded them by campaigning charities or their political system.</li>
      <li>Relatedly that means the cost to them of making the change might be high.</li>
      <li>Their knowledge is likely to be worse than in the consumer case, because on top of the same issues they also might not even be aware a technology is being used on them.</li>
    </ul>
  </li>
  <li>Developers/Sellers
    <ul>
      <li>These two groups could be separated further, but they have</li>
      <li>In a direct way the power to make some technological artifact exist or not,</li>
      <li>Though practically there could be some direct cost to them in doing so responsibly</li>
      <li>Presumably they also have much greater knowledge of the working of a system and it’s uses, though not necessarily of the larger impact of those</li>
    </ul>
  </li>
  <li>Researchers/Research funders
    <ul>
      <li>Sort of like developers, but focused on wider capabilities so maybe not putting an artifact into the world but paving the way for a whole new set of artifacts</li>
      <li>This could be seen as more or less power. Lesser chance of larger changes, less directly caused.</li>
      <li>Sometimes research can change route without any cost, sometimes it might essentially end a career to do so, so cost is variable.</li>
      <li>Should have greatest knowledge of how things work, but maybe less than developers about actual deployment.</li>
    </ul>
  </li>
</ul>

<hr />

<p>Translate + Edit: YangSier (<a href="https://blog.yhbcode000.tech/">Homepage</a>)</p>

<blockquote>
  <p><strong>:four_leaf_clover:碎碎念:four_leaf_clover:</strong>
Hello米娜桑，这里是英国留学中的杨丝儿。我的博客的关键词集中在编程、算法、机器人、人工智能、数学等等，点个关注吧，持续高质量输出中。
<strong>:cherry_blossom:唠嗑QQ群</strong>：<a href="https://jq.qq.com/?_wv=1027&amp;k=EaGddTQg">兔叽的魔术工房</a> (942848525)
<strong>:star:B站账号</strong>：<a href="https://space.bilibili.com/98639326">白拾Official</a>（活跃于知识区和动画区）</p>
</blockquote>]]></content><author><name>Haobo Yang (杨昊波)</name><email>yhbcode000@foxmail.com</email><uri>https://blog.yhbcode000.tech</uri></author><summary type="html"><![CDATA[Explores the concept of responsibility in AI systems: who is accountable when autonomous systems cause harm, and how to design for responsible deployment.]]></summary></entry><entry><title type="html">A Practical Guide to Research Team Collaboration</title><link href="https://yhbcode000.tech/paper-writing-tips/" rel="alternate" type="text/html" title="A Practical Guide to Research Team Collaboration" /><published>2022-06-09T15:51:27+00:00</published><updated>2022-06-09T15:51:27+00:00</updated><id>https://yhbcode000.tech/paper-writing-tips</id><content type="html" xml:base="https://yhbcode000.tech/paper-writing-tips/"><![CDATA[<p>A team collaboration guide for research groups: avoiding common pitfalls in multi-author projects, managing revisions, and maintaining research integrity.</p>

<blockquote>
  <p>本文站在第三方的角度审视我在2022年的团队科研经历，一来是自省，二来是帮助更多同学更好的开始自己的科研生活。</p>
</blockquote>

<p>科研工作是围绕一个科学问题展开的探索，只要是探索就有成功，有失败。而人工智能的科研探索，永远是以失败为主旋律。再详尽的计划，再强大的开发能力，都无法保证实验不出现问题。和数学条理清晰的证明不一样，人工智能深度学习的黑盒性质，使科研工作的展开<strong>注定磕磕绊绊</strong>。</p>

<h2 id="star对科研成果的要求">:star:对科研成果的要求</h2>
<p>不同会议或期刊的收录倾向不同，例如CVPR喜欢新应用，NeurlPS喜欢理论的突破，AAAI相对就比较杂食，但对于一篇好文章的要求无非如下：</p>
<ul>
  <li>研究点<strong>新颖</strong>，要做到读者听上去就想要复现一下。</li>
  <li>背景资料<strong>详实</strong>，需要找老前辈讨论。</li>
  <li>论证的<strong>严谨</strong>，参考文献充足且逻辑自洽。</li>
  <li>实验完备且<strong>充分</strong>，多角度多任务多场景（多数据集、多网络适配、多应用）</li>
  <li>文章的行文<strong>规范</strong>且<strong>流畅</strong>，体现一个团队的积累。</li>
</ul>

<p><img src="https://image.yhbcode000.tech/blog-img/s19535106092022-202269195351.png" alt="" /></p>

<h2 id="star研究的三个板块">:star:研究的三个板块</h2>

<p>对于一个课题组，如何进行人员的组织是一定要考虑的问题。任何一个错误的分工，或者一个模糊不清的角色定位都会造成课题推进的困难。接下来我们从三个主要的板块，展开讨论，科研团队中的大家如何扮演好自己的角色。</p>

<p><img src="https://image.yhbcode000.tech/blog-img/s23434406102022-2022610234345.png" alt="" /></p>

<h3 id="stars团队管理">:stars:团队管理</h3>

<blockquote>
  <p>关键词：规范、动量、计划、弹性、变通</p>
</blockquote>

<p>十人的科研团队和百人的科研团队的管理肯定是不同的，这里我们只讨论一下个位数团队的管理，包括经验和教训。</p>

<blockquote>
  <p><strong>什么人适合作为管理：</strong>
热情阳光的聪明笨蛋。热情阳光自不必说，这样的人能够支撑起一个向上的团队氛围。聪明是说作为一个管理，需要有自己的一技之长，管好自己负责工作的同时管理他人，才能服众。笨蛋是特质，在人与人的合作过程中，难免会出现摩擦，进而产生负面情绪，而管理员首当其冲会被影响，这个时候一个后知后觉的笨蛋才能作为一个矛盾之外的旁观者，做到决策时的不偏不倚。</p>
</blockquote>

<blockquote>
  <p><strong>管理的职责是什么：</strong>
说大了是承担责任的那一个，要保证团队在截止日期前产出期望成果；说小了是推进项目进度的人，保证研究工作的正常展开。具体如何履行管理的职责，我们将在接下来展开。</p>
</blockquote>

<p>管理一个科研团队的方法可以从两个方面阐述：人员管理和任务管理。</p>

<p>首先是人员管理：</p>

<ol>
  <li><strong>保证团队成员之间的沟通顺畅</strong>。需要统一术语，创建课题组共享的知识库，预订所有成员都时间允许的会议，不厌其烦的重复研究点上的决议，且在推翻的时候留存论证思路文档。上述几点应是缺一不可。</li>
  <li>
    <p><strong>调动团队成员的积极性</strong>。每个人都有自己的方法，最简单最实用的就是在分工的时候提前了解清楚成员的情况和需求，为每个人创造与需求相关的岗位，实现内在积极性的挖掘。
<img src="https://image.yhbcode000.tech/blog-img/s23560706102022-202261023567.png" alt="" /></p>
  </li>
  <li><strong>积极布局应对科研人员的高流动性</strong>。对于类似实习生团队或者社团这样高流动性的情景，应对流动性的方案一定要提前设计。尤其是核心成员的离职会对一个课题的开展造成毁灭性的打击，可能是理论构建上的难度骤增，也可能是代码开发上的断流。可以使用的方法有二，其一是所有的关键岗位永远有两个人共同负责，临时走了一个的时候另一个可以支撑上并培养新的补位成员；其二是将所有的研究内容文档化，包括思考过程和个人或者团队未来的研究计划，赋予课题在暂停很久后依然可以重启的能力。
 <img src="https://image.yhbcode000.tech/blog-img/s19472406092022-202269194725.png" alt="" /></li>
</ol>

<p>再来是任务管理：</p>
<ol>
  <li><strong>确定每一个阶段的阶段性目标</strong>。规划未来是任务管理首先要做的事情，要明确最终目标和期限，对实现目标所需工作进行划分，提前安排成员负责不同阶段的任务。每一个课题的研究工作都有几个阶段：开题、论证、实验、写作。开题包括调研工作等一系列与课题展开相关学习和调查工作；论证阶段的目标是完成论文理论部分的构建；实验部分主要是设计实验方案，对理论进行验证；写作即文章写作，可以先完成中文的草稿，然后在翻译过程中修改，润色。
 <img src="https://image.yhbcode000.tech/blog-img/s19552506092022-202269195529.png" alt="" /></li>
  <li><strong>在每一个阶段进行详实的分工</strong>。这里可以参考OKRs管理的思想，每一个确定好的分工一定是可量化的，也就是说需要是类似是否或者有一个具体数字的分工，将分工记录在固定文档中，截图发送到团队的群聊中提醒大家，最后在约定日期确认可以确认的节点。
<img src="https://image.yhbcode000.tech/blog-img/s23401706102022-2022610234018.png" alt="" /></li>
</ol>

<h3 id="stars模型开发">:stars:模型开发</h3>

<p>人工智能模型的开发，得益于人工智能框架的成熟，已经<strong>规范化</strong>，<strong>流程化</strong>了，甚至出现了<strong>低代码</strong>的趋势。就算是从0开始搭建一套深度学习模型，也无非是按照前人积累的经验，搭建类似八股文一样的代码。因此为了避免重复工作，也是为了更快的展开研究工作，研究初期选用一套合适框架尤为重要。</p>

<p>在不同领域的高级框架有很多，如目标检测领域的MMDetetion和Detectron2，都集成了不同公共数据集的加载、预处理、结果生成等，并将训练、推理、验证、测试等封装成了高级接口，可以随时调用。因此，人工智能的模型的代码实现并不困难，所有的困难都集中于一点，即研究点相关深度学习网络模块的代码实现。</p>

<p><img src="https://image.yhbcode000.tech/blog-img/s19563406092022-202269195636.png" alt="" /></p>

<p>研究点的代码实现面临三个挑战：</p>
<ol>
  <li><strong>与框架接口的适配</strong>。需要准确定位研究点在框架中的位置，然后才能对原有框架代码进行替换或增改。网络层的修改定是在模型内部修改，相应的损失函数的代码放在损失函数部分。</li>
  <li><strong>与框架运行平台的适配</strong>。人工智能框架大多都是在GPU上开展计算工作，因此插入代码片段使用与框架相同的方法支持GPU运算就尤为重要。举例就是我们需要使用pytorchGPU实现原本使用math库下的小小概率计算。</li>
  <li><strong>研究点本身的实现难度</strong>。这一点对有经验的模型开发者来说是耗费时间的，如果一个研究涉及到一套模型的方方面面，那修改的时候也会涉及到框架不同位置的知识。</li>
</ol>

<p>所以对一个研究团队的代码开发的要求有如下两点：</p>
<ol>
  <li>要熟悉团队常用的开发框架，拥有修改框架的能力。</li>
  <li>要熟悉团队的研究点，有参与到研究点讨论的能力。</li>
</ol>

<p><img src="https://image.yhbcode000.tech/blog-img/s20003806092022-20226920039.png" alt="" /></p>

<h3 id="stars理论构建">:stars:理论构建</h3>

<p>一篇论文的Method或Theory部分是核心，这些部分一定要做到条理清晰、措辞规范、逻辑自洽才能获得审稿人的青睐。因此对于参与理论构建工作的同学就有了较高的要求。成为一个可以胜任理论构建工作的成员，一定要经过以下的步骤：</p>

<ol>
  <li><strong>学习理论提出的基础知识</strong>。为了不闹笑话，学习更多的相关知识一定是必要的。同时也是为了在团队讨论时更好的理解讨论的内容。</li>
  <li><strong>了解理论提出的背景，确定理论提出的动机</strong>。为了更好的进行理论构建的合作，每一个参与理论构建的团队成员都要拥有同样的思维出发点，使用一套术语进行讨论，避免不在一个频道的多余讨论。</li>
  <li>在调研工作中学习相关研究中的理论展开方法，<strong>积累常用的逻辑或措辞</strong>，同时有意识的在日常的文档工作中去模仿。</li>
</ol>

<p>除了上述对于成员的期望，对于理论构建工作本身也有几个需要极力避免的事情。</p>

<ol>
  <li>很多时候团队中会有很多脑子转得特别快的同学，理论构建起来一套一套的，这种时候一定要避免论文出现<strong>头重脚轻的问题</strong>。因为论文不是考试作文，任何一个提出的论点，一定要有先人工作或者充分实验进行支撑。一定要有一个论文全文的观念，分清主次，可以把想到的东西记录在一旁，完成一个点的完整论证和试验后，再做下一个。
<img src="https://image.yhbcode000.tech/blog-img/s20032106092022-20226920321.png" alt="" /></li>
  <li>因为现阶段人工智能的研究偏向工程，就算是纯理论的人工智能研究也需要有代码上的具体实现。如果<strong>理论设计得太过复杂</strong>，超出了框架或者开人成员所能实现的范围，会导致研究点无法进一步推进。因此，理论复杂程度和模型开发能力的平衡非常重要。
<img src="https://image.yhbcode000.tech/blog-img/s00071006112022-20226110711.png" alt="" /></li>
  <li><strong>理论推导的层数过多</strong>同样会导致问题。我们设想这样一个极端情况，理论这边耗费大精力构建了一个20层的逻辑链条，实验计划也是环环相扣，但在验证到第5环的时候出现了问题，之后的逻辑直接断链，直白一点说就是白干。因此在理论构建的时候，不能只要考虑到理论的深度，还要考虑到理论的广度，多思考几种可能性，做到在之后的研究中灵活应对变化。当然，最好是理论构建和实验并行，真正做到动态构建链条。</li>
</ol>

<h2 id="star2其他一些话">:star2:其他一些话</h2>

<ul>
  <li>:ab:注意：团队中每一个人都有他存在的价值，前期分工的时候一定要全方位了解每一个人，为每个人创造合适的岗位，拆分科研工作。</li>
  <li>:ab:注意：不论分工如何，一个团队中需要有一定数量的<strong>核心成员</strong>，核心成员决定了课题的走向，通常也会<strong>作为论文的一二三作者</strong>。</li>
</ul>

<p><img src="https://image.yhbcode000.tech/blog-img/s19500806092022-20226919509.png" alt="" /></p>]]></content><author><name>Haobo Yang (杨昊波)</name><email>yhbcode000@foxmail.com</email><uri>https://blog.yhbcode000.tech</uri></author><summary type="html"><![CDATA[A team collaboration guide for research groups: avoiding common pitfalls in multi-author projects, managing revisions, and maintaining research integrity.]]></summary></entry><entry><title type="html">How to Write Papers Efficiently</title><link href="https://yhbcode000.tech/how-to-write-papers/" rel="alternate" type="text/html" title="How to Write Papers Efficiently" /><published>2022-04-03T20:02:30+00:00</published><updated>2022-04-03T20:02:30+00:00</updated><id>https://yhbcode000.tech/how-to-write-papers</id><content type="html" xml:base="https://yhbcode000.tech/how-to-write-papers/"><![CDATA[<p>Practical advice on academic paper writing — from structuring arguments to navigating peer review — with a focus on efficiency and impact.</p>

<p>论文和自己的笔记不一样，和我成天写的博客类似，都是要提供最多的相关信息，便于读者理解。</p>

<p>只要有给小白讲明白这个点的想法，就不愁没得写</p>

<p>而且大概率会超页数。超了删，好删；少了加，就难喽</p>

<p>至少比你低一两个年级的同学能看懂或者不是很了解天体物理的量子物理教授能看懂</p>

<p>水论文小技巧1：谷歌翻译，中英或者英法互译，来回译上几轮，字数就多了</p>

<p>水论文小技巧2：分析文章观点展开逻辑，力求每一个观点的逻辑展开流程一致。之后只要多一环逻辑，全文每一块都可以多这一环</p>

<p>水论文小技巧3：大量公式，表格，图片</p>

<p>水论文小技巧4：观点前置，最后重复观点，强调重点</p>]]></content><author><name>Haobo Yang (杨昊波)</name><email>yhbcode000@foxmail.com</email><uri>https://blog.yhbcode000.tech</uri></author><summary type="html"><![CDATA[Practical advice on academic paper writing — from structuring arguments to navigating peer review — with a focus on efficiency and impact.]]></summary></entry></feed>