⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 huatu_acceleration.m

📁 这个一个遗传算法的实例
💻 M
字号:
clear
D=[50,7,1000];%依次表示行,列,页
N=3;n=8;%依次表示轴数和插值点数
%以P表示位置,V表示速度,A表示加速度,J表示加加速度
%T表示时间,h表示时间间隔
VC=[100,95,1000];%依次设置第一轴,第二轴,第三轴的速度约束
AC=[70,75,75];%依次设置第一轴,第二轴,第三轴的加速度约束
JC=[70,85,70];%依次设置第一轴,第二轴,第三轴的冲击约束
V=zeros(N,n);%设置速度边界
A=zeros(N,n);%设置加速度边界

t1=0;%起始时间

P(1,1)=120;P(1,3)=100;P(1,4)=60;P(1,5)=30;P(1,6)=10;P(1,8)=0;
P(2,1)=-10;P(2,3)=20;P(2,4)=0;P(2,5)=30;P(2,6)=60;P(2,8)=80;
P(3,1)=0;P(3,3)=20;P(3,4)=50;P(3,5)=70;P(3,6)=50;P(3,8)=30;

H_ZY=[1.2657    1.1209    1.4638    1.2874    1.0758    0.6938    0.9420];%输入量
H_ZY_2=[1.2297    2.0498    2.4071    2.0203    1.6657    1.1749    1.2305];%输入量

T_HT=SOV_T(H_ZY,n,t1);
T_HT_2=SOV_T(H_ZY_2,n,t1);

QA_HT=SOL_QA(H_ZY,V,A,P,N,n);
QA_HT_2=SOL_QA(H_ZY_2,V,A,P,N,n);

P_HT=SOV_P(P,QA_HT,H_ZY,V,N,n);
P_HT_2=SOV_P(P,QA_HT_2,H_ZY_2,V,N,n);

HTBL=1;%可选择1,2,3表示第一,二,三轴
%for HTBL=1:3;
PHTL=P_HT(HTBL,:);%画图的位置
PHTL_2=P_HT_2(HTBL,:);

QAHTL=QA_HT(HTBL,:);%画图用的加速度
QAHTL_2=QA_HT_2(HTBL,:);

VL=V(HTBL,:);%zeros(1,n);%画图用的速度

HL=H_ZY;%画图用的时间间隔
HL_2=H_ZY_2;

TL=T_HT;%画图用的插值点时间
TL_2=T_HT_2;

[QJ_MAX,QJ_ZH]=SOV_QJ(QA_HT,HL,N,n)%求出最大的冲击
[QJ_MAX_2,QJ_ZH_2]=SOV_QJ(QA_HT_2,HL_2,N,n)

T1=TL(1):0.01:TL(2);
T2=TL(2):0.01:TL(3);
T3=TL(3):0.01:TL(4);
T4=TL(4):0.01:TL(5);
T5=TL(5):0.01:TL(6);
T6=TL(6):0.01:TL(7);
T7=TL(7):0.01:TL(8);

T1_2=TL_2(1):0.01:TL_2(2);
T2_2=TL_2(2):0.01:TL_2(3);
T3_2=TL_2(3):0.01:TL_2(4);
T4_2=TL_2(4):0.01:TL_2(5);
T5_2=TL_2(5):0.01:TL_2(6);
T6_2=TL_2(6):0.01:TL_2(7);
T7_2=TL_2(7):0.01:TL_2(8);

A1=QAHTL(1)/HL(1)*(TL(2)-T1)+QAHTL(2)/HL(1)*(T1-TL(1));
A2=QAHTL(2)/HL(2)*(TL(3)-T2)+QAHTL(3)/HL(2)*(T2-TL(2));
A3=QAHTL(3)/HL(3)*(TL(4)-T3)+QAHTL(4)/HL(3)*(T3-TL(3));
A4=QAHTL(4)/HL(4)*(TL(5)-T4)+QAHTL(5)/HL(4)*(T4-TL(4));
A5=QAHTL(5)/HL(5)*(TL(6)-T5)+QAHTL(6)/HL(5)*(T5-TL(5));
A6=QAHTL(6)/HL(6)*(TL(7)-T6)+QAHTL(7)/HL(6)*(T6-TL(6));
A7=QAHTL(7)/HL(7)*(TL(8)-T7)+QAHTL(8)/HL(7)*(T7-TL(7));

A1_2=QAHTL_2(1)/HL_2(1)*(TL_2(2)-T1_2)+QAHTL_2(2)/HL_2(1)*(T1_2-TL_2(1));
A2_2=QAHTL_2(2)/HL_2(2)*(TL_2(3)-T2_2)+QAHTL_2(3)/HL_2(2)*(T2_2-TL_2(2));
A3_2=QAHTL_2(3)/HL_2(3)*(TL_2(4)-T3_2)+QAHTL_2(4)/HL_2(3)*(T3_2-TL_2(3));
A4_2=QAHTL_2(4)/HL_2(4)*(TL_2(5)-T4_2)+QAHTL_2(5)/HL_2(4)*(T4_2-TL_2(4));
A5_2=QAHTL_2(5)/HL_2(5)*(TL_2(6)-T5_2)+QAHTL_2(6)/HL_2(5)*(T5_2-TL_2(5));
A6_2=QAHTL_2(6)/HL_2(6)*(TL_2(7)-T6_2)+QAHTL_2(7)/HL_2(6)*(T6_2-TL_2(6));
A7_2=QAHTL_2(7)/HL_2(7)*(TL_2(8)-T7_2)+QAHTL_2(8)/HL_2(7)*(T7_2-TL_2(7));

%subplot(3,1,HTBL)

plot(T1,A1,'k-',T2,A2,'k-',T3,A3,'k-',T4,A4,'k-',T5,A5,'k-',T6,A6,'k-',T7,A7,'k-')

hold on

plot(T1_2,A1_2,'k:',T2_2,A2_2,'k:',T3_2,A3_2,'k:',T4_2,A4_2,'k:',T5_2,A5_2,'k:',T6_2,A6_2,'k:',T7_2,A7_2,'k:')

%axis(0,11,-23,23)
%xlabel('t/s');
%axis tight
%ylabel('angle');
hold off
%end;
%title('第三关节的位置、速度、加速度、冲击曲线')
%grid

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -