【更新中…】Matlab simulink建模与仿真

本文为学习笔记,视频来源:https://www.bilibili.com/video/BV1L7411a7uL

1 初始simulink

1.1 simulink简介

1.1.1 matlab与simulink的关系

Matlab:matrix laboratory,一种以矩阵为来处理数据的的计算件,应用范围十分广泛,该产品有若干模块组成,simulink是其中一个,利用图形化的工具来进行建模与仿真

1.1.2 什么是simulink

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

1.1.3 simulink的两种打开方式

  1. 在上方菜单栏点击simulink图标
    在这里插入图片描述
  2. 在命令运行窗口输入simulink
    在这里插入图片描述

1.2 建模与仿真的流程

1.2.1 操作案例

在这里插入图片描述
对于此问题,可以通过电工学的方法、状态空间法或拉普拉斯变化得到结果,但是需要一定的解微分方程的知识,因此计算比较困难,用simulink就能很好的解决这一问题。

1.2.2 搭建模型

  1. 建立数学模型,通过基尔霍夫定律和电流的连续性方程,可以得到数学模型,一般是微分方程或者是微分方程组,在本例中,数学模型为:
    d 2 v c d t 2 + 4 d v c d t + 3 v c = 3 ( t > 0 ) \frac{d^2v_c}{dt^2} +4\frac{dv_c}{dt}+3v_c=3(t>0) dt2d2vc+4dtdvc+3vc=3(t>0)

  2. 对微分方程进行变形,把最高阶放在等号左边,其余放在等号右边,如下:
    d 2 v c d t 2 = 3 − 4 d v c d t − 3 v c ( t > 0 ) \frac{d^2v_c}{dt^2} =3-4\frac{dv_c}{dt}-3v_c(t>0) dt2d2vc=34dtdvc3vc(t>0)

  3. 画出方块图
    在这里插入图片描述

  4. 在simulink里进行相关模块的添加和链接
    在这里插入图片描述
    在这里插入图片描述

1.2.3 设置仿真器参数

如图所示,进入仿真参数设置界面,进行相关的设置。
在这里插入图片描述
在这里插入图片描述

1.2.4 设置实际问题参数

根据题目给出的初始条件:
在这里插入图片描述
以及相应的物理公式:
在这里插入图片描述

可以得出,初始条件下,在两次积分之后得到的初始 v c = 0.5 v_c=0.5 vc=0.5,所以设置第二个积分器的初始值为0.5。
初始电流为零,根据第二个公式,则积分一次后的初始 d v c d t = 0 \frac{dv_c}{dt}=0 dtdvc=0,所以第一个积分器的初始值为0。
设置好初始值之后点击运行。

1.2.5 运行仿真,查看结果

点击开始图标运行仿真,双击Scope查看运行结果。
在这里插入图片描述
这就是电容两端电压随时间的变化情况。

2 常用模块库

2.1 输入输出端口及子系统模块

2.1.1 子系统

  1. 子系统图标:
    在这里插入图片描述
  2. 子系统作用:
    类似于编程语言的子函数,子系统也是将一些特定功能的模块封装到一起,从而是整个程序方便管理,更加整洁有序。

2.1.2 如何使用子系统

  1. 在进行搭建模型之前就分好子系统
  2. 所有模型搭建完毕之后在根据各个模块的功能进行归类封装

2.1.3 案例演示

  1. 以1.2中所搭建的模型为例,在模型搭建完毕之后,可以进行以下划分:
    在这里插入图片描述
  2. 选中中间的部分,选择Diagram–>Subsystem & Model Reference–>Create Subsystem from Selection创建子系统。
    在这里插入图片描述
    或鼠标放到右下角的三个蓝色的点选择创建子系统
    在这里插入图片描述
    创建后的效果如图
    在这里插入图片描述
  3. 双击Subsystem就可以看到子系统里面的结构
    在这里插入图片描述

2.2 Ground及Terminator模块

2.2.1 Ground模块

  1. 如何查看帮助?
    选中相应的模块,然后右键选择help for the XXX block即可
    在这里插入图片描述
    在这里插入图片描述
  2. 作用(摘自帮助文档):
    Ground 模块连接到其输入端口不连接到其他模块的模块。如果您使用具有未连接的输入端口的模块运行仿真,Simulink® 会发出警告。使用 Ground 模块将那些未连接的模块接地可以防止出现这些警告。默认给一个0值。
  3. 示例
    在这里插入图片描述

如上图所示,加法器sum应该有两个输入,但是现在只有一个,所以另外一个输入口要接Ground。

2.2.3 Terminator模块

  1. 作用:
    与Ground相反,如果输出口没有接东西的话,就要接Terminator模块
    官方:使用 Terminator 模块终止输出端口未连接其他模块的模块。如果您运行的仿真中有一些模块的输出端口未连接任何模块,Simulink® 将发出警告消息。使用 Terminator 模块终止这些模块,可以防止出现此类警告消息。

2.3 常量及加减乘除模块

2.3.1 常量模块(Constant block)

  1. 图标:
    在这里插入图片描述

  2. 作用:
    Constant 模块生成实数或复数常量值。此模块是生成标量、向量还是混合输出要取决于:

    1. Constant value 参数的维度
    2. Interpret vector parameters as 1-D 参数的设置
  3. 操作
    在这里插入图片描述
    双击常量模块,可以看到如上图的界面,其中:

    1. 该模块会输出和(1)一样维度的常量
    2. 勾选(2),模块会输出一个向量(可以理解为按照数组的运算规则运算),不勾选(2),模块输出一个矩阵(按照矩阵的运算规则进行运算)。

2.3.2 加减模块(Sum block)

  1. 图标:
    在这里插入图片描述

  2. 与常量模块联合操作:
    将第一个常量模块输入为矩阵:
    在这里插入图片描述
    将第二个常量模块输入为常数1,然后做减法运算:
    在这里插入图片描述
    运行,得到结果如下:
    在这里插入图片描述

可以看到加减模块自动的将下面的常数项拓展成了一个矩阵从而实现了运算。

还需要注意的是:如果加减模块的输入量维度不一致,将会导致错误,即矩阵加减运算必须保证行列数相等。

16 用户定义函数库

16.1 Fcn/Matlab Fcn模块

  • 29
    点赞
  • 224
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dreautumn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值