上篇讲完传感器选型传感器与数据处理系列算是告一段落了。从这篇开始我们进入一个全新的阶段——控制理论。为什么传感器讲完了紧接着讲控制因为传感器是感知控制是决策和执行。你感知到了障碍物的距离、关节的角度、机器人的位姿然后呢你得让机器人做出反应——停下来、转弯、调整姿态。这个做出反应的过程就是控制。讲真控制理论是机器人软件工程师面试中区分度最高的模块。C你写得好说明编程功底扎实。ROS2你熟悉说明工程能力强。但控制理论你能讲清楚说明你懂机器人的灵魂。面试官对控制理论聊得深的人通常会高看一眼。这篇先不急着推公式我们从宏观上把控制理论的版图看清楚——经典控制、现代控制、智能控制这三大流派到底在干嘛有什么区别面试中怎么聊。经典控制一个输入一个输出的艺术经典控制理论说白了就是围绕传递函数和频域分析建立起来的一套方法论。它的黄金时代是上世纪四五十年代那时候航空航天工业刚起步工程师需要一种实用的方法来设计控制器。经典控制的核心工具是传递函数。你把系统的微分方程做拉普拉斯变换得到一个关于s的有理分式然后分析这个分式的零极点分布就能判断系统稳不稳定、响应快不快、超调大不大。经典控制最常用的控制器就是PID——比例、积分、微分三项的组合。你别看它结构简单工业界90%以上的控制回路用的还是PID。为什么因为好用、好调、好理解。面试的时候如果面试官问你对经典控制理论了解多少你至少要能聊这几个点传递函数的定义和物理意义、零极点对系统响应的影响、稳定性的频域判据奈奎斯特稳定判据、伯德图、PID三项各自的物理意义。经典控制的局限性也很明显——它只能处理单输入单输出SISO系统。你的机器人有6个关节、12个电机每个关节都要控制这些关节之间还有耦合。经典控制处理这种多输入多输出MIMO系统就很吃力了。现代控制状态空间里的矩阵运算现代控制理论从上世纪六十年代开始发展核心工具是状态空间法。跟经典控制用传递函数描述系统不同现代控制用一组一阶微分方程状态方程来描述系统。这些方程写成矩阵形式非常适合计算机求解。import numpy as np # 状态空间模型 # dx/dt A*x B*u # y C*x D*u A np.array([[0, 1], [-2, -3]]) # 系统矩阵 B np.array([[0], [1]]) # 输入矩阵 C np.array([[1, 0]]) # 输出矩阵 D np.array([[0]]) # 直通矩阵 # 状态向量 x np.array([0, 0]) u 1.0 # 阶跃输入 # 仿真一步 dt 0.01 x_dot A x B * u x_next x x_dot * dt y C x_next D * u print(f状态: {x_next}, 输出: {y})状态空间法最大的优势是能处理多输入多输出系统。你的机器人有n个关节状态向量就是n维的状态方程就是n×n的矩阵运算天然支持MIMO。现代控制的另一个核心概念是可控性和可观性。可控性说的是我能不能通过输入把系统从任意状态驱动到任意另一个状态可观性说的是我能不能通过输出推断出系统的内部状态。这两个概念在面试中出现的频率非常高。之前面试一个做人形机器人的团队面试官问了一个很经典的问题你的系统可观吗如果不可观会怎样这个问题其实是在问你——你的传感器信息够不够用如果你需要估计某个状态量但现有的传感器组合无法提供足够的信息来推断它那系统就是不可观的你根本估不出来。现代控制还引出了最优控制的概念——LQR线性二次调节器。它通过最小化一个代价函数来求解最优反馈增益。这个在面试中也是加分项后面会专门讲。智能控制当传统方法搞不定的时候智能控制是个比较宽泛的概念泛指那些用人工智能技术来实现控制的方法。最常见的几种模糊控制、神经网络控制、强化学习控制。模糊控制在上世纪九十年代很火家电里用得特别多——洗衣机、空调、微波炉。它的核心思想是把人的经验规则化——如果温度比较高那就加大火力。这种比较高加大这种模糊的说法用隶属度函数量化就能让计算机执行。神经网络控制是近几年的热点。用一个神经网络去拟合控制策略输入当前状态输出控制量。训练数据可以来自专家示范模仿学习也可以来自试错强化学习。强化学习控制在足式机器人里应用很广。波士顿动力的Atlas、特斯拉的Optimus背后都有强化学习的影子。你在仿真环境里让机器人反复试错奖励它走得稳、走得快惩罚它摔倒训练出来的策略迁移到真实机器人上。但讲真智能控制在工业界的应用还没有经典控制和现代控制那么广泛。原因很简单——可解释性差、安全性难以保证。你用一个神经网络做控制出了问题你很难分析为什么。在工业机器人、自动驾驶这种安全要求极高的场景不可解释是致命的。面试中聊到智能控制我建议你表达一个观点智能控制是趋势但目前工业界的主力还是经典控制和现代控制。智能控制更适合用在高层决策路径规划、行为选择底层执行还是PID和LQR的天下。三大流派的关系不是替代是互补很多人有个误解觉得现代控制比经典控制高级智能控制又比现代控制高级。其实不是这么回事。这三种方法是互补的关系各有适用场景。经典控制适合单回路、单变量的简单系统。一个电机的转速控制、一个加热器的温度控制PID就够了没必要上状态空间。现代控制适合多变量、有耦合的复杂系统。机械臂的多关节协调控制、无人机的六自由度姿态控制状态空间法是标配。智能控制适合模型不确定、环境变化大的场景。足式机器人在复杂地形上行走地面摩擦力、地形起伏都很难精确建模强化学习反而能训出不错的效果。实际工程中这三种方法经常混合使用。比如一个机器人系统底层关节用电流环PID经典控制中间层用轨迹跟踪LQR现代控制顶层用强化学习做行为决策智能控制。面试中怎么聊控制理论面试官问控制理论通常有两种问法。一种是宽泛的你对控制理论了解多少这时候你就从这三个层面展开——经典控制讲PID和频域分析现代控制讲状态空间和可控可观性智能控制讲强化学习在机器人中的应用。重点放在你最熟悉的部分其他两个点到就行别贪多。另一种是具体的PID三个参数分别什么意思或者什么是可控性这种问题就需要你扎实掌握细节了后面几篇会逐一展开。我给一个建议面试前至少把PID调参的实际经验准备好。面试官最喜欢追问的就是你调过PID吗怎么调的遇到什么问题如果你能讲出一个真实的调参故事——比如调机械臂关节PID时遇到超调怎么一步步解决的——比背十页教科书都管用。还有个容易踩的坑别在面试的时候把控制理论和SLAM混为一谈。SLAM是感知层面的解决我在哪的问题。控制是决策执行层面的解决我怎么去到那里的问题。两者有交集比如视觉伺服但本质上是两个不同的模块。面试官问你控制相关的问题别扯到SLAM上去。补充一个面试准备控制理论的建议。很多候选人只准备了PID调参的经验但面试官经常会从PID延伸到更深层的问题——比如PID的积分饱和怎么处理用积分限幅或反饱和、微分项对噪声敏感怎么办加低通滤波器、你怎么判断PID参数调好了看阶跃响应的超调量和调节时间。这些问题考的是你对PID的理解深度不只是会调参。建议你在准备PID调参故事的同时把这三个追问的答案也准备好。另外如果你能主动提到我在项目中用了级联PID——外环位置环、内环速度环面试官会觉得你对控制架构有整体理解。下一篇讲反馈控制的基本原理——为什么闭环比开环好这个看似简单的问题背后其实有很深的道理。如果这篇文章对你有帮助欢迎点赞、在看、转发三连。 你的支持是我持续更新的最大动力。「机器人软件开发面试·从入门到精通」连载系列上一篇第175篇 传感器选型实战——面试翻车实录 下一篇预告第177篇 反馈控制原理——闭环为什么比开环好有任何问题欢迎评论区留言我会尽量回复。