基于改进模糊滑膜控制的车辆主动悬架
抖振抑制与鲁棒性研究
从零讲起的配套讲义:概念 → 直觉 → 数学 → 幻灯片上怎么出现 → 老师可能怎么问
0 怎么用这份讲义 + 明天保命速查卡
- 知道今晚时间不够时先读哪几章;
- 能张口说出全场最关键的 10 句话;
- 能诚实说明哪些已经做了、哪些还在计划中、哪些数字目前还是占位。
- 第 5 章:增益下界统一写成 (力 vs 加速度),补充单位质量写法 ; 改为状态相关 ;参考模型改用设计质量;补可行性 ;强调“理想作动器”是最大假设(对 相对阶为 2);到达边界层时间改为 ;路面在完整模型中非匹配。
- 内动态(5.6):补零点 、临界稳定;车轮跳动阻尼只来自被动 ;参考模型滑模面作为“设计理由”而非文献结论;特征值与 Claude 略有差异(9.52 vs 9.85 Hz),已定位到天棚力反作用项,仍待核对。
- 第 6 章:边界层界是稳态界、需从层内出发;有作动器动态时只有最终有界;时变 条件按最坏质量写;模糊时变 逐点成立即可,加保护下限和 速率限制;Super-Twisting 条件改写( 仅必要,补经典充分条件)。
- 新 6.3 节:临界层内增益 公式与算例,重跑仿真确认阈值 –0.009(原“0.016”来自过粗的扫描网格),建议耦合约束 。
- 第 2 章路面:周期性、逐区间精确积分、滤波白噪声法的 2 倍约定问题。
- 第 8 章指标: 改建议 12–16 Hz,补绝对限带 RMS、抖振主频与幅值、TV 的局限,建议用事先设定的阈值 + ISO 2631-1 加权加速度替换“四个指标都下降”。
- 第 10 章:新增 6 个追问(25–30),并列出凭记忆、尚未核实的文献。
0.1 今晚的阅读路线(按优先级)
| 时间预算 | 读什么 | 读完能做到 |
|---|---|---|
| 30 分钟 | 本章速查卡 → 第 9 章逐页讲解(只看每页的“一句话诚实回答”) | 能完整讲完 12 页,不说错话 |
| +60 分钟 | 第 5 章(滑模)→ 第 6 章(抖振抑制)→ 第 7 章(模糊) | 能在白板上推出 、写出 的证明,能手算一次模糊推理 |
| +45 分钟 | 第 2 章(1/4 车 + 路面 + 指标)→ 第 3 章(作动器)→ 第 8 章(实验设计) | 能解释每个方程、每个指标,能回答“为什么分开算 和 ” |
| +30 分钟 | 第 10 章(30 个追问)、第 1、4 章(基础补课) | 答问时不慌 |
每章结构固定:学习目标 → 前置知识回顾 → 直觉 → 推导 → 数值算例 → 仿真/代码核对 → 常见误区 → 幻灯片对应 → 老师可能问 → 自测题。绿色折叠块是“算例详解”,紫色折叠块是“自测答案”,点开即看;右上角按钮可一键全部展开(打印时也会自动展开)。
0.2 保命速查卡:必须能张口就说的 10 句话
- 课题一句话:主动悬架用滑模控制,鲁棒(对质量变化、路面扰动不敏感),但不连续切换 会让控制力高频抖振;我们用模糊规则同时在线调切换增益 和边界层厚度 ,在受约束的作动器下检验能否兼顾抑振、舒适和鲁棒。
- 被控对象:1/4 车二自由度模型——车身(簧载质量 )和车轮(非簧载质量 ),中间弹簧 、阻尼 、作动器 ,下面轮胎刚度 ;路面 按 ISO 8608 生成。它只代表车身垂向振动,不等于人体/座椅舒适性。
- 滑模面 : 意味着 ,误差按 指数衰减。控制器的任务就是“先把 推到 0(到达阶段),再保持在 0 上(滑动阶段)”。
- 控制律 : 是“按标称模型算出的、让 的那部分力”; 负责对付模型误差和扰动,把系统推回滑模面。
- 为什么稳:取 ,只要 大于扰动上界再留一点裕量(,注意 是力、 是加速度),就有 , 在有限时间 内到达边界层,层内误差有界 。但 deck 上的完整稳定性证明是第④阶段的交付物,目前还没完成——不要说“已证明”。而且这个论证假设理想作动器;有滞后/时延时只能保证最终有界。
- 抖振从哪来:理想 sgn 要求无限快切换;真实系统有作动器滞后、纯时延、采样和噪声,切换总是“晚一步”,于是在滑模面两侧来回冲过头,形成几十赫兹的极限环。
- 边界层的代价:把 sgn 换成 sat,层内变成连续的高增益线性反馈,抖振减小,但换来稳态误差(误差界 )。 大 → 平滑但不准; 小 → 准但会抖。这就是“精度—平滑折中”,固定 只能选一个折中点。
- 我们的改进(FSMC-dual):用模糊规则根据“离滑模面多远()”和“正在靠近还是远离( 的符号)”同时调 和 :远离时加大 、收窄 ;靠近时减小 、放宽 。、 都有硬边界, 按到达条件定,模糊只能在安全区间里调。
- 怎么证明“真的更好”:七组对照(Passive、Skyhook、SMC-sign、SMC-fixed-BL、FSMC-K、FSMC-φ、FSMC-dual),同一路面种子、同一步长、同一作动器约束;六类指标;抖振用 (高频能量占比)和 TV(总变差)衡量,指令力 和实际力 分别算;抖振降了但舒适、行程、接地变差,仍算失败。
- 定位与诚实:模糊滑模、可变边界层已有先例(如 Lee et al., 2001),我们不主张首创;价值在于统一作动器约束下公平、可复现的消融对比,回答“双参数到底值不值”。如果双参数没有额外价值,就如实退回单参数。目前没有仿真结果,参数表待按文献补齐。
0.3 已完成 vs 计划中:诚实口径
已有现在可以说“做了”的
- 文献调研:抖振抑制的四条主流路径与四个缺口(第 4 页);
- 研究问题收缩为一个可检验的假设(双参数是否值得);
- 模型框架:1/4 车方程、受约束作动器方程、ISO 8608 路面公式(第 5 页);
- 控制器结构:滑模面 + 控制律 + 模糊调参思路 + 稳定性底线(第 6 页);
- 实验方案:七组对照 × 三类工况 × 六类指标 + 公平原则(第 7 页);
- 七阶段计划、五模块分工、风险与对策(第 8–11 页)。
待做必须说“计划中/待补”的
- 所有仿真结果(结果表是占位);
- 参数表 与 :待按文献填写并标注来源;
- 误差 的具体定义、 的具体表达式(deck 未写,第 5 章给出建议);
- 模糊规则表:只是 3×3 初稿示意,隶属函数和归一化区间未定;
- 稳定性、有界性证明:第④阶段(2027.02–04)交付;
- Super-Twisting 强基线、蒙特卡洛统计:下半程。
0.4 讲前必须知道的 deck 不一致之处(口播稿“讲前核对”汇总)
| # | 问题 | 明天怎么处理 |
|---|---|---|
| 1 | 题目写「滑膜」,正文是「滑模」(sliding mode) | 口头同音无碍;被问就说“题目沿用申请书写法,正确术语是滑模,书面材料会统一”。 |
| 2 | 作动器方程 A/B 两套写法不同(时延放在哪里) | 按 B 套讲:先限幅再一阶滞后,,纯时延 单独建模(第 3 章)。 |
| 3 | 时延记号:第 5 页 ,第 9 页 ,另有一阶滞后 ;团队底稿 index.html 第 9 页写的是“=5–15 ms” | 需确认5–15 ms 摄动的是纯时延还是一阶滞后时间常数?讲时说“作动器时滞 5–15 ms”,被追问就说“这里指纯时延 ,记号会统一”。(先和队友确认!) |
| 4 | 中 没定义; 没写表达式; 和阻尼 易混 | 第 5 章给出推荐定义(跟踪天棚参考模型)及推导,可口头补充。 |
| 5 | 指标数量“五类/六项”混用 | 按幻灯片说“六项指标”。 |
| 6 | RMS 公式记号 vs | 按 B 套 。 |
| 7 | 主流路径“四条/三条” | 按 B 套四条。 |
| 8 | 第 6 页没有讲稿备注 | 口播稿已补写;本讲义第 9 章有逐句解释。 |
| 9 | A 套图号顺序 | B 套已修正,不用管。 |
| 10 | 第 6 页只写“满足到达条件,闭环稳定”,无证明 | 说“这是设计原则;正式证明是第④阶段交付物”。 |
| 11 (本讲义新发现) | 第 11 页规则表第三列“边界层内”不是“趋势”,和行“ 大”逻辑上冲突;且“ 小”行全是“保持”,与口播稿第 6 页“接近了就减小 、放宽 ”的说法不一致 | 强调“初稿·示意”;被问就说“第三列准备改成‘趋势不明显()’,小 行的规则要在第④阶段消融里定”。详见第 7 章。 |
1 控制用的状态空间与常微分方程速成
- 会把一个力学系统写成状态空间 ;
- 会用特征值判断稳定性、读出固有频率和阻尼比;
- 能在相平面上想象轨迹;
- 知道 Lyapunov 函数是“广义能量”;
- 只在需要的范围内了解传递函数和频率响应。
1.1 一阶系统:时间常数
。阶跃输入 时 : 时到 63%, 时到 95%。作动器模型(第 3 章)就是这种系统, 越小响应越快。另一个常见形式 (滑模面上的误差动态):,时间常数 。
1.2 二阶系统:质量—弹簧—阻尼
。定义固有频率 、阻尼比 ,方程变为 。特征根 (欠阻尼时)。
1.3 状态空间、平衡点、稳定性
取状态变量 (位移)、(速度)——状态就是“知道它们就能预测未来”的最小一组量:
平衡点: 的点(这里是原点)。线性系统稳定 ⇔ 的所有特征值实部 < 0;实部决定衰减快慢,虚部决定振荡频率。1/4 车有 4 个状态 ,4×4 的 矩阵(第 2 章)。
# 第1章:二阶系统 m x'' + c x' + k x = 0 的特征值、阻尼比、固有频率
import numpy as np
m, c, k = 250.0, 1000.0, 16000.0 # 教学参数:1/4 车身质量 + 悬架弹簧/阻尼(车轮固定不动)
A = np.array([[0, 1], [-k/m, -c/m]]) # 状态 x=[位移, 速度]
lam = np.linalg.eigvals(A)
wn = np.sqrt(k/m); zeta = c/(2*np.sqrt(k*m))
print("A =\n", A)
print("eigenvalues =", np.round(lam, 3))
print(f"wn = {wn:.3f} rad/s = {wn/2/np.pi:.3f} Hz, zeta = {zeta:.3f}")
print(f"damped freq wd = {wn*np.sqrt(1-zeta**2):.3f} rad/s ; Re(lambda) = -zeta*wn = {-zeta*wn:.3f}")
A =
[[ 0. 1.]
[-64. -4.]]
eigenvalues = [-2.+7.746j -2.-7.746j]
wn = 8.000 rad/s = 1.273 Hz, zeta = 0.250
damped freq wd = 7.746 rad/s ; Re(lambda) = -zeta*wn = -2.000
算例详解:手算上面的结果
,,: rad/s(1.27 Hz),。特征根 。与代码一致。含义:振荡频率 7.75 rad/s,振幅按 衰减(约 1.5 s 衰减到 5%)。
1.4 相平面
把 画成平面,每一时刻状态是一个点,随时间画出轨迹。稳定欠阻尼系统的轨迹是向原点收缩的螺线。滑模控制在相平面上最直观:滑模面 就是一条过原点、斜率 的直线(第 5 章图)。
1.5 Lyapunov 思想:用“能量”判断稳定
对 取机械能 ,求导并代入方程:
能量只减不增 → 系统稳定。Lyapunov 方法就是推广:找一个正定函数 ,证明沿系统轨迹 。不需要解方程!第 5 章用的 就是“到滑模面距离的平方”。
1.6 传递函数与频率响应(只需这么多)
拉普拉斯变换把 变成乘以 :。令 得频率响应: 是正弦输入的放大倍数, 是相位滞后。一阶滞后 :,相位 ;纯时延 :幅值 1,相位 。
- 拉普拉斯变量 ≠ 滑模变量 。本课题两者都会出现,看上下文。
- “特征值有虚部就不稳定”——错,看实部。
- “ 就一定收敛到 0”—— 只保证不发散;收敛需要更强条件(如 或 LaSalle 原理)。
- Q:什么是有限时间收敛,和指数收敛有什么不同?
- 指数收敛 永远到不了 0;滑模的到达阶段 , 线性下降,在 内精确到 0。
1.7 自测题
- ms 的一阶滞后,阶跃响应到 95% 需要多久?
- ,,要 , 取多少?
- 特征值 的振荡频率(Hz)和衰减时间常数?
- 为什么 Lyapunov 方法“不需要解方程”?
自测答案
- 约 ms。
- N·s/m(正是教学仿真中 的取值)。
- Hz;时间常数 1 s。
- 只需沿方程求 的符号,用的是方程右端表达式,不需要解 。
2 车辆动力学:1/4 车模型、路面激励与评价指标
- 用牛顿定律推出 1/4 车两自由度方程,写成状态空间;
- 算出车身(≈1 Hz)和车轮(≈10 Hz)两个固有频率;
- 说清被动/半主动/主动悬架和“舒适—操稳—行程”三角折中;
- 理解 ISO 8608 路面谱和路面生成方法、ISO 2631 加权的思想;
- 掌握 deck 上每个指标的精确定义。
2.1 直觉:两块质量、三根“弹簧”
2.2 用牛顿定律推导
约定: 都向上为正,从静平衡位置量起(于是重力与弹簧静变形抵消,方程里不出现 ); 为正时向上推车身、向下推车轮。
悬架力(作用在车身上):弹簧被拉伸 时产生 ,阻尼同理:
车身受悬架力 和作动力 :。
车轮受反作用力 (牛顿第三定律),以及轮胎力 :。
这正是第 5 页的三行方程(第 3 页的统一方程就是把 展开后的车身方程)。状态 :
注意 的输入向量和 的输入向量方向不同——路面扰动相对于 是非匹配的(第 4 章)。
2.3 两个固有频率
粗略估计:车身模态时车轮几乎不动,车身挂在 与 串联的弹簧上,;车轮模态时车身几乎不动,车轮夹在 与 之间(并联),。
# 第2章:1/4 车两自由度模型的固有频率(无阻尼)与近似公式对比
import numpy as np
ms, mu, ks, cs, kt = 250.0, 45.0, 16000.0, 1000.0, 160000.0 # 教学参数(常见教材取值)
M = np.diag([ms, mu])
Kmat = np.array([[ks, -ks], [-ks, ks + kt]])
w2 = np.sort(np.linalg.eigvals(np.linalg.solve(M, Kmat)).real)
f = np.sqrt(w2) / (2*np.pi)
print("exact undamped natural frequencies [Hz]:", np.round(f, 3))
k_eq = ks*kt/(ks+kt)
print(f"approx body f1 ~ sqrt(k_eq/ms)/2pi = {np.sqrt(k_eq/ms)/2/np.pi:.3f} Hz (k_eq={k_eq:.0f} N/m)")
print(f"approx wheel f2 ~ sqrt((ks+kt)/mu)/2pi = {np.sqrt((ks+kt)/mu)/2/np.pi:.3f} Hz")
print(f"static tire load (ms+mu)g = {(ms+mu)*9.81:.0f} N")
# damped eigenvalues of the full 4-state model
A = np.array([[0,1,0,0],[-ks/ms,-cs/ms,ks/ms,cs/ms],[0,0,0,1],[ks/mu,cs/mu,-(ks+kt)/mu,-cs/mu]])
lam = np.linalg.eigvals(A)
print("damped eigenvalues:", np.round(np.sort_complex(lam), 2))
exact undamped natural frequencies [Hz]: [1.213 9.961]
approx body f1 ~ sqrt(k_eq/ms)/2pi = 1.214 Hz (k_eq=14545 N/m)
approx wheel f2 ~ sqrt((ks+kt)/mu)/2pi = 9.953 Hz
static tire load (ms+mu)g = 2894 N
damped eigenvalues: [-11.44-60.9j -11.44+60.9j -1.68 -7.51j -1.68 +7.51j]
参数来源说明:这组数在大量教学论文中使用,例如 IJERT V4IS010209 的 1/4 车 LQR 论文。它们不是小组的参数;第 8 页①的通过条件“固有频率与文献参数一致”就是要做这样的计算:车身约 1–1.5 Hz、车轮约 10 Hz 是乘用车的典型量级。
2.4 被动、半主动、主动,以及三角折中
| 类型 | 力的形式 | 能力 | 第 3 页公式 |
|---|---|---|---|
| 被动 | 固定 | 无法随路况改变 | |
| 半主动 | 阻尼在线可调 (如磁流变减振器) | 只能耗散能量:力始终与相对速度反向 | |
| 主动 | 作动器任意方向出力 | 能注入能量,调节能力最强,但耗能、受带宽/饱和/速率限制 |
三角折中(Hrovat 1997 综述的核心主题之一):舒适(车身加速度小)希望悬架“软”;操稳/接地(轮胎动载小)希望车轮紧贴路面;行程受限位块约束不能太大。被动悬架改一个必然牺牲另一个;主动控制可以在一定程度上同时改善,但仍有物理极限(例如在车轮频率附近,车身侧的力很难同时压住车轮跳动)。
天棚阻尼(Skyhook):理想化地在车身和“天空”(惯性参考)之间接一个阻尼器 ,能有效压住车身共振。它物理上不可实现,但主动悬架可以用作动器“模拟”它,是 deck 中的工程基线。
2.5 ISO 8608 路面谱
路面不平度用空间功率谱密度(PSD)描述(第 5 页③):
是空间频率(每米多少个波), 叫不平度系数,决定等级。deck 写作 ,是国内文献(GB/T 7031,对应 ISO 8608)的记号,含义相同。分级( m³,单边(one-sided)空间 PSD 在 cycles/m 处的几何平均值与范围,每级 ×4):
| 等级 | 几何平均 | 范围 |
|---|---|---|
| A | 16 | < 32 |
| B | 64 | 32 – 128 |
| C | 256 | 128 – 512 |
| D | 1024 | 512 – 2048 |
来源:ISO 8608 分类表(可见 ISO 8608:1995 文本;Springer《Railway Engineering Science》doi:10.1007/s40534-017-0122-1 指出铺装路面一般属于 A–D 级)。注意:网上有些资料给出“错一级”的数值表,团队引用时请以 ISO 8608:2016 原文或所引论文为准,这正是 deck 写“ 取值待填(须标文献来源)”的原因。
如何生成路面(两种常用方法)
① 谐波叠加法:把 分成 个小区间,每个区间放一个随机相位的余弦:
幅值 对应 ISO 的单边 PSD:每一项的方差 ,加起来就等于 PSD 的积分。车速 下 ,时间频率 ,时间 PSD 。固定随机种子 = 固定 ,保证每个控制器跑的是同一条路。
- 周期性:频率等间隔时,路面每隔 米就重复一次。在 ISO 频带内放 400 个谐波,只有约 142 m 就重复——20 m/s 下不到 8 秒。对策:谐波数 ( 为路长,单位 m),或在每个小区间内随机抖动 (本讲义的仿真用的是区间内抖动)。
- 低频端的中点法误差: 在第一个区间里变化很快,用中点值会略微低估方差(Claude 的核对:C 级 400 个区间,2.25×10⁻⁴ m² 对精确积分 2.32×10⁻⁴ m²)。用每个区间的精确积分即可消除:
- 不要混用 形式:用角空间频率 (参考 rad/m)时分级数值不同,且 。
② 滤波白噪声法(国内文献常见):, 为下截止空间频率(常取 0.011 cycles/m)。常见写法 有一个 2 倍的坑:
若 是标准白噪声(,双边 PSD = 1),一阶滤波器输出的双边 PSD 为 而 ISO 用的是单边 PSD ——大了一倍(Claude 用 Welch 估计数值核对过,比值约 2.0)。要与 ISO 单边值一致,应取 或者把 理解为双边值。请检查所用工具对“单位白噪声”的约定(Simulink 的 Band-Limited White Noise 模块是经典陷阱),办法是把生成信号的 Welch PSD 与 比一比。另外三点:① 该滤波器没有 2.83 cycles/m 的上截止,总方差比限带的 ISO 路面大;② 初值 应从平稳分布中抽取,否则有起始暂态;③ 应把它称为 ISO 谱的平稳近似,而不是“ISO 路面”本身。
# 第2章:ISO 8608 C 级路面(谐波叠加法)生成与统计核对
import sys; sys.path.insert(0, '..')
import numpy as np
from qcar import iso8608_road
v = 20.0
t, zr = iso8608_road('C', v=v, T=60.0, dt=1e-3, seed=1)
Gd0, n0 = 256e-6, 0.1
n1, n2 = 0.011, 2.83
var_theory = Gd0*n0**2*(1/n1 - 1/n2) # integral of Gd0 (n/n0)^-2 dn
print(f"theory RMS over n in [{n1},{n2}] cyc/m: {np.sqrt(var_theory)*1000:.2f} mm")
print(f"generated RMS (60 s @ {v} m/s): {zr.std()*1000:.2f} mm")
print(f"time-frequency band at v={v} m/s: {n1*v:.2f} - {n2*v:.1f} Hz")
theory RMS over n in [0.011,2.83] cyc/m: 15.23 mm
generated RMS (60 s @ 20.0 m/s): 15.11 mm
time-frequency band at v=20.0 m/s: 0.22 - 56.6 Hz
2.6 ISO 2631:人体舒适度的频率加权(思想)
人体对不同频率振动的敏感度不同,垂向大约在 4–8 Hz 最敏感。ISO 2631-1:1997(iso.org/standard/7612)规定先对座椅面加速度做频率加权(垂向用 ),再算加权 RMS 。常被引用的舒适度参考: m/s² 无不适,0.315–0.63 有些不适,0.5–1 较不适,0.8–1.6 不适,1.25–2.5 很不适,>2 极不适(区间有重叠是标准原文如此)。
2.7 指标的精确定义(第 7 页)
| 指标 | 定义 | 意义 |
|---|---|---|
| 簧载加速度 RMS | 舒适代理,越小越好 | |
| 悬架动行程 RMS/峰值 | 的 RMS 与 | 不能撞限位块 |
| 轮胎动载荷 RMS/峰值 | 的 RMS 与峰值;常用相对动载 | 接地性/操稳;相对动载 ≥ 1 意味着可能瞬间离地 |
| 抖振·频域 | , | 控制力能量中高频部分的占比,0–1,无量纲 |
| 抖振·时域 TV | 单位时间控制力“来回折腾”的总量,单位 N/s | |
| 控制努力 | 的 RMS;能量可取 (作动器机械功) | 能耗、成本 |
| 饱和时间占比 | 力上限是否“不够用” |
deck 写的是“控制努力·力 RMS/能量”,能量的具体定义未给出;上面的机械功是一种常见选择,需团队确定。
- “非簧载质量就是轮胎。”还包括轮毂、制动器、部分悬架连杆等。
- “ 就是 ISO 2631 的舒适度。”不是,没有加权、也不在座椅上。
- “A 级路面就是高速公路,D 级就是土路。”ISO 8608 是按谱值分类,不按道路类型。
- “ 是路面高度。”它是 PSD 系数,单位 m³(= m²/(cycles/m))。
- Q:为什么不用半车/整车模型?
- 本阶段研究的是控制方法的抖振与鲁棒性,1/4 车足以暴露问题且参数少、可复现;结论严格限定在 1/4 车适用边界(风险 04),整车是后续扩展。
- Q:车速取多少?
- 待定(与路面等级一起写入配置)。车速决定时间频率范围 ,20 m/s 时约 0.2–57 Hz。
- Q:轮胎为什么没有阻尼?
- 轮胎阻尼很小,1/4 车常忽略;如需要可加 ,不影响控制器结构。
2.8 自测题
- 写出车轮方程,并说明 的符号来源。
- 增加 30% 时,车身固有频率大约变为原来的多少倍?
- 车速 10 m/s,空间频率 0.011–2.83 cycles/m 对应的时间频率范围?
- C 级路面在 cycles/m 处的 ?
- 与 的区别?
自测答案
- ;作动器装在车身与车轮之间,对车身向上推 ,对车轮就是向下 (作用力与反作用力)。
- 倍(约 1.21→1.06 Hz)。
- 0.11–28.3 Hz。
- m³。
- 是座椅面加速度经 ISO 2631 频率加权后的 RMS; 是车身加速度未加权 RMS。
3 作动器模型:一阶滞后、饱和、速率限制、纯时延
- 读懂 ,;
- 能算出滞后和时延在某频率下的幅值衰减和相位滞后;
- 理解为什么作动器既“制造”抖振又“隐藏”抖振,因此 和 要分别评估。
3.1 直觉
3.2 模型(B 套 deck 第 5 页)
deck 的 B 套把时延写在别处(“纯时延 独立建模”),A 套写成 ;本质相同,只是顺序约定。环节顺序会影响结果(先限幅后滞后, 永远不超过 ;反过来则不一定),团队需在模型里固定一种并写明。
3.3 数值算例:10 Hz 与 40 Hz 下作动器把信号变成什么样
算例详解(点开)
教学取值: ms, ms, N/s。
10 Hz(车轮跳动频率附近):;幅值比 ;相位 ;时延相位 ;合计约 。
40 Hz(典型抖振频段):,幅值比 0.37;相位 ;时延 ;合计约 。
速率限制:正弦 的最大变化率是 ,不触发速率限制要求 ;40 Hz 时 N。
结论:40 Hz 的抖振在 上只剩约 1/3 幅值,并且滞后约 140°——控制器“想要”的和车身“得到”的差别很大。相位滞后越大,切换越“晚”,越容易冲过头形成极限环。
3.4 为什么这些约束对抖振至关重要
- 制造抖振:滞后/时延使 对 的相对阶升高,sgn 切换总是晚到 → 极限环(第 5 章 5.8)。Lee & Utkin 2007 正是从“未建模的作动器/传感器动态”出发分析抖振。
- 隐藏抖振:作动器是低通, 看起来平滑,但 端在剧烈换向(阀/驱动器在“受罪”)。所以 deck 坚持 、 分别算 和 TV。
- 饱和: 很大时 常顶到 ,实际控制能力下降,到达条件可能失效;所以要统计“饱和时间占比”。若控制器有积分项(如 STA 的 ),饱和还会引起积分饱和(windup)。
- 速率限制:直接限制了能跟踪的“方波”幅值和频率。
- “一阶滞后和纯时延是一回事。”不是:滞后会衰减幅值、相位最多 −90°;时延不衰减幅值、相位随频率无限增加。deck 特意强调“纯时延独立建模,避免与一阶滞后混淆”。
- “作动器理想时没有抖振”——采样(离散化)本身也会造成抖振。
- Q:、、 取多少?
- 正在按文献整理,会标注来源;硬件组负责(第 10 页)。不要当场报数。
- Q:为什么不在控制器里补偿作动器滞后?
- 可以(如把作动器动态纳入设计、用预测或高阶滑模),但本课题第一步是把它作为“真实约束”保留,量化它对抖振的影响;补偿方法可作为扩展。
3.5 自测题
- ms 时 20 Hz 信号的幅值比?
- ms 在 20 Hz 的相位滞后?
- N/s 时 20 Hz 正弦最大不受限幅值?
- 为什么只算 的 TV 可能低估抖振?
自测答案
- ,幅值比 。
- 。
- N。
- 一阶滞后低通滤波,高频切换在 中被衰减,但 端(驱动器/阀)仍在高频换向。
4 反馈控制基础:PID 直觉、鲁棒性、匹配与非匹配不确定性
- 理解开环/闭环、反馈的作用;
- 有 PID 的直觉,并看出 Skyhook 就是一种速度反馈;
- 说清“鲁棒性”指什么、不确定性有哪几类;
- 会判断一个扰动是匹配还是非匹配。
4.1 直觉:反馈 = 看着结果改动作
4.2 PID 三项的直觉
。P:误差大就推得大(像弹簧);I:消除长期偏差(记账);D:看变化趋势提前刹车(像阻尼)。对车身, 就是一个纯 D 控制——这就是 Skyhook。滑模面 形式上很像 PD 组合,但滑模控制对 施加的是强非线性的切换,而不是线性比例。
4.3 鲁棒性与不确定性
鲁棒性:模型和真实系统不一致时,控制器仍保持稳定和可接受的性能。不确定性来源:
- 参数不确定: 随载客/载货变化(deck 取 ±30%), 老化偏差;
- 外部扰动:路面 ;
- 未建模动态:作动器滞后与时延、结构柔性、传感器动态;
- 测量噪声与离散化。
4.4 匹配与非匹配
系统 中,扰动 与 从同一个输入矩阵 进入,称为匹配:控制量“够得着”它,可以在同一通道里直接抵消。若扰动通过另一个方向 进入且 不在 的列空间内,称为非匹配。
1/4 车:;路面 ,不与 共线 → 对全状态是非匹配的。但如果我们只关心滑模变量 (只含车身状态),那么在 方程里: 摄动、 偏差与 出现在同一个式子里,可以被 覆盖(第 5 章);路面只经由测得的 影响车身。
4.5 数值算例与核对
算例详解:Skyhook(纯速度反馈)在质量 ±30% 下的变化
车轮固定不动时,车身相当于 。取 ,,,:
标称: rad/s(1.27 Hz),。
+30%(325 kg): rad/s(1.12 Hz),。
−30%(175 kg): rad/s(1.52 Hz),(过阻尼)。
结论:线性反馈在参数变化下仍然稳定,但动态特性(频率、阻尼)随之改变;滑模的卖点是滑动阶段的动态 不随 改变(代价是需要 覆盖不确定性上界)。
核对(匹配性的秩判据):把 1/4 车的 与路面输入 拼成矩阵 ,秩为 2(两列不共线)⇒ ,路面对全状态是非匹配的;而质量摄动在车身方程中表现为 ,方向与 的车身分量相同,在 方程里与 同位置。
- “鲁棒 = 最优。”鲁棒控制通常牺牲一些标称性能换取对不确定性的容忍。
- “质量摄动 ±30% 是外部扰动。”它是参数不确定性,但在滑模分析中被“打包”进总扰动 。
- Q:路面扰动是匹配的吗?
- 对全状态模型不是(它从轮胎进入车轮方程);但对以车身误差定义的滑模变量,路面通过 影响 ,而 可测并在 中补偿,残余部分(参数偏差引起的)计入 。
4.6 自测题
- Skyhook 对应 PID 的哪一项?
- ,,, 匹配吗?
- 举一个本课题中的未建模动态。
自测答案
- D(速度反馈)。
- 匹配,。
- 作动器一阶滞后与纯时延(若设计中假设 );传感器动态;车身结构柔性。
5 滑模控制(SMC)从零讲起
- 说清楚“滑模面”“到达阶段/滑动阶段”“等效控制”“切换项”各是什么;
- 能为 1/4 车定义误差 (deck 没写),并推出 ;
- 能完整写出 的 Lyapunov 证明,得到 的下界和有限到达时间;
- 理解“对匹配扰动不变性”的含义与前提;
- 能解释抖振的四个来源,以及它为什么伤作动器、伤舒适。
5.1 直觉:先“设计一条好走的路”,再“把车推上去”
① 到达阶段:不管状态在哪,都用足够大的力把它推向这条线;
② 滑动阶段:一旦上线,就一直把它“按”在线上,沿线滑向原点。
妙处在于:在线上的运动只由 决定,与车身质量、扰动无关(只要扰动从控制力同一个“通道”进来)——这就是滑模鲁棒性的来源。
5.2 第一步:给 1/4 车定义误差 (deck 没写,必须补上)
滑模面 里的 是“跟踪误差”,必须说清楚跟踪哪个量、参考值是多少。对主动悬架,文献中常见三种选法:
| 方案 | 误差定义 | 含义 | 优点 | 问题 |
|---|---|---|---|---|
| A 车身镇定 | (参考为 0) | 把车身“钉”在静平衡位置 | 最简单,推导干净 | 车轮内动态无阻尼(见 5.6),低频长坡时悬架行程会很大 |
| B 跟踪天棚参考模型(推荐) | , 由“理想天棚悬架”模型实时算出 | 让真实车身去模仿一辆“挂在天上的阻尼器”撑着的理想车 | 舒适目标明确;内动态有阻尼;行程可控 | 多一个参考模型,需设计 |
| C 悬架行程 | 控制悬架挠度 | 直接管限位 | 目标不是舒适,与课题主线不符 |
方案 B 的参考模型(与被动悬架结构相同,再加一个接在“天空”上的阻尼 ):
注意(Claude 复核后修正):参考模型里只能用设计值(标称 或自选的 ),不能用真实 ——真实质量是未知的,控制器里根本拿不到。
它由测得的车轮位移 驱动,在控制器里实时积分。方案 A 就是 B 中令 的特例,所以下面统一按“有参考”推导。
5.3 推导等效控制
设计时假设作动器理想:(作动器动态留到第 3 章和 5.8 讨论——这正是抖振的来源之一)。这是整个推导里最大的一条假设(见下方提示框)。记悬架被动力 ,车身方程为 。
第 1 步:对 求导。
注意 直接出现在 里,系数 ——这叫 对 的相对阶为 1(底稿里“检查 ”说的就是这件事)。相对阶为 1 是一阶滑模能用的前提。
第 2 步:令标称模型下 ,解出 。用标称值 、(用标称 和测量值算出):
方案 A()时简化为 :先抵消弹簧阻尼力,再施加一个与车身速度成正比的“天棚”阻尼。
第 3 步:加切换项。
5.4 Lyapunov 证明:到达条件与 的下界(完整步骤)
第 1 步:把模型误差集中成一个“总扰动”。真实系统里 、 都可能和标称不同。把 代入真实的 :
假设已知上界 ( 的估算见 5.5 算例)。
第 2 步:取 Lyapunov 函数 ,它衡量“离滑模面多远”。求导:
第 3 步:选增益。若取
则 ——这就是经典的 -到达条件(Slotine & Li《Applied Nonlinear Control》第 7 章的写法)。
为什么是 : 时衰减率 在质量最大时最小;要求对每个可能的质量都有 ,就得到 。这是充分条件,真实质量较小时偏保守。另外质量出现了两次(这里作除数、 里还有 ),把 取在 的中点能让 的质量项最小。
可行性(饱和)约束:作动器最大力是 ,所以还必须 ,否则控制量被削顶,到达条件就失效。这给 一个上限。
模糊整定时谁要满足下界:保证要在每一时刻成立,所以是下限 (或一个随状态变化的下界 )必须满足 ,而不是“模糊输出的平均值”。模糊器只能在这个下限之上“加性能”(详见 6.1 推导 5)。
第 4 步:有限时间到达。因为 ( 时),所以
注意这是有限时间,不是“渐近”(指数收敛永远到不了 0,而这里 以至少 的速率线性下降,一定在 之前到达)。
用边界层 时要改口:层外 ,所以只能保证到达边界层而不是 : 进入层内后 ,准静态地 ——是最终有界(ultimately bounded),不收敛到 0。
第 5 步:滑动阶段。到达后 ,即 ,所以 。 越大误差衰减越快,但等效带宽越高,越吃作动器带宽。
5.5 数值算例: 质量摄动需要多大的 ?
算例详解(点开):用教学参数估算 、 和到达时间
已知(教学取值,非小组参数): kg,真实 kg(±30%); N/m, N·s/m,假设刚度、阻尼各有 ±10% 偏差;悬架行程 m,相对速度 m/s;参考加速度与误差项 m/s²。
① 质量项: N。
② 悬架力项: N。
③ 合计: N。
④ 增益下界:取 m/s², kg: N。
⑤ 到达时间:若初始 m/s,则 s。
⑥ 解读:这是最坏情况的保守界。真实运行中 往往远小于 ,但理论保证只能按上界给。我后面的教学仿真用的 N、 N 其实低于这个保守界——仿真照样“看起来稳”,但那不是证明。这正是团队要在第④阶段把 按到达条件严格定下来的原因。
5.6 一个容易被追问的点:滑动时车轮怎么样?(内动态)
一个滑模面只“管住”了车身这一个自由度;车轮这另一个自由度的运动称为内动态(internal dynamics),它必须自己稳定。
- 一个更干净的看法:悬架和作动器作用在车轮上的合力是 ,所以不论 怎么实现,都有
- 方案 A(): 给出 ,强迫项衰减掉,车轮方程变成 ——完全没有阻尼,车轮在 Hz 持续振荡(轮胎动载变差)。用传递函数的话说:从力到 的传递函数有一对零点 ,内动态是临界稳定(marginally stable),不是渐近稳定;路面里 9.5 Hz 附近的成分会把它激到共振,实际中只有很小的轮胎阻尼和作动器饱和在限制它。
- 方案 B(跟踪天棚参考模型): 时 ,其中含有 ,车轮被阻尼,内动态指数稳定。但要看清楚:车轮跳动模态的阻尼只来自被动阻尼 (–0.19,和被动悬架差不多);天棚项 改善的是车身模态,不是车轮跳动。若车轮跳动阻尼重要,常见办法是加“地棚(ground-hook)”项或在设计中加入簧下质量项。
# 第5章:滑模面上的“内动态”(车轮)——方案 A(e=z_s) 与方案 B(跟踪天棚参考模型) 对比
import numpy as np
ms, mu, ks, cs, kt, csky = 250.0, 45.0, 16000.0, 1000.0, 160000.0, 2800.0
# 方案 A:s=0 且 e=z_s→0 后,车身不动,车轮方程变为 mu*zu'' = kt*(zr - zu) (没有任何阻尼!)
A_A = np.array([[0, 1], [-kt/mu, 0]])
print("Option A wheel eigenvalues:", np.round(np.linalg.eigvals(A_A), 2), " -> f =", round(np.sqrt(kt/mu)/2/np.pi, 2), "Hz, undamped")
# 方案 B:z_s→z_ref,参考模型 ms*zref'' = -ks(zref-zu) - cs(zref'-zu') - csky*zref'
# 车轮 mu*zu'' = kt(zr-zu) - ms*zref'' (作动器+弹簧+阻尼的合力 = ms*zref'')
A_B = np.array([
[0, 1, 0, 0],
[-ks/ms, -(cs+csky)/ms, ks/ms, cs/ms],
[0, 0, 0, 1],
[ks/mu, (cs+csky)/mu, -(ks+kt)/mu, -cs/mu]])
lam = np.linalg.eigvals(A_B)
print("Option B (ref model + wheel) eigenvalues:", np.round(np.sort_complex(lam), 2))
for l in lam:
if l.imag > 0:
print(f" mode: f = {abs(l)/2/np.pi:.2f} Hz, zeta = {-l.real/abs(l):.3f}")
# 与 Claude 复核结果对照:若车轮不受天棚力的反作用(阻尼器真的挂在“天上”),车轮行第 2 列只剩 cs/mu
A_C = A_B.copy(); A_C[3, 1] = cs/mu
print("Ideal sky-anchored damper (no reaction on wheel):")
for l in np.linalg.eigvals(A_C):
if l.imag > 0:
print(f" mode: f = {abs(l)/2/np.pi:.2f} Hz, zeta = {-l.real/abs(l):.3f}")
Option A wheel eigenvalues: [0.+59.63j 0.-59.63j] -> f = 9.49 Hz, undamped
Option B (ref model + wheel) eigenvalues: [-11.36-58.72j -11.36+58.72j -7.35 -3.09j -7.35 +3.09j]
mode: f = 9.52 Hz, zeta = 0.190
mode: f = 1.27 Hz, zeta = 0.922
Ideal sky-anchored damper (no reaction on wheel):
mode: f = 9.85 Hz, zeta = 0.183
mode: f = 1.23 Hz, zeta = 0.960
输出显示:方案 A 车轮特征值是纯虚数(无阻尼 9.49 Hz);方案 B 两个模态分别是 9.52 Hz(阻尼比 0.19)和 1.27 Hz(阻尼比 0.92),都稳定。
这就是推荐方案 B 的理由——但请把它当作“我们的设计理由”来讲,而不是“文献结论”。“精确调节 会留下无阻尼的车轮零动态”是标准事实(零动态理论,见 Slotine & Li 第 6 章、Isidori);“所以用天棚参考模型滑模面让内动态有阻尼”是合理的设计推论,但 Claude 和我都没能找到一篇用这句话直接论证的文献,不要说成“文献表明”。代价是:得到的舒适度是“带 的天棚”水平,而不是完美隔振。
5.7 对“匹配扰动”的不变性:说准确
匹配(matched)扰动指与控制量从同一个通道进入系统的扰动。在本设计里: 摄动、 偏差都出现在车身方程里,与 同一位置,所以对 动态是匹配的(Drazenović 1969 的匹配条件),只要 就被完全压住;滑动阶段 与它们无关——这叫“不变性”(Utkin 1977 的经典结论)。
要说准确的三个前提:① 只在理想滑动(,无限快切换)时严格成立;用了边界层就只剩“有界误差”;② 扰动上界 必须真实覆盖;③ 作动器带来的滞后/时延不是匹配扰动,而是未建模动态,它会破坏理想滑动、产生抖振(5.8)。④ 路面在完整模型里不是匹配扰动: 从轮胎进入车轮方程,不在 的通道里;它只能经由 (进而经由 和 )间接影响 。所以“匹配”只对车身的 动态成立,不能说“滑模对路面扰动不变”。
5.8 抖振:四个原因 + 两种危害
| 原因 | 机理 | 在本课题中的体现 |
|---|---|---|
| ① 不连续切换 | 理想滑动需要无限频率切换,物理上不可能 | 本身 |
| ② 作动器动态(一阶滞后 ) | 从 到 的相对阶从 1 变 2,切换总是“晚到”,冲过滑模面再反向,形成极限环 | 第 5 页 |
| ③ 纯时延 | 同上,且相位滞后随频率线性增加 | 第 9 页摄动 5–15 ms |
| ④ 采样/离散化 | 一个采样周期内控制不变,只能做到 的“准滑动”,切换频率最高到 | Simulink 步长、采样率统一(第 5 页④) |
| (附)测量噪声 | 在 0 附近被噪声来回翻符号 | 风险 03“微分放大噪声” |
危害:(1)对作动器:高频大幅换向 → 发热、磨损、能耗、液压/电机寿命下降;(2)对车辆:高频力会激励车轮跳动(≈10 Hz)和未建模的结构模态,传到车身的高频加速度降低舒适;(3)对控制本身:精度下降。(Lee & Utkin 2007 专门综述了由未建模作动器/传感器动态引起的抖振及其抑制方法。)
在我的玩具仿真里,这个约 19 Hz 的振荡在平坦路面上也会自己维持(见第 7 章凸块仿真的后半段):它不是路面激出来的,而是“高增益 + 时延/滞后”闭环自激的极限环——这正是“抖振来源于未建模动态”最直观的证据。
- “滑模对一切扰动都鲁棒。”只对匹配且有界()的扰动;对未建模的快动态反而敏感(会抖)。
- “ 是拉普拉斯变量。”同字母不同义!本课题里 是滑模变量(单位:m/s,因为 )。
- “滑模面系数 就是阻尼 。”不是。 的单位是 1/s,是误差衰减速率; 是 N·s/m。
- “ 是实际施加的控制。” 只是标称模型下“刚好保持在面上”的那部分;实际控制 = + 切换项。
- “ 越大越鲁棒,所以越大越好。” 越大抖振越大、越易饱和(还要 )。 应“够用即可”:。
- “。”量纲不对(力 vs 加速度),见 5.4 的归一化写法。
- Q:你们的 是什么?参考是什么?
- 车身垂向位移相对参考模型的误差,参考取天棚参考模型;最简单情形 。选参考模型是因为纯 会让车轮内动态失去阻尼(9.5 Hz 无阻尼振荡),行程也难控。
- Q: 怎么来的?
- 对 求导,,在标称模型下令 解出 。
- Q:稳定性怎么保证?
- ,只要 就有 ;有限时间到达边界层,;层内最终有界。前提是理想作动器、 真实覆盖、。完整证明(含模糊时变 和作动器动态)是第④阶段交付物,目前没有完成。
- Q:内动态稳定吗?
- 取 时车轮是 9.5 Hz 的无阻尼振子(临界稳定);取天棚参考模型时内动态指数稳定,车轮跳动阻尼来自被动 。这是我们选参考模型滑模面的设计理由。
- Q:为什么不直接用 LQR?
- LQR 依赖精确模型,质量 ±30% 变化时性能和最优性不再保证;滑模只需扰动上界。LQR/H∞/MPC 在底稿里被列为“可显式加约束但依赖模型或计算量大”的路线,不是本课题主线。
5.9 自测题
- 写出 在 上的解。 1/s 时误差衰减到 5% 需要多久?
- 方案 A 下推导 。
- 已知 N, kg,要求 m/s 时 0.5 s 内到达, 至少多大?
- 为什么说作动器一阶滞后会让 对 的相对阶变成 2?
- 判断:“滑模控制在到达阶段也对匹配扰动不变。”
自测答案
- ; s。
- ,令其为 0:。
- 需要 m/s², N。
- 中出现的是 而不是 ; 要经过 才响应,所以 要到 才出现。
- 错。不变性只在滑动阶段()成立;到达阶段的轨迹受扰动影响,只是保证一定能到达。
6 抖振抑制:边界层、Super-Twisting、自适应增益
- 掌握边界层 :层的吸引性、层内动态、稳态误差界 的推导;
- 理解“精度—平滑折中”,以及为什么 太小反而没用;
- 能说清 sat 与 tanh 的区别;
- 会用小信号回路估算临界层内增益 和抖振频率;能写出 Super-Twisting 算法并解释“为什么输出连续”,知道哪些稳定性条件是标准结论、哪些不能乱说;
- 了解自适应增益的思路和风险。
6.1 边界层:把“开关”换成“陡坡”
推导 1:边界层是吸引且不变的
在层外 时 ,第 5 章的证明原样成立:,所以在 内进入层;在层的边界 上同样 ,轨迹不会出去。所以:有限时间进入、进入后不再离开( 为常数时)。
推导 2:层内动态是一个低通滤波器
层内 ,代入第 5 章的 :
这是时间常数 的一阶低通: 是扰动 被“滤波 + 缩小 倍”后的结果。稳态时 。
推导 3:稳态误差界 ,
由 得 ,且 。卷积解:
再由 :。
三点说准确:① 这是稳态界,并且要求状态已经在层内(从层外出发还要加上暂态项 );② 它界定的是相对参考 的误差 ,不是车身的绝对运动;③ 它偏保守,层内准静态地 。
这正是 Slotine & Li 第 7 章边界层结论 、 在 、 时的特例(:;:)。(该界的一般形式及其修正讨论见 arXiv:0802.2978。)
# 第6章:边界层稳态误差界 |e| <= phi/c 的数值核对(标量误差动态 + 有界扰动)
import numpy as np
c, K, phi, dt = 10.0, 5.0, 0.05, 1e-4 # 质量归一化后的教学系统: e'' = u + d(t)
t = np.arange(0, 20, dt); e, ed = 0.3, 0.0; E = []
for tk in t:
d = 3.0*np.sin(2*np.pi*0.7*tk) + 1.0*np.sign(np.sin(2*np.pi*0.13*tk)) # |d| <= 4 < K
s = c*e + ed
u = -c*ed - K*np.clip(s/phi, -1, 1) # u = u_eq - K sat(s/phi)
edd = u + d
ed += edd*dt; e += ed*dt; E.append((e, s))
E = np.array(E); tail = E[t > 5]
print(f"max|s| after 5s = {np.abs(tail[:,1]).max():.4f} (phi = {phi})")
print(f"max|e| after 5s = {np.abs(tail[:,0]).max():.5f} (bound phi/c = {phi/c:.5f})")
print(f"inside layer: s ~ phi*d/K, so |e| <= (phi/c)*(max|d|/K) = {phi/c*4/K:.5f}")
max|s| after 5s = 0.0400 (phi = 0.05)
max|e| after 5s = 0.00374 (bound phi/c = 0.00500)
inside layer: s ~ phi*d/K, so |e| <= (phi/c)*(max|d|/K) = 0.00400
输出:5 s 后 ,而且比更紧的估计 还小——与推导一致。
推导 4(与模糊直接相关): 随时间变化时的条件
FSMC 让 在线变化。Slotine & Li 第 7 章讨论过“时变边界层”:要让 跟得上一个正在收缩的边界,层外应满足
因为层外 ,所以需要对每个可能的质量都有
也就是: 时最坏情况是 ;(层在快速变宽)时最坏情况是 。只写一个“”会把这一点藏起来。(Slotine & Li 第 7 章中 以 的形式进入切换增益。)
直觉:如果 正在快速变窄(),“墙”在向里收,你需要额外的力才能保持在墙内。所以模糊规则“远离时 ”不能变得太快。
推导 5:模糊整定的时变 、 会破坏 Lyapunov 论证吗?
不会——只要上面的不等式逐点(每一时刻)成立。原因: 里根本不含 和 ,所以不会冒出“自适应误差”项,证明每一步只用到每个时刻的不等式。但工程上要做到四件事:
- 下限要随状态走: 是状态相关的 ,常数 必须压住 ;否则用保护下限 模糊器只在下限之上“加性能”。
- 可行性:,否则到达保证丢失。
- 必须连续、 有界: 突然往下跳会让 瞬间落到层外;模糊输出或限幅切换都可能造成跳变,所以要给 加速率限制或低通。
- 解的意义:按 Filippov 意义理解。
注意:这只说明“时变增益不破坏到达条件”,不是对模糊自适应本身性能的 Lyapunov 分析。
6.2 精度—平滑折中,以及一个反直觉的现象
按上面的理论: 小 → 误差界小、但层内增益 大 → 遇到作动器滞后/时延时容易自激振荡; 大 → 平滑,但误差界 大。下面是我在玩具 1/4 车上扫描 的结果(K=400 N,c=10,作动器 =10 ms、=5 ms,1 kHz 采样):
| φ [m/s] | RMS(e) [mm] | 界 φ/c [mm] | TV(u_c) [kN/s] | J_HF(u_c) | a_RMS [m/s²] |
|---|---|---|---|---|---|
| 0.001 | 0.079 | 0.1 | 32.7 | 0.14 | 1.502 |
| 0.002 | 0.078 | 0.2 | 32.5 | 0.114 | 1.501 |
| 0.004 | 0.075 | 0.4 | 32.5 | 0.0726 | 1.477 |
| 0.008 | 0.059 | 0.8 | 31.8 | 0.00715 | 1.391 |
| 0.016 | 0.038 | 1.6 | 4.5 | 3.94e-05 | 1.158 |
| 0.032 | 0.086 | 3.2 | 4.2 | 6.44e-05 | 1.208 |
| 0.064 | 0.158 | 6.4 | 3.4 | 3.33e-05 | 1.223 |
- 存在一个阈值。层内增益 太高时,带时延的闭环会自激出极限环(抖振),这时边界层“形同虚设”;只有 足够大(增益足够低)才消除。这就是第 8 页第③阶段“量化精度—平滑折中,确定 的合理取值范围”要做的事。
- 一个调好的固定 可能已经很好。在玩具里 时 =1.158 m/s²,比 Skyhook(1.22)还低。所以 SMC-fixed-BL 必须作为对照组,回答“是不是换成连续函数就够了”——FSMC 必须赢过调好的固定边界层才算有价值。
6.3 抖振阈值能算出来吗?层内增益 的临界值
层内控制器是线性的,,所以它是围绕 的一个高增益比例回路,回路里还有滞后和时延。忽略很小的 阻尼( s⁻¹),小信号开环传递函数为
(零阶保持器约贡献半个采样周期;若有计算延迟还要再加)。
第 1 步:相位穿越频率 (总相位滞后 ,积分器已占 ):
第 2 步:令 得临界增益
两个极限:没有时延时回路总是稳定;没有滞后时 。抖振基频大约在相位穿越处:。层内增益超过临界值时线性回路不稳定,sat 限制了振幅的增长,于是形成极限环——描述函数法可以预测它的幅值。
算例详解:教学参数下的临界值与阈值
kg, ms, ms, ms ⇒ ms。
解 得 rad/s ≈ 19.7 Hz(玩具仿真里看到的就是约 19 Hz);经验式 Hz。
N·s/m(经验式 )。
玩具里 ,约超出 2 倍——所以必然抖。
预测阈值: m/s。
# 第6章:层内增益 K/phi 的临界值(小信号回路 + 一阶滞后 + 时延),教学参数
import numpy as np
from scipy.optimize import brentq
tau_a, Td, Ts = 0.010, 0.005, 0.001
Teff = Td + Ts/2 # ZOH 约贡献半个采样周期
for ms in (250.0, 175.0): # 标称质量 / 最小质量(最坏情况)
wc = brentq(lambda w: np.arctan(w*tau_a) + w*Teff - np.pi/2, 1, 1e4) # 相位穿越
kc = ms*wc*np.sqrt(1 + (wc*tau_a)**2) # (K/phi)_crit
print(f"m_s={ms:.0f} kg: w_c={wc:.1f} rad/s ({wc/2/np.pi:.1f} Hz), (K/phi)_crit={kc:.3g} N*s/m,"
f" rule of thumb m_s/T_eff={ms/Teff:.3g}")
K = 400.0
print(f" K=400 N: phi_crit=K/(K/phi)_crit={K/kc:.4f} m/s; with GM=2 need phi >= {2*K/kc:.4f} m/s")
print(f"f_ch approx 1/(2*pi*sqrt(tau_a*T_eff)) = {1/(2*np.pi*np.sqrt(tau_a*Teff)):.1f} Hz")
print(f"our toy: K/phi = 400/0.004 = {400/0.004:.3g} N*s/m")
m_s=250 kg: w_c=123.6 rad/s (19.7 Hz), (K/phi)_crit=4.92e+04 N*s/m, rule of thumb m_s/T_eff=4.55e+04
K=400 N: phi_crit=K/(K/phi)_crit=0.0081 m/s; with GM=2 need phi >= 0.0163 m/s
m_s=175 kg: w_c=123.6 rad/s (19.7 Hz), (K/phi)_crit=3.44e+04 N*s/m, rule of thumb m_s/T_eff=3.18e+04
K=400 N: phi_crit=K/(K/phi)_crit=0.0116 m/s; with GM=2 need phi >= 0.0232 m/s
f_ch approx 1/(2*pi*sqrt(tau_a*T_eff)) = 21.5 Hz
our toy: K/phi = 400/0.004 = 1e+05 N*s/m
和仿真对得上吗?Claude 用理想化回路算出的阈值约 0.008–0.0095 m/s,而我第一版讲义说“约 0.016 m/s”,相差约 2 倍,当时原因不明。按它建议的检验(去掉速率限制和饱和,平坦路面,小凸块激发后看是否自持)我重跑了一次:
# 第6章:按 Claude 复核建议的检验——平坦路面(小凸块后)上自持振荡的 phi 阈值,
# 以及去掉速率限制和饱和 (Rmax, Fmax -> inf) 后阈值是否改变。教学示意,参数虚构。
import sys; sys.path.insert(0, "..")
import numpy as np
from qcar import simulate, bump_road, ACT0
t, zr = bump_road(T=3.0, h=0.005, L=0.5, v=10.0, t0=0.2)
def osc(o):
u = o['uc'][t > 2.0]; return np.std(u)
acts = {'default (Rmax=2e5, Fmax=2500)': ACT0,
'Rmax=inf, Fmax=inf': dict(ACT0, Rmax=1e12, Fmax=1e12)}
phis = [0.006, 0.008, 0.009, 0.010, 0.012, 0.014, 0.016, 0.018]
for name, act in acts.items():
row = []
for ph in phis:
o = simulate('smc_bl', act=act, road=(t, zr), K0=400.0, phi0=ph)
row.append(osc(o))
print(name)
print(' phi :', ' '.join(f'{p:7.3f}' for p in phis))
print(' std uc:', ' '.join(f'{r:7.1f}' for r in row), ' [N], t>2 s')
# same, larger 50 mm bump (large initial excitation) -> is the cycle self-sustained above 0.009?
t, zr = bump_road(T=3.0, h=0.05, L=0.5, v=10.0, t0=0.2)
row = [osc(simulate('smc_bl', road=(t, zr), K0=400.0, phi0=ph)) for ph in phis]
print('default actuator, 50 mm bump')
print(' std uc:', ' '.join(f'{r:7.1f}' for r in row), ' [N], t>2 s')
default (Rmax=2e5, Fmax=2500)
phi : 0.006 0.008 0.009 0.010 0.012 0.014 0.016 0.018
std uc: 354.9 320.3 0.8 0.0 0.0 0.0 0.0 0.0 [N], t>2 s
Rmax=inf, Fmax=inf
phi : 0.006 0.008 0.009 0.010 0.012 0.014 0.016 0.018
std uc: 354.9 320.3 0.8 0.0 0.0 0.0 0.0 0.0 [N], t>2 s
default actuator, 50 mm bump
std uc: 354.6 320.2 8.5 0.0 0.0 0.0 0.0 0.0 [N], t>2 s
结论:平坦路面上自持振荡在 时存在、 时消失,与预测的 0.008 吻合,去掉速率限制和饱和后结果不变(这组参数下速率限制本来就不起作用)。所谓“2 倍差异”来自 6.2 节扫描网格太粗(0.008 之后下一点就是 0.016)。注意:6.2 的扫描是在 C 级路面上做的,路面持续激励下的阈值仍可能与平坦路面略有不同,这一点没有再细扫。
6.4 sat 还是 tanh?
| 光滑性 | 连续,但在 处导数不连续 | 无穷次可导 |
| 层外 | 严格等于 ±1,到达条件证明与 sgn 完全相同 | 只趋近 ±1, 处只有 0.76,证明需改写(等效增益打折) |
| 工程 | Simulink 用 Saturation 模块即可 | 便于需要可导的场合(如反步、梯度类自适应) |
结论:两者都是“连续化”的常见做法;deck 用 sat,与证明最匹配。
6.5 高阶滑模:Super-Twisting 算法(STA)
第 9 页第⑥阶段把 STA 作为“更强的对比基线”。设滑模变量满足(相对阶为 1)
STA 控制律(第 9 页公式,Levant 1993 提出):
可以放心说的标准结论:
- 对任意 (单位控制增益、全局有效的 ),存在增益 使闭环在有限时间收敛到 。原始的有限时间结论来自 Levant(1993、1998);Moreno & Osorio(IEEE TAC 2012, DOI 10.1109/TAC.2012.2186179)给出严格 Lyapunov 函数和显式增益条件。
- 工程上最常用的整定是 。它来自 Levant 1998 的鲁棒微分器(原文写作 ),据称是通过仿真得到的(引用前请核对原文措辞);其稳定性由 Seeber & Horn(Automatica 2017, DOI 10.1016/j.automatica.2017.07.002)严格证明。
- 采样实现时,一阶滑模的精度 ,二阶滑模可达 、(Levant 1993)。但这只在理想作动器、无噪声时成立;有作动器滞后/时延等寄生动态时,寄生效应占主导, 的优势就没了。
白板上能写的充分条件(单位控制增益,Levant 1993/1998 的经典形式):
例:取 ,则 ,所以 可用; 时所需 趋于无穷。
说准确:
- 是必要的,但不充分。若扰动可以取 , 时积分项永远追不上扰动;但 还必须相对 足够大。
- 上面的经典条件很保守: 时它要求 ,而 Seeber & Horn 证明 (即 )就够了。所以答辩时:1.5/1.1 叫“公认整定(已证明)”,上式叫“教科书充分条件”。
- 本课题的控制增益不是 1:,,此时需要 , 的下界随 增大(确切表达式请查 Levant 原文或 Shtessel 等《Sliding Mode Control and Observation》第 4 章,这里不凭记忆写)。而且 和路面等级有关。
- STA 也会抖:它是为相对阶 1、无寄生动态设计的。作动器滞后使 变成相对阶 2 加时延,已超出它的保证范围,实际会出现有限频率的自持振荡,幅度通常比继电(sgn)小——它不是“无抖振”的万能药。对策与一阶相同:按回路时延限制增益(6.3)、补偿滞后/时延,或改用为相对阶 2 设计的算法(如 twisting,配合微分器估计 )。
# 第6章:Super-Twisting vs 符号函数 在 s' = u + d(t) 上的对比(离散 1 kHz 实现)
import numpy as np
Ts = 1e-3; t = np.arange(0, 5, Ts)
d = lambda tk: 0.8*np.sin(2*tk) + 0.3*np.sin(5*tk) # |d'| <= 1.6+1.5 = 3.1 =: C
C = 3.1; k1, k2 = 1.5*np.sqrt(C), 1.1*C # 常用整定:k1=1.5 sqrt(C), k2=1.1 C
def run(kind):
s, v, S, U = 1.0, 0.0, [], []
for tk in t:
if kind == 'sign': u = -2.0*np.sign(s) # K=2 > max|d| = 1.1
else:
u = -k1*np.sqrt(abs(s))*np.sign(s) + v
v += -k2*np.sign(s)*Ts
s += (u + d(tk))*Ts; S.append(s); U.append(u)
S, U = np.array(S), np.array(U); m = t > 3
return np.abs(S[m]).max(), np.sum(np.abs(np.diff(U[m])))/2.0
for kind in ['sign', 'sta']:
smax, tv = run(kind)
print(f"{kind:5s}: max|s| (t>3s) = {smax:.2e}, TV(u)/s = {tv:8.2f}")
print(f"gains: k1={k1:.3f}, k2={k2:.3f}")
sign : max|s| (t>3s) = 3.06e-03, TV(u)/s = 3084.00
sta : max|s| (t>3s) = 1.41e-05, TV(u)/s = 2.79
gains: k1=2.641, k2=3.410
输出:同样 1 kHz 采样,sgn 的 (),STA 约 ();控制量单位时间总变差从约 3084 降到约 2.8——STA 的控制量光滑。
6.6 其他路线:改进趋近律与自适应增益
改进趋近律(第 4 页路径②):直接规定 怎样趋近 0,例如指数趋近律 (远时 主导,快;近时只剩小的 ,抖得少)、幂次趋近律 ,。它们调的是“到达速度与切换幅度”。
自适应增益(第 4 页路径③的一部分):让 自己长,例如 (离面越远长得越快),使 刚好够用而不必事先知道 。风险:噪声下 不归零导致 一直漂移增大,常需“层内冻结”或泄漏项。模糊调参可以看作一种基于规则的增益调度,好处是可解释、能同时输出 和 。
- “边界层 = 没有抖振。” 太小时(层内增益太高)照样抖,见 6.2。
- “用了边界层还能严格收敛到 0。”只能保证 。
- “STA 适用于任何系统。”要求相对阶 1、扰动导数有界;作动器动态仍会引起残余抖振。
- “ 是充要条件。”它是一组被证明有效的充分选择,不是唯一。
- “ 就够了。”只是必要条件, 还要够大。
- “、 各自在区间内就安全。”要看比值 是否低于临界层内增益(6.3)。
- “看 很平滑就说明没抖。”作动器滞后会把抖振“滤掉”藏起来,必须同时看 。
- Q:边界层带来的稳态误差有多大?
- 层内 ,由 得 ,(Slotine & Li 第 7 章)。
- Q:为什么不直接用 Super-Twisting?
- 边界层方案简单、可解释,便于做 SMC-sign → 固定边界层 → 单参数 → 双参数的逐级消融;STA 没有放弃,它在第⑥阶段作为更强的对比基线,同一模型、同一约束下比较。
- Q:模糊在线改 ,时变边界层的稳定性呢?
- 层外需 对所有可能的 成立; 不含 ,所以逐点成立就够。工程上用 保底,给 加速率限制。正式证明是第④阶段交付物,目前没有完成。
- Q:为什么你们的 可以那么大?
- 不可以无限大。层内是增益 的比例回路,有滞后和时延时存在临界值 ,教学参数下约 N·s/m;超过就自激抖振。所以建议加耦合约束 ,并按 计算。
- Q:Super-Twisting 在有作动器的情况下还能用吗?
- STA 为相对阶 1 设计;加了作动器滞后后相对阶为 2,超出保证范围,仍会有较小幅度的抖振,采样精度 的优势也会消失。它是对比基线,不是万能药。
6.7 自测题
- 1/s,要求稳态 mm, 最大取多少?此时 的界是多少?
- 层内的时间常数是多少? kg, m/s, N 时等于多少?
- STA 中 的物理意义是什么?
- 若 以 m/s² 收缩, N,, kg, 至少多大?
- kg、 ms、 ms, N,按 GM = 2, 至少取多少?
- 为什么 6.2 节中 很小时误差反而不更小?
自测答案
- m/s; m/s。
- ; s。
- 它是积分项,稳态时 ,即“估计并抵消扰动”,类似 PI 控制中的 I。
- ,最坏情况取 : N。
- N·s/m( 与质量无关,仍为 124 rad/s), m/s。
- 小 ⇒ 层内增益 高 ⇒ 时延闭环自激极限环,振荡本身产生误差;理论界 只是上界,不是实际值。
7 模糊逻辑从零讲起,以及 FSMC-dual 如何同时调 K 与 φ
- 理解模糊集合、隶属函数、语言变量、规则库;
- 区分 Mamdani 与 Takagi–Sugeno(TS)两种推理;
- 能用纸笔完成一次“模糊化 → 推理 → 解模糊”,并与代码输出核对;
- 能解释 FSMC-dual 规则的物理含义,以及“模糊只能在安全区间里调”的稳定性底线;
- 看懂 deck 第 11 页 3×3 规则表,并知道它的两个问题。
7.1 直觉:把老司机的经验写成可计算的规则
这些话里“远”“近”“在靠近”都是模糊的:0.012 m/s 算远还是近?模糊逻辑(Zadeh 1965)允许一个数同时“60% 属于‘中’、40% 属于‘小’”,然后按程度把几条规则的结论加权混合,得到一个平滑变化的输出。
7.2 基本概念
| 概念 | 定义 | 在 FSMC 中 |
|---|---|---|
| 模糊集合 / 隶属函数 | 属于集合 的程度;普通集合只能取 0 或 1 | “ 大”的隶属函数 |
| 语言变量 | 取值为词语的变量,每个词对应一个模糊集合 | 小 S, 中 M, 大 L;趋势 接近 N, 不明显 Z, 远离 P |
| 规则 | IF 是 AND 是 THEN 是 | IF 大 AND 远离 THEN , |
| AND(t-范数) | min 或乘积 | 本讲义用乘积 |
| 模糊化 | 把精确输入变成各集合的隶属度 | |
| 推理 | 算每条规则的激活强度 | |
| 解模糊 | 把多条规则的结论合成为一个精确数 | 加权平均 / 重心法 |
Mamdani vs Takagi–Sugeno
| Mamdani(Mamdani & Assilian 1975) | Takagi–Sugeno(Takagi & Sugeno 1985) | |
|---|---|---|
| 规则结论 | 一个模糊集合(如“ 大”) | 一个数或输入的函数(如 倍率 = 1.6) |
| 合成 | 截断/缩放各结论集合后取并集(max) | 加权平均 |
| 解模糊 | 重心法 (需数值积分) | 不需要,加权平均即结果 |
| 优缺点 | 直观、可解释,MATLAB Fuzzy Logic Toolbox 默认(mamfis) | 计算快、输出光滑、便于分析稳定性(sugfis) |
FSMC 中调参器在每个采样周期都要算,零阶 TS(结论是常数)最省事,也最容易保证输出落在区间内(加权平均不会超出各结论的最大最小值)。
7.3 FSMC-dual 的结构
输入(团队底稿建议的写法):
为什么用 而不是 :因为 ,它的符号正好表示“ 在变大还是变小”。只看 分不出靠近还是远离(底稿第 8 页原话:“不能只看 ”)。 需由滤波差分、跟踪微分器或观测器得到(第 11 页风险 03)。
输出: 与 的倍率(或增量 ),再硬限幅:
7.4 deck 第 11 页的 3×3 规则表(初稿·示意)
| \ 趋势 | 远离(+) | 接近(−) | 边界层内 |
|---|---|---|---|
| 大 | 保持 | ||
| 中 | 保持 | ||
| 小 | 避免反向 |
物理解释:远离且离得远 → 最危险,用大 、窄 优先回到面上;正在接近 → 已经在回来了,减小 、放宽 ,防止冲过头造成来回切换(抖振的本质就是“冲过头”)。
- 第三列不是“趋势”。“边界层内”是一个关于 与 的条件,和行“ 大”可能矛盾( 大通常就不在层内)。建议改为“趋势不明显()”,在本讲义的实现里我就是这样解释的。
- “ 小”行全是“保持”。而口播稿第 6 页说“接近了,减小 、放宽边界层”。系统大部分时间恰恰处在 小的区域,如果这一行什么都不做,FSMC-dual 在稳态几乎等于固定边界层。我的玩具仿真证实了这一点(见 7.6:“deck 表”版本与 SMC-fixed-BL 几乎一样)。下文“方案 B”把小 行改成 (远离时 ),这只是教学建议,需团队讨论。
教学实现中的输出单点(倍率):,,。
7.5 手算一次模糊推理(务必自己算一遍)
题目:某时刻 m/s, m/s²(正在接近)。取 m/s, m²/s³, N, m/s, N, m/s。求两套规则下的 和 。
算例详解(点开):模糊化 → 规则激活 → 加权平均 → 限幅
① 归一化:;。
② 模糊化(三角形隶属函数,见上图):
- :,,;
- :,,。
③ 规则激活强度(乘积 AND),只有 4 条非零:
总和 (三角形划分满足“隶属度之和为 1”,所以乘积后总和也是 1)。
④ deck 表:SN:(1.0, 1.0);SZ:保持(1.0, 1.0);MN:(0.6, 1.6);MZ:保持(1.0, 1.0)。
N(在 [300,1000] 内), m/s。
⑤ 方案 B(小 行:SN、SZ 均为 ):
N 低于 N → 被限幅到 300 N; m/s。
⑥ 解读:限幅这一步就是“模糊只能在安全区间里调”的具体体现——不管规则多激进, 永远不低于按到达条件算出的 。
# 第7章:手算模糊推理的数值核对(与讲义例题同一组数)
import sys; sys.path.insert(0, '..')
from qcar import fuzzy_tune
s, sdot = 0.006, -5.0 # 例题:s=0.006 m/s,s_dot=-5 m/s^2(正在接近滑模面)
s_ref, r_ref = 0.02, 0.05 # 归一化尺度:|s|/s_ref,s*s_dot/r_ref
for rules in ['deck', 'B']:
mk, mp, mu_size, mu_tr, fired = fuzzy_tune(s, sdot, s_ref, r_ref, verbose=True, rules=rules)
print(f"[{rules}] x1=|s|/s_ref={abs(s)/s_ref:.2f}, x2=s*sdot/r_ref={s*sdot/r_ref:.2f}")
print(" size MF:", {k: round(v, 3) for k, v in mu_size.items()}, " trend MF:", {k: round(v, 3) for k, v in mu_tr.items()})
print(" fired rules (size, trend, weight):", fired)
print(f" K multiplier = {mk:.3f} -> K = {400*mk:.1f} N ; phi multiplier = {mp:.3f} -> phi = {0.004*mp*1000:.2f} e-3 m/s")
[deck] x1=|s|/s_ref=0.30, x2=s*sdot/r_ref=-0.60
size MF: {'S': 0.4, 'M': 0.6, 'L': 0.0} trend MF: {'P': 0.0, 'N': 0.6, 'Z': 0.4}
fired rules (size, trend, weight): [('S', 'N', 0.24), ('S', 'Z', 0.16), ('M', 'N', 0.36), ('M', 'Z', 0.24)]
K multiplier = 0.856 -> K = 342.4 N ; phi multiplier = 1.216 -> phi = 4.86 e-3 m/s
[B] x1=|s|/s_ref=0.30, x2=s*sdot/r_ref=-0.60
size MF: {'S': 0.4, 'M': 0.6, 'L': 0.0} trend MF: {'P': 0.0, 'N': 0.6, 'Z': 0.4}
fired rules (size, trend, weight): [('S', 'N', 0.24), ('S', 'Z', 0.16), ('M', 'N', 0.36), ('M', 'Z', 0.24)]
K multiplier = 0.696 -> K = 278.4 N ; phi multiplier = 1.456 -> phi = 5.82 e-3 m/s
代码输出与手算一致:deck 表 =342.4 N、=4.86e-3;方案 B 倍率 0.696 → 278.4 N(仿真中再被限幅为 300 N)、=5.82e-3。
7.6 为什么这样能减抖、又不丢鲁棒(以及玩具仿真看到了什么)
机理:抖振主要发生在滑模面附近( 小)。在那里减小 、放宽 ,等于降低层内增益 ——6.2 节已经看到,层内增益降到阈值以下极限环就会消失。远离时再把 加大,保证到达和抗扰。鲁棒性靠的是硬下界 ,而不是靠模糊规则本身。
以下是同一玩具模型、同一 C 级路面(20 m/s)、同一作动器约束下的结果(=400 N,=0.004 m/s——故意取了一个会抖的薄边界层作为起点):
| 控制器(教学仿真) | a_RMS [m/s²] | 挠度 RMS [mm] | 轮胎动载 RMS [N] | 力 RMS [N] | J_HF(u_c) | J_HF(F_a) | TV(u_c) [kN/s] | TV(F_a) [kN/s] |
|---|---|---|---|---|---|---|---|---|
| Passive | 1.37 | 12.4 | 755 | 0 | 0 | 0 | 0 | 0 |
| Skyhook | 1.22 | 9.64 | 735 | 142 | 3e-05 | 6.6e-06 | 2.72 | 2.42 |
| SMC-sign | 1.5 | 10 | 779 | 283 | 0.16 | 0.019 | 32.5 | 26.2 |
| SMC-fixed-BL | 1.48 | 10 | 782 | 275 | 0.073 | 0.012 | 32.5 | 25.3 |
| FSMC-K | 1.44 | 10 | 783 | 260 | 0.028 | 0.0054 | 34.7 | 23.5 |
| FSMC-φ | 1.46 | 10 | 786 | 268 | 0.048 | 0.0098 | 32.8 | 24.7 |
| FSMC-dual | 1.41 | 10.1 | 785 | 251 | 0.014 | 0.0036 | 34 | 22.8 |
| FSMC-dual(deck表) | 1.49 | 10 | 785 | 280 | 0.066 | 0.012 | 36.8 | 26.2 |
J_HF 以 =30 Hz 计;挠度 = ;轮胎动载 = 。全部为教学示意,不是小组结果。
- deck 表版本 ≈ 固定边界层(J_HF() 0.066 vs 0.073),因为小 行不动作——印证 7.4 的问题 2。
- 方案 B:J_HF() 从 0.073 降到 0.014,J_HF() 从 0.012 降到 0.0036, 从 1.48 降到 1.41;但 TV() 从 32.5 升到 34.0 kN/s。两个抖振指标不一致!
- FSMC-K、FSMC-φ 单参数各有贡献,双参数最好——这正是消融要回答的问题;但在玩具里,调好的固定边界层(φ=0.016)的 =1.158,反而比所有薄边界层起点的 FSMC 都好。
- 所有 SMC 类控制器的 都比 Skyhook(1.22)差,甚至比 Passive(1.37)还差——因为它们都带着约 19 Hz 的极限环(起点 故意取薄了)。“抖振降了但舒适变差仍算失败”这条判据在这里会判 FSMC 失败。
7.7 稳定性的注意事项(不能说过头)
- 时变增益:只要每一时刻 ,第 5、6 章的 Lyapunov 论证逐点成立( 中不含 ,所以 时变不额外引入项)。
- 的变化率: 进入条件;如果模糊输出被噪声带着抖(如上图), 可能很大 → 需要对 输出低通或限速。
- 的获取:差分放大噪声;趋势判断错误会让规则“反着调”(第三列“避免反向”就是为此)。
- 模糊系统本身不提供稳定性证明:它只是一个有界的增益调度器。稳定性来自限幅区间 + 到达条件。这就是 deck 写“满足滑模到达条件,闭环稳定”的含义,但正式证明尚未完成。
- “模糊控制不需要模型,所以也不需要证明稳定。”FSMC 里稳定性仍由滑模到达条件保证,模糊只能在其允许的区间内调。
- “规则越多越好。”规则多了互相干扰、难以解释(第 11 页风险 01),先 3×3,消融后再加密到 5×5。
- “模糊滑模是我们首创。”不是:Palm 1994(Automatica)研究模糊滑模;Lee et al. 2001(Fuzzy Sets and Systems)已提出模糊调节增益与边界层厚度。我们的定位是“统一约束下的公平、可复现消融”。
- “Mamdani 和 TS 只是名字不同。”结论形式和解模糊方式都不同,计算量也不同。
- Q:为什么用模糊而不是自适应律?
- 模糊能把“远近 + 趋势”的经验写成可解释规则,并同时输出 和 ;自适应律通常只调 ,且依赖扰动模型。代价是规则依赖经验,所以先 3×3、逐条写物理理由、做消融。
- Q:Mamdani 还是 Sugeno?
- 建议零阶 Sugeno:计算快、输出光滑、加权平均天然有界,便于嵌进稳定性论证;Fuzzy Logic Toolbox 两种都支持(尚未最终确定,可说“倾向 Sugeno”)。
- Q:模糊的输入怎么归一化? 怎么得到?
- 与 ,尺度由固定边界层阶段统计的 分布确定; 由滤波差分/跟踪微分器/观测器得到,三者比较后选优。目前隶属函数和区间尚未确定。
- Q:双参数相对单参数有什么好处?
- 管“推多猛”, 管“连续区多宽”,二者对抖振和精度的作用不同,分开调理论上有更大的折中空间;是否真的有额外价值,用 FSMC-K / FSMC-φ / FSMC-dual 三组消融来检验,没有就退回单参数。
7.8 自测题
- ,,用本讲义的隶属函数求各隶属度和非零规则的激活强度。
- 接上题,用 deck 表求 、。
- 为什么零阶 TS 的输出一定在各规则结论的最小值和最大值之间?
- 为什么用 判断趋势?
- 规则给出 N, N,实际用多少?为什么?
自测答案
- ,,;,,。激活:MP=0.2,MZ=0.2,LP=0.3,LZ=0.3。
- MP:(1.6,1.0);MZ:保持;LP:(1.6,0.6);LZ:保持。;。
- 输出是以非负权重 对结论 的凸组合。
- ,其符号表示 在增大(远离)还是减小(靠近)。
- 用 300 N:限幅保证到达条件,模糊不能突破稳定性下界。
8 实验设计:七组对照、三类工况、六类指标、蒙特卡洛与 Simulink 实现
- 说出七组对照中每一组回答的问题;
- 理解“公平比较”的具体要求;
- 会读结果:抖振指标、车辆指标如何一起判断;
- 知道 对 敏感这件事;
- 掌握 Simulink 实现的要点(求解器、离散化、模块)。
8.1 七组对照:每组回答一个问题
| 组 | 回答的问题 |
|---|---|
| Passive | 工程下限:什么都不做是什么水平? |
| Skyhook | 简单、成熟的主动策略能做到多好?(公平基线) |
| SMC-sign | “病人”:经典滑模在真实作动器下抖得多厉害? |
| SMC-fixed-BL | “是不是换成连续函数就够了?” |
| FSMC-K | 只调 有多少收益? |
| FSMC-φ | 只调 有多少收益? |
| FSMC-dual | 主线:双参数是否比单参数更有价值? |
后三组是消融实验(ablation):一次只改一个因素,才能把“功劳”分清。
8.2 公平比较的清单
- 同一车辆模型和参数、同一路面序列(种子)、同一车速;
- 同一作动器约束();
- 同一求解器、步长、控制器采样率、仿真时长、同一舍弃暂态时段;
- 所有控制器可用的状态信息相同(例如都用滤波后的测量值);
- 每个控制器都要认真整定:拿调好的 FSMC 去比没调好的固定边界层是不公平的(第 6 章 6.2:调好的固定 可能已经很强);整定预算(试错次数)最好相当;
- 蒙特卡洛中所有控制器用同一组随机抽样(“共同随机数”),便于配对比较。
8.3 三类工况
① ISO 8608 A–D 级随机路面(稳态统计性能);② 凸块路面(瞬态:峰值、回稳时间);③ 参数摄动(、时延 5–15 ms、噪声、刚度阻尼偏差,鲁棒性)。底稿建议先用 B/C 级 + 凸块,D 级作为极端工况。
8.4 怎样读结果:一个判定流程
- 先看安全:有无失稳、是否长期饱和、行程是否超限、相对动载是否 ≥ 1;
- 再看抖振:底稿备份 C 的原话是“ 和 TV 在 和 上都下降才算抑振有效”——这个判据建议修改,见 8.5 末尾;
- 再看车辆性能:、行程、动载不能明显变差(“抖振下降但车辆指标恶化仍算失败”);
- 最后看代价:控制努力、能耗;
- 鲁棒性看分布(均值 ± 标准差、置信区间、最差情况),不看单条曲线。
8.5 一个重要细节: 依赖截止频率
# 第8章:J_HF 对截止频率 f_c 的敏感性 + 抖振主频(教学仿真,参数虚构)
import sys; sys.path.insert(0, '..')
import numpy as np
from scipy.signal import welch
from qcar import simulate, iso8608_road
CFG = dict(K0=400.0, phi0=0.004, Kmin=300.0, Kmax=1000.0, phimin=0.002, phimax=0.016, s_ref=0.02, r_ref=0.05, c=10.0)
road = iso8608_road('C', v=20.0, T=8.0, seed=1)
def J_HF(u, Ts, fc):
U2 = np.abs(np.fft.rfft(u - u.mean()))**2; f = np.fft.rfftfreq(len(u), Ts)
return U2[f >= fc].sum() / U2.sum()
for name, c, kw in [('SMC-sign', 'smc_sign', {}), ('SMC-fixed-BL', 'smc_bl', {}), ('FSMC-dual(B)', 'fsmc_dual', {'rules': 'B'})]:
o = simulate(c, road=road, **CFG, **kw)
u = o['uc'][o['t'] >= 1.0][::10] # 1 kHz 采样的指令力,去掉前 1 s 暂态
f, P = welch(u - u.mean(), fs=1000, nperseg=2048); m = f > 5
row = ' '.join(f"fc={fc:>2d}Hz:{J_HF(u, 1e-3, fc):.3f}" for fc in (10, 20, 30, 50, 80))
print(f"{name:13s} dominant f = {f[m][np.argmax(P[m])]:.1f} Hz | {row}")
SMC-sign dominant f = 18.6 Hz | fc=10Hz:0.885 fc=20Hz:0.187 fc=30Hz:0.164 fc=50Hz:0.147 fc=80Hz:0.080
SMC-fixed-BL dominant f = 19.0 Hz | fc=10Hz:0.867 fc=20Hz:0.088 fc=30Hz:0.073 fc=50Hz:0.056 fc=80Hz:0.009
FSMC-dual(B) dominant f = 20.0 Hz | fc=10Hz:0.838 fc=20Hz:0.074 fc=30Hz:0.014 fc=50Hz:0.009 fc=80Hz:0.002
怎样选 (Claude 复核后的建议)
不由采样率决定(采样率只决定 ),而由“哪些频段是有用的控制”决定:
- 高于车轮跳动模态(约 10 Hz),那里以下是控制器正当工作的频段;
- 低于预期的抖振基频:由 6.3 节, Hz(精确值 19.7 Hz);
- 对 ,作动器转角频率 Hz 也说得通:高于它的指令作动器复现不了,纯属磨损;
- 数据核对:让一个光滑基线控制器(如 Skyhook)至少 99% 的力能量落在 以下。
在教学参数下, = 12–16 Hz 同时满足这几条,而 30 Hz 一条都不满足——这正是 只看到谐波的原因。底稿的 30/50/80 Hz 灵敏度分析建议改为以 12–16 Hz 为主。由于抖振基频会随 、、时延移动,固定 很脆弱,所以必须同时报告下面的“峰值类”指标。
抖振指标要显式定义(没有统一标准)
据 Claude 所知,没有 ISO 或教科书给出统一的“抖振指标”,所以报告里必须把定义写清楚。 和 TV 的弱点与补救:
| 问题 | 说明 | 补救 |
|---|---|---|
| 是比值 | 控制器若减少了低频力(舒适更好),即使抖振不变, 也会上升 | 同时报告绝对的限带 RMS(单位 N),或对同一路面上的光滑基线归一化 |
| TV 不分频率 | 幅值 、频率 的极限环 ;有用控制和噪声也都算进去;白噪声下 TV 随采样率增长 | 在高通后的信号上算 TV(或只算 部分);只在相同采样率下比较 |
| 混叠 | 1 kHz 记录时 Hz,更高的抖振看不见或被混叠;周期 2 的数值极限环正好落在 Nyquist | 按被控对象积分步长记录(≥ 控制器速率的 5–10 倍) |
| 可比性 | 单条随机路面、原始周期图噪声大 | 同一路面、车速、初值;用 Welch PSD;多条路面重复并报告区间 |
核心输出建议加上:在 和 上报告抖振主频 (某低截止以上的谱峰)和幅值(峰附近频带的 RMS 或峰峰值),以及 的过零率;并把 与预测的 、 与 对照。平坦路面是最干净的测试:理想控制下 ,剩下的力全是抖振,绝对力 RMS 就是指标。
成功判据:建议替换“四个指标都下降”
“ 和 TV 在 、 上都下降”不太合理:① 四个有噪声、彼此相关的条件,容易误判失败;② 抖振幅值降低但频率升高时 TV()可能反而上升,而舒适确实改善了,速率限制和饱和还会扭曲 ;③ 反过来,一个“偷懒”的控制器( 很大、跟踪很差)也能通过。建议改为事先设定的阈值:
- 平坦路面上没有窄带极限环(例如谱峰不高于背景 X dB,X 事先定);
- 和簧载加速度的高频段 RMS 低于设定上限;
- 在多条路面实现上做配对比较;
- 车辆性能不变差:车身加速度 RMS(建议同时给 ISO 2631-1 加权值)、轮胎动载、悬架行程。
簧载加速度是乘客真正感受到的量,是抖振后果中最有意义的一个。以上是建议,需与团队、老师商定,不是 deck 现有内容。
8.6 蒙特卡洛鲁棒性测试
做法:每次随机抽一组参数(如 , ms),所有控制器跑同一组;重复 次,统计每个指标的分布。均值的标准误 : 从 30 增到 100,误差棒缩小约 倍。比较两种控制器时,用配对差值(同一次抽样的差)做检验(配对 t 检验或 Wilcoxon 符号秩检验),比两组独立比较更灵敏。
| 控制器(20 次蒙特卡洛,教学) | a_RMS [m/s²] | J_HF(u_c) | TV(F_a) [kN/s] | 轮胎动载 RMS [N] |
|---|---|---|---|---|
| SMC-sign | 1.63 ± 0.21 | 0.144 ± 0.019 | 19.7 ± 2.5 | 855 ± 85 |
| SMC-fixed-BL | 1.63 ± 0.21 | 0.0873 ± 0.012 | 19.5 ± 2.4 | 851 ± 83 |
| FSMC-dual | 1.67 ± 0.21 | 0.0438 ± 0.011 | 22 ± 0.79 | 840 ± 67 |
8.7 MATLAB/Simulink 实现要点
- 求解器:带 sgn 的模型若用变步长求解器(ode45),过零检测会在 附近疯狂缩小步长,仿真极慢甚至卡住。建议控制器离散化(固定采样 ,零阶保持),车辆用固定步长求解器(如 ode4,步长为 的整数分之一),所有控制器统一。
- 采样率: 必须明显高于关心的抖振频率;第②阶段要求“记录抖振随采样率与作动器带宽的变化”。
- 作动器模块:Transport Delay(时延)→ Saturation()→ Transfer Fcn → Rate Limiter();或用积分器 + 限幅自己写,保证与方程一致。
- 模糊:Fuzzy Logic Toolbox 的
mamfis/sugfis建 FIS,用 Fuzzy Logic Controller 模块嵌入;输出后接 Saturation 实现硬限幅。 - :Discrete Derivative 后接低通,或跟踪微分器/观测器。
- 路面:MATLAB 中
rng(seed)生成随机相位,预先算好 存为 From Workspace 信号。 - 指标:记录 (采样 )和 (按被控对象积分步长记录,避免混叠),舍弃前若干秒暂态; 用
fft或pwelch;TV 用sum(abs(diff(u)))/T。 - 参数集中配置:一个
params.m(或 .json)存全部参数和种子,模型只读它(第 5 页④)。
- “FSMC 比 SMC-sign 好就说明有效。”必须赢过调好的固定边界层和单参数版本。
- “一条曲线更平滑就说明抖振小。”需要量化指标 + 两种口径(/)。
- “ 越小越好,与 无关。”见 8.5。
- “TV 下降 = 抖振减小。”TV 不分频率,。
- “ 按采样率定。”采样率只决定 。
- Q: 取多少?
- 不是天然标准,也不由采样率决定。应高于车轮跳动(约 10 Hz)、低于抖振基频(约 20 Hz),教学参数下 12–16 Hz;30 Hz 会漏掉基频。同时报告抖振主频、幅值和绝对限带 RMS。
- Q:抖振指标有标准吗?
- 没有统一标准,所以我们显式定义;成功判据建议用事先设定的阈值加上 ISO 2631-1 加权的车身加速度,而不是“四个指标都下降”。
- Q:30 次蒙特卡洛够吗?
- 30 次先打通流程,正式结果扩到 50–100 次;用配对比较和置信区间说明差异是否显著。
- Q:怎么保证各控制器整定公平?
- 每个控制器按同一流程整定、给相近的整定预算,参数和整定记录全部写入配置,可复现。
8.8 自测题
- 为什么 FSMC-K 和 FSMC-φ 必不可少?
- =1 ms 时 是多少?能看到 600 Hz 的抖振吗?
- 什么是共同随机数?
- 用 ode45 仿真 SMC-sign 可能出现什么问题?
自测答案
- 它们是消融对照,用来判断双参数是否比单参数有额外价值。
- 500 Hz;看不到,600 Hz 会混叠到更低频率。
- 所有被比较的控制器在每次蒙特卡洛中使用同一组随机参数/路面,便于配对比较、降低方差。
- 过零检测导致步长极小、仿真极慢或卡死;结果也与固定采样的实际控制器不一致。
9 逐页讲解:每页在说什么、哪里扎实、哪里是占位、可能被挑战什么
每页给出:扎实 有理论/文献支撑、可以放心讲的;占位 目前尚无数据或尚未确定的;易被挑战 老师可能追问的;最后是一句诚实回答。口播稿时长:全场约 13:40。
第 1 页 封面
在说什么:题目、FSMC(Fuzzy Sliding Mode Control)、汇报人和日期。
扎实 问题本身:滑模鲁棒但抖振,是公认的经典矛盾(Lee & Utkin 2007 综述)。
易被挑战 “滑膜”是错别字——正确术语是“滑模”(sliding mode)。
第 2 页 目录
在说什么:四部分:项目背景 → 研究现状 → 技术方案 → 研究计划。一句话主线:“从问题出发,落到一份可执行的计划。”
扎实 结构清晰,没有技术风险。
第 3 页 从被动到主动:悬架的演进
在说什么:三种悬架(被动/半主动/主动),统一方程 ,以及 ;底部课题来源与三条立项依据。
扎实 方程是牛顿第二定律(第 2 章推导);半主动“只能耗散能量”正确(可调阻尼器的力总与相对速度反向);主动悬架受带宽/饱和/变化率约束(Yu, Evangelou & Dini 2024 综述)。
占位 数值待填(须标文献来源)。
易被挑战 ① 半主动的 也受“被动性约束”(只能产生与相对速度反向的力)——如被问就这样补充;② “立项依据③:模糊/可变边界层已有先例”——这是诚实的定位,被问“创新点在哪”时答:统一约束下的公平消融与双参数价值检验(第 10 章 Q1)。
第 4 页 抖振抑制:已有路径与待补的缺口
在说什么:左:四条主流路径(边界层/饱和函数、改进趋近律、模糊/自适应调参、高阶/Super-Twisting)+ sgn vs sat 示意图;右:四个缺口(单参数调节、理想作动器假设、评价口径不一、缺少公平对比)。
扎实 四条路径的描述都是教科书级(第 6 章);“只看指令力会低估/高估抖振”有机理支撑(第 3 章:作动器是低通)。
易被挑战 “多数模糊滑模只调一个参数”——这是概括性判断,Lee et al. 2001 就同时调了增益和边界层。被问时要说“双参数早有工作,但在统一作动器约束 + 消融下的系统比较较少”,不要说“没人做过”。
第 5 页 系统建模与仿真环境
在说什么:① 1/4 车三行方程;② 作动器 ,,纯时延 单独建模, 与 分别评估;③ ISO 8608 路面 ,A–D 级,凸块,固定种子;④ MATLAB/Simulink + Fuzzy Logic Toolbox,统一求解器/步长/采样率,参数集中配置。
扎实 方程(第 2 章)、作动器模型(第 3 章)、ISO 8608 公式(第 2 章, cycles/m,)。
占位 参数表 与 全部“待填(须标文献来源)”。
易被挑战 ① 题注写“非线性模型”(第 8 页①)但方程是线性的——非线性可能来自饱和/速率限制或后续加的非线性弹簧/阻尼,需确认;② 轮胎只有刚度没有阻尼、没有离地(轮胎力可变负)——这是 1/4 车常见简化;③ 求解器步长和采样率的具体值。
第 6 页 改进双参数模糊滑膜控制器 FSMC-dual(全场核心)
在说什么:;;三条要点:基线 SMC-sign/SMC-fixed-BL;模糊在线调 、;满足到达条件、闭环稳定。
扎实 滑模面和控制律都是标准形式(Slotine & Li 第 7 章)。
占位 未定义、 未写表达式、隶属函数未定、稳定性证明未完成(第④阶段交付)。
易被挑战 ① “ 是什么?”→ 第 5 章 5.2;② “ 怎么算?”→ 5.3,能板书;③ “你说闭环稳定,证明呢?”→ 说清楚“这是设计原则: 满足到达条件;正式证明(含时变 、)是第④阶段交付物”;④ 右图是 1/4 车模型示意,没画 (与第 5 页同图)。
第 7 页 仿真实验方案与评价指标
在说什么:七组对照 × 多工况(同种子·同步长·同约束);三个公式 、、TV;三类工况;六类指标;“ 与 分别计算;抖振下降但车辆指标恶化仍算失败”;结果表占位。
扎实 公平对比原则、消融设计、同时报告舒适/行程/接地/控制努力——方法论很规范(第 8 章)。
占位 结果表:待团队真实仿真结果替换; 的取值(底稿建议 30/50/80 Hz;复核后建议 12–16 Hz 为主,见 8.5)。
易被挑战 ① 不是 ISO 2631 加权值 → 已注明“舒适代理”;② 依赖 ——若抖振主频低于 会被漏掉(玩具仿真中主频约 19 Hz,第 8 章);③ 蒙特卡洛次数与统计检验方法。
第 8 页 上半程:从模型到 FSMC 核心闭环
在说什么:甘特图 2026.09–2027.04:①基础模型(09–10)②抖振基线(10–12)③固定边界层(2027.01)④双参数 FSMC(02–04),每段有通过/交付条件。
扎实 “阶段门”思路:每步有可检验的通过条件(如“固有频率与文献参数一致”——第 2 章可算出 ≈1.2 Hz 和 ≈10 Hz)。
易被挑战 ① 今天是 10 月 26 日,按计划第①阶段(09–10)应接近完成——如被问进度,如实说当前状态(先和队友对齐!);② 第③阶段只有 1 个月;③ “无效则退回单参数”是诚实的科学态度,值得强调。
第 9 页 下半程:鲁棒性验证与成果固化
在说什么:⑤鲁棒性与统计验证(2027.05–08):,, ms,噪声、刚度阻尼偏差,蒙特卡洛 30 → 50–100 次;⑥强基线(09–12):Super-Twisting,有余力探索 TD3/SAC(DDPG 作兼容基线);⑦成果固化(2028.01–04)。
扎实 STA 公式是标准形式(第 6 章);“公平对比与消融比增加新算法更重要”。
占位 未整定。
易被挑战 ① 与第 5 页 记号不统一;底稿把 5–15 ms 写成 ——需确认摄动的是纯时延还是滞后常数;② ±30% 质量对 1/4 车是否合理(空载/满载差异,对轿车偏大但作为鲁棒性压力测试可以接受);③ 30 次蒙特卡洛的统计功效。
第 10 页 五大分工模块
在说什么:负责人(建模、SMC/FSMC 主控制器、理论推导与主讲)+ 硬件组、模型组、算法组、集成组;协作链路示意。
易被挑战 你就是负责人——理论推导是你的职责,所以第 5–7 章的推导必须能讲。各组成员 deck 未列,按实际补充。
第 11 页 风险与成果
在说什么:3×3 规则表(初稿·示意);四条风险与对策;四个“一”的预期成果。
扎实 风险识别到位(规则耦合、饱和、微分噪声、1/4 车外推)。
占位 规则表是初稿。
易被挑战 规则表第三列“边界层内”与“趋势”混用;小 行全“保持”(第 7 章 7.4)。风险 03 原文“符号函数微分放大噪声”表述不准确——放大噪声的是对 求导得 (差分),不是符号函数本身;被问时这样纠正。
第 12 页 致谢 / Q&A
在说什么:收尾一句核心问题:“在受约束的作动器下,同时在线调节 和 的模糊滑模,能不能兼顾抑振、舒适和鲁棒?”——这是待检验的假设。
10 老师可能问的 30 个问题、术语表与参考文献
10.1 问答(按主题)
A. 定位与创新
- 1. 你们的创新点是什么?
- 不主张概念首创(模糊滑模、模糊边界层已有 Palm 1994、Lee et al. 2001 等)。我们的贡献定位在:① 在统一的受约束作动器模型(滞后、饱和、速率、时延)下评估抖振;② 双参数与单参数的系统消融;③ 统一的抖振量化(+TV,/ 分别算)与可复现平台。研究问题是一个可检验的假设,得到否定结论也是完整研究。
- 2. 为什么选滑模而不是 LQR/H∞/MPC?
- 质量、路面、参数都会变,滑模只需扰动上界,实现简单,对匹配不确定性有不变性;LQR 依赖精确模型,MPC 计算量较大。这些方法可作为扩展对照,不是主线。
- 3. 为什么不把强化学习做主线?
- 训练稳定性、约束处理、可解释性和迁移都需要大量工作;主线先保证模型驱动方法的公平对比和可复现,TD3/SAC 只在有余力时探索,DDPG 作申请书兼容基线。
B. 模型
- 4. 1/4 车的局限?
- 只表征单轮车身垂向振动,无俯仰侧倾、无座椅人体;结论只限于簧载质量加速度等指标,不宣称整车或人体舒适性(风险 04)。
- 5. 参数取多少、从哪来?
- 正在按文献整理,参数表逐项标注来源(文献/本地数据/标定),今天不报数值。第①阶段通过条件是固有频率与文献一致(典型车身 ≈1–1.5 Hz,车轮 ≈10 Hz)。
- 6. 第 8 页说“非线性模型”,但方程是线性的?
- 需确认非线性来自作动器饱和、速率限制(以及可能的非线性弹簧/阻尼、限位块)。建议回答:“车辆本体先用线性模型,非线性主要来自作动器约束,后续可加非线性弹簧阻尼。”
- 7. 时延 5–15 ms 是什么时延?
- 需确认按第 5 页应指纯时延 (第 9 页写作 ),与一阶滞后常数 区分;记号会统一。
- 8. ISO 8608 怎么生成路面?
- 按 , cycles/m,用谐波叠加(随机相位)或滤波白噪声法生成,车速换算 ,固定随机种子。A–D 级几何平均值 16/64/256/1024 ×10⁻⁶ m³。
C. 控制器与理论
- 9. 是什么?
- 车身位移相对参考模型的误差,推荐跟踪天棚参考模型;最简情形 。后者会使车轮内动态失去阻尼(9.5 Hz 无阻尼振荡),所以倾向参考模型。
- 10. 怎么推?
- ,标称模型下令 :。
- 11. 证明稳定性。
- ;,;;取 得 ,有限时间到达 ,然后 。边界层版本层外相同,层内 。含时变 的完整证明是第④阶段交付物。
- 12. 怎么选?
- 决定滑动阶段误差衰减速率 ;太大要求作动器带宽高、易抖,太小响应慢。应与作动器带宽、车身频率协调(例如让 对应的频率明显低于作动器带宽),具体在第③阶段与 一起整定。
- 13. 边界层的代价?
- 失去精确滑动,稳态误差 、; 太小又会因时延自激抖振,所以存在合理区间(第③阶段确定)。
- 14. 时变 会不会破坏稳定?
- 层外需 对所有可能质量成立( 取 ,否则 )。 不含 ,逐点成立即可;工程上 保底, 加速率限制(第 6 章推导 4、5)。
- 15. 抖振的根源是什么?
- 不连续切换 + 未建模快动态(作动器滞后、时延)+ 采样 + 噪声。理想 sgn 要无限频率切换;有滞后时切换晚到、冲过头,形成有限频率的极限环(Lee & Utkin 2007)。
- 16. Super-Twisting 的条件?
- 相对阶为 1,扰动导数有界 ;常用增益 ,(Levant 提出,Seeber & Horn 2017 证明);Moreno & Osorio 2012 给出 Lyapunov 构造。输出连续,理想作动器下采样精度 。白板充分条件: 且 (保守); 只是必要条件;控制增益为 时需 。(6.5 节)
- 17. 模糊规则输入是什么?为什么不只用 ?
- (远近)和 (趋势); 的符号直接表示远离/靠近, 分不出方向。
- 18. 规则表第三列“边界层内”是什么意思?
- 初稿写法不严谨,准备改为“趋势不明显()”;“避免反向”是防止 噪声导致规则来回翻转。规则会在第④阶段消融中定稿。
- 19. 模糊会不会把 调得太小?
- 不会:输出后硬限幅,且下限 (或状态相关的 )由到达条件 确定;上限受 约束;另外 还要低于临界层内增益。
- 20. 怎么获得,噪声怎么办?
- 比较滤波差分、跟踪微分器、观测器,选综合最优(风险 03)。
D. 实验与评价
- 21. 为什么 和 分别算?
- 作动器是低通:只看 会低估控制器端的抖振(驱动器仍在高频换向);只看 又忽略真实作用到车上的力。
- 22. 的 怎么定?
- 不由采样率决定。应高于车轮跳动(约 10 Hz)、低于抖振基频(约 20 Hz),对 也可取作动器转角 Hz;教学参数下 12–16 Hz,30 Hz 会漏掉基频。并报告抖振主频、幅值和绝对限带 RMS(8.5 节)。
- 23. “抖振下降但车辆指标恶化仍算失败”——怎么量化“恶化”?
- 相对固定边界层,、行程、动载不显著变差(蒙特卡洛配对比较的置信区间判断);且不失稳、不长期饱和。申请书中的 70%/30% 只是预期目标,不是结果。
- 24. 现在有没有结果?
- 没有。今天是开题与计划汇报,结果表是占位,第①阶段正在搭基础模型;不在没有数据时报数字。
- 25. 为什么你们的 可以那么大?
- 不可以任意大。层内是增益 的比例回路,有滞后 和等效时延 时存在临界值 (教学参数约 N·s/m)。我们建议加耦合约束 ,,并按 计算(6.3 节)。
- 26. 内动态稳定吗?
- 时,滑动后车轮是 (约 9.5 Hz)的无阻尼振子,对应零点 ,只是临界稳定;用天棚参考模型时内动态指数稳定,但车轮跳动的阻尼只来自被动 ()。这是我们选参考模型滑模面的设计理由,不是引用某篇文献的结论(5.6 节)。
- 27. 加上作动器以后相对阶是多少?证明还成立吗?
- 对力 相对阶是 1;对指令 ,因为一阶滞后,相对阶是 2,再加时延。第 5 章的 Lyapunov 证明假设理想作动器,有作动器动态时只能得到最终有界,并可能出现极限环——这正是抖振的来源,也是第④阶段证明要处理的内容。
- 28. 量纲对吗?
- 不对, 是力, 是加速度。完整写法 ;按单位质量归一化时应写 (5.4 节)。
- 29. 路面扰动是匹配扰动吗?
- 在完整模型里不是: 从轮胎进入车轮方程,只经由 间接影响 。“匹配”只对车身的 动态成立; 也是状态相关的 。
- 30. 滤波白噪声路面和 ISO 一致吗?
- 常见写法有 2 倍的约定问题:单位(双边)白噪声驱动时输出的单边 PSD 是 ISO 的 2 倍,应取 ;而且它没有上截止,只是 ISO 谱的平稳近似(2.5 节)。
10.2 术语表(中英)
| 中文 | English | 一句话解释 |
|---|---|---|
| 滑模控制 | Sliding Mode Control (SMC) | 先设计滑模面,再用切换控制把状态推到面上并保持 |
| 滑模面 / 滑动面 | sliding surface / manifold | 定义的理想动态 |
| 到达条件 | reaching condition (-reachability) | |
| 等效控制 | equivalent control | 标称模型下保持 的控制 |
| 切换增益 | switching gain | |
| 边界层 | boundary layer | 的连续化区域 |
| 抖振 | chattering | 控制量有限频率、有限幅值的高频振荡 |
| 超螺旋算法 | Super-Twisting Algorithm (STA) | 二阶滑模,输出连续 |
| 趋近律 | reaching law | 规定 形式,如指数趋近律 |
| 匹配扰动 | matched disturbance | 与控制输入同通道的扰动 |
| 内动态 / 零动态 | internal / zero dynamics | 滑动时未被直接控制的那部分运动 |
| Lyapunov 函数 | Lyapunov function | 广义能量,用于证明稳定 |
| 模糊集合 / 隶属函数 | fuzzy set / membership function | 属于程度 0–1 |
| 模糊化 / 解模糊 | fuzzification / defuzzification | 精确值 ↔ 模糊量 |
| 规则库 | rule base | IF–THEN 规则集合 |
| 簧载 / 非簧载质量 | sprung / unsprung mass | 车身 / 车轮总成 |
| 悬架动行程(动挠度) | suspension deflection / travel | |
| 轮胎动载荷 | dynamic tyre load | |
| 天棚阻尼 | skyhook damping | |
| 作动器 | actuator | 输出主动力的装置 |
| 一阶滞后 / 纯时延 | first-order lag / pure time delay | / |
| 饱和 / 速率限制 | saturation / rate limit | / |
| 功率谱密度 | power spectral density (PSD) | 信号功率按频率的分布 |
| 总变差 | total variation (TV) | |
| 消融实验 | ablation study | 逐一去掉/替换组件看贡献 |
| 蒙特卡洛 | Monte Carlo | 随机抽样重复仿真看统计分布 |
10.3 参考文献(均已联网核实存在;DOI 来自出版方/索引页面)
页码只列期刊页码;书籍只给章节,不编造页码。核实时间:2026-10-26。
滑模控制
- V. I. Utkin, “Variable structure systems with sliding modes,” IEEE Trans. Automatic Control, 22(2): 212–222, 1977. doi:10.1109/TAC.1977.1101446
- J.-J. E. Slotine, W. Li, Applied Nonlinear Control, Prentice Hall, 1991, ISBN 0-13-040890-5. 第 7 章 Sliding Control(到达条件、边界层、时变边界层)。
- C. Edwards, S. K. Spurgeon, Sliding Mode Control: Theory and Applications, Taylor & Francis, 1998.
- H. Lee, V. I. Utkin, “Chattering suppression methods in sliding mode control systems,” Annual Reviews in Control, 31(2): 179–188, 2007. doi:10.1016/j.arcontrol.2007.08.001
- A. Levant, “Sliding order and sliding accuracy in sliding mode control,” Int. J. Control, 58(6): 1247–1263, 1993. doi:10.1080/00207179308923053
- J. A. Moreno, M. Osorio, “Strict Lyapunov functions for the super-twisting algorithm,” IEEE Trans. Automatic Control, 57(4): 1035–1040, 2012. doi:10.1109/TAC.2012.2186179
- R. Seeber, M. Horn, “Stability proof for a well-established super-twisting parameter setting,” Automatica, 84: 241–243, 2017. doi:10.1016/j.automatica.2017.07.002
模糊逻辑与模糊滑模
- L. A. Zadeh, “Fuzzy sets,” Information and Control, 8(3): 338–353, 1965. doi:10.1016/S0019-9958(65)90241-X
- E. H. Mamdani, S. Assilian, “An experiment in linguistic synthesis with a fuzzy logic controller,” Int. J. Man-Machine Studies, 7(1): 1–13, 1975. doi:10.1016/S0020-7373(75)80002-2
- T. Takagi, M. Sugeno, “Fuzzy identification of systems and its applications to modeling and control,” IEEE Trans. Systems, Man, and Cybernetics, SMC-15(1): 116–132, 1985. doi:10.1109/TSMC.1985.6313399
- R. Palm, “Robust control by fuzzy sliding mode,” Automatica, 30(9): 1429–1437, 1994. doi:10.1016/0005-1098(94)90008-6
- H. Lee, E. Kim, H.-J. Kang, M. Park, “A new sliding-mode control with fuzzy boundary layer,” Fuzzy Sets and Systems, 120(1): 135–143, 2001. doi:10.1016/S0165-0114(99)00072-X(deck 引用的先例;同时调节增益和边界层厚度)
车辆动力学与悬架
- D. Hrovat, “Survey of advanced suspension developments and related optimal control applications,” Automatica, 33(10): 1781–1817, 1997. doi:10.1016/S0005-1098(97)00101-5
- T. D. Gillespie, Fundamentals of Vehicle Dynamics, SAE International, 1992(R-114),ISBN 978-1-56091-199-9。doi:10.4271/R-114
- R. Rajamani, Vehicle Dynamics and Control, 2nd ed., Springer, 2012. doi:10.1007/978-1-4614-1433-9(含主动悬架章节)
- M. Yu, S. A. Evangelou, D. Dini, “Advances in active suspension systems for road vehicles,” Engineering, 33: 160–177, 2024. doi:10.1016/j.eng.2023.06.014(deck 引用)
标准
- ISO 8608:2016, Mechanical vibration — Road surface profiles — Reporting of measured data. iso.org/standard/71202
- ISO 2631-1:1997, Mechanical vibration and shock — Evaluation of human exposure to whole-body vibration — Part 1: General requirements(含 Amd 1:2010). iso.org/standard/7612
Claude 复核中提到、我尚未联网核实的文献(凭记忆,引用前必须核对)
- L. Fridman,用奇异摄动分析抖振,IEEE TAC, 2002。(Claude 注明凭记忆引用)
- R. Palm,“Sliding mode fuzzy control,” IEEE FUZZ 1992(会议名称待核实)。
- A. Levant,“Chattering analysis,” IEEE TAC 55(6), 2010(卷期待核实)。
- I. Boiko, L. Fridman, A. Pisano, E. Usai,关于二阶滑模在寄生动态下的抖振分析,IEEE TAC 52(11), 2007(卷期待核实)。
- Slotine & Li《Applied Nonlinear Control》的节号:7.1(滑模面与到达条件)、7.2(边界层、时变 )、6.2(零动态)——章级位置可信,节号请对照所用版本。
- A. Levant, “Robust exact differentiation via sliding mode technique,” Automatica 34(3), 1998(、 整定的出处)。
- B. Draženović, “The invariance conditions in variable structure systems,” Automatica 5, 1969(匹配条件)。
- Y. Shtessel, C. Edwards, L. Fridman, A. Levant, Sliding Mode Control and Observation, Birkhäuser, 2014,第 4 章(STA 增益条件)。
- H. K. Khalil, Nonlinear Systems, 3rd ed.,第 14 章(滑模控制,节号依版本);A. Isidori, Nonlinear Control Systems(零动态)。
- J.-J. E. Slotine, “Sliding controller design for non-linear systems,” Int. J. Control 40(2), 1984(边界层误差界的原始文献)。
- D. Karnopp, M. J. Crosby, R. A. Harwood, 天棚阻尼, ASME J. Eng. for Industry, 1974。
- A. Alleyne, J. K. Hedrick, “Nonlinear adaptive control of active suspensions,” IEEE TCST 3(1), 1995。
- J. K. Hedrick, T. Butsuen,主动悬架的不变性质,Proc. IMechE, 1990。
本讲义其他网页出处:ISO 8608 分级表(scribd 上的 ISO 8608:1995 文本);铺装路面属 A–D 级(Springer RES 2017);STA 整定(Seeber & Horn 预印本);边界层精度界讨论(arXiv:0802.2978);教学参数(IJERT V4IS010209)。