日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

【控制】《多智能体系统的协同群集运动控制》陈杰老师-第2章-连通性保持条件下多智能体系统群集运动控制

發布時間:2025/4/5 windows 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【控制】《多智能体系统的协同群集运动控制》陈杰老师-第2章-连通性保持条件下多智能体系统群集运动控制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第1章回到目錄第3章

第2章-連通性保持條件下多智能體系統群集運動控制

    • 2.1 研究背景
    • 2.2 問題描述
    • 2.3 領航跟隨群集運動控制律
          • 控制協議 (2.2)
            • 符號函數 sgn(·)
            • 人工勢場函數 (Artificial Potential Field)
            • 流言 (Gossip) 算法
            • 拍賣決策算法
    • 2.4 穩定性分析
            • 拉薩爾不變集原理(La Salle's Invariance Principle)
    • 2.5 仿真和實驗
    • 2.5.1 數值仿真
    • 2.5.2 實物實驗
    • 2.6 結論
    • Ref

2.1 研究背景

2.2 問題描述

x˙i=viv˙i=ui,i=1,2,?,N(2.1)\dot{x}_i = v_i \\ \dot{v}_i = u_i, \quad i = 1, 2, \cdots, N \tag{2.1}x˙i?=vi?v˙i?=ui?,i=1,2,?,N(2.1)

2.3 領航跟隨群集運動控制律

控制協議 (2.2)

每個跟隨者 iii 設計有界群集控制協議如下:
ui=?∑j∈Nij≠l?xiVij(∥xij∥)?hi?xiVil(∥xil∥)?α∑j∈Niaij{sgn[∑k∈Nik≠laik(vi?vk)+hi(vi?vl)]}+α∑j∈Niaij{sgn[∑k∈Njk≠lajk(vj?vk)+hi(vj?vl)]}(2.2)u_i = -\sum_{\underset{j\ne l}{j\in \mathcal{N}_i}} \nabla_{x_i} V_{ij}(\|x_{ij}\|) - h_i \nabla_{x_i} V_{il}(\|x_{il}\|) \\ -\alpha \sum_{j\in\mathcal{N}_i} a_{ij} \left\{ \text{sgn}\left[ \sum_{\underset{k\ne l}{k\in \mathcal{N}_i}} a_{ik} (v_i - v_k) + h_i(v_i - v_l) \right] \right\} \\ +\alpha \sum_{j\in\mathcal{N}_i} a_{ij} \left\{ \text{sgn}\left[ \sum_{\underset{k\ne l}{k\in \mathcal{N}_j}} a_{jk} (v_j - v_k) + h_i(v_j - v_l) \right] \right\} \tag{2.2}ui?=?j?=ljNi????xi??Vij?(xij?)?hi??xi??Vil?(xil?)?αjNi??aij???????sgn????k?=lkNi???aik?(vi??vk?)+hi?(vi??vl?)??????????+αjNi??aij?????????sgn?????k?=lkNj???ajk?(vj??vk?)+hi?(vj??vl?)?????????????(2.2)

符號函數 sgn(·)

符號函數 sgn(?)\text{sgn}(\cdot)sgn(?)
sign(x)或者Sign(x)叫做符號函數,在數學和計算機運算中,其功能是取某個數的符號(正或負):
當x>0,sign(x)=1;
當x=0,sign(x)=0;
當x<0, sign(x)=-1;
在通信中,sign(t)表示這樣一種信號:
當t≥0,sign(t)=1; 即從t=0時刻開始,信號的幅度均為1;
當t<0, sign(t)=-1;在t=0時刻之前,信號幅度均為-1

sign
Sign 函數(符號函數)全頁折疊
語法:sign(x)
說明:
Y = sign(x) 返回與 x 大小相同的數組 Y,其中 Y 的每個元素是:
1,前提是 x 的對應元素大于 0。
0,前提是 x 的對應元素等于 0。
-1,前提是 x 的對應元素小于 0。
x./abs(x),前提是 x 為復數。
這里參考:Matlab

人工勢場函數 (Artificial Potential Field)

人工勢場函數


綜上,給出 VijV_{ij}Vij? 的具體形式如下:
Vij(∥xij∥)=(∥xij∥?d)2(R?∥xij∥)∥xij∥+d2(R?∥xij∥)c1+ψmax?+∥xij∥(∥xij∥?d)2(R?∥xij∥)+∥xij∥(R?d)2c2+ψmax?(2.6)\begin{aligned} V_{ij}(\|x_{ij}\|) = \frac{(\|x_{ij}\|-d)^2(R - \|x_{ij}\|)}{\|x_{ij}\| + \frac{d^2 (R-\|x_{ij}\|)}{c_1+\psi_{\max}}} \\ +\frac{\|x_{ij}\| (\|x_{ij}\|-d)^2}{(R-\|x_{ij}\|) + \frac{\|x_{ij}\|(R-d)^2}{c_2+\psi_{\max}}} \end{aligned}\tag{2.6}Vij?(xij?)=xij?+c1?+ψmax?d2(R?xij?)?(xij??d)2(R?xij?)?+(R?xij?)+c2?+ψmax?xij?(R?d)2?xij?(xij??d)2??(2.6)


流言 (Gossip) 算法

流言 (Gossip) 算法

拍賣決策算法

拍賣決策算法

2.4 穩定性分析

拉薩爾不變集原理(La Salle’s Invariance Principle)

拉薩爾不變集原理(La Salle’s Invariance Principle):對于不依賴于時間的系統(autonomous system) x˙=f(x)\dot{x}=f(x)x˙=f(x),其中 f(x)f(x)f(x) 連續,并且 V(x)V(x)V(x) 具有對 xxx 一階連續偏導。如果
1.在某個區域 Ωl\Omega_lΩl?V(x)<l(l>0)V(x)<l(l>0)V(x)<l(l>0) ,也就是在 V(x)V(x)V(x) 該區域內有上界;
2.并且在該區域內,V˙(x)=?V?xf(x)≤0\dot{V}(x) = \frac{\partial V}{\partial x}f(x)\le0V˙(x)=?x?V?f(x)0
把該區域內所有使得 V˙(x)=0\dot{V}(x)=0V˙(x)=0 的點的集合叫做 RRR,而 MMM 是包含在 RRR 內最大的不變集。如果系統起始于該區域內,那么隨著 t→∞t\rightarrow\inftyt 系統一定會收斂于不變集 MMM 中的點。

2.5 仿真和實驗

2.5.1 數值仿真

精簡版的控制協議



% 數值仿真clear% 領航者參數 ul(:,1) = [5 2]';% 跟隨者參數 PXf1(:,1)= 3; PYf1(:,1)=-2; VXf1(:,1)= 0; VYf1(:,1)= 0; PXf2(:,1)= 6; PYf2(:,1)= 4; VXf2(:,1)= 0; VYf2(:,1)= 0; PXf3(:,1)=-5; PYf3(:,1)=-5; VXf3(:,1)= 0; VYf3(:,1)= 0; PXf4(:,1)=-4; PYf4(:,1)= 3; VXf4(:,1)= 0; VYf4(:,1)= 0;PX = [PXf1 PXf2 PXf3 PXf4]'; PY = [PYf1 PYf2 PYf3 PYf4]';VX = [VXf1 VXf2 VXf3 VXf4]'; VY = [VYf1 VYf2 VYf3 VYf4]';% 系統關系 L = [ 3 -1 -1 -1;-1 3 -1 -1;-1 -1 3 -1;-1 -1 -1 3;];% 時間參數 tbegin = 0; tfinal = 60; dT = 0.1; T(:,1) = 0; % 計算次數 times = (tfinal - tbegin) / dT;for time = 1:1:times% 記錄時間T(:, time+1) = T(:, time) + dT;% 領航者軌跡ul(:,time) = [5 5]' -3 * cos( (T(:,time)+20)*pi/40 ) * [1 0]'...-3 * sin( (T(:,time)+20)*pi/40 ) * [0 1]';% 跟隨者軌跡alpha = 1;beta = 0.01; ufX = (alpha * ((-L) * PX(:,time) - (PX(:,time)-ul(1,time) - 0.1))...+ beta * (-L) * VX(:,time));VX(:,time+1) = ufX;PX(:,time+1) = PX(:,time) + dT * VX(:,time+1); % 更新ufY = (alpha * ((-L) * PY(:,time) - (PY(:,time)-ul(2,time)))...+ beta * (-L) * VY(:,time));VY(:,time+1) = ufY;PY(:,time+1) = PY(:,time) + dT * VY(:,time+1); % 更新 end% 繪制圖像 % figure(1) % plot3(T(:,1:times), ul(1,1:times), ul(2,1:times)); % xlabel('T'); % ylabel('X'); % zlabel('Y');figure(2) subplot(2,1,1); plot3(T(:,1:times),PX(1,1:times),PY(1,1:times),...T(:,1:times),PX(2,1:times),PY(2,1:times),...T(:,1:times),PX(3,1:times),PY(3,1:times),...T(:,1:times),PX(4,1:times),PY(4,1:times),...T(:,1:times),ul(1,1:times),ul(2,1:times), 'linewidth',1.5); legend('f1','f2','f3','f4', 'L'); xlabel('T'); ylabel('X'); zlabel('Y'); title('Position'); grid onsubplot(2,1,2); plot3(T(:,1:times),VX(1,1:times),VY(1,1:times),...T(:,1:times),VX(2,1:times),VY(2,1:times),...T(:,1:times),VX(3,1:times),VY(3,1:times),...T(:,1:times),VX(4,1:times),VY(4,1:times),'linewidth',1.5); legend('f1','f2','f3','f4'); xlabel('T'); ylabel('X'); zlabel('Y'); title('Speed'); grid onu1 = - (Deltaxi*V(x1-x2) + Deltaxi*V(x1-x3) + Deltaxi*V(x1-x4))...- alpha * L(1,2) * sign( L(1,2)*V(v1-v2) + L(1,3)*V(v1-v3) + L(1,4)*V(v1-v4))...- alpha * L(1,3) * sign( L(1,3)*V(v1-v2) + L(1,3)*V(v1-v3) + L(1,4)*V(v1-v4))...- alpha * L(1,4) * sign( L(1,2)*V(v1-v2) + L(1,3)*V(v1-v3) + L(1,4)*V(v1-v4))...+ alpha * L(1,2) * sign( L(2,1)*V(v2-v1) + L(2,4)*V(v2-v4))...+ alpha * L(1,3) * sign( L(3,1)*V(v3-v1))...+ alpha * L(1,4) * sign( L(4,1)*V(v4-v1) + L(4,2)*V(v4-v2));u2 = - (Deltaxi*V(x2-x1) + Deltaxi*V(x2-x4))...- alpha * L(2,1) * sign( L(2,1)*V(v2-v1) + L(2,4)*V(v2-v4))...- alpha * L(2,4) * sign( L(2,1)*V(v2-v1) + L(2,4)*V(v2-v4))...+ alpha * L(2,1) * sign( L(1,2)*V(v1-v2) + L(1,3)*V(v1-v3) + L(1,4)*V(v1-v4))...+ alpha * L(2,4) * sign( L(4,1)*V(v4-v1) + L(4,2)*V(v4-v2));u3 = - (Deltaxi*V(x3-x1))...- alpha * L(3,1) * sign( L(3,1)*V(v3-v1))...+ alpha * L(3,1) * sign( L(1,2)*V(v1-v2) + L(1,3)*V(v1-v3) + L(1,4)*V(v1-v4));u4 = - (Deltaxi*V(x4-x1) + Deltaxi*V(x4-x2))...- alpha * L(4,1) * sign( L(4,1)*V(v4-v1) + L(4,2)*V(v4-v2))...- alpha * L(4,2) * sign( L(4,1)*V(v4-v1) + L(4,2)*V(v4-v2))...+ alpha * L(4,1) * sign( L(1,2)*V(v1-v2) + L(1,3)*V(v1-v3) + L(1,4)*V(v1-v4))...+ alpha * L(4,2) * sign( L(2,1)*V(v2-v1) + L(2,4)*V(v2-v4));xi=1; xj=2; xl=3; t = xi-xj; V(xi-xj)Vij = V(xi-xj); Vil = V(xi-xl);% 時間參數 tbegin = 0; tfinal = 2; dT = 0.01; T(:,1) = tbegin; % 計算次數 times = (tfinal - tbegin) / dT;for time = 1:1:times % 記錄時間T(1, time+1) = T(1, time) + dT;T(2, time) = V(T(1, time)); endplot(T(1,:),T(2,:))function Vij = V(xij)% 參數d = 0.5;R = 1;c1 = 9.7;c2 = 9.7;psiMax = 50.3;% 運算程序Vij = ( (xij-d)^2 * (R-xij) )/( xij+d^2*(R-xij)/(c1+psiMax) )...+ ( xij*(xij-d)^2 )/( (R-xij)+xij*(R-d)^2/(c2+psiMax) ); endfunction ui = ui(Vij)% 參數L = [3 -1 -1 -1;-1 2 0 -1;-1 0 -1 0;-1 -1 0 2;];Ll= [1 1 0 0]'; Deltaxi = 1;alpha = 0.5;for i=1:length(L)Sum1 = 0;Sum2 = 0;Sum3 = 0;Sum4 = 0;Sum5 = 0;for j=1:length(L)if L(i,j)==-1Sum1 = Sum1 + Deltaxi * V(xi-xj);Sum2 = Sum2 + L(i,j) * sign();Sum3 = Sum3 + L(i,j) * sign();endendendui = -sum * Delta_xi * Vij - hi * Delta_xi * Vil ...end

記錄個常見錯誤


此時出現這種情況,調整步長以及收斂參數,即可。

解決此問題需要記錄測試實驗,先做個實驗記錄表格

編號參數1—步長參數2—采樣時間參數3—梯度更新正負號結果
1100.1+

2.5.2 實物實驗

2.6 結論

Ref

[202]DISTRIBUTED LEADER-FOLLOWER FLOCKING CONTROL

[203]Chen F, Can Y, Ren W. Distributed Average Tracking of Multiple Time-Varying Reference Signals With Bounded Derivatives. IEEE Transactions on Automatic Control, 2012, 57(12): 3169-3174.

https://blog.csdn.net/weixin_36815313/article/details/112169354

[4]Flocking for multi-agent dynamic systems: algorithms and theory

[22]CONNECTIVITY PRESERVING FLOCKING WITHOUT
VELOCITY MEASUREMENT

[23]Flocking of multi-agent systems with a dynamic virtual leader

[24]Rendezvous of multiple mobile agents with preserved network connectivity

[25]Flocking of Multi-Agents With a Virtual Leader

總結

以上是生活随笔為你收集整理的【控制】《多智能体系统的协同群集运动控制》陈杰老师-第2章-连通性保持条件下多智能体系统群集运动控制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。