Simulink 最基础教程(一)

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.rhkb.cn/news/169559.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

百度地图API:JavaScript开源库几何运算判断点是否在多边形内(电子围栏)

百度地图JavaScript开源库,是一套基于百度地图API二次开发的开源的代码库。目前提供多个lib库,帮助开发者快速实现在地图上添加Marker、自定义信息窗口、标注相关开发、区域限制设置、几何运算、实时交通、检索与公交驾车查询、鼠标绘制工具等功能。 判…

Python基础入门例程9-NP9 十六进制数字的大小

目录 描述 输入描述: 输出描述: 示例1 解答: 说明: 描述 计算的世界,除了二进制与十进制,使用最多的就是十六进制了,现在使用input读入一个十六进制的数字,输出它的十进制数字…

vue如何使用冻结对象提升代码效率及其原理解析

先给大家伙整个实际工作中一定会碰到的问题 如下vue dome ,它的代码非常简单功能也1非常简单,就是一个按钮,点击后会显示有多少条数据 来看看源码, html部分就是一个按钮绑定了一个loadData事件,然后在p标签内展示了这个myData这个数据的长度 <template><div id&quo…

java中的异常,以及出现异常后的处理【try,catch,finally】

一、异常概念 异常 &#xff1a;指的是程序在执行过程中&#xff0c;出现的非正常的情况&#xff0c;最终会导致JVM的非正常停止。 注意: 在Java等面向对象的编程语言中&#xff0c;异常本身是一个类&#xff0c;产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的…

编译原理-词法分析器

文章目录 对于词法分析器的要求概念词法分析器的功能和输出形式 词法分析器的设计词法分析器的结构单词符号的识别&#xff1a;超前搜索状态转换图 正规表达式和有限自动机正规式和正规集确定有限自动机&#xff08;DFA&#xff09;非确定有限自动机&#xff08;NFA&#xff09…

ThingsBoard的版本控制整合gitee

1、注册gitee账号,创建自己的空间,并且创建一个用于存储ThingsBoard相关的仓库 2、进入ThingsBoard的租户层,然后找到版本控制,进行配置 输入gitee的仓库地址 仓库URL:指定你的gitee的参考地址 仓库分支:master 身份验证:密码、访问令牌 用户名:登录账号 密码/访问令…

Leetcode 1089. 复写零

复写零 题目链接1089. 复写零 给你一个长度固定的整数数组 arr &#xff0c;请你将该数组中出现的每个零都复写一遍&#xff0c;并将其余的元素向右平移。 注意&#xff1a;请不要在超过该数组长度的位置写入元素。请对输入的数组 就地 进行上述修改&#xff0c;不要从函数返回…

【QT】其他常用控件2

新建项目 lineEdit 什么都不显示&#xff08;linux password&#xff09; password textEdit和plainTextEdit spinBox和doubleSpinBox timeEdit、dateEdit、dateTimeEdit label 显示图案&#xff0c;导入资源&#xff1a;【QT】资源文件导入_复制其他项目中的文件到qt项目中_St…

【proteus】8086 写一个汇编程序并调试

参考书籍&#xff1a;微机原理与接口技术——基于8086和Proteus仿真&#xff08;第3版&#xff09;p103-105&#xff0c;p119-122. 参考程序是p70&#xff0c;例4-1 在上一篇的基础上&#xff1a; 创建项目和汇编文件 写一个汇编程序并编译 双击8086的元件图&#xff1a; …

整理MongoDB文档:身份验证

整理MongoDB文档:身份验证 个人博客&#xff0c;求关注。 文章概叙 本文主要讲MongoDB在单机状态下的账户配置。理解了MongoDB的语法&#xff0c;对于如何配置用户权限会知道怎么配置&#xff0c;但是请注意给谁配置什么权限才是最重要的。 最小权限原则 系统的每个程序或者…

宝塔部署nginx遇到的400错误和502错误

在部署express项目的过程中&#xff0c;由于我的代码有些变化&#xff0c;于是在宝塔面板上我又重新上传了一下我的项目&#xff0c;结果阴差阳错的被nginx反向代理配置不当引起的400错误request header or cokkie is too large和自己代码逻辑问题引起的502 bad gataway给绊倒了…

Springcloud介绍

1.基本介绍 Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发&#xff0c;如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等&#xff0c;都可以用Spring Boot的开发风格做到一键启动和部署。Spring …

springmvc视图格式——模板引擎freemarker输出HTML文本

目录 1. freemarker 介绍创建测试工程2.2.2) 配置文件2.2.3) 创建模型类2.2.4) 创建模板2.2.5) 创建controller2.2.6) 创建启动类2.2.7) 测试 2.3) freemarker基础2.3.1) 基础语法种类2.3.2) 集合指令&#xff08;List和Map&#xff09;2.3.3) if指令2.3.4) 运算符2.3.5) 空值处…

2023了,是时候使用pnpm了!

2023了&#xff0c;是时候使用pnpm了&#xff01; Excerpt 2023了&#xff0c;是时候使用pnpm了&#xff01; 什么是pnpm pnpm代表performant npm&#xff08;高性能的npm&#xff09;&#xff0c;同npm和Yarn&#xff0c;都属于Javascript包管理安装工具&#xff0c;它较npm和…

Arcgis 数据操作

在进行数据操作的时候&#xff0c;需要注意坐标系要一致&#xff0c;这是前提。 数据类型 文件地理数据库&#xff1a;gbd 个人地理数据库&#xff1a;mdb &#xff08;Mircosoft Access&#xff09; 矢量数据&#xff1a;shp 推荐使用gbd数据&#xff0c;效率会更高。 采…

“第六届世界声博会暨2023科大讯飞全球1024开发者节”开幕式回顾及舆情问题

☞ ░ 前往老猿Python博客 ░ https://blog.csdn.net/LaoYuanPython 2023年10月24日&#xff0c;笔者全程参加了在安徽合肥奥体中心举办的“第六届世界声博会暨2023科大讯飞全球1024开发者节”开幕式主论坛&#xff0c;下面来回顾一下。 一、会议简介 会议主题&#xff1a;“…

javaEE -8(9000字详解网络编程)

一&#xff1a;网络编程基础 1.1 网络资源 所谓的网络资源&#xff0c;其实就是在网络中可以获取的各种数据资源&#xff0c;而所有的网络资源&#xff0c;都是通过网络编程来进行数据传输的。 用户在浏览器中&#xff0c;打开在线视频网站&#xff0c;如优酷看视频&#xff…

Django学习笔记——文件上传(界面还怪好看得嘞)

定义文件上传函数 #文件上页面 def uploadFileIndex(request):return render(request, "uploadFile.html")#文件上传接口 def uploadFile(request):if request.method POST and request.FILES[file]:uploaded_file request.FILES[file]fs FileSystemStorage()# 选…

前端AJAX入门到实战,学习前端框架前必会的(ajax+node.js+webpack+git)(二)

阳光总在风雨后&#xff0c;请相信有彩虹。 案例 - 图书管理 bootstrap弹框 需求&#xff0c;点击添加按钮&#xff0c;没有离开当前页面&#xff0c;在当前页面弹出弹框&#xff08;弹窗&#xff09; 先学着实现一个简单的弹框&#xff0c;如下图右下角 bootstrap有两种方式…

螺旋矩阵[中等]

优质博文&#xff1a;IT-BLOG-CN 一、题目 给你一个m行n列的矩阵matrix&#xff0c;请按照顺时针螺旋顺序&#xff0c;返回矩阵中的所有元素。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]] 输出&#xff1a;[1,2,3,6,9,8,7,4,5] 示例 2&#xf…