simulink 订阅
Simulink是美国Mathworks公司推出的MATLAB中的一种可视化仿真工具。Simulink是一个模块图环境,用于多域仿真以及基于模型的设计。它支持系统设计、仿真、自动代码生成以及嵌入式系统的连续测试和验证。 [1]  Simulink提供图形编辑器、可自定义的模块库以及求解器,能够进行动态系统建模和仿真。 [2]  Simulink与MATLAB相集成,能够在Simulink 中将MATLAB算法融入模型,还能将仿真结果导出至 MATLAB 做进一步分析。Simulink应用领域包括汽车、航空、工业自动化、大型建模、复杂逻辑、物理逻辑,信号处理等方面。 [3] 展开全文
Simulink是美国Mathworks公司推出的MATLAB中的一种可视化仿真工具。Simulink是一个模块图环境,用于多域仿真以及基于模型的设计。它支持系统设计、仿真、自动代码生成以及嵌入式系统的连续测试和验证。 [1]  Simulink提供图形编辑器、可自定义的模块库以及求解器,能够进行动态系统建模和仿真。 [2]  Simulink与MATLAB相集成,能够在Simulink 中将MATLAB算法融入模型,还能将仿真结果导出至 MATLAB 做进一步分析。Simulink应用领域包括汽车、航空、工业自动化、大型建模、复杂逻辑、物理逻辑,信号处理等方面。 [3]
信息
开发商
MathWorks.Inc [1]
软件授权
MathWorks.Inc
软件名称
SIMULINK
更新时间
2020-06-11
软件版本
R2020a [4]
软件平台
Windows/MacOS/Linux等
软件语言
C
软件大小
216.77M
SIMULINK功能
Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。同时有大量的第三方软件和硬件可应用于或被要求应用于Simulink。Simulink可以用连续采样时间、离散采样时间或两种混合的采样时间进行建模,它也支持多速率系统,也就是系统中的不同部分具有不同的采样速率。为了创建动态系统模型,Simulink提供了一个建立模型方块图的图形用户接口,这个创建过程只需单击和拖动鼠标操作就能完成,它提供了一种更快捷、直接明了的方式,而且用户可以立即看到系统的仿真结果。Simulink是用于动态系统和嵌入式系统的多领域仿真和基于模型的设计工具。对各种时变系统,包括通讯、控制、信号处理、视频处理和图像处理系统,Simulink提供了交互式图形化环境和可定制模块库来对其进行设计、仿真、执行和测试。.构架在Simulink基础之上的其他产品扩展了Simulink多领域建模功能,也提供了用于设计、执行、验证和确认任务的相应工具。Simulink与MATLAB紧密集成,可以直接访问MATLAB大量的工具来进行算法研发、仿真的分析和可视化、批处理脚本的创建、建模环境的定制以及信号参数和测试数据的定义。
收起全文
精华内容
参与话题
问答
  • matlab之simulink仿真入门

    万次阅读 多人点赞 2016-04-02 11:19:15
    Matlab Simulink仿真工具的应用****Simulink是一个用来对动态系统进行建模、仿真和分析的软件包。使用Simulink来建模、分析和仿真各种动态系统(包括连续系统、离散系统和混合系统),将是一件非常轻松的事情。 它...

    Matlab Simulink仿真工具的应用

    Simulink是一个用来对动态系统进行建模、仿真和分析的软件包。使用Simulink来建模、分析和仿真各种动态系统(包括连续系统、离散系统和混合系统),将是一件非常轻松的事情。
    它提供了一种图形化的交互环境,只需用鼠标拖动的方法便能迅速地建立起系统框图模型,甚至不需要编写一行代码。
    由于Simulink具有强大的功能与友好的用户界面,因此它已经被广泛地应用到诸多领域之中,如:
    (1)通讯与卫星系统。
    (2)航空航天系统。
    (3)生物系统。
    (4)物流系统。
    (6)制造系统。
    (7)金融系统

    simulink作为matlab中一个强大的库,在自动控制方面有着不可替代的作用。鉴于网上已有大量教材,仅提供一个小例子,以为入门。基础理论可参考这里

    • 打开matlab2014a(我用的是这个啦),点击simulink库。
    • 漫长的等待后……出现:
      这里写图片描述
    • Simulink模块库浏览器可以按照类型选择合适的系统模块、获得系统模块的简单描述以及查找系统模块等,并且可以直接将模块库中的模块拖动或者拷贝到用户的系统模型中以构建动态系统模型。
      这里写图片描述
    • SIMILINK模块库按功能进行分为以下8类子库:
      Continuous(连续模块)
      Discrete(离散模块)
      Function&Tables(函数和平台模块)
      Math(数学模块)
      Nonlinear(非线性模块)
      Signals&Systems(信号和系统模块)
      Sinks(接收器模块)
      Sources(输入源模块)

    这里用一个非常简单的例子介绍如何建立动态系统模型。 此简单系统的输入为一个正弦波信号,输出为此正弦波信号与一个常数的乘积。 要求建立系统模型,并以图形方式输出系统运算结果。

    已知系统的数学描述为:
    u(t)=sin(t),t0u(t)=sin(t),t \geq0
    y(t)=au(t)=asin(t),a0y(t)=au(t)=asin(t),a\ne0

    • 单击新建模型按钮,即可打开:
      Simulink系统模拟编辑器窗口。

    • 依次将公共模块库和专业模块库中各控件通过鼠标左键拖动到Simulink系统模拟编辑器窗口中。

    • 系统输入模块库Sources中的Sine Wave控件:产生一个正弦波信号。

    • 数学库Math Operations中的Gain控件:将信号乘上一个常数(即信号增强)。

    • 系统输出Sink中的Scope控件(示波器控件):图形方式显示结果。
      -已放入控件后的Simulink框图:
      这里写图片描述

    • 连接控件

    在选择构建系统模型所需的所有模块后,需要按照系统的信号流程将各系统模块正确连接起来。连接系统模块的步骤如下:
    (1) 将光标指向起始块的输出端口,此时光标变成“+”。
    (2) 单击鼠标左键并拖动到目标模块的输入端口,在接近到一定程度时光标变成双十字。这时松开鼠标键,连接完成。完成后在连接点处出现一个箭头,表示系统中信号的流向。

    • 复制控件

    如果需要几个同样的模块,可以使用鼠标右键单击并拖动某个块进行拷贝。也可以在选中所需的模块后,使用Edit菜单上的Copy 和Paste 或使用热键Ctrl+C和Ctrl+V完成同样的功能。

    • 连线分支与连线改变

    在某些情况下,一个系统模块的输出同时作为多个其它模块的输入,这时需要从此模块中引出若干连线,以连接多个其它模块。对信号连线进行分支的操作方式为:使用鼠标右键单击需要分支的信号连线(光标变成“+”),然后拖动到目标模块。

    • 控件参数设置

    当用户按照信号的输入输出关系连接各控件之后,系统模型的创建工作便已结束。
    为了对动态系统进行正确的仿真与分析,必须设置正确的控件参数。
    控件参数的设置方法如下:
    1.双击控件图标,打开控件参数设置对话框。
    2.在参数设置对话框中设置合适的控件参数。

    这里写图片描述

    • 仿真参数设置

    1、仿真起止时间设置
    在缺省情况下,Simulink默认的仿真起始时间为0s,仿真结束时间为10 s。
    对于简单系统,当时间大于25时系统输出才开始转换,因此需要设置合适的仿真时间。
    设置仿真时间的方法有两种:
    (1)选择菜单Simulation中的Model configuration Parameters(或使用快捷键Ctrl+E),打开仿真参数设置对话框,在Solver选项卡中“Simulation time”栏设置系统仿真时间区间。设置系统仿真起始时间为0 s、结束时间为100 s。
    (2)Simulink系统模拟编辑器窗口上方的仿真时间设置栏。
    2、仿真步长设置
    在使用Simulink对简单系统进行仿真时,影响仿真结果输出的因素有仿真起始时间、结束时间和仿真步长。对于简单系统仿真来说,不管采用何种求解器,Simulink总是在仿真过程中选用最大的仿真步长。
    最大步长默认取值为auto,设置仿真步长的方法为:
    选择菜单Simulation中的Model configuration Parameters(或使用快捷键Ctrl+E),打开仿真参数设置对话框,在Solver选项卡中“Solver options”栏的max step size设置系统仿真时间区间。

    • 运行仿真

    当对系统中各控件参数以及系统仿真参数进行正确设置之后,单击系统模型编辑器上的Run图标(黑色三角)或选择Simulation菜单下的Run便可以对系统进行仿真分析。
    -显示系统仿真结果

    这里写图片描述

    展开全文
  • Simulink学习笔记(一)——构建Simulink框图

    万次阅读 多人点赞 2018-06-20 19:11:29
    一、示例演示  我们现在需要搭建一个模型,来求解电容两端的电压的变化曲线,如下所示: ...接下来我们建立simulink模型来求解Vc(t): 分别根据初始条件设置积分模块的初始值,然后fang仿真: 其中...

    一、示例演示

        我们现在需要搭建一个模型,来求解电容两端的电压的变化曲线,如下所示:

     已知条件:,其中,根据基尔霍夫电压定律可以得到:

                                                             

    接下来我们建立simulink模型来求解Vc(t):

    分别根据初始条件设置积分模块的初始值,然后fang仿真:

    其中黄色线是Uo(t),蓝色线是Vc(t)。

     

    二、搭建框图

    这里用一个非常简单的例子学习如何建立动态系统模型。此简单系统的输入为一个正弦波信号,输出为此正弦波信号与一个常数的乘积。要求建立系统模型,并以图形方式输出系统运算结果。已知系统的数学描述为:

                                   系统输入:

                                            系统输出:

    启动Simulink并新建一个系统模型文件。欲建立此简单系统的模型,需要如下的系统模块(均在Simulink公共模块库中):

    (1) 系统输入模块库Sources中的Sine Wave模块:产生一个正弦波信号。

    (2) 数学库Math中的Gain模块:将信号乘上一个常数(即信号增益)。

    (3) 系统输出库Sinks中的Scope模块:图形方式显示结果。

    选择相应的系统模块并将其拷贝(或拖动)到新建的系统模型中即可。

    打开Simulink模块库浏览器,可以看到Simulink公共模块库,Simulink公共模块库是simulink中最为基础、最为通用的模块库,它可以被应用到不同的专业领域中。Simulink公共模块库共包含九个模块库,如下图所示:

    在选择构建系统模型所需的所有模块后,需要按照系统的信号流程将各系统模块正确连接起来。连接系统模块的步骤如下:

    (1)将光标指向起始块的输出端口,此时光标变成“ + ”。

    (2)单击鼠标左键并拖动到目标模块的输入端口,在接近到一定程度时光标变成双十字。这时松开鼠标键,连接完成。完成后在连接点处出现一个箭头,表示系统中信号的流向,如下图所示:

     

         在Simulink的最新版本中,连接系统模块还有如更有效的方式:

     

           (1) 使用鼠标左键单击起始模块。
           (2) 按下Ctrl键,并用鼠标左键单击目标块

     

     

    2.1 连线分支与连线改变

          在某些情况下,一个系统模块的输出同时作为多个其它模块的输入,这时需要从此模块中引出若干连线,以连接多个其它模块。对信号连线进行分支的操作方式为:使用鼠标右键单击需要分支的信号连线(光标变成“+”),然后拖动到目标模块。
          对信号连线还有以下几种常用的操作:
        (1) 使用鼠标左键单击并拖动以改变信号连线的路径。
        (2) 按下Shift键的同时,在信号连线上单击鼠标左键并拖动,可以生成新的节点。

        (3) 在节点上使用鼠标左键单击并拖动,可以改变信号连线路径。

         信号连线分支与改变如下所示:

          如果系统模型中包含向量信号,使用Display菜单中的Signal Dimensions显示信号的维数(在相应的信号连线上显示信号的维数),如下图所示:

    维度显示如下:

    2.2 信号组合

          在利用Simulink进行系统仿真时,在很多情况需要将系统中某些模块的输出信号(一般为标量)组合成一个向量信号,并将得到的信号作为另外一个模块的输入。例如,使用示波器显示模块Scope显示信号时,Scope模块只有一个输入端口;若输入是向量信号,则Scope模块以不同的颜色显示每个信号。能够完成信号组合的系统模块为常用模块库中的Mux模块,使用Mux模块可以将多个标量信号组合成一个向量。 因此使用Simulink可以完成矩阵与向量的传递。信号组合如下图所示:

    三、运行仿真

    3.1 系统模块参数设置与系统仿真参数设置

          当用户按照信号的输入输出关系连接各系统模块之后,系统模型的创建工作便完成。为了进行正确的仿真与分析,必须设置正确的系统模块参数与系统仿真参数。 

         系统模块参数的设置方法如下:

        (1) 双击系统模块,打开系统模块的参数设置对话框。参数设置对话框包括系统模块的简单描述,模块的参数选项等信息,注意,不间系统模块的参数设置不同。

        (2) 在参数设置对话框中设置合适的模块参数。根据系统的要求在相应的参数选项中设置合适的参数。

        系统模块的参数设置如下图所示:

          当系统中各模块的参数设置完毕后,可设置合适的系统仿真参数以进行动态系统的仿真。对于本文的动态系统,系统模块参数设置如上图所示(增益取值为5),系统仿真参数采用 Simulink的默认设置。

     

    3.2  运行仿真

          当对系统中各模块参数以及系统仿真参数进行正确设罝之后,就可以对系统进行仿真分析了。单击绿色三角形按钮,启动仿真。

          对于本文所示的动态系统,采用上述的模块参数设置与默认的仿真参数进行仿真,仿真结束后双击Scope模块以显示系统仿真的输出结果,如下图所示:

    正弦波信号经过5倍增益的结果如下:

    如下为向量信号的输出,其中黄色显示为Mux第一端口的信号,蓝色显示为Mux第二端口的信号。

     

    四、设计框图界面

    在建立了系统模型以后,为了便于用户对系统模型的理解与维护,我们需要对系统框图界面进行设计。

    4.1 模块的名称操作

           在使用Simulink中的系统模块构建系统模型时,Simulink会自动给系统模型中的模块命名,如在本文的简单动态系统中,正弦信号模块名称为Sine Wave;对于系统模型中相同的模块,Simulink会自动对其进行编号,如Scope和Scope1。一般对于简单的系统,可以釆用Simulink的自动命名;但对于复杂系统,给每个模块取一个具有明显意义的名称非常有利于系统模型的理解与维护。模块名称的操作如下所示:

        (1) 模块命名:使用鼠标左键单击模块名称,进入编辑状态,然后键入新的名称。

        (2) 名称移动:使用鼠标左键单击模块名称并拖动到模块的另侧,或选择Diagram->Rotate &Flip菜单中的Flip Name翻转模块名称,如下所示:

        (3) 名称隐藏:取消选择Diagram->Format菜单中的Show Block Name,隐藏系统模块名称,如下所示:

        注意,系统模型中模块的名称应是唯一的,否则Simulink会给出警告并自动改变名称。

        系统模型中模块的名称操作如下图所示:

                                     

     

    4.2 模块的其它操作

          Simulink允许用户对模块的几何尺寸进行修改,以改善系统模型框图的界面。改变系统模块尺寸的方法为:使用鼠标左键单击选择模块,然后拖动模块周围任何一角的方框到适当的大小。

          (1)改变模块的后景色。

          使用鼠标右键单击模块,选择Background color菜单来设置颜色,例如改变增益模块的背景颜色,将其改为绿色,如下所示:

        (2)更改模块的前景色

           如果模块的前景色发生改变,则所有由此模块引出的信号线颜色也随之改变;当系统模型框图很复杂时,这个特性能够有效地增强框图的可读性。例如,我们改变正弦波模块(source)的前景色,将其改变为红色,如下所示:

     4.3 信号标签

    在创建系统模型尤其是大型复杂系统模型时,信号标签对理解系统框图尤为重要。所谓的信号标签,也可以称为信号的“名称”或“标记”,它与特定的信号相联系,是信号的一个固有属性。这一点与系统框图注释不问,框图注释是对整个或局部系统模型进行说明的文字信息,它与系统模型相分离。

    生成信号标签的方法有如下两种:

    (1) 使用鼠标左键双击需要加入标签的信号(即系统模型中与信号相对应的模块连线),这时便会出现标签编辑框,在其中键入标签文本即可。与框图注释类似,信号标签可以移动到希望的位置,但只能是在信号线的附近。如果强行将标签拖动离开信号线,标签会自动回到原处,当一个信号定义了标签后,从这条信号线引出的分支线会继承这个标签。

    我们将正弦波信号加上一个“original”的标签,如下图所示:

    (2)首先选择需要加入标签的信号,用鼠标左键单击信号连线;然后鼠标右键单击弹出Edit菜单,选择 Signal Properties项,在打幵的界面中编辑信号的名称,而且还可以使用这个界面对信号作简单的描述,如下图所示:
        

     

    也可以得到同样的效果:

     

          注意,虽然信号标签的内容可以任意指定,但为了系统模型可读性,信号标签最好使用能够代表信号特征的名称(如信号类型、信号作用等)。

     

    4.4 信号标签的传递

           选择信号线并用鼠标左键双击,在信号标签编辑框中键入<>,在此尖括号中键入信号标签即可传递信号标签。

          注意:只能在信号的前进方向上传递该信号标签。当一个带有标签的信号与Scope块连接时,信号标签将作为标题显示。信号标签的传递如下图所示:

     

     

     

     

     

     

     

     

     

     


     

     

     

     

     

    展开全文
  • 小型风力发电系统MPPT simulink仿真模型,包括风力机、DC-DC变换电路、MPPT等整个完整电路,可以直接出结果。建议使用2010b及以上版本打开
  • simulink的官方使用手册,适合新手入门学习,内容非常全,可作为参考手册来使用。希望对大家有用。
  • Simulink入门(一)

    万次阅读 2018-07-11 22:06:10
    一、MATLAB基本知识 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,MATLAB解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,从而...

    一、MATLAB基本知识

            MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,MATLAB解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,从而使MATLAB成为一个强大的数学软件。因此,本书从最基本的运算单元出发,讲述了MATLAB矩阵的表示方法,符号变量的应用,线性方程组的求解,并着重讲解了MATLAB在工程上的简单应用研究。

    学习目标:

    (1)熟练掌握MATLAB矩阵的表示方法;

    (2)熟练运用符号变量求解实际物理模型;

    (3)熟练掌握线性规划问题的求解,线性齐次方程和非齐次方程的求解等;

    (4)熟练掌握使用MATLAB工具解决简单工程问题等。

     

     二、MATLAB简介

     

    •1. 易用性

    •2. 平台独立性

    •3. 预定义函数

    •4. 机制独立的画图

    •5. 用户图形界面

    •6. MATLAB 编译器

     

    三、MATLAB通用命令

     

    MATLAB的预定义变量

    •(1)元胞数组

    •(2)结构体

     常用运算和基本数学函数

    •MATLAB支持多种矩阵的函数,常用的矩阵的函数运算如表1所示。

     

    四、方程的解

    •方程的解采用矩阵逆运算或者采用左除运算进行求解

    •编写MATLAB程序如下:

    •clc,clear,closeall

    •A = [6 3 4;

    •   -2,5,7;

    •   8,-1,-3];  % 左边系数

    •B = [3;-4;-7]; % 方程右边系数

    •x = inv(A)*B

    •运行程序输出结果如下:

    •x =

    •   1.0200

    • -14.0000

    •   9.7200

     

    五、矩阵的秩

     

    •求解矩阵的秩,MATLAB采用如下运算:

    •调用格式:R=rank(A);

    •其中,A为输入的矩阵;

    •R为输出的矩阵A的秩。

    •则由方程组,编写MATLAB程序如下:

    •r = rank(A)

    •运行程序输出结果如下:

    •r =

    •    3

     

    六、矩阵的特征值与特征向量

     

    •求解矩阵的特征值与特征向量,MATLAB采用如下运算:

    •调用格式:[v,lambda]=eig(A);

    •其中,A为输入的矩阵;

    •v为输出的矩阵A的特征向量;

    •lambda为输出的矩阵A的特征值。

    •则由方程组,编写MATLAB程序如下:

    •[v, lambda] = eig(A)

    •运行程序输出结果如下:

    •v =

    •   0.8013   -0.1094   -0.1606

    •   0.3638   -0.6564    0.8669

    •   0.4749    0.7464   -0.4719

    •lambda =

    •   9.7326         0         0

    •        0   -3.2928         0

    •        0         0    1.5602

     

     

    七、矩阵的乘幂与开方

    •求解矩阵的乘幂与开方,MATLAB运算较简单,直接按照数学表达式模式进行输入即可求解。

    •则由方程组,编写MATLAB程序如下:

    •A1 = A^2 % 乘幂

    •A2 = sqrt(A)  % 开方

    •运行程序输出结果如下:

    •A1 =

    •   62    29    33

    •   34    12     6

    •   26    22    34

    •A2 =

    • Columns 1 through 2

    •  2.4495 + 0.0000i   1.7321 + 0.0000i

    •  0.0000 + 1.4142i   2.2361 + 0.0000i

    •  2.8284 + 0.0000i   0.0000 + 1.0000i

    • Column 3

    •  2.0000 + 0.0000i

    •  2.6458 + 0.0000i

    •  0.0000 + 1.7321i


     

     

    分享一个嵌入式工程师学习的电子书

     

     

     

     

     

    分享一个嵌入式LIUNX开发的电子书

     

     

     

     

     

     

     

    该书内容还是比较多 ,非常适合学习。。。

    如需获取这两本电子书,直接在微信公众号留言回复“电子书20180701”即可,你们的关注是我坚持的最大的动力。。

     

     

     

     

    关注微信公众号“Auto笔记”获取更多嵌入式学习资讯

    如需获取其他学习资料,直接在微信公众号留言

     

     

    展开全文
  • 关于MATLAB与simulink的一些学习书籍,对初学者有一定帮助。 Control Algorithm Modeling Guidelines Using MATLAB,Simulink,and Stateflow,MATLAB SIMULINK 与控制系统仿真 王正林等编,MATLAB仿真技术与应用 张...
  • Simulink入门(二)

    千次阅读 2018-07-24 20:45:10
    关注“嵌入式软件学习圈”免费获取更多学习教程 一、数值的输出格式 •(1)数值型数据 •MATLAB数值型数据包括整数(有符号和无符号)和浮点数(单精度和双精度),表1-6列出了数值型的不同格式。...

    关注“嵌入式软件学习圈”免费获取更多学习教程

    一、数值的输出格式

    •(1)数值型数据

    •MATLAB数值型数据包括整数(有符号和无符号)和浮点数(单精度和双精度),表1-6列出了数值型的不同格式。需要注意的是,在缺省状态下,数据类型默认为双精度的浮点数。

     

     

    (2)MATLAB的数值精度

    •MATLAB所能表示的最小实数称为MATLAB的数值精度,在MATLAB 7以上版本中,MATLAB的数据精度为,任何绝对值小于的实数,MATLAB都将其视为0。

    •在MATLAB命令窗口输入命令如下:

    •clc,clear,closeall

    •format long

    •x1 = 2^-3

    •x2 = 2^30 

    •运行程序输出结果如下:

    •x1 =

    •  0.125000000000000

    •x2 =

    •    1.073741824000000e+09

     

    (3)MATLAB的显示精度

     

    •MATLAB所能显示的有效位数称为MATLAB的显示精度。默认状态下,若数据为整数,则以整型显示;若为实数,则以保留小数点后4位的浮点数显示。

    •MATLAB的显示格式可由format函数控制,需要注意的是,format函数并不改变原数据,只影响其在命令窗中的显示。此外还可以使用digits和vpa函数来控制显示精度

    •分别使用format,short,rat,digits和vpa函数控制显示精度,在MATLAB命令窗口输入命令如下:

     

    •clc,clear,closeall

    •pi

    •format long

    •pi

    •format short

    •pi

    •format rat

    •pi

    •digits(10);

    •vpa(pi)

    •vpa(pi,15)

     

    •运行程序输出结果如下:

    •ans=

    •  3.141592653589793

    •ans=

    •  3.141592653589793

    •ans=

    •   3.1416

    •ans=

    •    355/113   

    •ans=

    •3.141592654

    •ans=

    •3.14159265358979

     

     

    •类似于其他高级语言,MATLAB的字符和字符串运算也相当强大。在MATLAB中,字符串可以用单引号(')进行赋值,字符串的每个字符(含空格)都是字符数组的一个元素。MATLAB还包含很多字符串相关操作函数,具体见表1-7。

     

     

     

     

    •对于字符型数据,MATLAB输入命令如下:

    •clc,clear,closeall

    •symsa b

    •y=a

    •运行程序输出结果如下:

    •>> y

    •y =

    •a

    •字符串的相减运算操作如下:

    •y1 = a+1

    •y2 = y1-2

    •运行程序输出结果如下:

    •y1 =

    •a + 1

    •y2 =

    •a – 1

    •字符串的相加运算操作如下:

    •y3=y+y1

    •运行程序输出结果如下:

    •>> y+y1

    •ans=

    •2*a + 1

    •字符串的相乘运算操作如下:

    •y4=y*y1

    •运行程序输出结果如下:

    •>> y4=y*y1

    •y4 =

    •a*(a + 1)

    •字符串的相除运算操作如下:

    •y5=y/y1

    •运行程序输出结果如下:

    •>> y5=y/y1

    •y5 =

    •a/(a + 1)

     

    •MATLAB支持不同数据类型间的转换,这给数据处理带来极大方便,常用的数据类型转换函数如表1-8所示。

     

     

    • 

    •字符型变量转换,命令如下:

    •clc,clear,closeall

    •a = 'pi'

    •b=double(a)

    •b1=str2num(a)

    •c=11*a

    •d=11*b

    •d=11*b1

    •运行程序输出结果如下:

    •a =

    •    pi

    •b =

    •    112            105       

    •b1 =

    •    355/113   

    •c =

    •   1232           1155       

    •d =

    •   1232           1155       

    •d =

    •   3905/113 

     

     

    •1.M文件的类型

    •(1)脚本M文件

    •(2)函数M文件

    •2.M文件的结构

     

    •1.4.2  MATLAB程序控制语句运用

     

    •1.程序分支控制语句

    •程序分支控制语句包括if结构和switch结构语句,if与else或elseif连用,偏向于是非选择,当某个逻辑条件满足时执行if后的语句,否则执行else语句。

    •switch和case、otherwise连用,偏向于各种情况的列举,当表达式结果为某个或某些值时,执行特定case指定的语句段,否则执行otherwise语句。其中if语句在实际编程中运用较多,具体的if语句句法形式如下所示:

     

    •clc,

    •clear,

    •close all

    •a=1;

    •if a==1

    •   b=0

    •else

    •   b=1

    •end

    •运行程序输出结果如下:

    •b =

    •    0

    •如果a=2,继续运行程序,

    •clc,clear,closeall

    •a=11;

    •switch a

    •   case 1

    •   b=0

    •   otherwise

    •   b=1

    •end

    •运行程序输出结果如下:

    •b =

    •      1       

     

    2.程序循环控制语句

     

    •循环控制语句使用能够使用处理大规模的数据,能够循环进行数据处理,特别是矩阵的运算,一个矩阵包括M行N列,通常需要对M行N列均进行处理,因此循环语句显得尤为重要,MATLAB中提供了两类循环语句,分别是for循环和while循环:

    •for循环指定了循环的次数, 如M行数据处理,则循环M次。

    •while循环则判别等式是否成立,若成立继续在循环体中运行,若不成立则跳出循环体,如果设置参数不合理,则可能导致死循环,因此在使用while时,应该注意判别语句的使用。

    •与for和while搭配的接触循环的语句有end、break、continue等等,end表示循环结束,break表示内嵌判别语句下的结束循环,continue语句使得当前次循环不向下执行,直接进入下一次循环。


    3.程序终止控制语句

     

    •for循环直接指定循环的次数,具体的语法格式如下:

    •clc,

    •clear,

    •close all

    •a=0

    •for i=1:3

    •   a=a+1

    •end

    •运行程序输出结果如下:

    •a =

    •    0

    •a =

    •    1

    •a =

    •    2

    •a =

    •    3

     

    •1.5.1  离散数据图形绘制

    •一个二元实数标量对(x0, y0)可以用平面上的点来表示,一个二元实数标量数组[(x1, y1) (x2, y2) … (xn, yn)]可以用平面上的一组点来表示,对于离散函数Y=f(X),当X为一维标量数组X=[x1, x2, … ,xn]时,根据函数关系可以求出Y相应的为一维标量Y=[y1, y2, … ,yn]。

    •当把这两个向量数组在直角坐标系中用点序列来表示时,就实现了离散函数的可视化。

    •应当注意的是,MATLAB是无法实现对无限区间上的数据的可视化的。

     

     

    •【例3-1】离散数据的图形绘制

    •clc,clear,closeall

    •x=1:10;

    •y=rand(10,1);

    •plot(x,y,'bo-')

    •xlabel('x')

    •ylabel('y')

    •运行该程序文件,得到图形

     

     

    1.5.2  函数图形绘制

     

    •在MATLAB中,是无法画出真正的连续函数的,只是将步长尽量取到最小,因此在实现连续函数的可视化时,首先也必须将连续函数用在一组离散自变量上计算函数结果,然后将自变量数组和结果数组在图形中表示出来。

    •当然,这些离散的点还是不能表现函数的连续性的,为了更形象地表现函数的规律及其连续变化,通常采用以下两种方法:

    •(1)对离散区间进行更细的划分,逐步趋近函数的连续变化特性,直到达到视觉上的连续效果;

    •(2)把每两个离散点用直线连接,以每两个离散点之间的直线,来近似表示两点间的函数特性。

     

     

    •clc,clear,closeall

    •x=-11:0.1:10;

    •y=tan(x*pi);

    •plot(x,y,'r--')

    •xlabel('x')

    •ylabel('y')

    •axis tight

     

     

    1.5.3网格图绘制

    •三维网格图和曲面图的绘制比三维曲线图的绘制稍显复杂,主要是因为:绘图数据的准备以及三维图形的色彩、明暗、光照和视角等的处理。绘制函数z=f(x,y)的三维网格图的过程如下:

    •1.确定自变量x和y的取值范围和取值间隔如下:

    •x=x1:dx:x2, y=y1:dy:y2

    •2.构成xoy平面上的自变量采样个点矩阵

    •(1)利用“格点”矩阵的原理生成矩阵

    •x=x1:dx:x2; y=y1:dy:y2;

    •X=ones(size(y))*x;

    •Y=y*ones(size(x));

    •(2)利用meshgrid指令生成“格点”矩阵

    •x=x1:dx:x2; y=y1:dy:y2;

    •[X,Y]=meshgrid(x,y);

    •3.计算在自变量采样“格点”上的函数值:Z=f(X,Y)

    •绘制网格图的基本mesh指令的句法格式如下:

    •(1)mesh(X,Y,Z)

    •其功能为以X为x轴自变量、Y为y轴自变量,绘制网格图;XY均为向量,若X、Y长度分别为m、n,则Z为m´n的矩阵,即[m,n]=size(Z),则网格线的顶点为(Xj,Yi,Zij)。

    •(2)mesh(Z)

    •其功能为以Z矩阵列下标为x轴自变量、行下标为y轴自变量,绘制网格图;

    •(3)mesh(X,Y,Z,C)

    •其功能为以X为x轴自变量、Y为y轴自变量,绘制网格图;其中C用于定义颜色,如果不定义C,则成为mesh(X,Y,Z),其绘制的网格图的颜色随着Z值(即曲面高度)成比例变化,

    •(4)mesh(X,Y,Z,’PropertyName’,PropertyValue,…)

    •其功能为以X为x轴自变量、Y为y轴自变量,绘制网格图;PropertyValue用来定义网格图的标记等属性。

    •1)观察meshgrid指令的效果,编写程序如下:

    •clc,clear,closeall

    •a=-0.98;b=0.98;c=-1;d=1;n=10;

    •x=linspace(a,b,n); y=linspace(c,d,n);

    •[X,Y]=meshgrid(x,y);

    •plot(X,Y,'+')

    •运行程序输出图形如图1-14所示。

     

     

     

     

    •2)做函数的定义域裁剪,观察上述三维绘图指令的效果,编程如

    •下:

    •clear,clf,

    •a=-1;b=1;c=-15;d=15;n=20;eps1=0.01;

    •x=linspace(a,b,n);y=linspace(c,d,n);

    •[X,Y]=meshgrid(x,y);

    •for i=1:n                             %计算函数值z ,并作定义域裁剪

    •   for j=1:n

    •    if (1-X(i,j))<eps1|X(i,j)-Y(i,j)<eps1    %if语句这样用

    •       z(i,j)=NaN;                   %作定义域裁剪,定义域以外的函数值为NaN

    •    else

    •       z(i,j)=1000*sqrt(1-X(i,j))^-1.*log(X(i,j)-Y(i,j));  

    •    end

    •  end

    •end                  

    •zz=-20*ones(1,n);plot3(x,x,zz),gridoff,holdon        %画定义域的边界线

    •mesh(X,Y,z)                %绘图,读者可用meshz,  surf,  meshc在此替换之

    •view([-56.5 38]);

    •xlabel('x'),ylabel('y'),zlabel('z'),   box on     %把三维图形封闭在箱体里

     

     

    关注微信公众号“Auto笔记”获取更多嵌入式学习资讯

    如需获取其他学习资料,直接在微信公众号留言


    展开全文
  • 详细介绍了simulink模块库,详细介绍了simulink模块库,详细介绍了simulink模块库,详细介绍了simulink模块库,详细介绍了simulink模块库,详细介绍了simulink模块库,详细介绍了simulink模块库,
  • Simulink系列 - simulink模块库详细介绍

    千次阅读 2020-05-07 16:20:59
    (原创文章,转载请与作者联系,...上一篇:Simulink仿真系列-- 扩频通信-跳频扩频通信系统的原理和Simulink仿真 上一篇:Simulink仿真系列 - Simulink模块-数字基带调制解调模块详解 M-PAM,M-FSK,M-PSK 0.前言 ...
  •  Simulink自带了种类繁多、功能强大的模块库,在基于模型设计的开发流程下,Simulink不仅通过仿真可以进行早期设计的验证,还可以生成C/C++、PLC等代码直接应用于PC、MCU、DSP等平台。在嵌入式软件开发中发挥着重要...
  • simulink模块的使用

    2019-03-29 12:33:21
    求助各位大神,simulink中表示平方使用哪个模块 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的...
  • Simulink三相异步电机仿真

    万次阅读 多人点赞 2019-03-01 16:31:22
    MATLAB/Simulink三相异步电机直接启动仿真 小树不修不直溜,人不学习哏揪揪!隔了好长一段时间,本小学生终于又回归正常的学习与记录生活。前些时,利用CADe_SIMu V1.0仿真了一些常见常用的电机控制电路,但是CADe_...
  • 永磁同步电机矢量控制(四)——simulink仿真搭建

    万次阅读 多人点赞 2019-05-17 09:51:37
    由于是初学,对于simulink很多地方不熟悉,在此记下整个仿真搭建的选择元件的细节。 1 电机模型的选择及参数设置 永磁同步电机的英文缩写为PMSM,全称 Permanent Magnet Synchronous Machine。在 library 内...
  • Simulink

    千次阅读 2017-06-25 23:08:18
    注:本文主要记录对simulink 各种原件 的 各种参数 做简单的总结
  • Simulink 仿真入门精通 (二) simulink 模块 simulink 模块属性以及参数 get(gcbh) % 选中模块后,在command window 输入指令,可以输出模块属性信息,获取模块句柄 gcb % 获取当前被选中的模块 属性名 作用...
  • MATLAB Simulink模块库详解(一)Sources篇

    万次阅读 多人点赞 2018-07-16 09:41:56
    MATLAB Simulink模块库详解(一)Sources篇Simulink模块库概述1.Sources模块库,为仿真提供各种信号源2.Sinks模块库,为仿真提供输出设备元件3.Continuous模块库,为仿真提供连续系统4.Discrete模块库,为仿真提供...
  • 本节主要解决5个问题: 1.动态系统建模要素 2.开放式动态系统建模 3.动态系统分类 4.建立方程模型 5.Simulink建模提示
  • simulink建模之电机模型

    万次阅读 多人点赞 2019-04-15 16:54:25
    simulink建模之电机模型 文章目录simulink建模之电机模型0.前言1.原理分析2.具体步骤2.1第一步:最大扭矩和功率模块2.1.1在恒功率区通过转速查表得出力矩值2.2第二步:电机效率模块2.3第三步:求电流3.总结 0.前言 ...
  • Simulink仿真教程4---模块库介绍

    千次阅读 多人点赞 2019-08-03 21:24:35
    Simulink拥有非常多的模块,利用这些模块进行组合可以完成很复杂的各种功能的模型。众多的模块也是Simulink强大功能的基础。现在我们来简单认识一下他们,在以后设计模型时,也好有个印象。(这些库里面的模块,不用...
  • 第一讲 简单系统模型的Simulink仿真1、模型的数学表达式2、建立系统模型2.1、选择模块2.2、参数设置2.3、系统仿真 1、模型的数学表达式 y={3u(t),t&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;105u(t),t≤10...

空空如也

1 2 3 4 5 ... 20
收藏数 17,893
精华内容 7,157
关键字:

simulink