Matlab simulink建模与仿真 第一章(simulink入门)

embedded/2024/12/22 17:58:39/

参考视频:simulink1.1simulink简介_哔哩哔哩_bilibili

一、simulink简介

1、simulink与MATLAB的关系

(1)MATLAB是一种以矩阵为来处理数据的的计算软件,其应用范围十分广泛,该产品由若干模块组成,simulink是其中一个,它可利用图形化的工具来进行建模与仿真。

(2)simulink是基于MATLAB的框图设计环境,可以用来对各种动态系统进行建模、分析和仿真,它的应用领域十分广泛,任何能用数学模型来描述的系统都可以在simulink中进行仿真分析,如空气动力学、导航制导通讯、电子、机械、热力学等诸多领域,这些系统从数学角度来描述多涉及连续、离散、非线性、时变、条件执行、多速率混合等用解析方法难以求解的系统,它们都可以通过simulink进行建模与仿真,从而指导系统的分析与设计。

2、simulink的特点

(1)交互式建模:提供大量功能模块便于用户快速建立模型,建模仅需利用鼠标拖放功能块并将其连接起来。

(2)交互式仿真:仿真结果可以动态显示,并可以在仿真过程中随时修改参数。

(3)扩展与定制:提供了一个开放式的环境,允许用户扩充功能,可以将C、fortran编写的算法集成到框图中。

(4)专业的模型库:针对不同行业和领域提供了专业模型库。

3、simulink窗口的打开

(1)打开MATLAB,在命令行中输入“simulink”,然后按下回车即可。

(2)MATLAB的菜单栏中也有打开simulink的快捷图标,不同版本的图标显示方式和位置可能略有不同,下面都以R2017b版本进行介绍。

(3)按照下图所示,可以打开已有的模型文件,或者新建空白模型文件。

二、建模与仿真的流程示例

1、一个典例——求解二阶振荡电路

2、数学模型的建立示例

(1)要解决一个实际的问题,首先要建立数学模型,对于动态系统而言,其数学模型往往都是微分方程或者微分方程组,得到它的数学模型以后就可以在simulink中建立相应的方块图并进行求解与仿真。

(2)在上面的例子中,求解过程中得出一个微分方程

        对这个微分方程进行变形,把最高阶的导数项挪到左侧,其余项挪到右侧,即

        根据此式可画出如下方块图。

(3)在simulink中搭建上面的方块图,最终成品如下图所示。

3、在simulink中搭建数学模型示例

(1)继续使用上面的例子,打开simulink,然后新建或者打开已有的文件,按照下图所示打开模块库浏览器。

simulink栏下将一些模块分为几种类别,分别有常用的模块、连续模块、不连续模块、离散模块、逻辑与位操作模块、查找表格模块、数学操作模块、模型校验模块、端口和子系统模块、用户自定义模块等。

②除了simulink栏以外,其它栏基本都是一些专业的工具箱,在某些专业领域会频繁使用,当然,它们也隶属于simulink

(2)通过拖拽的方式可以将模块浏览器中的模块添加到编辑区中,另外编辑区中支持移动、缩放、同时框选多个模块、Ctrl+C/Ctrl+V快捷键复制粘贴、backspace/delete键删除、Ctrl+R/Ctrl+Shift+R快捷键旋转、Ctrl+I快捷键翻转等基本操作。

(3)对于已添加模块,双击它,按照下图所示可以修改其形状。

(4)双击模块可以修改模块的属性:

①针对求和模块,其输入端口数目可通过双击模块,更改属性“List of signs”的内容来改变,两个“+”对应两个输入,四个“+”对应四个输入,以此类推。

②针对增益模块,其增益系数可通过双击模块,更改属性“Gain”的值来改变,这个值就是增益系数(可以是负数)。

③针对阶跃信号产生模块,可通过更改属性“Step time”的值以更改信号产生阶跃的时间。

(5)每个模块都会与其它模块产生关联,也就是一个模块往往都具有输入端和输出端(当然,本例中的Step和Scope并不是这样,它们只有输入端或者输出端),在编辑区中,模块的输入端表示为一个指向模块内部的“无身箭头”,模块的输出端表示为一个指向模块外部的“无身箭头”。

(6)各模块的位置摆好后,可以进行连线。

