MATLAB 之 Simulink系统的仿真与分析

这篇具有很好参考价值的文章主要介绍了MATLAB 之 Simulink系统的仿真与分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Simulink 系统的仿真与分析

  • 系统的模型建立之后,选择仿真参数和数值算法,便可以启动仿真程序对该系统进行仿真。

1. 设置仿真参数

  • 在系统仿真过程中,事先必须对仿真算法、输出模式等各种仿真参数进行设置。在模型编辑窗口打开仿真参数设置对话框有以下方法。
  • (1) 单击工具栏中的 Model Configuration Parameters 按钮。
  • (2) 选择 Simulation ⟶ \longrightarrow Model Configuration Parameters 命令。
  • 打开的仿真参数设置窗口如下图所示。

simulink仿真,MATLAB,matlab,数据库,开发语言

  • 在仿真参数设置窗口中,仿真参数分为以下 7 类。
  • (1) Solver 参数:用于设置仿真起始和终止时间,选择微分方程求解算法并为其规定参数,以及选择某些输出选项。
  • (2) Data Import/Export 参数:用于管理工作空间数据的导入和导出。
  • (3) Optimization 参数:用于设置仿真优化模式。
  • (4) Diagnostics 参数:用于设置在仿真过程中出现各类错误时发出警告的等级。
  • (5) Hardware Implementation 参数:用于设置实现仿真的硬件。
  • (6) Model Referencing 参数:用于设置参考模型。
  • (7) Simulation Target 参数:用于设置仿真模型目标。

1.1 Solver 参数设置

  • Solver(求解算法)是利用模型中所含的信息来计算系统动态行为的数值积分算法。
  • Simulink 提供的求解算法可支持多种系统的仿真,其中包括任何规模的连续时间(模拟)、离散时间(数字)、混杂(混合信号)和多采样率系统。
  • 这些求解算法可以对刚性系统以及具有不连续过程的系统进行仿真。可以指定仿真过程的参数,包括求解算法的类型和属性、仿真的起始时间和结束时间以及是否加载或保存仿真数据。
  • 此外,还可以设置优化和诊断信息。在仿真参数设置窗口左侧窗格中选择 Solver 选项,在右侧窗格中会列出所有 Solver 参数,如图12-8所示。

