五次多項(xiàng)式插值法
五次多項(xiàng)式有6個(gè)待定系數(shù),可同時(shí)對(duì)起始點(diǎn)和目標(biāo)點(diǎn)的角度、角速度和角加速度給出約束條件。
數(shù)學(xué)推導(dǎo)
MATLAB代碼
%五次多項(xiàng)式插值法
clear;
clc;
q_array=[0,50,150,100,40];%指定起止位置
t_array=[0,3,6,12,14];%指定起止時(shí)間
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ī)劃的時(shí)間
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);%計(jì)算五次多項(xiàng)式系數(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)前工作目錄切換到圖片存儲(chǔ)文件夾
print(gcf,'-djpeg','C:UsersAdministratorDesktoppicwu.jpeg'); %將圖片保存為jpg格式,
cd(filepath) %切回原工作目錄
兩種插值法的效果對(duì)比
相對(duì)于三次多項(xiàng)式插值, 五次多項(xiàng)式插值法所得到的軌跡加速度也是平滑的曲線,并沒(méi)有出現(xiàn)跳變的情況。
在機(jī)器人系統(tǒng)中,關(guān)節(jié)角加速度出現(xiàn)跳變現(xiàn)象意味著關(guān)節(jié)的電機(jī)會(huì)受到?jīng)_擊, 因此為保證電機(jī)平穩(wěn)運(yùn)行,角加速度要求平滑連續(xù)。
雖然三次多項(xiàng)式插值法的計(jì)算量和較之更小,但對(duì)于離線規(guī)劃而言,該時(shí)間成本可以忽略,因此從規(guī)劃的軌跡平穩(wěn)度而言,五次多項(xiàng)式插值法更佳。
-
matlab
+關(guān)注
關(guān)注
189文章
2999瀏覽量
233620 -
機(jī)器人
+關(guān)注
關(guān)注
213文章
29607瀏覽量
212151 -
機(jī)械臂
+關(guān)注
關(guān)注
13文章
551瀏覽量
25303
發(fā)布評(píng)論請(qǐng)先 登錄
MATLAB多項(xiàng)式函數(shù)命令
想用labview進(jìn)行公式計(jì)算,請(qǐng)問(wèn)是怎么實(shí)現(xiàn)上面是常數(shù)下面是多項(xiàng)式這種形式的多項(xiàng)式的運(yùn)算?
6自由度機(jī)械臂點(diǎn)到點(diǎn)5次多項(xiàng)式插值軌跡規(guī)劃
python三維插值
基于拉格朗日插值多項(xiàng)式的光伏電池I-V特性建模方法
基于多項(xiàng)式插值函數(shù)的翼型參數(shù)化設(shè)計(jì)方法
自適應(yīng)細(xì)分二次多項(xiàng)式響應(yīng)面算法_羅小玲
正交多項(xiàng)式擬合-matlab
局部多項(xiàng)式的方法對(duì)圖像進(jìn)行插值
多項(xiàng)式插值算法框架
六自由度機(jī)械臂三次多項(xiàng)式插值法

評(píng)論