【沧海拾昧】MATLAB/Simulink仿真的基本操作

2023-11-15

#C0402


沧海茫茫千钟粟,且拾吾昧一微尘

——《沧海拾昧集》@CuPhoenix


【阅前敬告】

沧海拾昧集仅做个人学习笔记之用,所述内容不专业不严谨不成体系

如有问题必是本集记录有谬,切勿深究


目录

一、新建Simulink仿真

二、几种常用的模块和设置

1、Sum模块

 2、Mux模块

 3、常量 / 增益模块

 4、连续 / 离散零-极点模块

5、Scope模块(示波器)

6、Step模块(阶跃信号)

7、ToWorkspace模块

8、Subsystem模块(子模块)

三、基本操作

1、模块旋转

2、模块连线

3、开始仿真

四、简单实例

1、简单实例1:一个最基本的系统

2、简单实例2:简单PID控制

3、简单实例3:模型导出&数据画图


一、新建Simulink仿真

        Simulink是MATLAB中的一种可视化仿真工具。Simulink是一个模块图环境,用于多域仿真以及基于模型的设计。它支持系统设计、仿真、自动代码生成以及嵌入式系统的连续测试和验证。Simulink提供图形编辑器、可自定义的模块库以及求解器,能够进行动态系统建模和仿真。

1、如图选择,新建Simulink仿真。

新建Simulink Model
Simulink Model界面

2、在命令行窗口输入simulink或者点击【Library Browser】打开模块窗口。

打开Library Browser
Library Browser 界面

3、拖动即可将模块放到Model中。

二、几种常用的模块和设置

        双击即可进入模块的设置,模块的设置大同小异,可以自行摸索。如果不认识英文可以通过图像来简单判断。这里仅举例几个简单的例子抛砖。

1、Sum模块

  • 模块位置:Library - Simulink - Math Operations(或Commonly Used Blocks)
  • 模块图标:

  • 模块设置:在 List of signs 中可以设置输入输出的方向、符号。
List of signs 模块样式
|++
|+-
-|+
-+|
--|++

 2、Mux模块

  • 模块位置:Library - Simulink - Commonly Used Blocks
  • 模块图标:

  • 模块设置:在 Number of inputs 中可以设置输入输出的方向、符号。
设置 Mux 的 inputs 数量

 3、常量 / 增益模块

  • 模块位置:Library - Simulink - Commonly Used Blocks
  • 模块图标:

 4、连续 / 离散零-极点模块

  • 模块位置:Library - Simulink - Continuous(连续)/ Discrete(离散)
  • 模块图标:

  • 模块设置:以 [z1 z2 ... zx] [p1 p2 ... px] 的格式设置零点和极点值。
设置零点和极点

5、Scope模块(示波器)

  • 模块位置:Library - Simulink - Sink
  • 模块图标:
常用于输出显示

6、Step模块(阶跃信号)

  • 模块位置:Library - Simulink - Sources
  • 模块图标:
其他类型的输入源也可以在 Sources 中找到

  •  模块设置:设置阶跃的时间和幅度。
设置 Step time 和 Final value

7、ToWorkspace模块

  • 模块位置:Library - Simulink - Sources
  • 模块图标:

  •   模块设置:将仿真出的数据输出到工作区,设置变量名和输出序列的格式(按时序或输出为数组等)。
设置变量名和序列格式

8、Subsystem模块(子模块)

  • 模块位置:Library - Simulink - Commonly Used Blocks
  • 模块图标:

  • 模块用途:双击进入,建立一个子模块。在子模块中可以设置In与Out,这样就可以显示在子模块外作为入口和出口。
子模块内

子模块外

三、基本操作

1、模块旋转

        在模块上单击右键,在Rotate&Flip进行模块的旋转和镜像。操作的快捷键是Ctrl+R。

模块上单击右键 - Rotate&Flip

2、模块连线

        拖拽即可连线。

3、开始仿真

        模块放置、设置、连线完成后,点击开始仿真进行仿真,然后在示波器中可以查看结果。

开始仿真

四、简单实例

1、简单实例1:一个最基本的系统

控制系统方框图

Simulink 仿真模型

  • 设 R(s) = 1 为常量,运行仿真,得到如下结果。
示波器中显示的响应曲线
  • 将 R(s) 设为阶跃信号(Step time = 2, Final value = 2),如下图。
示波器中显示的响应曲线

2、简单实例2:简单PID控制

