YAOTU INSIGHTS

【多智能体协同】线性多智能体分布式包容控制(Containment Control,李忠奎 2011 经典文献复现)MATLAB 代码

【多智能体协同】线性多智能体分布式包容控制(Containment Control,李忠奎 2011 经典文献复现)MATLAB 代码
✅作者简介热爱科研的Matlab仿真开发者擅长数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 往期回顾关注个人主页Matlab科研工作室 关注我领取海量matlab电子书和数学建模资料个人信条格物致知,完整Matlab代码获取及仿真咨询内容私信。 内容介绍大家好今天给大家带来一篇经典协同控制论文的完整 MATLAB 复现代码Zhongkui Li 2011 年发表的带一般线性动力学、多领导者的多智能体分布式包容控制。包容控制是协同控制里非常重要的分支区别于一致性consensus、编队控制formation它的目标是存在多个领导者跟随者最终收敛到所有领导者张成的凸包内部也就是被领导者 “包围”。这套代码是该经典论文的算例 1连续时间静态包容控制器。利用 LMI 求解增益矩阵结合图拉普拉斯矩阵构建分布式协议使用 ode45 求解闭环系统微分方程绘制状态收敛曲线。不管是做硕士开题、课程大作业、论文基线对比这篇都是绕不开的经典文献。很多刚入门协同控制的同学容易混淆几个概念一致性所有智能体状态趋于同一个值一般单领导者编队控制所有智能体保持固定相对位置包容控制多个领导者跟随者收敛到领导者构成的凸包之中典型场景无人车队围控、无人机集群包围护送、机器人围捕、移动传感器区域覆盖。一、项目整体概述文献背景论文标题Distributed containment control of multi-agent systems with general linear dynamics in the presence of multiple leaders 作者Zhongkui Li2011是包容控制领域里程碑式的工作。 这篇工作最大贡献把包容控制从简单的一阶 / 二阶积分器智能体推广到一般线性动力学的智能体利用代数图论 Lyapunov 稳定性 LMI 给出控制器存在的充分条件给出耦合增益的下界判据。本代码实现连续时间静态状态反馈包容控制器。 系统组成智能体总数9 个其中3 个领导者6 个跟随者每个智能体是 6 维一般线性动力学状态导数 A 矩阵 × 状态 B 矩阵 × 控制输入通信拓扑分为跟随者内部耦合、跟随者到领导者的耦合控制协议为分布式静态反馈仅依赖邻居信息核心步骤LMI 求解正定矩阵 P计算反馈增益 F选取耦合增益 c 大于临界阈值保证闭环稳定ode45 仿真闭环动力学验证跟随者收敛到领导者凸包。✅ 核心功能清单定义一般线性动力学矩阵 A、B构造分块拉普拉斯矩阵 L1、L2 以及全局通信拉普拉斯矩阵 L对跟随者子图拉普拉斯 L1 求特征值计算耦合增益临界阈值 c_th基于 LMI 求解 Lyapunov 正定矩阵 P进而得到状态反馈增益 F搭建闭环系统 ODE 方程ode45 进行连续时间仿真绘图区分跟随者蓝色虚线、领导者红色实线展示各维度状态收敛特性。⚠️ 方案特点与局限直接用作论文创新点优势理论完备对一般线性动力学适用不需要智能体是积分器分布式协议只使用邻居信息不需要全局通信局限 1静态状态反馈依赖全部状态可测当状态不可测时需要设计观测器型包容控制局限 2通信拓扑是固定无向图不支持切换拓扑、时变通信局限 3没有考虑通信时延、噪声、外部扰动局限 4连续时间框架不适合嵌入式数字平台直接落地需要离散化局限 5控制器设计依赖 LMI 求解当智能体数量、状态维度变大时LMI 计算负担上升。这些是该经典基线的固有假设也是后续很多改进文献的切入点输出反馈包容、时滞包容、切换拓扑、事件触发包容、自适应包容。二、代码逐段解析1. 基础初始化与动力学矩阵clc;clear;close all;global A B L1 L2A[0 0 0 1 0 0; 0 0 0 0 1 0; 0 0 0 0 0 1; 0 0 -0.2003 -0.2003 0 0; 0 0 0.2003 0 -0.2003 0; 0 0 0 0 0 -1.6129];B[ 0 0; 0 0; 0 0; 0.9441 0.9441; 0.9441 0.9441;-28.7079 28.7079];A、B 是单智能体线性系统状态矩阵与输入矩阵每个智能体 6 维状态2 维控制输入属于一般线性系统不再局限于一阶、二阶积分器。2. 通信拉普拉斯矩阵构造包容控制最关键部分包容控制的拉普拉斯矩阵会做分块这是和普通一致性最大区别。 全局拓扑分为跟随者之间的连接、跟随者到领导者的连接领导者之间没有通信耦合。L1[ 3 0 0 -1 -1 -1 ; -1 1 0 0 0 0 ; -1 -1 2 0 0 0 ; -1 0 0 2 0 0 ; 0 0 0 -1 2 0; 0 0 0 0 -1 2];L2[0 0 0; 0 0 0; 0 0 0; 0 0 -1; 0 -1 0; -1 0 0];L16 个跟随者构成子图的拉普拉斯矩阵L2跟随者指向 3 个领导者的耦合矩阵 全局拉普拉斯 L 是 9×9 矩阵前 6 行 6 列是跟随者内部右下角 3×3 为零领导者没有输入状态自主演化。论文给出稳定条件耦合增益 c 必须大于等于 c_th 1 除以 L1 最小特征值。[V,D]eig(L1);c_th1/min(diag(D)); % c_th1.2176, cc_th,取c2代码选取 c2满足下界条件保证耦合部分稳定。这里一个高频考点包容控制要求对于每个跟随者都存在一条到至少一个领导者的通信路径也就是图条件。这是保证包容收敛的图论前提。3. LMI 求解 Lyapunov 矩阵 P 与反馈增益 Fsetlmis([])Plmivar(1,[6 1]);lmiterm([1 1 1 P],1,A,s);lmiterm([-1 1 1 0],2*B*B);lmiterm([-2 1 1 P],1,1);lmis1 getlmis;[tmin,xfeas] feasp(lmis1);if (tmin 0) disp(Feasible); P dec2mat(lmis1,xfeas,P);else P nan;endglobal FF-B*inv(P);这是该论文的核心 LMI 条件。 针对线性系统A,B求解正定矩阵 P满足 A 的转置乘 P P 乘 A - 2 乘 P 乘 B 乘 B 的转置乘 P 0 该不等式保证系统能构造出状态反馈增益 F使得闭环系统稳定。 feasp 是 LMI 工具箱的可行性求解器tmin0 代表存在可行正定解。 得到 P 之后反馈增益 F 负的 B 的转置 乘以 P 的逆矩阵。注意这个 LMI 是论文里针对该静态协议给出的 Lyapunov 条件不是唯一的 LMI 形式不同包容协议 LMI 结构会变化。4. 闭环 ODE 方程function ydotcontain(t,x)c2; global A B F L1 L2a11kron(eye(6),A)c*kron(L1,B*F);a12c*kron(L2,B*F);a22kron(eye(3),A);a21zeros(18,36);ydot[a11 a12; a21 a22]*x;end这里用克罗内克积 kron 搭建大规模闭环系统矩阵前 6 个跟随者跟随者状态导数 (单位矩阵克罗内克 A c 乘 L1 克罗内克 B 乘 F) × 跟随者状态 c 乘 L2 克罗内克 B 乘 F × 领导者状态后 3 个领导者领导者状态导数 (单位矩阵克罗内克 A) × 领导者状态领导者不受跟随者影响独立演化。 总状态维度9 个智能体 × 6 维状态 54 维和主脚本 x2*rand (54,1) 对应。5. 仿真与绘图tspan[0,50];x2*rand(54,1);[t,y]ode45(contain,tspan,x);仿真时长 50s随机初始化所有智能体状态。 绘图逻辑区分i6跟随者蓝色虚线i6领导者红色实线 分别画出 x_i1、x_i2、x_i3 三个状态分量的时序曲线。 仿真结果预期跟随者的状态最终收敛到三个领导者状态张成的凸包里面不会超出领导者的包络范围。三、核心理论解读包容控制原理1. 分布式控制协议论文中跟随者的控制输入形式 u_i F 乘以 邻居求和项 a_ij (x_i - x_j) a_ij 是邻接矩阵元素协议只采集邻居智能体状态属于分布式不需要中心节点收集全局信息。 当邻居包含领导者时差值项就会引入领导者的状态信息驱动跟随者向领导者凸包内部收敛。2. 和一致性的数学区别一致性所有智能体趋于同一个点要求拉普拉斯矩阵有单零特征值 包容控制多个领导者跟随者收敛到领导者凸包L1 可逆是关键条件论文里的核心引理。 L1 可逆这个性质是包容控制稳定性证明的基石也是为什么要单独对 L1 求特征值、算临界耦合增益。3. 稳定性证明思路论文主线图条件每个跟随者存在通往领导者的有向路径对跟随者误差变换把包容问题转化为误差系统的稳定性问题利用 LMI 找到 Lyapunov 矩阵构造 Lyapunov 函数选取足够大的耦合增益 c保证误差系统渐近稳定结论跟随者状态收敛到领导者状态的凸包。一个非常容易踩坑的点领导者本身状态不一定是不动的 在这个代码里领导者和跟随者是相同的 A,B 动力学领导者也会按照 状态导数 A × 状态 演化是动态领导者包容控制不是固定不动的静态目标点这也是该论文的亮点之一。很多入门包容控制是领导者静止而这篇是领导者本身也在运动。四、仿真结果解读运行代码之后会弹出三张图图 1所有智能体第 1 维状态时序图 2所有智能体第 2 维状态时序图 3所有智能体第 3 维状态时序红色实线 3 个领导者蓝色虚线 6 个跟随者。 我们观察收敛趋势领导者按照自身线性动力学自主演化跟随者曲线最终被包裹在领导者的状态曲线之间也就是进入凸包稳态下跟随者不会跑到领导者状态范围之外。对照实验方案写论文直接用调整耦合增益 cc1小于阈值、c2、c5观察是否发散、收敛速度变化修改通信拓扑 L1、L2断开某个跟随者到领导者的通路破坏图条件观察包容失效修改 A 矩阵换成不稳定开环动力学验证 LMI 依然可以镇定闭环增加领导者数量、跟随者数量拓展更大规模集群。五、拓展方向与论文创新点直接使用输出反馈包容当前代码是全状态反馈假设状态全部可测设计状态观测器只利用输出信息时滞包容引入通信时延构造时滞依赖 LMI事件触发包容减少通信频次降低带宽消耗切换拓扑包容通信链路随时间变化自适应包容参数未知情况下自适应控制有限时间包容把渐近收敛改成有限时间收敛离散时间包容把连续协议离散化适配嵌入式控制器抗扰动 H 无穷包容加入外部扰动优化扰动抑制性能。六、写在最后Zhongkui Li 2011 这篇文章是包容控制方向的标杆工作。在它之前大量包容控制工作局限于一阶、二阶积分器智能体这篇把框架推广到任意一般线性动力学基于 LMI 图论给出严谨设计方法后续几乎所有包容控制改进论文都会拿它作为对比基线。这套复现代码完整还原了算例包含图矩阵构造、LMI 控制器求解、克罗内克积搭建大规模系统、ODE 仿真、状态可视化整条链路。对于协同控制方向的同学来说吃透这份代码能同时掌握三块内容代数图论在多智能体中的应用、LMI 线性矩阵不等式、克罗内克积处理大规模耦合系统。区分清楚包容控制、一致性、编队控制是审稿人非常看重的基础概念。很多新手写论文容易混淆三者而这个经典复现刚好可以帮你建立清晰认知。⛳️ 运行结果往期回顾扫扫下方二维码