Simulink 最基础教程(一)

news2024/11/14 21:47:56

1.1基本概念
在这里插入图片描述

一个典型的Simulink模型大致如上图这样:
1)模块 block:图中画圈的那些,每个模块可以完成一些特定的任务,类似MATLAB中函数的概念。软件提供了很多模块,当然也可以自定义新的模块
2)信号线 signal line:连接模块的线条,类似MATLAB中变量的概念。信号线是有箭头的,沿箭头方向经过模块,就相当于调用这个模块(函数),对信号线(变量)做了一次运算。
3)模型 model:由模块,和模块间的信号线,共同组成。MATLAB中写一个脚本来完成一堆任务,Simulink中就是搭个模型来完成计算。

简单对比:
MATLAB	Simulink
函数	模块
脚本	模型
变量	信号线

在这里插入图片描述

1.2 启动 Simulink
最简单的启动方法之一,是在 MATLAB 界面上找到 Simulink 按钮,在弹出的菜单中,选择空白模型。除了空白模型,当然还有其他模板,但这些在最基础教程中都不会用到。
在这里插入图片描述

1.3 Simulink 界面
一个典型的 Simulink 界面,按照蓝色线条划分,分为三个部分:
1)实线框:里面写着untitled,这是文件名,或者模型名。
2)虚线以上:一般称为工具栏,用来进行各种设置的。
19a及以前,这块是菜单结构,19b及之后,这块改为标签结构,可能造成老用户找不到相关工具。不过,工具的快捷键基本没改过,因此本教程中会尽量用快捷键来操作。
3)虚线以下:一般称为画布。一些常用操作:鼠标滚轮用来缩放视角,”空格“会自动缩放到最佳。
在这里插入图片描述

随后是红色部分,框出了一些最常用的工具:
1)文件存取,这块和绝大多数软件一样,新建、保存、打开。
2)模块库,点击后,会出现 Simulink 自带的模块。对初学者而言,新建模型后,第一件事往往就是打开模块库。
3)模型配置。这个三角点开后会有很多工具,其中最常用的是model configuration,快捷键是 ctrl+e。这个用于配置“模型参数“,模型参数是啥?后面再讲。
4)运行区域,当模型搭建完成后,就要去运行模型,求解模型,那么就是Run按钮了。快捷键是 ctrl+t。其他几个按钮,暂停、停止就是字面意思,也都很好理解。step是调试用的类似MATLAB里的debug。
5)显示采样时间(sample time),是个很常用的 debug 工具,会在后续进一步用到。

1.4两个例子
1.4.1图形化编程
在这里插入图片描述

在之前介绍的 Simulink 界面基础上,按照红色箭头,打开模型库、拖入模块到画布、连接信号线、点击Run,就实现了整个模型的建立和仿真。双击示波器(scope模块),就能看到曲线。

下面来稍微解释一下这个模型的过程:
1)constant模块,是一个输出模块,或者源模块,特点是只有输出,没有输入。输出的是一条始终为1,不随时间变化的直线y(t)=1
2)integrator模块,是一个运算模块,特点是有输入,也有输出。其功能是对时间积分,即对输入的曲线y(t) 进行积分得到 int(y(t)dt)+C。在这里,输入是y(t)=1,定积分取C=0,因此输出就是 y(t)=t
3)scope模块,是一个输入模块,或者终点模块,特点是只有输入,没有输出。这类模块的功能一般都是用于显示结果,例如这个scope模块,就是显示y(t)曲线,因此示波器双击后,出现曲线y(t)=t(严格说是直线),当然只有t=0~10的这段。

通过这个例子,希望说明的是 Simulink 的图形化编程思路:
1)模型由模块,和模块之间的连线组成
2)信号线,其本质是一个与时间t相关的函数 y(t)
3)模块分为输出模块、运算模块、输入模块三种
4)输出模块给信号线赋值y(t),例如constant模块输出 y(t)=1
5)运算模块对信号线的函数进行运算,例如integrator模块输出和输入的关系为对时间t积分
6)输入模块用于显示y(t)的某项性值,例如scope模块显示 y(t) 的时域函数曲线

