Matlab simulink建模与仿真 第十五章(信号源库)

news2024/11/13 14:57:59

参考视频:simulink1.1simulink简介_哔哩哔哩_bilibili

一、信号源库中的模块概览

        注:部分模块在第二章中有介绍,本章不再赘述。

二、from输入源模块

1、From Workspace模块

(1)该模块可从MATLAB工作区、模型工作区或掩码工作区中读取以时间序列、矩阵或结构体格式指定的数据值并输出之,它的作用以及使用方法可认为与To Workspace模块“相反”,To Workspace模块以何种格式在工作区中生成数据,那么From Workspace模块就可以从工作区中读取何种格式的数据并根据其中的时间序列将数据逐一输出(一般使用最多的情形就是从工作区中读取一个N行2列的矩阵,第1列是单调递增的仿真时刻,第2列是各个仿真时刻对应的信号值)。

(2)MATLAB时序格式可用于任何数据类型、复杂度或固定维度。如需加载总线信号的数据,要使用与总线层次结构相匹配的MATLAB结构,并为每个信号指定时间序列。

(3)将上一章生成的两个MAT文件拖拽到命令窗口,其中的变量会添加进工作区,这时在From Workspace模块的对话框中配置变量名即可将工作区中的变量读取并输出。

2、From File模块

(1)该模块可从MAT文件的变量中读取以时间序列或矩阵格式指定的数据值并输出之,它的作用以及使用方法可认为与To File模块“相反”,To File模块以何种格式在文件中生成数据,那么From File模块就可以从文件中读取何种格式的数据并根据其中的时间序列将数据逐一输出(一般情况下都是先把MAT文件导入工作区,然后再用From Workspace模块读取数据,所以From File模块作为备选即可)。

(2)MATLAB时序格式可用于任何数据类型、复杂度或固定维度。如需加载总线信号的数据,要使用与总线层次结构相匹配的MATLAB结构,并为每个信号指定时间序列。

(3)将上一章生成的两个MAT文件分别配置给两个From File模块,文件变量中的数据会被分别读取并输出。

三、发生器模块

1、Signal Generator信号发生器

(1)信号发生器只能在连续模式下仿真,它可以产生4种连续波形,分别为正弦波(sine)、方波(square)、锯齿波(sawtooth)和随机波(random,这个建议用随机数生成器替代),如下图所示。

(2)仿真波形的频率单位可以选择Hz或者rad/s,并设置幅值和频率。

(3)下图中的三个信号发生器,其信号幅值均为1,频率均为1,它们的频率单位为rad/s。

2、Pulse Generator脉冲发生器

(1)脉冲发生器可生成方波信号,在对话框中可对波形属性进行设置,如下图所示,波形形式(Pulse type)可分为基于仿真时间和采样时间两种,分别对应连续方波信号和离散方波信号,离散方波信号的属性配置依赖仿真步长。

(2)波形的产生依赖时间信号,这个时间信号可由仿真时间提供,也可由外部输入提供,如果选择由外部输入提供,则该模块会提供一个输入端口输入时间信号,连续波形的时间信号要由连续时间信号提供,离散波形的时间信号要由离散时间信号提供。

3、Ramp斜坡信号发生器

(1)该模块只能生成连续的信号,可对其配置初始输出值,仿真开始后该模块会按照该值进行输出,直到达到斜率开始作用的时间(Start time),输出值根据斜率随仿真时间的推进线性变化。

(2)下图中Ramp2模块的斜率为-2,斜率开始作用时间为3,初始输出值为1,Ramp1的配置如上图所示。

4、Step阶跃信号发生器

(1)该模块能生成阶跃信号,可对其配置阶跃产生的时间(从仿真开始时刻开始计算)以及信号阶跃前后的信号值。

(2)下图中Step的配置如上图所示。

5、Chirp Signal线性调频模块

(1)该模块生成的波形与正弦波相似,但其波形频率随仿真时间的推进线性增长,可通过配置下图所示的三个参数间接配置信号频率的变化率。

(2)下图中Chirp Signal模块的配置如上图所示。

6、Repeating Sequence重复序列模块

