MATLAB分段函数及应用实例

MATLAB分段函数及应用实例简单实例:用matlab画分段函数        当x<0时 y=5*sin(x);        当x>=0且x<=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);p…

大家好,又见面了,我是你们的朋友全栈君。

简单实例:用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;

MATLAB分段函数及应用实例

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

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;

MATLAB分段函数及应用实例

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;

MATLAB分段函数及应用实例

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134071.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SQL注入报错注入函数[通俗易懂]

    SQL注入报错注入函数[通俗易懂]前言报错注入的前提是当语句发生错误时,错误信息被输出到前端。其漏洞原因是由于开发人员在开发程序时使用了print_r(),mysql_error(),mysqli_connect_error()函数将mysql错误信息输出到前端,因此可以通过闭合原先的语句,去执行后面的语句。常用报错函数updatexml()是mysql对xml文档数据进行查询和修改的xpath函数extractvalue()是mysql对xml文档数据进行查询的xpa…

    2022年9月30日
    2
  • python生成器详解_Python 生成器

    python生成器详解_Python 生成器生成器利用迭代器,我们可以在每次迭代获取数据(通过next()方法)时按照特定的规律进行生成。但是我们在实现一个迭代器时,关于当前迭代到的状态需要我们自己记录,进而才能根据当前状态生成下一个数据。

    2022年8月6日
    11
  • Render,RenderChildren,RenderControl

    Render,RenderChildren,RenderControlprotectedinternalvirtualvoidRender(HtmlTextWriterwriter){this.RenderChildren(writer);}protectedinternalvirtualvoidRenderChildren(HtmlTextWriterwriter){ICollectionchildren=(th…

    2022年7月20日
    12
  • golang:[]byte转string

    golang:[]byte转stringgolang中,字符切片[]byte转换成string最简单的方式是packagemainimport(“fmt”_”unsafe”)funcmain(){bytes:=[]byte(“Iambytearray!”)str:=string(bytes)bytes[0]=’i’//注意这一行,bytes在这里修改了数据,但是str打印出来的依然没变化,fmt.Println(str)}打印信息:I

    2022年6月16日
    37
  • 关于驻点,拐点,极值点的关系_鞍点是拐点吗

    关于驻点,拐点,极值点的关系_鞍点是拐点吗  最近有些考研的小伙伴问到我这个问题,正好也给自己梳理一下思路,毕竟在机器学习里面这4个概念也是非常重要的,不过这里由于知识所限,就只整理跟考研部分比较相关的知识点了。  既然是4种点,首先就需要将其进行大致的分类,大致来说如下。$$\begin{cases}一元函数\quad\begin{cases}一阶导数f'(x)\quad驻点、极值点、鞍点\\[3…

    2025年7月28日
    4
  • 标志寄存器——标志位

    标志寄存器——标志位标志位简介:   标志寄存器,又称程序状态寄存器(它的内容是ProgramStatusWord,PSW).这是一个存放条件码标志,控制标志和系统标志的寄存器.6个状态标志位   CF—进位标志,加法时的最高位(D7或D15)产生进位或减法时最高位出现借位,则CF=1,否则CF=0;   AF—辅助进位标志,供BCD码使用。当D3位出现进位或借位时AF=1,否则AF=0

    2022年7月14日
    14

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号