阻抗控制性能提升后對穩定性有怎樣的影響?如何權衡阻抗控制性能與穩定性的關系?
當阻抗控制性能提升時,往往需要更高的控制增益來實現更快的響應和更小的跟蹤誤差。
這會導致控制系統的穩定性受到挑戰,因為高增益會導致系統出現振蕩或不穩定的情況。因此,需要在性能和穩定性之間進行權衡。
一般來說,權衡性能和穩定性的最好方法是通過系統的頻率響應特性進行分析。在頻率域中,系統的增益和相位可以得到明確的量化,因此可以根據實際要求對控制增益進行優化。
此外,也可以使用一些經典的控制方法,如根軌跡設計或Bode圖設計,來平衡性能和穩定性。最終,選擇合適的方法取決于具體應用場景和系統要求。
阻抗控制一般可以通過一些實驗進行驗證,例如實驗涉及阻抗控制的兩個典型應用領域:機器人與人的穩定和安全交互,以及與未知、剛性但被動環境的接觸。
要求機器人對與剛體動力學、有效載荷或接觸環境相關的模型不確定性具有魯棒性。增強控制方法的魯棒性、性能和通用性。通過輸入變量與輸出變量之間的關系來衡量性能。
雖然交互性能的測量可能隨著系統和任務的不同而變化,但它們最好由控制機器人的行為決定。當機器人被期望管理與幾個不同或不確定性的環境的交互時,根據耦合系統的行為來指定性能(例如,固有頻率、阻尼)可能是不切實際的。
機械阻抗是衡量結構在(諧波)力作用下抵抗運動的程度。阻抗的倒數是導納。它是速度與力的比值。你可以想象用一定的頻率推孩子的秋千。
擺動的導納越低,達到相同的擺動速度所需的力就越大。一個有很高導納的秋千只需要輕輕推一下,孩子就會蕩到天上。
當你用一定的力擊打重袋子(純質量)時,加速度與袋子的質量成正比。
假設袋子像彈簧一樣運動,當你用一定的力擊打袋子時,袋子表面的位移將與袋子材料的剛度成正比,直到拳頭的力和彈簧的力達到平衡。
水里面打拳,則效果圖下圖所示
阻尼力與速度成正比!
通過控制阻抗,通過定義其剛度和阻尼來控制機器人在與環境交互過程中的行為。可以讓它表現得像一個非常松散的彈簧,具有很高的順應性!
當機器人被推時,它會向后移動,直到一段時間后到達它的初始位置。如果我們增加一些阻尼,末端執行器甚至可能在位移后回到它的初始位置,沒有任何振蕩。相反,機器人只會移動,如果環境中有很大的力,如果剛度很高。
在位置控制中,命令一個特定的位置,機器人無論如何都要到達該位置。如果它不能很容易地到達位置,它會施加很高的力,這可能會造成損壞。
如果使用阻抗控制,可以間接控制力,從而避免這種破壞性的高力。如果有一些不確定因素,例如,鉆孔稍微錯位,這是特別好的。機器人會做出順從的動作,也就是說,它會對接觸做出輕微的反應。
如果機器人的末端執行器沒有與另一個物體接觸,力控制就會表現得很差,因為力會導致快速運動。想想爬樓梯,錯誤地認為最后還有一個臺階。
抬起腳,試著推到臺階上。因為沒有建立聯系,能量就會流失,必須努力保持平衡。
以下是一個簡單的單自由度機器人阻抗控制的 MATLAB 程序示例,其中機器人的動力學模型是簡化為一個彈簧阻尼系統:
% 機器人阻抗控制程序
% 機器人參數
m = 1; % 質量
k = 10; % 剛度
c = 1; % 阻尼
% 阻抗控制參數
Kp = 20; % 位置控制增益
Kv = 5; % 速度控制增益
M = 5; % 質量控制增益
B = 1; % 阻尼控制增益
% 目標參考位置和力/力矩
qr = 1; % 參考位置
fr = 0.1; % 參考力/力矩
% 初始狀態
x0 = [0; 0]; % 位置和速度
f0 = 0; % 初始力/力矩
% 阻抗控制循環
t = 0:0.01:10; % 時間向量
x = zeros(2, length(t)); % 位置和速度
f = zeros(1, length(t)); % 力/力矩
x(:,1) = x0; % 初始狀態
f(1) = f0;
for i = 2:length(t)
% 計算誤差和誤差導數
e = qr - x(1, i-1); % 位置誤差
de = -x(2, i-1); % 速度誤差
% 計算控制力/力矩
fc = Kp*e + Kv*de + M*(fr-f(1)) + B*(-x(2,i-1));
% 更新狀態
a = (fc - c*x(2,i-1) - k*x(1,i-1))/m;
x(2,i) = x(2,i-1) + a*0.01;
x(1,i) = x(1,i-1) + x(2,i)*0.01;
% 記錄控制力/力矩和位置
f(i) = fc;
end
% 繪圖
subplot(2,1,1)
plot(t, x(1,:), 'b', t, qr*ones(size(t)), 'r--')
xlabel('時間 (s)')
ylabel('位置 (m)')
legend('位置', '參考位置')
title('單自由度機器人阻抗控制')
subplot(2,1,2)
plot(t, f, 'b', t, fr*ones(size(t)), 'r--')
xlabel('時間 (s)')
ylabel('力/力矩 (N/m)')
legend('控制力/力矩', '參考力/力矩')
結果如下:
根據程序運行的結果和可視化圖形可以看出,阻抗控制使得機器人的末端可以按照期望的阻抗響應,即在受到外界干擾時具有一定的柔性和減震性能,從而實現了對外部力的主動響應。
通過調節阻抗控制器中的參數,可以使機器人末端的運動更加平滑和穩定。此外,對于單自由度機器人來說,阻抗控制器在保證穩定性的同時還能夠提高系統的動態性能,使得機器人在對外界干擾響應時的響應速度更快,具有更好的跟蹤性能。
然而,阻抗控制器中的參數調節比較困難,需要根據實際情況進行經驗性調整,同時阻抗控制器也容易出現過沖和振蕩等問題,因此需要綜合考慮性能與穩定性之間的權衡關系,進行合理的參數設計。
-
機器人
+關注
關注
211文章
28380瀏覽量
206918 -
測量
+關注
關注
10文章
4849瀏覽量
111242 -
阻抗控制
+關注
關注
1文章
55瀏覽量
10646
發布評論請先 登錄
相關推薦
評論