(1)该模块可产生一个锯齿波,在该模块的对话框中可对其任一一个周期的锯齿波进行配置,如下图所示,有这些配置以后,模块能自动计算出锯齿波的周期、相位等属性。

(2)下图所示Repeating Sequence模块的配置如上图所示,周期为2s,周期内的信号起止值分别为0和2。

(3)实际上,该模块不仅可用于生成锯齿波,它可基于锯齿波的生成规则生成出更多周期性变化的波形,首先它将Time values向量的元素作为时间点,将Output values向量的作为各时间点对应的信号值,根据这两个向量可以得出一个周期内的信号形式,也就得出了其它周期的信号形式。

7、Sine正弦波发生器

(1)正弦波发生器可生成方波信号,在对话框中可对波形属性进行设置,如下图所示,波形形式(Sine type)可分为基于仿真时间和采样时间两种,分别对应连续正弦波信号和离散正弦波信号,离散正弦波信号的属性配置依赖仿真步长。

(2)波形的产生依赖时间信号,这个时间信号可由仿真时间提供,也可由外部输入提供,如果选择由外部输入提供,则该模块会提供一个输入端口输入时间信号,连续波形的时间信号要由连续时间信号提供,离散波形的时间信号要由离散时间信号提供。

四、信号构造器及随机数模块

1、Signal Builder信号构造器模块

(1)双击该模块可对输出信号进行编辑。

①双击信号中的“节点”,可按住鼠标左键对其进行纵向拖拽,也可按住鼠标滚轮或按住鼠标左键+Shift键对其进行横向拖拽,也可直接通过修改对话框下方的配置参数以修改所选“节点”的位置。

②如果想增加信号中的“节点”,可以选择一段左右斜率不均为无穷大(也就是不垂直于时间轴)的波形,按住鼠标左键纵向拖动,这样就会自动生成新的“节点”。

③当横向拖动“节点”导致波形不符合实际规则(一个时间点只能对应一个信号值)时,模块会给出警告并自动停靠在极限处,此时信号阶跃跳变。

(2)该模块可同时输出多个信号,添加信号的方法如下图所示(不一定必须添加方波,脉冲信号、阶跃信号等都可选择);要想移除某个信号,选中后按下Delete键即可。

(3)当窗口显示过于拥挤时,可双击暂时不需要编辑或者观察的信号,以隐藏之。

(4)要想调整信号的持续时间,可按下图所示操作。(当仿真时间超过信号持续时间时,输出将按照信号持续时间结束一刻的值和变化趋势随仿真时间推进继续变化)

(5)使用示例如下图所示。

2、Random Number随机数发生器(服从正态分布)

        该模块生成的随机数服从正态分布,双击该模块,可设置其平均值、方差、随机数种子及采样时间。

3、随机数发生器(服从均匀分布)

        该模块生成的随机数服从均匀分布,双击该模块,可设置其最大值、最小值、随机数种子及采样时间。

五、带限白噪声模块

1、白噪声概述

(1)‌白噪声具有常量功率谱‌,这意味着白噪声在所有频率上出现的强度相同,不随着频率的增加而衰减,白噪声的这一特性使其在功率谱上趋近为常值,即在整个频谱上都有成分,从低频到高频都有分布。

(2)白噪声的理想状态是具有无限带宽,因此其能量是无限大的。然而,在实际应用中,白噪声通常是在一定频率范围内具有均匀功率谱密度的噪声。

2、Band-Limited White Noise带限白噪声模块

        该模块可将带限的白噪声(功率谱如上右图所示)等效为经过零阶保持器处理的理想的白噪声(功率谱如上左图所示)并输出之。

六、其余两个重复序列模块

1、Repeating Sequence Stair重复序列阶梯模块

(1)该模块的功能和Repeating Sequence模块相似,不过该模块输出的信号是跳变的,呈楼梯状而不是锯齿状。

(2)配置该模块时仅需配置输出值列表和采样时间。在一个信号周期内,每到一个采样时间点,该模块都会从输出值列表中按顺序选取元素作为输出值,并将该输出值维持到下一采样时间点,以此往复,当所有元素均被选取过后,一个信号周期完成。

2、Repeating Sequence Interpolated重复序列插值模块

(1)该模块的功能也和Repeating Sequence模块相似,不过该模块输出的信号是离散的。

