五次多項式插值法
五次多項式有6個待定系數(shù),可同時對起始點(diǎn)和目標(biāo)點(diǎn)的角度、角速度和角加速度給出約束條件。
數(shù)學(xué)推導(dǎo)
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);%計算五次多項式系數(shù)
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; %保存當(dāng)前工作目錄
cd('C:UsersAdministratorDesktoppic') %把當(dāng)前工作目錄切換到圖片存儲文件夾
print(gcf,'-djpeg','C:UsersAdministratorDesktoppicwu.jpeg'); %將圖片保存為jpg格式,
cd(filepath) %切回原工作目錄
兩種插值法的效果對比
相對于三次多項式插值, 五次多項式插值法所得到的軌跡加速度也是平滑的曲線,并沒有出現(xiàn)跳變的情況。
在機(jī)器人系統(tǒng)中,關(guān)節(jié)角加速度出現(xiàn)跳變現(xiàn)象意味著關(guān)節(jié)的電機(jī)會受到?jīng)_擊, 因此為保證電機(jī)平穩(wěn)運(yùn)行,角加速度要求平滑連續(xù)。
雖然三次多項式插值法的計算量和較之更小,但對于離線規(guī)劃而言,該時間成本可以忽略,因此從規(guī)劃的軌跡平穩(wěn)度而言,五次多項式插值法更佳。
-
matlab
+關(guān)注
關(guān)注
186文章
2981瀏覽量
231109 -
機(jī)器人
+關(guān)注
關(guān)注
211文章
28707瀏覽量
208702 -
機(jī)械臂
+關(guān)注
關(guān)注
12文章
525瀏覽量
24741
發(fā)布評論請先 登錄
相關(guān)推薦
MATLAB多項式函數(shù)命令
想用labview進(jìn)行公式計算,請問是怎么實現(xiàn)上面是常數(shù)下面是多項式這種形式的多項式的運(yùn)算?
6自由度機(jī)械臂點(diǎn)到點(diǎn)5次多項式插值軌跡規(guī)劃
python三維插值
基于拉格朗日插值多項式的光伏電池I-V特性建模方法
正交多項式擬合-matlab
局部多項式的方法對圖像進(jìn)行插值
多項式插值算法框架
六自由度機(jī)械臂三次多項式插值法
![六自由度<b class='flag-5'>機(jī)械</b><b class='flag-5'>臂</b>三<b class='flag-5'>次</b><b class='flag-5'>多項式</b><b class='flag-5'>插</b><b class='flag-5'>值</b><b class='flag-5'>法</b>](https://file1.elecfans.com/web2/M00/B0/A3/wKgZomVXGxiADAMHAAAVHSIBz9Y031.jpg)
評論