MATLAB分段函数及应用实例

﹥>﹥吖頭↗ 提交于 2019-11-30 10:09:01

简单实例:用matlab画分段函数

        x<0时 y=5*sin(x);

        x>=0x<=5 y=x^2;

        x>5 y=(8-x)^2+16.

x=-5:0.001:10;
y=5*sin(x).*(x<0)+x.^2.*(x>=0 & x<=5)+((8-x).^2+16).*(x>5);
plot(x,y);
grid on;

应用:加减速仿真曲线绘制

T形速度曲线变位过程

A=500000;V=100000;Tacc=0.2;Vs=0;S0=50000;S=200000;Td=0.5;Tdd=0.6;Tddd=0.7;Tdddd=1.05;Ted=1.25;
t=0:0.0001:Ted;
Vt=(Vs+A*t).*(t>=0 & t<Tacc)...
    +V.*(t>=Tacc & t<Td)...
    +(V-A*(t-Td)).*(t>=Td & t<Tdd)...
    +((V-A*(Tdd-Td))+A*(t-Tdd)).*(t>=Tdd & t<Tddd)...
    +V.*(t>=Tddd & t<Tdddd)...
    +(V-A*(t-Tdddd)).*(t>=Tdddd & t<=Ted);
plot(t*1000,Vt/1000);
axis([0 1.4*1000 0 120000/1000])
title('T形曲线变位过程');
xlabel('时间(ms)');
ylabel('速度(KHz)');
grid on;


S形速度曲线变速过程

Vs=0;Ve=0;V=200000;Tacc=0.3;Tdec=0.3;Ts=0.15;Ts2=0.08;Ts3=0.07;Ts4=0.12;CV1=100000;CV2=160000;
T1=0.5;T2=T1+Ts2;T3=T2+Ts2;T4=T3+0.2;T5=T4+Ts3;T6=T5+Ts3;T7=T6+0.2;T8=T7+Ts4;Ted=T8+Ts4;%Ted=1.44;
t=0:0.0001:Ted;
J=V/(Tacc-Ts)/Ts;A=V/(Tacc-Ts);J2=(V-CV1)/Ts2/Ts2;A2=(V-CV1)/Ts2;J3=(CV2-CV1)/Ts3/Ts3;A3=(CV2-CV1)/Ts3;J4=CV2/Ts4/Ts4;A4=CV2/Ts4;
V1=J*Ts.^2/2;V2=V;V3=V;V4=V-J2*Ts2.^2/2;V5=CV1;V6=CV1;V7=CV1+J3*Ts3.^2/2;V8=CV2;V9=CV2;V10=V9-J4*Ts4.^2/2;
Vt=(Vs+J*t.^2/2).*(t>=0 & t<Ts)...
    +(V1+A*(t-Ts)-J*(t-Ts).^2/2).*(t>=Ts & t<Tacc)...
    +V2.*(t>=Tacc & t<T1)...
    +(V3-J2*(t-T1).^2/2).*(t>=T1 & t<T2)...
    +(V4-A2*(t-T2)+J2*(t-T2).^2/2).*(t>=T2 & t<T3)...
    +V5.*(t>=T3 & t<T4)...
    +(V6+J3*(t-T4).^2/2).*(t>=T4 & t<T5)...
    +(V7+A3*(t-T5)-J3*(t-T5).^2/2).*(t>=T5 & t<T6)...
    +V8.*(t>=T6 & t<T7)...
    +(V9-J4*(t-T7).^2/2).*(t>=T7 & t<T8)...
    +(V10-A4*(t-T8)+J4*(t-T8).^2/2).*(t>=T8 & t<Ted);
figure(2);
plot(t*1000,Vt/1000);
axis([0 1.6*1000 0 220000/1000]);
title('S形曲线调速过程');
xlabel('时间(ms)');
ylabel('速度(KHz)');
grid on;




标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!