1.4.2求解常微分方程组

随手写一个常微分方程组:
y1’=y2+1
y2’=y1+y2
y1(0)=0
y2(0)=0
然后搭建一个Simulink模型:

这里大多数模块与上一个例子一样,唯一多用到的是sum模块。如果按照上一个例子中的分析,那么就很容易发现,integrator模块的输出信号,正是我们要找的y1和y2,通过scope模块就能看到这两个信号的结果。由此,这里出现Simulink的一个应用场景:求解常微分方程组。

具体的搭建过程是:
1)将方程(组)写成标准形式 y‘=f(y,t)
其中,y可以是一个向量,即y=[y1(t) y2(t) …]
2)对每一个yi分配一个integrator模块,并视该模块输出为yi(t)
3)搭建 f(y,t),这块是最有技术含量的,如果 f 的表达形式非常复杂,就不会那么容易了。可以说,学习 Simulink 的过程,就是不断掌握更复杂 f 的搭建方法
4)将 f 的输出接到integrator模块的输入端

1.5小结
这结非常长,原因是我希望在一开始就说明 Simulink 的思路——图形化编程:
信号线+模块=模型
信号线=函数y(t)
模块=对函数y(t)运算
至于最开始的界面简介,只是用来帮助搭建那两个例子,反而显得不是那么重要了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1111153.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

进阶JAVA篇- Collection 类的常用的API与 Collection 集合的遍历方式

目录 1.0 Collection 类的说明 1.1 Collection 类中的实例方法 2.0 Collection 集合的遍历方式(重点) 2.1 使用迭代器( Iterator )进行遍历 2.2 使用增强型 for 循环进行遍历 2.3 使用 Java 8的 Stream API 进行遍历(使…

线程安全之锁的原理

🔥🔥 欢迎来到小林的博客!!       🛰️博客主页:✈️林 子       🛰️博客专栏:✈️ Linux       🛰️社区 :✈️ 进步学堂       &#x1f6f0…

思维模型 鸟笼效应

本系列文章 主要是 分享 思维模型,涉及各个领域,重在提升认知。 1 鸟笼效应的应用 1.1 购物中的鸟笼效应 1 漂亮鞋子的故事 假设一个人在商场看到一双漂亮的鞋子,并冲动地购买了它们。当他回到家后,他发现这双鞋子并不适合他的…

【QT】QListWidget

新建项目 list widget,做了布局 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);// listWidget的使用,基于itemQListWidgetItem* item …

【电子通识】USB发展历史

USB接口自1994年推出以来,经过29年的发展,经过USB1.0/1.1、USB2.0、USB3.x,发展到了现在的USB4;传输速率也从最开始的1.5Mbps,大幅提高到了最新的40Gbps。 USB1.0 1996年1月15日推出USB1.0接口规范规定低速传输速率为…

数字孪生软件架构选BS还是CS?不,我们选择CSaaS!

BS(Browser/Server)和CS(Client/Server)是两种不同的软件架构模式,具有不同的特点和优缺点。 BS(Browser/Server)架构 BS架构指的是基于浏览器和服务器的软件架构,客户端通常是一个…

1814_ChibiOS中的时间以及时间间隔处理

全部学习汇总: GreyZhang/g_ChibiOS: I found a new RTOS called ChibiOS and it seems interesting! (github.com) 1. 时间的相关配置,有tick的计数精度、时钟频率、间隔时间精度、时间类型大小等不同的配置。这些参数,涉及到系统的时间计数…

JVMGC复习

TLAB:默认给每一个线程开辟一块内存空间存放线程自己的对象 Class对象是存放在堆区的,不是方法区,类的元数据元数据并不是类的Class对象,Class对象是加载的最终产品,类的方法代码,变量名,方法名&#xff0c…

