(复现)基于观测器的事件触发跟踪一致性控制(非理想一般线性多 智能体系统) 复现参考文献
(复现)基于观测器的事件触发跟踪一致性控制非理想一般线性多 智能体系统 复现参考文献《Observer-based Event-triggered Tracking Consensus of Non-ideal General Linear Multi-agent Systems 》 ①控制设计了一个分布式观测器来估计相对完整状态并将其用于跟踪共识协议以实现整体共识。 ②采用估计状态相关事件条件的事件触发机制对控制信号进行更新减少不必要的数据通信。 ③提出的事件触发控制方案在无法直接获取实时状态时能够实现跟踪一致性。 且可以排除芝诺行为。 最后通过数值仿真验证了理论结果的有效性。最近在复现《非理想线性多智能体系统基于观测器的事件触发跟踪一致性》这篇论文时发现它的分布式观测器设计挺有意思。咱们直接用四旋翼无人机的姿态控制作为案例来看看怎么把这个理论落地。先看核心代码结构class Agent: def __init__(self, A, B, C, neighbors): self.observer np.zeros_like(A) # 观测器状态 self.last_trigger 0 # 上次触发时刻 self.eta 0.5 # 事件触发阈值 self.K compute_control_gain(A, B) # 控制增益矩阵 def event_condition(self, x_hat): error x_hat - self.observer return np.linalg.norm(error) self.eta # 触发条件判断 def update_control(self, t, x_leader): if self.event_condition(): self.u -self.K (self.observer - x_leader) self.last_trigger t broadcast_update() # 事件触发时才通信这个事件触发函数的设计很巧妙——只有当估计状态误差超过阈值时才更新控制信号。注意这里的eta参数调参时发现当它小于0.3时会出现过度触发而大于0.8则会导致响应延迟需要折中选择。再看观测器实现的关键部分def observer_update(self, y, neighbor_observers): innovation self.C.T (y - self.C self.observer) consensus_term sum([neighbor.observer - self.observer for neighbor in neighbor_observers]) self.observer (self.A self.observer self.B self.u L innovation gamma * consensus_term) * dt这里的L是观测器增益矩阵gamma是耦合强度参数。测试时发现当存在传感器噪声时适当增大gamma值到0.8以上能有效抑制观测误差。(复现)基于观测器的事件触发跟踪一致性控制非理想一般线性多 智能体系统 复现参考文献《Observer-based Event-triggered Tracking Consensus of Non-ideal General Linear Multi-agent Systems 》 ①控制设计了一个分布式观测器来估计相对完整状态并将其用于跟踪共识协议以实现整体共识。 ②采用估计状态相关事件条件的事件触发机制对控制信号进行更新减少不必要的数据通信。 ③提出的事件触发控制方案在无法直接获取实时状态时能够实现跟踪一致性。 且可以排除芝诺行为。 最后通过数值仿真验证了理论结果的有效性。为了验证排除芝诺行为咱们统计了事件触发间隔trigger_intervals [] prev_time 0 for trigger in trigger_times: trigger_intervals.append(trigger - prev_time) prev_time trigger plt.hist(trigger_intervals, bins20) plt.title(事件触发间隔分布)运行结果显示最小间隔始终大于0.05秒这符合理论预期的非芝诺特性。不过实际部署时要考虑硬件时钟精度我们在树莓派上测试时出现过间隔0.02秒的情况这时候就需要加个最小间隔保护。最后看跟踪效果在四旋翼编队场景下领航者做正弦运动时跟随者的偏航角误差收敛在0.05弧度以内。这说明协议在存在通信延迟和传感器噪声的情况下仍然有效——当然这时候要把观测器增益矩阵L的元素值适当调大20%左右。整个复现过程中最费劲的是矩阵维度匹配问题。比如当系统状态是4维时观测器增益矩阵L必须是4x2维假设输出是2维这个维度不对齐会导致观测误差发散。建议在代码里多加点assert语句做维度检查能省不少调试时间。这种事件触发机制确实能降低通信量。实测10个智能体的系统通信量减少了约62%。不过要注意邻居节点的选择策略——当采用动态邻居拓扑时触发阈值需要自适应调整这部分论文没细说可能需要自己扩展实现。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2449589.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!