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

2023-11-17

本文为学习笔记,视频来源: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模块

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【更新中…】Matlab simulink建模与仿真 的相关文章

  • ROS节点运行管理launch文件

    launch 文件是一个 XML 格式的文件 可以启动本地和远程的多个节点 还可以在参数服务器中设置参数 作用 可以简化节点的配置与启动 提高ROS程序的启动效率 一 新建 1 新建launch文件 如 turtlesim 在功能包下添加
  • gdb

    100个gdb技巧 Debugging with GDB gdb调试基础 g选项 在编译时要加上 g选项 生成的可执行文件才能用gdb进行源码级调试 g选项的作用是在可执行文件中加入源代码的信息 比如可执行文件中第几条机器指令对应源代码的第
  • Windows10+ubuntu 双系统安装(针对联想小新air14)

    联想小新air14 Windows10 ubuntu 双系统安装 一 准备工作 1 查看电脑配置 1 查看BIOS模式 2 搞清楚硬盘单双 2 制作系统盘 1 资源准备 2 写盘 3 磁盘分区 二 安装过程 1 用做好的系统盘安装系统 2
  • LaTeX的基本使用

    看前说明 说明 这篇文章介绍了latex的基本使用 基本覆盖了latex入门的知识点 由本人自己学习研究整理出来 不可被他人拿来进行不当的商用等等 违者必究 大家利用下面完整的latex文档 在编译器中编译 对比latex文档和生成文件之间
  • MyEclipse中关闭项目的作用及操作方法

    1 关闭项目的操作方式 选中项目 右键 点击Close Project 便可关闭当前项目 如图 关闭后的项目状态如图所示 2 开启项目的操作方式 双击项目或右键项目 点击Open Project 弹出如下窗口 点击 No 按钮 开启当前项目
  • JUC 之 线程局部变量 ThreadLocal

    ThreadLocal 基本概念 ThreadLocal 提供线程局部变量 这些变量与正常的变量不同 因为每一个线程在访问 ThreadLocal 实例的时候 通过其get 或者 set 方法 都有自己的 独立初始化的变副本 ThreadL
  • react、umi、dva

    React 一 React的简介 1 介绍 React 是一个用于构建用户界面的 JAVASCRIPT 库 React主要用于构建UI 很多人认为 React 是 MVC 中的 V 视图 React 起源于 Facebook 的内部项目 用
  • Mac升级Catalina(10.15)后 clion不能运行,提示「xcrun: error: invalid active developer path ...」

    Mac升级Catalina 10 15 后 使用clion 运行失败 提示内容如下 xcrun error invalid active developer path Library Developer CommandLineTools m
  • MQTT-保留消息和遗嘱消息

    遗嘱消息 为什么需要遗嘱消息 MQTT的订阅发布机制 解耦了消息的发送方和接收方 这使我们没有办法获取对端的状态 为了解决该问题 MQTT提供了遗嘱消息 为意外断线的客户端提供了对外发出通知的能力 如何使用遗嘱消息 使用遗嘱消息 客户端需要