(2)配置该模块时需配置输出值列表、时间点列表和采样时间,时间点列表中的各时间点间隔应大于采样时间间隔(而且不应该仅大于一点)。在一个信号周期内,每当仿真时刻来到时间点列表中的一个时间点,该模块都会从输出值列表中选取对应元素作为输出值,两个时间点之间应该会有若干个采样时间点(取决于Sample time),这些采样时间点的输出值可通过插值算法计算,每个采样时间点的输出值都会维持到下一采样时间点。

(3)上例中选择的差值算法为线性差值,其它可选的差值算法有使用最近点差值、使用上方最近点差值、使用下方最近点差值。

七、计数器模块

1、Counter Limited带限计数器模块

        带限计数器从0开始计数(每个采样时间点计数加一),它会持续将计数值输出,在计数达到指定上限后会返回零,重新开始下一轮计数,这个计数上限用十进制数指定即可。

2、Counter Free-Running自由运行计数器模块

        自由运行计数器也是从0开始计数(每个采样时间点计数加一),它会持续将计数值输出,在计数达到指定上限后会返回零,重新开始下一轮计数,这个计数上限通过指定二进制上限位数间接指定,比如指定上限位数为n,那么计数上限为2^{n}-1

八、时钟模块

1、Clock模拟时钟模块

        该模块会将当前仿真时间输出,且时间信号是连续的。

2、Digital Clock数字时钟模块

        该模块会将当前仿真时间输出,不过时间信号是离散的,在下一个采样时间点到来前,输出将维持在上一个采样时间点的状态。

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

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

相关文章

JVM 运行时数据区域

目录 前言 程序计数器 java虚拟机栈 本地方法栈 java堆 方法区 运行时常量池 前言 首先, java程序在被加载在内存中运行的时候, 会把他自己管理的内存划分为若干个不同的数据区域, 就比如你是一个你是一个快递员, 一堆快递过来需要你分拣, 这个时候, 你就需要根据投放的目…

数据稀缺条件下的时间序列微分:符号回归(Symbolic Regression)方法介绍与Python示例

时间序列概况在日常生活和专业研究中都很常见。简而言之,时间序列概况是一系列连续的数据点 y(0), y(1), …, y(t) ,其中时间 t 的点依赖于时间 t-1 的前一个点(或更早的时间点)。 在许多应用中,研究者致力于预测时间序列概况的未来行为。存在各种建模方法。这些模型通常基于过…

Django学习实战篇四(适合略有基础的新手小白学习)(从0开发项目)

前言: 在本章中,我们开始编写面向用户的界面,其中只涉及简单的HTML结构,不会做太多美化,目的就是把后台创建的数据展示到前台。 从技术上来讲,这一节将涉及Django 中function view和 class-based view 的用…

用Python实现时间序列模型实战——Day 22: LSTM 与 RNN 模型