Simulink 仿真模型

示波器中显示的响应曲线

3、简单实例3:模型导出&数据画图

        用ToWorkspace模块将数据导出到工作区后,Timeseries结构体可以这样画图。

plot(X.Time,X.Date)  // X 是变量名

        若要导出Simulink Model,打开要导出的Model(导出子模块要将相应的模块打开),在工作区输入如下指令。

saveas(get_param(gcs, 'handle'),'xxx','emf')
        // 'xxx'自定义文件名, 'emf'可以换成其他常用图片格式

formats = {'bmp','emf','pbm','pdf','pgm','png','ppm','tiff'};
name = 'simulink_saveas';
for ii = 1:length(formats)
    saveas(get_param(gcs, 'handle'),name, formats{ii});
end
        // 批量导出了多种格式的文件

敬谢诸君。


京华西山之巅。

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

【沧海拾昧】MATLAB/Simulink仿真的基本操作 的相关文章

  • 如何在向量中的所有点之间绘制线?

    我有一个包含二维空间中一些点的向量 我希望 MATLAB 用从每个点到每个其他点绘制的线来绘制这些点 基本上 我想要一个所有顶点都连接的图 你能用情节来做到这一点吗 如果可以 怎么做 一种解决方案是使用该函数为每个点组合创建一组索引MESH
  • 在 matlab 代码中使用 dll 文件

    我需要使用 Matlab 中由 dll 文件定义的函数 我有一个例子 那个家伙将 dll 转换为 mexw32 文件 但我知道我是如何做到这一点的 我尝试使用加载库但它没有创建任何文件 我怎样才能做到这一点 loadlibrary http
  • Matlab 图像数据的 hist 函数

    我是 Matlab 新手 我想制作自己的函数 与 imhist 显示图像数据的直方图 完成相同的工作 但我对此完全是新手 我不知道如何做开发这样的功能 我开始做一些东西 但它非常不完整 function output args myhist
  • Matlab的导入函数的范围是什么?

    我正在尝试将一些用 Matlab 编写的代码转换为独立的 编译的 Matlab 应用程序 然而 在出现一些奇怪的错误之后 我意识到代码大量使用了从路径中添加和删除的操作 以避免多次使用多个具有相同名称 但结果 计算不同 的函数这一事实 环顾
  • 在matlab中不使用for循环检查数组中的成员资格

    我想简化这段代码 使其无需 for 循环即可工作 for i 1 N for j 1 N if ismember j A PID i i TFP i j PID i i end end end 其中A是一个包含一些标签的矩阵 我之前存储的T
  • 获取向量幂的有效方法

    我编写了一个代码 在数值上使用勒让德多项式直至某个高 n 阶 例如 case 8 p 6435 x 8 12012 x 6 6930 x 4 1260 x 2 35 128 return case 9 如果向量x太长这会变得很慢 我发现说之
  • Ilnumerics Ilpanel 在 winform 中编译成 dll 并加载到 matlab 时不激活

    我想将 Visual studio 2012 中用 C 编写的 winform 编译为 dll 然后将其加载到 matlab 2013a 中 然后 我想使用 matlab net 接口与 winform 进行交互 侦听其事件并通过一组预定义
  • FMINCON 的替代方案

    除了 fmincon 之外还有其他更快 更高效的求解器吗 我正在使用 fmincon 来解决特定问题 但对于中等大小的向量变量来说 我的内存不足 我也没有任何超级计算机或云计算选项可供使用 我知道任何替代解决方案仍然会耗尽内存 但我只是想看
  • 帮助我理解FFT函数(Matlab)

    1 除了负频率之外 FFT 函数提供的最小频率是多少 是零吗 2 如果它为零 我们如何在对数刻度上绘制零 3 结果总是对称的 或者只是看起来是对称的 4 如果我使用abs fft y 来比较2个信号 我是否会失去一些准确性 1 除了负频率之
  • 考虑预分配速度[重复]

    这个问题在这里已经有答案了 我正在做以下事情 for i 1 m index 0 for j 1 n index index values i j 2 j 1 if j 1 symbol chip chip values index 1 e
  • 氡变换线检测

    我正在尝试检测灰度图像中的线条 为此 我在 MATLAB 中使用 Radon 变换 我的 m 文件的示例如下所示 我可以使用此代码检测多行 我还使用线条的移位和旋转属性来绘制线条 但是 我不明白在获取rho和theta值后如何获取检测线的起
  • 在 Pari-GP 中嵌套特定递归

    每个人 我最初在 Stackexchange 上发布了类似的问题 它已移至此处 可以在链接中找到 在 Matlab 中声明函数递归序列 https stackoverflow com questions 67146061 declaring
  • MATLAB 中的逻辑数组与数值数组

    我正在比较两个二进制数组 我有一个数组 其中值可以是一或零 如果值相同则为 1 如果不同则为零 请注意 我正在做检查之外的其他事情 因此我们不需要进入矢量化或代码的性质 在 MATLAB 中使用数值数组和逻辑数组哪个更有效 Logical
  • 霍夫变换检测和删除线

    我想使用霍夫变换检测图像中的线条 但是我不想绘制线条 而是想删除原始图像中检测到的每条线条 image imread image jpg image im2bw image BW edge image canny imshow BW fig
  • 基本矩阵错误?

    我试图通过扫描从相机拍摄的两个图像 检测图像中的特征 匹配它们 创建基本矩阵 使用相机内在函数计算基本矩阵 然后分解它以找到旋转和翻译 这是matlab代码 I1 rgb2gray imread 1 png I2 rgb2gray imre
  • 如何从 Matlab 运行 R 脚本 [重复]

    这个问题在这里已经有答案了 我有 m 文件 我想用它来运行 R 脚本 我怎样才能做到这一点 Matlab文件 caller m some matlab code need to call a R script some matlab cod
  • Matlab 中的 3D 堆叠条形图

    我想在一个图中绘制多个堆叠条形图 detached 条形图 例如 准确地想象一下bar http mathworks com help matlab ref bar3 detached png绘图 但堆叠在一起 而不是单一颜色 Set up
  • 使用 scipy.io 将 python pandas dataframe 转换为 matlab 结构

    我正在尝试使用 scipy io 将 pandas 数据帧保存到 matlab mat 文件 我有以下内容 array1 np array 1 2 3 array2 np array a b c array3 np array 1 01 2
  • 在 numpy/scipy 中查找 matlab 函数

    是否有一个等价的函数find A gt 9 1 来自 numpy scipy 的 matlab 我知道有nonzeronumpy 中的函数 但我需要的是第一个索引 以便我可以在另一个提取的列中使用第一个索引 Ex A 1 2 3 9 6 4
  • MATLAB - 从目录读取文件?

    我希望从目录中读取文件并对每个文件迭代执行操作 此操作不需要更改文件 我知道我应该为此使用 for 循环 到目前为止我已经尝试过 FILES ls path to folder for i 1 size FILES 1 STRU pdbre