simulink仿真,MATLAB,matlab,数据库,开发语言

  • (1) 设置仿真起始和终止时间(Simulink time)。在 Start time 和 Stop time 两个编辑框中,通过直接输入数值来设置仿真起始时间和终止时间,时间单位是秒 (s)。
  • (2) 仿真算法的选择(Solver options)。在 Type 下拉列表框中设定算法类别:Fixed-step(固定步长)和 Variable-step(变步长)算法,在 Solver 下拉列表框中选择具体算法。
  • 仿真算法根据步长的变化分为固定步长类算法和变步长类算法。固定步长是指在仿真过程中计算步长不变,而变步长是指在仿真过程中要根据计算的要求改变步长。对于这两类算法,它们所对应的相关选项及具体算法都有所不同。
  • 在采用变步长类算法时,首先应该指定允许的误差限,包括相对误差限(Relative Tolerance)和绝对误差限(Absolute Tolerance),当计算过程中的误差超过该误差限时,系统将自动调整步长,步长的大小将决定仿真的精度。
  • 在采用变步长类算法时还要设置所允许的最大步长(Max Step Size),在默认值(Auto)的情况下,系统所给定的最大步长为(终止时间起始时间) /50。
  • 在一般情况下,系统所给的最大步长已经足够,但如果用户所进行的仿真时间过长,则默认步长值就非常大,有可能出现失真的情况,这时应根据需要设置较小的步长。
  • 在采用固定步长算法时,要先设置固定步长。由于固定步长算法的步长不变,所以此时不设定误差限,而多了一个模型类型(Tasking Mode for Periodic Sample Times)的选项,该选项包括 Auto(默认值)、SingleTasking(单任务和 MultiTasking(多任务)。
  • 单任务是指各模块的采样速率相同,不检测采样速率的传递;多任务是指在模型中模块具有不同的采样速率,同时检测模块之间采样速率的传递;默认值则根据模块的采样速率是否相同来决定采用单任务还是多任务。
  • 变步长和固定步长包含多种不同的具体算法。一般情况下,连续系统仿真应该选择 ode45 变步长算法,对刚性问题可以选择变步长的 ode15s 算法,离散系统一般默认选择固定步长的 discrete(no continuous states)算法,要注意在仿真模型中含有连续环节时不能采用该仿真算法,而可以采用诸如 4 阶 Runge-Kutta 法这样的算法来求解问题。

1.2 Data lmport/Export 参数设置

  • 导入的数据包括输入信号和初始状态,输入信号可以用标准信号或自定义函数生成。
  • 导出的数据包括输出信号和仿真过程的状态数据,可以用于生成图形或进行其他处理。Data ImportExport(数据导入/导出)参数选项如下图所示,包含 Load from workspace、Save to workspace or file 和 Simulation Data Inspector 三个部分。

simulink仿真,MATLAB,matlab,数据库,开发语言

  • (1) Load from workspace(从工作空间中载入数据)。在仿真过程中,如果模型中有输入端口(In 模块),可从工作空间直接把数据载入到输入端口,即先勾选 Data Import/Export 参数选项中的 Input 复选框,然后在后面的编辑框中输入数据的变量名。变量名可以采用不同的输入形式。
  • ① 矩阵形式。如果以矩阵形式输入变量名,则矩阵的列数必须比模型的输入端口数多一个,MATLAB把矩阵的第一列默认为时间向量,后面的每一列对应每一个输入端口,矩阵的第一行表示某一时刻各输入端口的输入状态。
  • 另外,也可以把矩阵分开来表示,即 MATLAB 默认的表示方法 [ t , u ] [t,u] [t,u],其中 t t t 是一维时间列向量,表示仿真时间, u u u 是和 t t t 长度相等的 n 维列向量(n 表示输入端口的数量),表示状态值。
  • 例如,我们在命令行窗口中定义 t t t u u u
>> t=(0:0.1:10)';
>> u=[sin(t),cos(t).*sin(t),exp(-2*t).*sin(t)];
  • 则 3 个输入端口输入的数据与时间的关系分别为 sin ⁡ t \sin t sint cos ⁡ t sin ⁡ t \cos t\sin t costsint e − 2 ∗ t sin ⁡ t e^{-2*t}\sin t e2tsint
  • ② 包含时间数据的结构形式。对于包含时间数据的结构,在 MATLAB 中有非常严格的规定,即在结构中必须有两个名字不能改变的顶级成员:time 和 signals。
  • 在 time 成员中包含一个列向量,表示仿真时间;signals 成员是一个向量,向量中的每个元素对应一个输入端口,并且每个元素必须包含一个名字同样不能改变的 values 成员,values 成员也包含一个列向量, 对应于输入端口的输入数据。
  • 例如,对于上例,我们若改为包含时间数据的结构输入,则命令格式如下:
>> t=(0:0.1:10)';
>> A.time=t;
>> A.signals(1).values=sin(t);
>> A.signals(2).values=cos(t).*sin(t);
>> A.signals(3).values=exp(-2*t).*sin(t);
  • 在 Input 复选框右侧的文本框中输入 A,则产生的仿真曲线与上面矩阵形式数据输入后的输出曲线完全相同。
  • 在 Input 复选框的下面,还有一个 Initial state 复选框,它表示的是模块的初始化状态。对模块进行初始化的方法是,先勾选 Initial state 复选框,然后在右侧的文本框中输入初始化数据的变量名。变量要求的形式与前面的输入端口数据的变量形式基本相同,但变量中的数据个数必须和状态模块数相同。
  • (2) Save to workspace or file(保存到工作空间或文件)。在 Save to workspace or file 区域中,可以选择的选项有 Time(时钟)、States(状态)、Output(输出端口)、Final states(最终状态)、Signal logging(信号)等。
  • 同载入数据的形式一样, 保存数据也有矩阵、结构和包含时间数据的结构 3 种形式,在 Format 下拉列表框中可以根据需要进行选择。对于不同的保存形式来说,Time 的格式是不变的,总是对应仿真的采样时间。

2. 运行仿真与仿真结果分析

2.1 运行仿真

  • 在 MATLAB 中,可以在 Simulink 模型编辑窗口以交互方式运行仿真。Simulink 仿真有 3 种模式,可以通过在模型编辑窗口选择 Simulation ⟶ \longrightarrow Mode 命令进行设置。
  • (1) Normal:标准模式(默认设置),以解释方式运行,仿真过程中能够灵活地更改模型参数和显示结果,但仿真运行慢。
  • (2) Accelerator:加速器模式,通过创建和执行已编译的目标代码来提高仿真性能,而且在仿真过程中能够较灵活地更改模型参数。加速模式下运行的是模型编译生成的 s 函数,不能提供模型覆盖率信息。
  • (3) Rapid Accelerator:快速加速器模式,能够比 Accelerator 模式更快地进行模型仿真,该模式不支持调试器和性能评估器。
  • 设置完仿真参数之后,单击模型编辑窗口工具栏中的 Run 按钮,或选择 Simulation ⟶ \longrightarrow Run 命令,便可启动对当前模型的仿真。
  • Simulink 支持使用仿真步进器(Simulation Stepper)进行调试,便于逐步查看示波器上的仿真数据,或检查系统改变状态的方式及时间。单击模型编辑窗口工具栏中的 Step Forward 按钮,开始单步仿真。单击模型编辑窗口工具栏中的 Stop 按钮,终止单步仿真。
  • 运行仿真前,单击模型编辑窗口工具栏中的 Stepping Options 按钮,在打开的对话框中勾选 Enable stepping back 复选框,在仿真时单击模型编辑窗口工具栏中的 Step Back 按钮,回溯仿真过程。

2.2 仿真结果分析

  • Simulink 提供了多种有助于了解仿真行为的调试工具。使用 Simulink 中提供的查看器和示波器查看信号,实现仿真行为可视化。还可以将仿真结果导出到 MATLAB 工作区,以便使用 MATLAB 算法以及可视化工具来查看和分析数据。
  • 在仿真过程中,用户可以设置不同的输出方式来观察仿真结果。为了观察仿真结果的变化轨迹可以采用 3 种方法。
  • (1) 把仿真结果送给 Scope 模块或者 XYGraph 模块。Scope 模块显示系统输出量对于仿真时间的变化曲线,XYGraph 模块显示送到该模块上的两个信号中的一个对另一个的变化关系。
  • (2) 把仿真结果送到输出端口,将结果导出到工作空间,然后用 MATLAB 命令画出该变量的变化曲线。在运行这个模型的仿真之前,先在 Configuration Parameters 对话框的 Data Impot/Export 选项卡中,规定时间变量和输出变量的名称(假定分别设定为 t t t y y y),那么,当仿真结束后,时间值保存在时间变量t中,对应的输出端口的信号值保留在输出变量 y y y 中,这时可以在命令行窗口使用 whos 命令查看内存变量,也可以使用绘图命令绘制系统输出量的变化曲线。
  • (3) 把输出结果送到 To Workspace 模块,在 To Workspace 模块参数对话框中填入输出变量名称,并在 Save format 下拉列表中选择 Array 选项,从而将结果直接存入工作空间,然后用 MATLAB 命令画出该变量的变化曲线。
  • 仿真输出结果还有其他一些输出方式,例如,使用 Display 模块可以显示输出数值。
  • 例如,我们利用 Simulink 构建函数曲线 y = 5 r + 16 y=5r+16 y=5r+16
  • Simulink 的 Sources 模块库中提供了时钟、脉冲、正弦波等常用信号源,可利用这些常用信号源和 Simulink 模块库中提供的求和、乘积、增益以及 MATLAB 函数等其他模块进行适当的连接组合,即可构建所需的各种信号源。
  • 下面采用两种方法来构建函数曲线,一种方法是采用 MATLAB Function 模块,另一种方法是采用基本模块的组合连接。
  • 方法 1:采用 MATLAB Function 模块构建仿真模型。
  • (1) 启动 Simulink 并打开模型编辑窗口,将所需模块添加到模型中。在 Simulink Library Browser 窗口单击 Sources 模块库,在右侧的窗口中找到 Clock(时钟)模块,然后用鼠标将其拖到模型编辑窗口。
  • 同样,在 User-Defined Functions(用户自定义函数)模块库中拖出 MATLAB Function(MATLAB 函数)模块,在 Sinks 模块库中拖出 To Workspace(输出到工作空间)模块、Scope(示波器)模块进行连接组合,其模型如下图所示。

simulink仿真,MATLAB,matlab,数据库,开发语言

  • (2) 设置模块参数。双击 MATLAB Function 模块,建立其信号源的函数。
function	y=f(t)
	y=5*t*t+16;
  • 双击两个输出到工作空间模块,分别输入变量名为 t t t y y y,仿真参数取默认值。
  • (3) 启动仿真,函数曲线下图所示。

simulink仿真,MATLAB,matlab,数据库,开发语言

  • 方法 2:采用基本模块组合构建仿真模型。
  • 构建该信号源该信号源的另一种方法石将一些常用的数学模块进行组合建模,其模型如下图所示。

simulink仿真,MATLAB,matlab,数据库,开发语言

  • 模型中用到了 Clock(时钟)、Constant(常数)、Gain(增益)、Product(乘积)和 Sum(求和)等模块。双击增益模块输入 5,常数模块输入 16,最后设置仿真参数即可。其输出结果与方法 1 相同。
  • 与方法 1 相比,该方法采用的模块数较多一些。另外,模型中还采用 XY Graph 模块将输出信号的轨迹显示出来。
  • 例如,我们利用 Simulink 仿真求 I = ∫ 0 1 x ln ⁡ ( 1 + x ) d x I=\int_{0}^{1}x\ln \left ( 1+x\right)\mathrm{d}x I=01xln(1+x)dx
  • 首先打开模型编辑窗口,将所需模块添加到模型中。在 Simulink Library Browser 窗口中单击 Sources 模块库,将 Clock 模块拖到模型编辑窗口。
  • 在用户定义模块库 User-Defined Functions 中把函数模块 Fcn 拖到模型编辑窗口,在连续系统模块库 Continuous 中把 Integrator 模块拖到模型编辑窗口,在 Sinks 模块库中把 Display 模块拖到模型编辑窗口。
  • 然后,我们设置模块参数并连接各个模块组成仿真模型。双击 Fcn 模块,打开 Block Parameters 对话框,在 Expression 栏中输入 u*log(1+u),其余模块参数不用设置。
  • 设置模块参数后,用连线将各个模块连接起来组成仿真模型,如下图所示。

simulink仿真,MATLAB,matlab,数据库,开发语言文章来源地址https://www.toymoban.com/news/detail-772891.html

  • 设置系统仿真终止时间为 1s,运行仿真模型,Display 模块显示仿真结果为 0.25。

到了这里,关于MATLAB 之 Simulink系统的仿真与分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MATLAB 之 Simulink 操作基础和系统仿真模型的建立

    Simulink 是 MATLAB 的重要组成部分既适用于线性系统,也适用于非线性系统,既适用于连续系统,也适用于离散系统和连续与离散混合系统。既适用于定常系统,也适用于时变系统。 1.1 Simulink 的启动 在安装 MATLAB 的过程中。若选中了 Simulink 组件,则在 MATLAB 安装完成后,Simul

    2024年02月08日
    浏览(36)
  • 独立逆变器系统MATLAB-simulink建模及仿真

             独立逆变器不同于并网逆变器,是一种将直流电转换为特定频率与幅值交流电的电力电子装置,一般作为EPS、UPS以及孤岛微电网系统的雏形装置。由于其负载的多样性导致独立逆变器必须具备快速适应负载变化的特性。本设计通过对独立逆变器系统传递函数分析并

    2023年04月08日
    浏览(44)
  • MATLAB 之 Simulink 系统仿真实例和 S 函数的设计与应用

    下面的应用实例我们将分别采用不同建模方法为系统建模并仿真。 例如,有初始状态为 0 的二阶微分方程 x ′ ′ + 0.2 x ′ + 0.4 x = 0.2 u ( t ) x\\\'\\\'+0.2x\\\'+0.4x=0.2u(t) x ′′ + 0.2 x ′ + 0.4 x = 0.2 u ( t ) ,其中 u ( t ) u(t) u ( t ) 是单位阶跃函数,对此我们尝试建立系统模型并仿真 。 我们利

    2024年02月13日
    浏览(41)
  • 双容水箱液位模糊PID控制系统设计与仿真(Matlab/Simulink)

    前些天发现了十分不错的人工智能学习网站,通俗易懂,风趣幽默,没有广告,分享给大家,大家可以自行看看。(点击跳转人工智能学习资料) 微信公众号:创享日记 发送:双容模糊 获取完整无水印报告+仿真源文件+相关文献 双容水箱液位控制系统的设计与仿真 1、基于

    2024年02月07日
    浏览(53)
  • 【电力系统】基于MATLAB Simulink进行飞轮储能系统和永磁同步电机的仿真

    目录 飞轮储能系统和永磁同步电机的仿真 基于MATLAB Simulink进行飞轮储能系统和永磁同步电机的仿真,可以按照以下步骤操作:

    2023年04月22日
    浏览(56)
  • 用MATLAB/Simulink对实验/仿真示波器保存的数据进行THD分析、MATLAB自定义横纵坐标轴绘图

    最近年底和师兄交流了数据分析、波形处理问题。一个是将示波器导出的csv数据放到MATLAB中进行THD分析,另一个是自定义横纵坐标轴进行绘图,就这两个问题记录一下。 不需要背代码,简单、易于理解,使用过程中截个图就行了。 1、导入数据至MATLAB,修改变量名和数据类型

    2024年01月22日
    浏览(71)
  • ABB-IRB-1200运动学分析MATLAB RVC工具分析+Simulink-Adams联合仿真

            此处是基于MATLAB RVC工具箱,对ABB-IRB-1200型号的微型机械臂进行正逆向运动学分析,并利Simulink工具实现对机械臂进行具有动力学参数的末端轨迹规划仿真,最后根据机械模型设计Simulink-Adams联合仿真。  图1. ABB IRB 1200 尺寸参数示意图 ABB IRB 1200提供的两种型号广泛

    2024年02月05日
    浏览(61)
  • Matlab/Simulink六自由度机器人运动学与控制系统仿真(一)【附源文件】

    本文章为系列文章,以IRB1600机器人为例,建立机器人正运动、逆运动学、控制系统模型,并在simulink中进行仿真,与理论计算结果进行对比验证 (一) irb1600机器人坐标系建立、正运动学计算与simulink验证 (二) 机器人逆运动学计算 (三) 机器人运动学控制系统仿真 本文以

    2024年01月16日
    浏览(70)
  • SVPWM控制技术+Matlab/Simulink仿真详解

    本章节首先介绍SVPWM控制技术的原理,然后详细分析SVPWM控制算法的具体实现方式,并通过Matlab/Simulink对SVPWM控制算法进行仿真分析,最后通过永磁同步电机矢量控制的实例进行算法实现。 SPWM控制技术主要控制逆变器的输出电压尽量接近正弦波,并未顾及输出电流的波形。电

    2024年01月22日
    浏览(42)
  • MATLAB使用Simulink 进行建模与仿真方法 - Simulink基本操作与入门教程

    Simulink 是 MATLAB 很强大的功能组件,广泛用于系统建模、仿真和分析。下面分享给大家MATLAB使用Simulink 进行建模与仿真方法、步骤,希望能够帮助大家。 电脑 MATLAB及Simulink 组件 MATLAB使用Simulink 进行建模与仿真 1 我们打开MATLAB软件,然后在命令窗口中输入simulink或点击左上角的

    2024年02月05日
    浏览(104)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包