一、学习内容 1. 长短期记忆网络 (LSTM) 的原理 LSTM(长短期记忆网络) 是一种专门用于处理时间序列数据的神经网络,它克服了传统 RNN 在处理长序列时出现的梯度消失问题。LSTM 通过引入 记忆单元 和 门控机制(输入门、遗忘门、输…

Ruffle 继续在开源软件中支持 Adobe Flash Player

大多数人已经无需考虑对早已寿终正寝的 Adobe Flash 的支持,但对于那些仍有一些 Adobe Flash/SWF 格式的旧资产,或想重温一些基于 Flash 的旧游戏/娱乐项目的人来说,开源 Ruffle 项目仍是 2024 年及以后处理 Flash 的主要竞争者之一。 Ruffl…

【Hot100】LeetCode—4. 寻找两个正序数组的中位数

目录 1- 思路题目识别二分 2- 实现⭐4. 寻找两个正序数组的中位数——题解思路 3- ACM 实现 原题链接:4. 寻找两个正序数组的中位数 1- 思路 题目识别 识别1 :给定两个数组 nums1 和 nums2 ,找出数组的中位数 二分 思路 将寻找中位数 —…

Python数据分析案例59——基于图神经网络的反欺诈交易检测(GCN,GAT,GIN)

以前的数据分析案例的文章可以参考:数据分析案例 案例背景 以前二维的表格数据的机器学习模型都做烂了,[线性回归,惩罚回归,K近邻,决策树,随机森林,梯度提升,支持向量机,神经网络],还有现在常用的XGBoost,lightgbm,ca…

ffmpeg实现视频的合成与分割

视频合成与分割程序使用 作者开发了一款软件,可以实现对视频的合成和分割,界面如下: 播放时,可以选择多个视频源;在选中“保存视频”情况下,会将多个视频源合成一个视频。如果只取一个视频源中一段视频…

keil5进行stm32编程时常遇到的问题和ST-LINK在线仿真的连接问题

本文记录原因 最近一直在尝试usb的自定义键盘、无刷电机和pcb的一些东西,很久没使用stm32编写程序了。在浏览购物网站的时候发现很多便宜的小系统板。 使用小的系统板原因 1,在网上看到板子很便宜,以前很少看见,但现在网上对这…

大数据新视界 --大数据大厂之数据科学项目实战:从问题定义到结果呈现的完整流程

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

uniapp 知识总结

1. uniapp 知识总结 uni-app是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Harmony、Web(响应式)以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、…

【webpack4系列】设计可维护的webpack4.x+vue构建配置(终极篇)

文章目录 构建配置包设计通过多个配置文件管理不同环境的 webpack 配置抽离成一个 npm 包统一管理(省略)通过 webpack-merge 组合配置 功能模块设计目录结构设计构建配置插件安装webpack、webpack-cli关联HTML插件html-webpack-plugin解析ES6解析vue、JS…

笔记本安装Linux系统向日葵远程控制

1、制作启动U盘 Ubuntu: Create a bootable USB stick with Rufus on Windows 2、安装 1、重启笔记本,出现logo后,按 f2(注:联想拯救者。其他型号参考官方文档)。按左右方向键切换到 Boot。选择 Boot Mo…

【软件测试】--xswitch将请求代理到测试桩

背景 在做软件测试的过程中,经常会遇见需要后端返回特定的响应数据,这个时候就需要用到测试桩,进行mock测试。 测试工程师在本地模拟后端返回数据时,需要将前端请求数据代理到本地,本文介绍xswitch插件代理请求到flas…

Float类型的有效位数有几位

大家好,今天我们来聊一聊C语言中的Float类型。 正如标题所说,你知道Float类型的有效位数有几位吗? 或者你知道为什么Float类型可以表示数字16777218但是却无法表示16777217吗? 如果你不是很确定那我们就一起来看看吧&#xff0…

AcWing算法基础课-789数的范围-Java题解

大家好,我是何未来,本篇文章给大家讲解《AcWing算法基础课》789 题——数的范围。本文详细解析了一个基于二分查找的算法题,题目要求在有序数组中查找特定元素的首次和最后一次出现的位置。通过使用两个二分查找函数,程序能够高效…

数据结构(Day13)

一、学习内容 内存空间划分 1、一个进程启动后,计算机会给该进程分配4G的虚拟内存 2、其中0G-3G是用户空间【程序员写代码操作部分】【应用层】 3、3G-4G是内核空间【与底层驱动有关】 4、所有进程共享3G-4G的内核空间,每个进程独立拥有0G-3G的用户空间 …

【C++】深入理解作用域和命名空间:从基础到进阶详解

🦄个人主页:小米里的大麦-CSDN博客 🎏所属专栏:C_小米里的大麦的博客-CSDN博客 🎁代码托管:C: 探索C编程精髓,打造高效代码仓库 (gitee.com) ⚙️操作环境:Visual Studio 2022 目录 一、前言 二、域的概念 1. 类域 2. 命名空间…

Redis——常用数据类型string

目录 常用数据结构(类型)Redis单线程模型Reids为啥效率这么高?速度这么快?(参照于其他数据库) stringsetgetMSET 和 MGETSETNX,SETEX,PSETEXincr,incrby,decr…

sshj使用代理连接服务器

之前我是用jsch连接服务器的,但是没办法使用私钥连接,搜了一下似乎是不支持新版的SSH-rsa,并且jsch很久没更新了,java - "com.jcraft.jsch.JSchException: Auth fail" with working passwords - Stack Overflow 没办法…