南航机电控制作业DDA插补matlab编程_精品文档.doc

上传人:b****2 文档编号:1520127 上传时间:2022-10-22 格式:DOC 页数:4 大小:71KB
下载 相关 举报
南航机电控制作业DDA插补matlab编程_精品文档.doc_第1页
第1页 / 共4页
南航机电控制作业DDA插补matlab编程_精品文档.doc_第2页
第2页 / 共4页
南航机电控制作业DDA插补matlab编程_精品文档.doc_第3页
第3页 / 共4页
南航机电控制作业DDA插补matlab编程_精品文档.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

南航机电控制作业DDA插补matlab编程_精品文档.doc

《南航机电控制作业DDA插补matlab编程_精品文档.doc》由会员分享,可在线阅读,更多相关《南航机电控制作业DDA插补matlab编程_精品文档.doc(4页珍藏版)》请在冰豆网上搜索。

南航机电控制作业DDA插补matlab编程_精品文档.doc

1、采用DDA脉冲当量插补算法完成单轴的运动控制,并绘制速度图

(1)各物理量初值设置如下:

输入位移的初始值:

0

输入速度的初始值:

10

输入加速度的初始值:

3

输入加加速度的初始值:

5

输入时间长度:

2

输入脉冲当量值:

0.05

(2)DDA插补Matlab代码

clearall;

P0=input('输入位移的初始值');

V0=input('输入速度的初始值');

A0=input('输入加速度的初始值');

B0=input('输入加加速度的初始值');

T=input('输入时间长度');

DT=input('输入脉冲当量值');

%确定K值

K=T/DT

t=zeros(1,K+1);

B=zeros(1,K+1);

A=zeros(1,K+1);

V=zeros(1,K+1);

P=zeros(1,K+1);

%确定时间离散值

fori=1:

K

t(i+1)=t(i)+DT;

end

%确定各物理量的初始值

B

(1)=B0;

A

(1)=A0;

V

(1)=V0;

P

(1)=P0;

%使用DDA插补算法,确定各物理量离散值

forj=1:

K

B(j+1)=B(j);

end

fork=1:

K

A(k+1)=A(k)+B(k);

V(k+1)=V(k)+A(k);

P(k+1)=P(k)+V(k);

end

plot(t,V,'b+-','LineWidth',1.5)

title('速度曲线图像');

xlabel('t坐标轴');

ylabel('V坐标轴');

(3)速度曲线图像

2、采用DDA脉冲当量插补算法,完成一平面三次样条曲线的运动控制程序仿真。

(注:

三次样条曲线为y=a0+a1x+a2x^2+a3x^3)

(1)三次曲线各项系数:

输入常数项系数:

5

输入一次项x的系数:

2

输入二次项x^2的系数:

-3

输入三次项x^3的系数:

7

(2)DDA插补Matlab代码

clearall;

a0=input('输入常数项系数');

a1=input('输入一次项x的系数');

a2=input('输入二次项x^2的系数');

a3=input('输入三次项x^3的系数');

%求K值

sum1=0;

sum2=0;

A=[a1,a2,a3];

Pos=[0,0,0];

Neg=[0,0,0];

fori=1:

3

if(A(i)>=0)

Pos(i)=A(i);

elsePos(i)=0;

end

sum1=sum1+i*Pos(i);

end

forj=1:

3

if(A(j)<0)

Neg(j)=A(j);

elseNeg(j)=0;

end

sum2=sum2+j*Neg(j);

end

sum2=-sum2;

if(sum1>=sum2)

K=sum1

elseK=sum2

end

%计算插补初值

D1y0=a1/K-a2/(K^2)+a3/(K^3);

D2y0=(2*a2)/(K^2)-(6*a3)/(K^3);

D3y0=(6*a3)/(K^3);

%DDA增量插补,使用差分递推算法

x=zeros(1,K+1);

y=zeros(1,K+1);

D1y=zeros(1,K+1);

D2y=zeros(1,K+1);

D3y=zeros(1,K+1);

fori=1:

K

x(i+1)=x(i)+1/K;

end

y

(1)=a0;

D1y

(1)=D1y0;

D2y

(1)=D2y0;

D3y

(1)=D3y0;

fori=1:

K

D3y(i+1)=D3y(i);

end

forj=1:

K

D2y(j+1)=D2y(j)+D3y(j+1);

D1y(j+1)=D1y(j)+D2y(j+1);

y(j+1)=y(j)+D1y(j+1);

end

plot(x,y,'bo-','LineWidth',1.5)

title('三次样条曲线的图像');

xlabel('x坐标轴');

ylabel('y坐标轴');

legend('y=a0+a1x+a2x^{2}+a3x^{3}');

(3)三次样条曲线的图像

4

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 笔试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1