五次多項式插值法
五次多項式有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)];%初始狀態(tài)
for i=1:1:length(q_array)-1%每一段規(guī)劃的時間
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) %切回原工作目錄

兩種插值法的效果對比
相對于三次多項式插值, 五次多項式插值法所得到的軌跡加速度也是平滑的曲線,并沒有出現跳變的情況。
在機器人系統(tǒng)中,關節(jié)角加速度出現跳變現象意味著關節(jié)的電機會受到沖擊, 因此為保證電機平穩(wěn)運行,角加速度要求平滑連續(xù)。
雖然三次多項式插值法的計算量和較之更小,但對于離線規(guī)劃而言,該時間成本可以忽略,因此從規(guī)劃的軌跡平穩(wěn)度而言,五次多項式插值法更佳。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。
舉報投訴
-
matlab
+關注
關注
189文章
3028瀏覽量
239172 -
機器人
+關注
關注
213文章
31401瀏覽量
223555 -
機械臂
+關注
關注
14文章
601瀏覽量
26184
發(fā)布評論請先 登錄
相關推薦
熱點推薦
MATLAB多項式函數命令
MATLAB多項式函數命令Roots 求多項式根 Poly 構造具有指定根的多項式 Polyvalm 帶矩陣變量的多項式計算 Residue 部分分式展開(留數計算) Polyfit
發(fā)表于 09-22 16:01
想用labview進行公式計算,請問是怎么實現上面是常數下面是多項式這種形式的多項式的運算?
本帖最后由 一只耳朵怪 于 2018-5-21 11:23 編輯
想用labview進行如圖所示的公式計算,我找到了多項式插件,但是沒研究明白怎么實現上面是常數下面是多項式這種形式的多項式的運算,不知道能否請各位大佬指點一
發(fā)表于 05-21 11:03
6自由度機械臂點到點5次多項式插值軌跡規(guī)劃
([0 0.515 0pi/20]);L5=Link([pi00pi/20]);L6=Link([0 0.08000]);[q ,qd, qdd]=jtraj(q1,q2,50); %五次多項式軌跡,得到關節(jié)角度,角速度,角加速
發(fā)表于 03-13 10:09
基于拉格朗日插值多項式的光伏電池I-V特性建模方法
本文提出了一種基于拉格朗日插值多項式的光伏電池I-V特性的新的建模方法。該方法利用桑迪亞(Sandia)國家重點實驗室I-V特性曲線上的五個點的值
發(fā)表于 01-04 17:13
?22次下載
正交多項式擬合-matlab
正交多項式擬合:給定函數f(x)在m個采樣點處的值f(xi)以及每個點的權重wi,求曲線擬合的正交多項式Pn(x)滿足最小二乘誤差||err||2=∑mi=1wi[f(xi)?Pn(xi)]2《TOL。
發(fā)表于 11-27 15:29
?8182次閱讀
局部多項式的方法對圖像進行插值
本文運用局部多項式的方法對圖像進行插值。文中我們從一幅高分辨率圖像通過下采樣得到一張低分辨率圖像,然后對其進行插值并求出
發(fā)表于 12-20 10:02
?1次下載
六自由度機械臂三次多項式插值法
對串聯機械臂而言,軌跡規(guī)劃可以分為:關節(jié)空間軌跡規(guī)劃和笛卡爾空間軌跡規(guī)劃。關節(jié)空間軌跡規(guī)劃是把機器人的關節(jié)變量變換成跟時間的函數,然后對角速度和角加速度進行約束。 笛卡爾空間軌跡規(guī)劃是把機器人末端在
機械臂五次多項式插值法介紹
評論