随机推荐

  • VC++ 文件操作封装类

    头文件声明 SysUtils h pragma once include
  • 什么是模式识别,模式识别概念的基本介绍

    模式识别又常称作模式分类 从处理问题的性质和解决问题的方法等角度 模式识别分为有监督的分类 Supervised Classification 和无监督的分类 Unsupervised Classification 两种 模式还可分成抽象的
  • Python入门之类和对象

    对象 属性 方法 对象是类的实例 换句话说 类主要定义对象的结构 然后我们以类为模板创建对象 类不但包含方法定义 而且还包含所有实例共享的数据 封装 信息隐蔽技术 我们可以使用关键字 class 定义 Python 类 关键字后面紧跟类的名
  • TextureTailor自制Plist碎图工具

    最近在开发小游戏 美术资源是个令人头疼的问题 故搜寻了一些网上的资源文件 但是总被plist格式和png图片格式所困扰 在参考了一些大佬的代码后自制了一个符合我个人需求的小工具 先放源码地址 TextureTailor 再来预览一下效果 界
  • linux服务篇-RSYNC数据备份

    Rsync remote sync 是UNIX及类UNIX平台下一款神奇的数据镜像备份软件 它不像FTP或其他文件传输服务那样需要进行全备份 Rsync可以根据数据的变化进行差异备份 从而减少数据流量 提高工作效率 你可以使用它进行本地数据
  • 关于深度学习中的分类器

    因为之前一直都是用caffe做图像去噪 增强方面的工作 没太接触分类 上个学习会上通过报告学习了下关于分类的相关基础知识 为接下来分类的相关工作研究奠定下基础 基础之分类器 1 SVM 线性核SVM 一般应用于多分类 分类的结果 如3分类
  • 开关电源环路学习笔记(6)-开关变换器传递函数Gvd(s)推导过程

    终于到了最关键的环节 也是最难的环节 如何求出开关级的传递函数 也就是下图这一级 哎 不得不说 太难了 不过没办法 先前夸下海口 跟兄弟们说我要把环路搞清楚 现在搞不动也得搞啊 这一级之所以这么难 主要是有开关元器件 本身是非线性的 当然了
  • ip命令网络配置

    Linux的ip命令和ifconfig类似 但前者功能更强大 并旨在取代后者 使用ip命令 只需一个命令 你就能很轻松地执行一些网络管理任务 ifconfig是net tools中已被废弃使用的一个命令 许多年前就已经没有维护了 Linux
  • 华为方舟编译器开源项目编译第四弹——自带Java测试用例的编译

    在编译Java测试用例时的错误提示信息 javac option bootclasspath not allowed with target 1 9 Usage javac
  • 计算机硬件基础——第五章:指令系统(二)

    文章目录 指令 要求计算机执行特定操作的命令 是程序员智慧计算机工作的最小单位 指令系统 一台计算机全部指令的集合 也称为计算机指令集 80X86 CPU的常用指令 逻辑运算指令 用来对字或字节按位进行逻辑运算 逻辑与AND 指令 逻辑或O
  • 计算机网络基础知识(非常详细)从零基础入门到精通,看完这一篇就够了

    目录 一 计算机网络的概念 二 计算机网络的功能 三 计算机网络的组成 1 组成部分 2 工作方式 3 功能组成 四 计算机网络的分类 1 按分布范围分 2 按使用者分 3 按交换技术分 4 按拓扑结构分 5 按传输技术分 五 标准化工作
  • WAF识别软件(WAFW00F)以及WAF绕过

    责任声明 本文章仅供学习交流使用 如有利用进行非法行为 上传者不承担任何责任 使用者后果自负 WAF防护分析 什么是WAF Web应用防护系统分为两种 软件与硬件 安全公司内部的为硬件 个人或小企业为软件 无论哪一种都是为web提供安全 存
  • 有效数字

    有效数字 数学上用 四舍五入 的法则将一个位数很多的数表示成一定位数的数 如果一个近似数的误差限是它某一位的半个单位 则称它准确到这一位 即该位数字是准确的 有效的和可靠的 并且 从该位起直到前面第一个非零数字为止的所有数字都称为有效数字
  • mysql ERROR: Error 1005: Can't create table (errno: 121)

    Q Executing SQL script in server ERROR Error 1005 Can t create table aquaticstar link errno 121 A I searched quickly for
  • 转:CDH5 集群安装教程

    一 虚拟机的安装和网络配置 1 虚拟机安装 2 安装CentOS 6 5 64位版本 桥接模式 Master 内存 3G 硬盘容量40G 4核 Slave 内存2G 硬盘容量30G 2核 3 网络配置 master slave 1 进入ro
  • 时序预测

    时序预测 MATLAB实现GM 1 1 灰色时间序列预测 目录 时序预测 MATLAB实现GM 1 1 灰色时间序列预测 预测效果 基本介绍 建模步骤 程序设计 学习总结 参考资料 预测效果 基本介绍 GM 1 1 模型的预测原理是 对某一
  • Linux修改主机名永久生效

    Linux centos7非此方法 修改主机名 永久生效 linux查看主机名 查看主机命令 root linux epm2 hostname localhost localdomain localhost localdomain即为默认的
  • 如何发布tms xdata server(sqlite)

    1 在fdconnection中将数据库路径设置成 employee db即可 2 在云服务上创建一个文件夹如d sparkle文件夹 3 复制exe sqlite3 dll employee db 数据库 运行 4 结果
  • html表单填写保存,如何从HTML表单读取输入并将其保存在文件中-Golang

    我试图建立一个非常简单的Web服务器 用户可以在其中访问站点并写入一个字符串和一个整数 然后我想保存这两个输入 我的想法是将其保存到一个文本文件中 该文件也可以显示在浏览器 textfile 我不知道关于SO的规范是多少代码可以发布 但是到
  • 【沧海拾昧】MATLAB/Simulink仿真的基本操作

    C0402 沧海茫茫千钟粟 且拾吾昧一微尘 沧海拾昧集 CuPhoenix 阅前敬告 沧海拾昧集仅做个人学习笔记之用 所述内容不专业不严谨不成体系 如有问题必是本集记录有谬 切勿深究 目录 一 新建Simulink仿真 二 几种常用的模块和