随机推荐

  • 【笔记】关于win导入外部动态磁盘时“包名称无效”的解决办法

    网易博客搬家 原贴时间 2015 02 22 一 问题背景 硬盘闲置 电脑重装系统以后装上硬盘 计算机 中无盘符 磁盘管理中显示硬盘为 外部动态磁盘 右键 导入外部磁盘 提示 包名称错误 二 尝试过程 1 重启电脑 无效 2 换sata接口
  • DBeaver教程:连接达梦数据库DM8

    本文介绍如何通过dbeaver连接达梦数据库进行管理 DBeaver 是一个基于 Java 开发 免费开源的通用数据库管理和开发 DBeaver 采用 Eclipse 框架开发 支持插件扩展 并且提供了许多数据库管理工具 ER 图 数据导入
  • linux查看所有文件

    这本阿里P8撰写的算法笔记 再次推荐给大家 身边不少朋友学完这本书最后加入大厂 Github 疯传 史上最强悍 阿里大佬 LeetCode刷题手册 开放下载了 1 linux文件结构 linux文件结构是树形的 根目录是 其它所有文件都是在
  • OCR加持白描App,让AI成为视障者的眼睛

    现实中 你可以轻松无障碍地阅读各类平面印刷文字以及身边的一切 或许你未曾想过 视障人群该怎么办呢 统计数据显示 中国大约有1700万的视障群体 相当于每100个人中就有超过1位是视障人士 但我们在日常生活中却很少见到他们 那是因为视障群体在
  • 3、ARIMA序列预测Matlab代码、可视化(可做算法对比)

    1 文件包中程序均收集 整理 汇总自网络 2 文件包完整内容 1 ARIMA 功能函数 仅包含一个ARIMA算法函数 需要调用到自己的程序中使用 函数部分代码及预览图 function result ARIMA algorithm data
  • 应用程序本地化

    一 简介 使用本地化功能 可以轻松地将应用程序翻译成多种语言 甚至可以翻译成同一语言的多种方言 如果要添加本地化功能 需要为每种支持的语言创建一个子目录 称为 本地化文件夹 通常使用 lproj作为拓展名 当本地化的应用程序需要载入某一资源
  • pytorch 中register_buffer()

    今天在看DSSINet代码的ssim py时 遇到了一个用法 class NORMMSSSIM torch nn Module def init self sigma 1 0 levels 5 size average True chann
  • Docker网络体系结构:设计可扩展、可移植的Docker容器网络

    原文地址 译者 本人翻译水平有限 目的仅是为了学好Docker 如有错误请见谅 翻译版本 v1 01 将不断优化翻译质量 本文包含以下内容 Docker容器就是将应用及其所依赖运行环境的完整文件系统打成一个包 包括所需代码 运行库 系统工具
  • 一文读懂人脸识别技术

    2019 08 27 17 06 26 本文内容涵盖人脸识别发展历程 市场研究 核心技术 商业应用以及产业落地 个人看法等干货研究 注意 本文干货满满 约有2万7千字 强烈建议大家先收藏后学习 01 发展史 1 人脸识别的理解 人脸识别 F
  • DJANGO增删改查

    https www cnblogs com yuanlianghong p 10987877 html 一 Django的工作流 1 用户通过浏览器输入相应的 URL 发起 HTTP 请求 一般是 GET POST 2 Django 接受到
  • 微信小程序:初识微信小程序和前端

    一 前期准备工作 1 申请开发微信小程序 登录微信公众平台 gt 点击 小程序 gt 点击 前往注册 gt 注册成功即可 2 下载微信开发者工具 小程序文档 gt 工具中的下载 gt 下载自己需要的版本 3 在开发者工具中创建项目 这个当中
  • RabbitMQ的高级特性

    RabbitMQ的高级特性 在项目中 有一些无需即时返回且耗时的操作 我们可以将其提取出来 做异步处理 从而节省服务器的请求响应时间 从而提高系统的吞吐量 这就需要使用到MQ 而常见的RabbitMQ就是重中之重 之前说了他的几个常见的用处
  • WebSocket 的使用,和客户端断电,服务器检测断开连接

    WebSocket 的使用 和客户端断电 服务器检测断开连接 服务器用WebSocketServlet 实例化自定义的MessageInbound web xml中配置socket
  • ext4 buddy块分配算法源码剖析

    概述 ext4 buddy块分配算法的函数是ext4 mb regular allocator 阅读本文之前需要先看下ext4 mballoc之buddy算法 nginux的博客 CSDN博客 ext4 mb regular allocat
  • YoloV8改进策略:轻量级的CloFormer助力Yolov8在速度和精度上实现双双提升

    文章目录 摘要 论文翻译 摘要 1 简介 2 相关工作 3 方法 3 1 总体架构 3 2 AttnConv 3 3 不同的局部感知方式 3 4 实现细节 4 实验 4 1 ImageNet1K分类 4 2 COCO目标检测 4 3 ADE
  • C 实现Window/DOS 键盘监听事件

    今天是重新复习C语言实现的第一天 今天想编写C 对Windwos Dos 键盘事件的学习 但是我在安装Visual Studio 2022 没有安装MFC 框架 今天记录下VS 追加 MFC框架 Visual Studio 2022 追加M
  • 基于opencv3的人脸检测

    目前opencv3中已经有人脸检测的类了 只要调用函数库的类就行 该程序需要两个xml文件 分别是haarcascade frontalface alt xml和haarcascade eye tree eyeglasses xml 它们分
  • php安装部署及优化

    目录 PHP源码编译 php启动与nginx整合 php功能模块的扩展 php添加memcache功能模块 构建Nginx高速缓存 tomcat结合memcache PHP源码编译 https www php net 下载软件包 安装解压工
  • 【下资源】全网独家首发2014传智播客三层架构及餐饮管理系统项目

    核心技术课程 三层架构原理 手写三层 自己动手代码生成器 商业级代码生成器 三层架构应用案例 NPOI MD5 WinForm高级应用 常用WinForm相关设计模式 数据库设计工具PowerDesigner高级应用 源代码管理 团队配合做
  • 【更新中…】Matlab simulink建模与仿真

    本文为学习笔记 视频来源 https www bilibili com video BV1L7411a7uL Matlab simulink建模与仿真 1 初始simulink 1 1 simulink简介 1 1 1 matlab与sim