五次多項式插值法
五次多項式有6個待定系數,可同時對起始點和目標點的角度、角速度和角加速度給出約束條件。
數學推導
MATLAB代碼
%五次多項式插值法
clear;
clc;
q_array=[0,50,150,100,40];%指定起止位置
t_array=[0,3,6,12,14];%指定起止時間
v_array=[0,10,20,-15,0];%指定起止速度
a_array=[0,20,30,-20,0];%指定起止加速度
t=[t_array(1)];q=[q_array(1)];v=[v_array(1)];a=[a_array(1)];%初始狀態
for i=1:1:length(q_array)-1%每一段規劃的時間
T=t_array(i+1)-t_array(i);
a0=q_array(i);
a1=v_array(i);
a2=a_array(i)/2;
a3=(20*q_array(i+1)-20*q_array(i)-(8*v_array(i+1)+12*v_array(i))*T-(3*a_array(i)-a_array(i+1))*T^2)/(2*T^3);
a4=(30*q_array(i)-30*q_array(i+1)+(14*v_array(i+1)+16*v_array(i))*T+(3*a_array(i)-2*a_array(i+1))*T^2)/(2*T^4);
a5=(12*q_array(i+1)-12*q_array(i)-(6*v_array(i+1)+6*v_array(i))*T-(a_array(i)-a_array(i+1))*T^2)/(2*T^5);%計算五次多項式系數
ti=t_array(i):0.001:t_array(i+1);
qi=a0+a1*(ti-t_array(i))+a2*(ti-t_array(i)).^2+a3*(ti-t_array(i)).^3+a4*(ti-t_array(i)).^4+a5*(ti-t_array(i)).^5;
vi=a1+2*a2*(ti-t_array(i))+3*a3*(ti-t_array(i)).^2+4*a4*(ti-t_array(i)).^3+5*a5*(ti-t_array(i)).^4;
ai=2*a2+6*a3*(ti-t_array(i))+12*a4*(ti-t_array(i)).^2+20*a5*(ti-t_array(i)).^3;
t=[t,ti(2:end)];q=[q,qi(2:end)];v=[v,vi(2:end)];a=[a,ai(2:end)];
end
subplot(3,1,1),plot(t,q,'r'),xlabel('t/s'),ylabel('p/m');hold on; plot(t_array,q_array,'o','color','r'),grid on;
subplot(3,1,2),plot(t,v,'b'),xlabel('t/s'),ylabel('v/(m/s)');hold on;plot(t_array,v_array,'*','color','r'),grid on;
subplot(3,1,3),plot(t,a,'g'),xlabel('t/s'),ylabel('a/(m/s^2)');hold on;plot(t_array,a_array,'^','color','r'),grid on;
% 指定文件夾保存圖片
filepath=pwd; %保存當前工作目錄
cd('C:UsersAdministratorDesktoppic') %把當前工作目錄切換到圖片存儲文件夾
print(gcf,'-djpeg','C:UsersAdministratorDesktoppicwu.jpeg'); %將圖片保存為jpg格式,
cd(filepath) %切回原工作目錄
兩種插值法的效果對比
相對于三次多項式插值, 五次多項式插值法所得到的軌跡加速度也是平滑的曲線,并沒有出現跳變的情況。
在機器人系統中,關節角加速度出現跳變現象意味著關節的電機會受到沖擊, 因此為保證電機平穩運行,角加速度要求平滑連續。
雖然三次多項式插值法的計算量和較之更小,但對于離線規劃而言,該時間成本可以忽略,因此從規劃的軌跡平穩度而言,五次多項式插值法更佳。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
matlab
+關注
關注
188文章
2994瀏覽量
233096 -
機器人
+關注
關注
212文章
29421瀏覽量
211288 -
機械臂
+關注
關注
13文章
542瀏覽量
25197
發布評論請先 登錄
相關推薦
熱點推薦
MATLAB多項式函數命令
MATLAB多項式函數命令Roots 求多項式根 Poly 構造具有指定根的多項式 Polyvalm 帶矩陣變量的多項式計算 Residue 部分分式展開(留數計算) Polyfit
發表于 09-22 16:01
想用labview進行公式計算,請問是怎么實現上面是常數下面是多項式這種形式的多項式的運算?
本帖最后由 一只耳朵怪 于 2018-5-21 11:23 編輯
想用labview進行如圖所示的公式計算,我找到了多項式插件,但是沒研究明白怎么實現上面是常數下面是多項式這種形式的多項式的運算,不知道能否請各位大佬指點一
發表于 05-21 11:03
6自由度機械臂點到點5次多項式插值軌跡規劃
([0 0.515 0pi/20]);L5=Link([pi00pi/20]);L6=Link([0 0.08000]);[q ,qd, qdd]=jtraj(q1,q2,50); %五次多項式軌跡,得到關節角度,角速度,角加速
發表于 03-13 10:09
基于拉格朗日插值多項式的光伏電池I-V特性建模方法
本文提出了一種基于拉格朗日插值多項式的光伏電池I-V特性的新的建模方法。該方法利用桑迪亞(Sandia)國家重點實驗室I-V特性曲線上的五個點的值
發表于 01-04 17:13
?22次下載
正交多項式擬合-matlab
正交多項式擬合:給定函數f(x)在m個采樣點處的值f(xi)以及每個點的權重wi,求曲線擬合的正交多項式Pn(x)滿足最小二乘誤差||err||2=∑mi=1wi[f(xi)?Pn(xi)]2《TOL。
發表于 11-27 15:29
?8034次閱讀
六自由度機械臂三次多項式插值法
對串聯機械臂而言,軌跡規劃可以分為:關節空間軌跡規劃和笛卡爾空間軌跡規劃。關節空間軌跡規劃是把機器人的關節變量變換成跟時間的函數,然后對角速度和角加速度進行約束。 笛卡爾空間軌跡規劃是把機器人末端在

評論