①鼠标选定模块的端口,直接进行拖拽,可以将其与其它模块的端口进行连线,以此表示信号的传递(违规连接不会被允许)。

②按住Ctrl键点击信号线的某个位置,可以在上面引出一条分支,或者在模块的端口出直接拉出一条信号线连接到其它信号线上,也可以达成同样的效果。

③如果连接的信号线不是黑色实线,说明信号线没能将两端连接,需要重新进行连线。

(7)框选所有模块,右键选择“Format”→“Show Block Name”→“On”,可以让模块的注释保持显示,点击注释可对其进行更改,不过模块的注释对工程而言不起实际作用。

(8)选中模块,右键选择“Format”→“Foreground Color”可以设置模块本身的颜色,右键选择“Format”→“Background Color”可以设置模块填充颜色,设置填充颜色可对不同功能/种类的模块进行更好的区分。

(9)模型搭建完成后,可以点击下图所示图标或者使用快捷键Ctrl+S保存,文件格式为.mdl。

4、仿真示例

(1)使用之前搭建的模型,按照下图所示打开仿真参数设置窗口,一般需要配置的参数有起止时间和求解器选项,这里暂时不作深入介绍。

(2)仿真参数设置完成后,将已知的初始条件i_{L}(0^{-})=0v_{C}(0^{-})=0.5V代入模型。

(3)完成以上工作后,可以直接开始仿真。

(4)仿真结束后,双击scope模块,可以查看仿真结果,也就是v_{C}(t)的图象。


http://www.ppmy.cn/embedded/97361.html

相关文章

web开发环境搭配与创建javaee项目

一.web开发 (1)web开发指的是前端,后端,以及数据库进行交互,前端发送请求到后端,后端经过程序处理后到达数据库,最后在进行后端处理响应回前端。 (2)一次三端交互的doget或者dopost简单请求流程 (3)web开发除了需要前端,后端,数据库开发工具…

Docker-安装软件

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、安装MySQL(一)拉取MySQL镜像(二)运行MySQL容器(1)数据卷概念 (三&#x…

git的学习教程

目录 1.初始化仓库 2.环境配置 2.1配置用户姓名: 2.2配置用户邮箱: ​编辑 2.3删除姓名配置: 2.4删除邮箱配置: 2.5全局配置姓名: 2.6全局配置邮箱: 2.7全局删除姓名: 2.8全局删除邮箱…

vue 拦截器

拦截器——main.js中,可以编写 Axios.interceptors.request.use()来拦截所有的请求,对请求做相应护理后再放行搭配后端,这也是全局的,每个请求中无需自己处理 在main.js中配置 Axios.defaults.baseURLhttp://127.0.0.1:8088; …

前端读取response.headers异常:Cannot read properties of undefined (reading ‘split‘)

[TOC](前端读取response.headers异常:Cannot read properties of undefined (reading ‘split’) ) 前端读取response.headers异常 Cannot read properties of undefined (reading ‘split’) TypeError: Cannot read properties of undefined (reading ‘split’) 报错解释&a…

DHT11温湿度传感器详解(STM32)

目录 一、介绍 二、传感器原理 1.原理图 2.工作时序 3.起始信号与响应信号 4.读数据时序 5.DHT11数据格式 三、程序设计 main.c文件 dht11.h文件 dht11.c文件 四、实验效果展示 五、资料获取 项目分享 一、介绍 DHT11是一款含有已校准数字信号输出的温湿度复合传感器&…

Android常见的界面布局

目录 ​前言 1.线性布局LinearLayout 2.相对布局RelativeLayout 3.表格布局TableLayout 4.网格布局GridLayout 实现一个计算器界面 改Button按钮颜色 5.帧布局FrameLayout 前言 在Android应用程序中,界面是由布局和控件组成的。控件是功能单元,负…

【Python学习-UI界面】PyQt5 小部件14-QDock 子窗口

可停靠窗口是一个子窗口,可以保持浮动状态或附加到主窗口的指定位置。 QMainWindow类的主窗口对象保留了一块区域供可停靠窗口使用。该区域位于中央窗口部件周围。 可停靠窗口可以在主窗口内移动,也可以被取消停靠并由用户移动到新的区域。 样式如下: …