第4章 现代控制理论高频问题:状态空间、能控能观性、李雅普诺夫方法
章节定位:现代控制理论是智能控制工程师的“底层操作系统”,面试中高频考察三个核心模块:状态空间建模、能控能观性分析、李雅普诺夫稳定性判定。掌握这三块,等于拥有了从经典控制跃迁到现代控制的钥匙。
面试策略:回答现代控制理论问题时,先明确系统是线性定常还是时变,然后快速写出状态空间表达式。能控能观性用秩判据一步到位,稳定性则根据题目选择第一法或第二法。
---
## 3 个面试问答卡片
### 卡片 1:状态空间表达式与极点配置
**面试问题**:请写出一个二阶系统的状态空间表达式,并说明如何进行极点配置。
**面试官考察点**:
- 能否快速写出标准的状态空间方程(连续/离散)
- 是否理解能控性与极点配置的充要条件
- 是否有工程实现意识(如阿克曼公式)
**回答框架**:
1. 给出通用形式:\(\dot{x}=Ax+Bu, y=Cx+Du\)
2. 选取合适的状态变量(如位置和速度)
3. 写出A、B矩阵,验证能控性
4. 通过反馈控制律 \(u=-Kx\) 改变系统极点
5. 使用阿克曼公式或直接计算K
**简短示例回答**:
“以弹簧-质量-阻尼系统为例,状态变量取位移x₁和速度x₂。A=[0 1; -k/m -c/m],B=[0; 1/m]。系统能控性矩阵满秩,因此可任意配置极点。根据期望极点计算反馈增益K,使闭环系统满足动态指标。”
**可能追问**:
- 极点配置与LQR最优控制有什么区别?
- 如果系统不完全能控,如何配置可观测部分的极点?
- 离散系统极点配置时单位圆内映射如何考虑?
**避坑提醒**:
❌ 不要只说理论公式而忽略工程参数(如采样时间、执行器饱和)
✅ 务必先判定能控性,否则一切配置无效
---
### 卡片 2:能控性与能观性判定
**面试问题**:如何判断一个线性时不变系统是否完全能控?请举例说明。
**面试官考察点**:
- 是否熟练掌握秩判据(能控矩阵、能观矩阵)
- 能否处理非方波、多输入多输出系统
- 是否有标准形式变换的知识(如约当标准型)
**回答框架**:
1. 写出系统矩阵A和输入矩阵B
2. 构造能控性矩阵 \(C=[B\ AB\ A^2B\ \cdots\ A^{n-1}B]\)
3. 计算秩,若等于系统阶数n则完全能控
4. 可举例说明:若A为对角阵但某行B为零 → 不可控
5. 能观性同理,构造能观性矩阵求秩
**简短示例回答**:
“对于一个2阶系统,A=[1 2; 0 3],B=[1;0]。能控矩阵为[B AB] = [[1 1]; [0 0]],秩为1<2,因此不完全能控。状态变量x₂无法通过输入u控制,只能通过零输入响应变化。”
**可能追问**:
- Kalman分解后能控子空间与不能控子空间如何分离?
- 能控性和能观性对偶原理的具体应用?
- 在工程中,能观性不足时如何设计降维观测器?
**避坑提醒**:
❌ 不要只记公式而不理解物理含义(如某个状态完全不可控时极点配置失败)
✅ 回答时强调“秩等于n”是充要条件,但数值计算需考虑矩阵病态
---
### 卡片 3:李雅普诺夫稳定性分析
**面试问题**:请说明李雅普诺夫第二法(直接法)判定非线性系统稳定性的步骤。
**面试官考察点**:
- 是否清晰区分第一法(线性化)与第二法(直接法)
- 能否构造合适的Lyapunov函数(候选函数)
- 是否理解正定/负定的验证方法以及局部/全局稳定
**回答框架**:
1. 选取一个候选Lyapunov函数 \(V(x)\),通常为二次型 \(V=x^TPx\)
2. 验证 \(V(0)=0\) 且 \(V(x)>0\) 对所有 \(x \neq 0\) 成立(正定)
3. 沿系统轨迹求导 \(\dot{V}(x) = \nabla V \cdot f(x)\)
4. 若 \(\dot{V}(x) < 0\) 对所有 \(x \neq 0\) 成立,则系统渐近稳定
5. 若 \(\dot{V}(x) \leq 0\),则系统稳定(但需进一步用不变集定理)
**简短示例回答**:
“以倒立摆为例,取 \(V = \frac{1}{2} (x_1^2 + x_2^2)\)。求导得 \(\dot{V} = -x_2^2 \sin^2 x_1 \leq 0\)。因只有原点处 \(\dot{V}=0\),根据LaSalle不变集原理,系统渐近稳定。若要求全局稳定,还需验证径向无界性。”
**可能追问**:
- 如何选取P矩阵才能保证线性系统稳定?
- 李雅普诺夫方程 \(A^TP+PA=-Q\) 中Q的选取原则?
- 对于非线性系统,如果找不到合适的V函数怎么办?
**避坑提醒**:
❌ 不要随意猜测V函数形式,尝试 \(V=x^2\) 过于简单
✅ 工程中优先使用二次型,检查 \(\dot{V}\) 是否负定,否则考虑SOS方法
---
## 项目案例
**项目名称**:自动驾驶车辆纵向运动控制系统
**业务背景**:某L4级自动驾驶公司需要开发一个包含定速巡航、自适应巡航和紧急制动功能的纵向控制器,要求精确跟踪目标车速并保证乘员舒适性。
**规模指标**:
- 车辆速度范围 0~120 km/h
- 跟踪误差 ≤ 0.5 m/s(稳态)
- 加速度变化率 ≤ 2 m/s³(舒适性约束)
- 紧急制动响应时间 ≤ 200ms
**技术栈**:
- 控制器:状态反馈 + 前馈补偿(基于模型逆)
- 观测器:卡尔曼滤波(融合IMU和轮速)
- 验证环境:MATLAB/Simulink + dSPACE HIL
- 部署:C++ 实现,实时操作系统 ROS2
**核心难点**:
1. 轮胎-地面非线性摩擦导致模型失配,状态空间模型参数时变
2. 能控性分析显示,当轮胎滑移率进入饱和区时,车速不可控
3. 李雅普诺夫稳定性证明需考虑执行器饱和(约束的Lyapunov函数)
**面试高频追问**:
- 你们是如何处理模型不确定性的?是否用了自适应控制或鲁棒控制?
- 当轮胎饱和时,系统不可控,你们采取了什么策略(滑模控制?限制输出?)
- 如何用李雅普诺夫方法证明闭环系统在约束下的稳定性?
- 卡尔曼滤波器在这里是用于状态估计还是参数辨识?
**可迁移回答话术**:
“在纵向控制项目中,我们首先建立了包含轮胎滑移率的状态空间模型。通过能控性矩阵分析,发现当滑移率超过峰值时系统不可控,因此我们设计了一个监督器在不可控区域切换到开环紧急制动策略。稳定性方面,我们构造了包含控制输入约束的Lyapunov函数,并利用SOS(平方和)方法证明了在正常工作范围内系统指数稳定。这个处理思路后来也被移植到了横向控制的极限工况保护中。”
重要提醒:现代控制理论是面试中的“理论分水岭”。能完整讲出状态空间→能控能观→李雅普诺夫这条主线,并衔接实际工程问题(如约束、饱和、时变),就能从众多候选人中脱颖而出。