ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

RBF神经网络优化模糊滑模控制在USV航向控制中的应用与仿真

RBF神经网络优化模糊滑模控制在USV航向控制中的应用与仿真 简介基于RBF神经网络优化模糊规则的USV自适应模糊滑模控制是一篇期刊论文PDF面向无人艇运动控制与智能控制算法研究人员也适用于相关方向的研究生与工程师旨在解决USV航向控制中由模型不确定性和外界扰动引起的抖振问题。论文以Lyapunov稳定性理论为基础设计滑模控制律利用具有万能逼近性能的模糊系统逼近USV系统的未知非线性项与外界干扰项再引入RBF神经网络对模糊隶属函数和规则进行在线学习与调整增强模糊逼近能力并结合Backstepping方法使闭环系统获得更强鲁棒性。内容同时给出Nomoto模型下的仿真验证读者可以从滑模面构造、模糊RBF网络结构、参数自适应更新公式逐层理解算法推导与仿真过程也可将此思路迁移到其他非线性系统自适应控制中。资源包仅含1个PDF文件约850KB已有219人浏览学习。1. 把 RBF 神经网络塞进模糊滑模控制这份论文的打开方式先说结论这篇发表在《广州航海学院学报》2019 年第 4 期的论文核心就一句话——用 RBF 神经网络去在线学习模糊系统的隶属函数和模糊规则再用优化后的模糊系统去逼近 USV 航向控制里的模型不确定项和外界干扰项最终把滑模控制恼人的抖振压下去。对于做无人艇、船舶航向控制或者正在研究滑模和智能算法怎么结合的人来说这份资源的价值不在于给你一组现成的 PID 参数而在于它把「滑模面设计 → 模糊系统逼近 → RBF 在线优化 → MATLAB 仿真验证」这条链路完整走了一遍。看完你能直接用里面的模型参数和控制律展开自己的仿真实验也能明白智能控制方法到底在哪个环节起作用、哪个环节是凑出来的玄学。2. 读透论文的前提USV 模型、滑模控制律和抖振从哪里来2.1 蓝信号号 Nomoto 模型仿真对象是怎么定的论文选用的是「蓝信号」号测试船的 Nomoto 数学模型设定航速 8.5 kn。模型的参数如下K 1502.26T 0.90503二阶非线性系数 γ 0.001。这里的 Nomoto 模型不是教科书里最基础的一阶线性形式而是带了一个 γ·r³ 非线性项的一阶形式系统函数写成 f(x) 1/T·(x² γx³)控制增益函数 g K/T。这个细节很关键。很多人在复现时直接拿 K/T 当成常值增益忽视了 f(x) 里那个 x² 和 γx³ 项。论文之所以选这个模型是因为 USV 在实际航行中水动力系数随航速和漂角变化模型本身是不确定的而 γ 项正好模拟了这种非线性摄动。干扰项取的是 τ 0.1·sin(t)这是一个有界正弦扰动用来模拟风、浪、流对舵效的干扰。2.2 滑模面设计与控制律推导两个核心公式的物理含义论文选了带滑模面的设计方式。滑模面函数写成s e⁽ⁿ⁻¹⁾ c₁e⁽ⁿ⁻²⁾ … cₙ₋₁e其中 e x − x_d 为航向跟踪误差系数 c₁ 到 cₙ₋₁ 满足 Hurwitz 多项式条件。对于单输出航向控制系统n 2滑模面就是 s ė c·e。这里 c 的取值直接决定误差收敛的快慢和超调量后面避坑章节我会专门讲。控制律的推导走的是 Lyapunov 稳定性框架。论文公式3给出滑模控制律的形式u(t) (1/g(x,t))·(−f(x,t) − Σcᵢd⁽ⁱ⁾ x_d⁽ⁿ⁾ − ε·sign(s))其中 ε·sign(s) 是符号函数项也是滑模控制鲁棒性的来源更是抖振的直接根源。这个式子表明了滑模控制的本质用一个强符号项把系统状态「拽」到滑模面上然后沿滑模面滑向平衡点。2.3 抖振问题为什么滑模控制天生就带这个毛病符号函数 sign(s) 在滑模面两侧做高频切换理想情况下切换频率无穷大控制输入才严格平滑但实际执行器舵机、推进器有响应带宽限制切换频率不可能无限高于是控制输入就呈现高频小幅振荡这就是抖振。论文引用的思路是这样的常规滑模控制对参数摄动和外界扰动具有不变性但抖振难以消除模糊控制和神经网络控制可以逼近未知函数却不能完全替代滑模的鲁棒性。所以它们的组合方式是——滑模负责保证稳定性模糊系统负责逼近 f、g 和外界干扰 d让符号函数项的系数不再是一个固定大常数而是一个能随干扰变化的逼近值抖振自然就被削掉了。理解这个分工后面看控制律公式6就不会懵。3. 模糊系统逼近不确定项四层网络结构里每个节点干的事3.1 为什么用模糊系统去逼近而不是直接莽USV 运动系统的不确定性集中在三个方面内部函数 f(x,t)、控制增益 g(x,t)、外界干扰 τ。论文的处理方式是让模糊系统分别去逼近这三个量输出记为 f̂、ĝ 和 d̂。模糊系统之所以被选中是因为它的万能逼近性能只要模糊集划分得足够细、规则足够多模糊系统可以在紧集上以任意精度逼近连续函数。但通用模糊控制的死穴在于它的隶属函数均值和宽度以及模糊规则表通常要靠经验提前设计上了船之后没法在线调整。论文解决这个问题的办法就是往模糊系统里接一个 RBF 神经网络让它在线学习边跑边改隶属函数参数和规则权重。3.2 四层结构的输入输出关系这里给出论文模糊 RBF 神经网络的四层结构参数表方便照着搭网络层级节点的作用算法表达输入层接收误差 e 和误差变化率 ėf₁(i) xᵢ模糊化层高斯隶属函数划分输入模糊集f₂(j) exp(−(f₁(i) − cⱼ)²/bⱼ²)模糊推理层对输入信号做乘积运算相当于规则匹配度f₃(j) Π f₂(i)输出层加权和输出逼近值f₄(k) Σ wⱼ·f₃(j)这里 c 是高斯函数的均值对应模糊集合的中心位置b 是标准差对应模糊集合的覆盖宽度。网络结构取 2-4-1意思是 2 个输入节点、模糊化层 4 个节点、输出 1 个节点。对应到模糊划分上就是 e 和 ė 各划分为 2 个模糊集。论文公式10里那个乘法操作实际效果是只有当两个输入的隶属度同时较高时这条规则的触发强度才大——这正是模糊推理里 AND 运算的神经网络实现方式。3.3 高斯隶属函数参数怎么初始化这个部分论文没有明说但根据四层结构表达式可以反推。模糊化层的高斯函数写成f₂(j) exp(−(f₁(i) − cⱼ)² / bⱼ²)c 的初始值要覆盖输入变量的取值范围比如 e 在 [−10°, 10°]ė 在 [−5°/s, 5°/s]那 c 就均匀撒在这些区间里。b 的初始值不宜太小太小会导致高斯函数峰值过于尖锐输入稍微偏离中心隶属度就掉到接近 0规则失效b 也不宜太大太大会让所有模糊集几乎重叠规则失去区分度。我一般会把 b 初始取 0.51.5 之间再根据训练时的误差曲线去微调。这一条后面避坑部分还会再展开。4. 把 RBF 神经网络接进模糊系统在线学习优化模糊规则的完整流程4.1 RBF 输出、逼近误差和监督信号怎么定义模糊 RBF 网络的逼近对象是滑模控制律里三个不确定项网络结构为 2-4-1输入是 e 和 ė输出记为 φ(t)。理想输出记为 φ*(t)逼近误差定义为e_net(t) φ*(t) − φ(t)目标函数取 E 0.5·e_net²(t)。这里注意一个细节φ*(t) 是理想输出但实际控制问题里 f、g、d 的真值是未知的所以监督信号并不是直接拿真值去对。论文的处理方式是把整个闭环系统的跟踪误差 e 和控制律的结构当作间接监督信号——滑模面 s 收敛等价于 φ(t) 逼近了理想值。读过滑模控制的人应该能理解这套逻辑滑模面 s 的动态方程里包含了 f、g、d只要 s 收敛就说明网络输出和真实值之间的误差已经被 Lyapunov 稳定性兜住了。4.2 梯度下降学习算法三组参数的更新公式论文采用梯度下降法修正可调参数三组参数分别是输出层权值 w、隶属函数均值 c、隶属函数标准差 b。这里直接给出核心更新公式和 MATLAB 代码实现。输出层权值更新Δw(t) η·e_net(t)·f₃w(t) w(t−1) Δw(t) α·(w(t−1) − w(t−2))隶属函数均值更新Δc(t) η·e_net(t)·w·f₃·(x − c)/b²c(t) c(t−1) Δc(t) α·(c(t−1) − c(t−2))隶属函数标准差更新Δb(t) η·e_net(t)·w·f₃·(x − c)²/b³b(t) b(t−1) Δb(t) α·(b(t−1) − b(t−2))其中 η 是学习速率α 是动量因子。添加动量项的意义在于如果上一步更新方向和当前方向一致就加速收敛避免陷入局部极小或者振荡。4.3 仿真主程序的 MATLAB 核心代码下面是复现时搭建仿真循环的核心代码网络结构按 2-4-1 配置% 参数初始化 c [-5 5; -2 2]; % 每个输入变量的模糊集中心, 2x2矩阵 b [1 1; 1 1]; % 高斯隶属函数标准差 w randn(4, 1) * 0.1; % 输出层权重, 模糊推理层有4个节点 eta 0.05; % 学习速率 alpha 0.1; % 动量因子 % 仿真主循环 for k 3:T % 误差及误差变化率 e psi(k) - psi_d(k); edot (e - e_prev) / dt; % 输入层 x [e; edot]; % 模糊化层: 高斯函数 for j 1:2 for i 1:2 node_out(i, j) exp(-(x(i) - c(i, j))^2 / b(i, j)^2); end end % 模糊推理层: 乘积运算 f3(1) node_out(1, 1) * node_out(2, 1); f3(2) node_out(1, 1) * node_out(2, 2); f3(3) node_out(1, 2) * node_out(2, 1); f3(4) node_out(1, 2) * node_out(2, 2); % 输出层: 加权和 phi_hat sum(w .* f3); % 计算网络逼近误差 e_net phi_target - phi_hat; % 梯度下降更新权重、均值、标准差 w w eta * e_net * f3 alpha * (w - w_prev); c c eta * e_net * w .* f3 .* (x - c) ./ b.^2; b b eta * e_net * w .* f3 .* (x - c).^2 ./ b.^3; end代码逻辑说明每个控制周期先算误差 e 和误差变化率 edot作为网络输入经过模糊化层的高斯函数计算隶属度模糊推理层做乘积得到规则触发强度输出层加权求和得到当前网络的逼近输出 φ_hat然后用理想值和 φ_hat 的差值 e_net 去驱动三组参数的梯度下降更新。参数说明c(i,j) 表示第 i 个输入的第 j 个模糊集中心b(i,j) 是相应的标准差eta 和 alpha 是学习速率和动量因子它们决定了参数更新的步长和平滑程度。4.4 控制律融合网络输出如何进入滑模控制律论文公式6给出了融合后的控制律u(t) (1/ĝ)·(−f̂ − Σcᵢd⁽ⁱ⁾ x_d⁽ⁿ⁾ − d̂·sign(s))注意这里的结构变化原来滑模控制律里固定的 ε·sign(s) 变成了 d̂·sign(s)其中 d̂ 是模糊 RBF 网络对外界干扰的实时逼近值。这样一来符号项系数不再是拍脑袋定的常数而是跟随干扰变化的自适应量。干扰大时 d̂ 大提供足够的鲁棒性干扰小时 d̂ 小切换幅度随之减小抖振就被削弱了。5. 避坑记录复现这篇论文时的四个典型翻车现场5.1 现象一航向跟踪曲线出现明显超调稳定时间远超 120 秒原因滑模面系数 c 选取不当。论文的 Nomoto 模型开环增益 K 高达 1502.26这意味着舵角输入对航向的影响非常大c 取小了趋近速度慢取大了初始控制量过猛都会引起超调。解决按 Hurwitz 条件n2 时 c 取正值即可但实际操作中要结合模型时间常数 T 来试我在仿真时从 c0.5 逐步加到 c5到 c1 左右曲线无超调且稳定时间约 120s。5.2 现象二控制输入曲线仍然能看到高频抖振原因学习速率 η 和动量因子 α 不匹配。η 太小时网络逼近速度跟不上干扰变化d̂ 的估计始终滞后符号项系数偏大α 太大时参数更新出现振荡逼近误差发散。解决先固定 α0.1把 η 从 0.1 往下降观察逼近误差曲线是否平滑收敛。论文的干扰是 0.1·sin(t)周期约 6.28s网络至少在一个干扰周期内完成参数调整所以 η 不能太小。5.3 现象三RBF 参数初始化不当逼近误差完全不收敛原因高斯函数的中心 c 初始值没有覆盖输入变量的实际分布范围。比如航向误差初始比较大而 c 全初始化在零点附近高斯函数输出几乎为 0网络进入瘫痪状态。解决初始化前先估计输入范围e 在 ±10° 左右ė 在 ±5°/s 左右c 按这个范围均匀取点b 初始取 1不要取小数。5.4 现象四检索和阅读时被论文中的 OSV/USV 混用绕晕原因论文题目里是 USV摘要里写的是 OSV正文又用 USV。这是排版或翻译的问题实际指的是同一个对象不影响模型和控制律理解。解决以正文和关键词为准搜索时用 USV 和 Unmanned Surface Vehicle 两个词都能找到。6. 验证方法从四条仿真曲线判断算法真的在工作6.1 四条曲线分别证明什么仿真结果给的是四类曲线。图 3 是航向连续跟踪曲线代表控制性能的最终效果图 4 是控制输入响应曲线证明抖振是否被抑制图 5、图 6、图 7 分别是模糊 RBF 网络对状态函数 f、控制增益 g、外界干扰 d 的逼近误差曲线代表网络在线学习的收敛性。复现时判断标准如下航向曲线无超调、无稳态误差稳定时间和论文给出的 120s 同量级控制输入曲线平滑连续没有高频小锯齿三条逼近误差曲线都收敛到零附近且收敛过程没有大幅振荡。6.2 改模型参数和干扰项验证鲁棒性把干扰从 0.1·sin(t) 改成 0.1·sin(0.5t) 0.05·cos(2t)网络应该在一到两个干扰周期内重新收敛航向跟踪曲线仍应无超调。再把 K 和 T 偏移 20% 重新仿真观察控制输入是否依然平滑这是检验模糊 RBF 网络在线补偿能力的好方法。6.3 复现循环的收尾习惯从那以后每次复现这类智能控制论文我都强制走一遍流程先照原参数跑通拿到 baseline再逐项修改干扰、模型参数、网络初始参数做鲁棒性测试最后才算吃透了这篇论文。这个过程比单纯跑通代码更有价值希望帮到你。本文还有配套的精品资源点击获取
返回列表