解决windows中被占端口问题(实测有效)

1、用管理员身份打开cmd 2、输入命令查找所被占的端口号 例:8902 netstat -ano | findstr 8902终结被占端口号的进程 例:端口号为8080,则查找到的pid为18524 taskkill /t /f /pid 18524强制(/F参数) 子进程&#x…

小公司如何成功申请企业邮箱

对于小公司来说拥有专业的企业邮箱不仅有助于提升公司形象,还能有效提高工作效率。小公司怎么申请企业邮箱?以下是一些步骤和建议供您参考。 需要明确公司的需求。 这包括确定所需用户账户的数量(一般是目前使用人数再加上几个备用的邮箱&…

Docker入门到精通教程

Docker是什么 Docker是一个开源的应用容器引擎,它基于Go语言并遵从Apache2.0协议开源。容器技术是和我们的宿主机共享硬件资源及操作系统,实现资源的动态分配,在资源受到隔离的进程中运行应用程序及其依赖关系。 Docker可帮助更快地打包、测…

Redis实现附近商户

GEO数据结构的基本用法 GEO就是Geolocation的简写形式,代表地理坐标。Redis在3.2版本中加入了对GEO的支持,允许存储地理坐标信息,帮助我们根据经纬度来检索数据。常见的命令有: GEOADD:添加一个地理空间信息&#xf…

【广州华锐互动】VR石油钻井井控实训系统

在过去的几十年中,石油工业的发展速度一直在加快。为了适应这个快速发展的行业,需要新的技术和工具,而VR(虚拟现实)技术正是其中之一。本文将探讨VR石油钻井井控实训系统在石油工业教育中的应用。 在真实的钻井环境中&…

接口管理神器Apipost

自诞生以来,Apipost凭借其简洁直观的用户界面、强大的功能以及简单、易上手的操作,让Apipost成为了开发人员不可或缺的工具。本文将详细介绍Apipost的主要功能和使用方法,帮助大家更好地了解这款优秀的API开发工具。 下载安装 直接进入Apip…

Stable Diffusion WebUI扩展a1111-sd-webui-tagcomplete之Booru风格Tag自动补全功能详细介绍

安装地址 直接附上地址先: Ranting8323 / A1111 Sd Webui Tagcomplete GitCodeGitCode——开源代码托管平台,独立第三方开源社区,Git/Github/Gitlabhttps://gitcode.net/ranting8323/a1111-sd-webui-tagcomplete.git上面是GitCode的地址,下面是GitHub的地址,根据自身情…

个人微信CRM客户管理系统怎么选?功能介绍

现在市面上有许多种类的个人微信CRM客户管理系统可供选择,因此,我们需要选择最适合自己需求的微信管理系统CRM,最重要的是根据您的需求和期望的功能来进行筛选。 如何选择适合自己的微信CRM客户管理系统? 现在市面上的系统五花八…

Cloud Studio连接MySQL,Access denied for一系列问题

官方文档有写如何安装Mysql $ apt update $ apt install mysql-server mysql-client -y$ service mysql start mysql -uroot -p123456进入MySQL命令行 问题出在连接数据库这一步,命令行能进去,但是数据库插件和代码都连不上 Access denied for 大概率…

基于SSM的外卖点餐系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue、HTML 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是…

python实现列表倒叙打印

嗨喽,大家好呀~这里是爱看美女的茜茜呐 def func(listNode):listNode.reverse()for i in listNode:print(i)li [1,2,3,4,5] func(li)利用python列表函数reverse()将列表倒叙,然后遍历打印,但是这有一个缺点就是改变了…

固态硬盘的日常注意事项

固态硬盘是一种高速、低功耗、无噪音、抗震动的存储设备,但是在使用过程中也需要注意以下几点: 避免频繁重复写入同一块区域,这会缩短固态硬盘的使用寿命。定期清理垃圾文件和临时文件,以免占用过多的存储空间。避免在固态硬盘上…