Matlab simulink建模与仿真 第十一章(端口及子系统库)【上】

news/2024/9/17 10:12:55/ 标签: matlab, 开发语言

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

一、端口及子系统库中的模块概览

        注:In模块、Out模块和Subsystem模块在第二章中均有介绍,本章不再赘述;Subsystem Examples子系统实例模块也不进行介绍。

二、使能及其子模块

1、Enabled Subsystem使能子系统

(1)与普通子系统不同的是,使能子系统多出一个使能端口(相应地,使能子系统内部会多出一个使能模块),该端口的输入信号(后续称为使能信号)决定使能子系统是使能还是失能,当使能信号大于0时子系统使能,否则子系统失能。

(2)使能端口的输入信号可以是标量,也可以是向量(不能是矩阵),当输入为向量时,只要向量中有非零元素,那么使能子系统将使能。

(3)如下一图所示,使能子系统的使能端口接一个方波脉冲,当方波发生器的输出不为0时,使能子系统使能,使能子系统的输入经过子系统的传递函数模块后正常输出(使能子系统的内部结构如下二图所示),当方波发生器的输出为0是,使能子系统失能,输出维持在失能前最后一刻的水平。

2、Enable使能模块

(1)使能模块只能搭配子系统模块使用,在普通子系统模块中添加使能模块后,该普通子系统将会变成使能子系统模块,相应地,其外部也会多出一个使能端口。

(2)当使能子系统失能后,其输出会维持在失能前最后一刻的水平,此后如果使能子系统再次使能,该时刻的输出有两种情况:

①如果使能模块的“States when enabling”(启用时状态)配置为held,那么使能一刻的输出将和失能前最后一刻的输出相同。

②如果使能模块的“States when enabling”(启用时状态)配置为reset,那么使能一刻的输出将置为0。

三、触发及其子系统

1、Triggered Subsystem触发子系统

(1)与普通子系统不同的是,触发子系统多出一个触发端口(相应地,触发子系统内部会多出一个触发模块),该端口每来一个触发信号,触发子系统便会工作一次,当没有触发信号后,触发子系统的输出与上一时刻的水平相同。

(2)如下一图所示,触发子系统的触发端口接一个方波脉冲,触发子系统的触发方式为上升沿触发,当方波发生器的输出由0跳变为1时,触发子系统工作,触发子系统的输入经过离散微分模块后正常输出(触发子系统的内部结构如下二图所示),方波发生器的输出没有上升沿时,触发子系统不工作,其输出维持在上次工作时的水平。

(3)需要注意的是,触发子系统中不能包含连续模块,如积分模块。

2、Trigger触发模块

(1)触发模块只能搭配子系统模块使用,在普通子系统模块中添加触发模块后,该普通子系统将会变成触发子系统模块,相应地,其外部也会多出一个触发端口。

(2)双击触发模块,可以配置触发方式,触发方式可以是上升沿触发(rising)、下降沿触发(falling)、跳变触发(either)和函数调用触发(function-call)四种。

四、微型子系统

1、Atomic Subsystem微型子系统概述

        子系统分为虚拟子系统和非虚拟子系统,前面提及的普通子系统属于虚拟子系统,而这里的微型子系统则是非虚拟子系统,它可以看作独立的系统,有独立参与运算的能力,而普通的子系统则不行,不过在实际应用中,二者的差别并不大,一般使用普通的子系统足矣。

2、示例——数据选择器

        本例实现的是一个数据选择器。

五、代码重用子系统

1、CodeReuseSubsystem代码重用子系统概述

        代码重用子系统也属于非虚拟子系统,其用法和微型子系统十分相似。

2、示例——编码器

(1)本例实现的是十进制数转换为BCD码(非优先编码器),其真值表如下图所示。

(2)将上述真值表转换为模型,如下图所示。

六、模型及函数调用发生器模块

1、Model模型模块

(1)将模型模块添加进编辑区后,双击该模块,在下图所示的输入框中可以输入模型文件的名称,MATLAB会在搜索路径中根据名称找到相应的mdl模型文件,或者点击“Browse...”,直接选择相应的mdl模型文件,如果选择成功,点击“Open Model”可以将所选模型打开。

(2)如果选择直接输入名称进行搜索的方法,需要确保所选模型文件在MATLAB的搜索路径上,MATLAB的搜索路径查看及添加方法如下:

2、Function-Call Generator函数调用发生器模块

(1)该模块通常需要配合函数调用子系统配合使用,它可以控制函数调用子系统以函数调用发生器所指定的采样频率进行工作。

(2)如果希望使用一个函数调用发生器模块按照一定顺序控制多个函数调用子系统,可以借助分路器模块。

七、可配置子系统模块

1、Configurable Subsystem可配置子系统模块概述

        该模块通常和用户自定义的库文件配合使用,可用来表示库文件中包含的各个功能相对独立模块所构成的集合。由于需要与自定义的库文件配合,所以该模块不能直接添加到模型文件中,而是只能添加到库文件中,库文件的创建方法如下图所示(第一章示例的则是创建一般的模型文件)。

2、示例——全加器

(1)全加器的真值表及输出逻辑表达式如下图所示。

(2)将上述表达式转换为模型,如下图所示(因为第二个表达式有两种形式,所以搭建出两个模型,分别封装为两个普通的子系统)。

(3)在库文件中添加可配置子系统模块,双击它,勾选其中一个子系统,代表选择使用该子系统。

(4)打开一个普通模型文件,将可配置子系统模块从库文件直接拖拽至模型文件中,这样,就实现了将库文件中的一个子系统添加进模型文件中(库文件中的可配置子系统模块如果更改了勾选的子系统,那么模型文件中的可配置子系统模块也要相应地重新替换,否则会报错)。

(5)按照上一步创建4个全加器,可实现四位二进制数的相加,下图所示的是二进制数0b1011和0b0110的相加模型。


http://www.ppmy.cn/news/1522912.html

相关文章

原型模式prototype

此篇为学习笔记,原文链接 https://refactoringguru.cn/design-patterns/prototype 能够复制已有对象, 而又无需使代码依赖它们所属的类 所有的原型类都必须有一个通用的接口, 使得即使在对象所属的具体类未知的情况下也能复制对象。 原型对…

【爬虫软件】小红薯评论区采集工具

一、采集目标与应用场景 您好!我利用Python技术自主研发了一款高效的爬虫软件,批量收集小红薯平台上的评论,包括主评论及其下的二级评论。 为了拓宽用户群体,让不具备编程基础的小白用户也能轻松上手,我开发成了界面…

【音视频】播放音视频时发生了什么? 视频的编解码 H264是什么? MP4是什么?

目录 ✨播放一个视频的流程✨为什么要编码(压缩)视频数据?✨如何编码(压缩)数据🎄简单的例子🎄音视频编码方式🎄视频编码格式H264编码是什么?发展历程?H.264基…

UnLua环境搭建

一、环境搭建 1、下载UnLua工程:https://github.com/Tencent/UnLua 2、复制Plugins/UnLua目录下的插件到自己的项目中 3、重新生成自己的VS工程 4、打开VS工程的项目名.Build.cs文件,引用UnLua插件,重新编译工程 PublicDependencyModuleNames.AddRan…

数组与贪心算法——605、121、122、561、455、575(5简1中)

605. 种花问题(简单) 假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。 给你一个整数数组 flowerbed 表示花坛&#xf…

【2024高教社杯全国大学生数学建模竞赛】B题模型建立求解

目录 1问题重述1.1问题背景1.2研究意义1.3具体问题 2总体分析3模型假设4符号说明(等四问全部更新完再写)5模型的建立与求解5.1问题一模型的建立与求解5.1.1问题的具体分析5.1.2模型的准备 目前B题第一问的详细求解过程以及对应论文部分已经完成&#xff…

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中…

【网络安全】Exif 数据储存型XSS

未经许可,不得转载。 文章目录 Exif步骤Exif EXIF(Exchangeable Image File Format)数据是一种存储在图像文件中的元数据格式,常用于数码照片和扫描图像。它包含了与图像相关的各种信息,比如拍摄日期和时间、相机品牌和型号、拍摄时的设置(如曝光时间、光圈、ISO等)、地…

Java Kafka生产者实现

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storm…

Android 9.0 SystemUI状态栏/快捷设置介绍

Android 9.0 SystemUI状态栏/快捷设置介绍 状态栏 状态栏是SystemUI里的重要功能之一,状态栏的一大功能就是显示功能图标,以告知用户一些最基本的信息状态,在 Android 9.0 版本中,状态栏一般包含运营商信息、时间、日期、电池、通…

python简单计算入门教程|加减法

python通过调用numpy模块,非常擅长数学计算。再通过调用matplotlib模块,可以自由自在地输出numpy计算的结果。 今天,我们就尝试一些基本计算。 下述是正弦函数和余弦函数的加法和减法计算结果。 图1 代码为: import matplotli…

UE4_后期处理_后期处理材质及后期处理体积三—遮挡物体描边显示

一、效果: 在很多游戏中为了玩家能看到墙面背后是否有敌人,会给被遮挡的敌人增加描边显示,效果如下: 参考: https://zhuanlan.zhihu.com/p/81310476 https://zhuanlan.zhihu.com/p/358140547 二、所需知识 知识点…

3.C_数据结构_栈

概述 什么是栈: 栈又称堆栈,是限定在一段进行插入和删除操作的线性表。具有后进先出(LIFO)的特点。 相关名词: 栈顶:允许操作的一端栈底:不允许操作的一端空栈:没有元素的栈 栈的作用: 可…

如何在 Linux 系统中禁用用户登录 ?

管理 Linux 系统上的帐户是系统管理员的一项重要任务。一个常见的任务是禁用帐户,由于各种原因可能需要禁用帐户,例如当员工离开公司或出于安全目的需要临时禁用访问时。 本指南将以简单易懂的步骤引导您完成在 Linux 系统上禁用帐户的过程。 Step 1: …

2024.9.8

打了一上午又一下午的比赛 DABOI Round 1 【MX-X3】梦熊周赛 未来组 3 & RiOI Round 4 第一场还好,共得180pts 难度比较合理,偏向正常noip 然后就发现自己计数问题很难做到推广思路,只会部分分 梦熊的模拟赛就抽象了 题目难度夸大…

IDEA安装教程配置java环境(超详细)

引言 IntelliJ IDEA 是一款功能强大的集成开发环境(IDE),广泛用于 Java 开发,但也支持多种编程语言,如 Kotlin、Groovy 和 Scala。本文将为你提供一步一步的指南,帮助你在 Windows 系统上顺利安装 Intelli…

Qt:解决player->duration()第一次获取媒体时长为0的问题

前言 最近想做一个白噪声播放器,中间就用到了QMediaplayer这个类,其中遇到两个问题,一个是未初始化好就调用player->state()导致程序异常崩溃的问题(这个问题留到下一个文章去说);还有一个就是调用player->duration()第一次…

Mendix 创客访谈录|Mendix赋能汽车零部件行业:重塑架构,加速实践与数字化转型

在当前快速发展的技术时代,汽车行业正经历着前所未有的数字化转型。全球领先的汽车零配件制造商面临着如何利用最新的数字技术优化其制造车间管理的挑战。从设备主数据管理到生产执行工单管理,再到实时监控产量及能耗,需要一个灵活、快速且高…

基于单片机智能电源插座设计

本设计基于单片机智能电源插座设计,该系统主要包括:单片机、WIFI模块、显示模块、继电器模块、按键输入模块、功率检测模块及手机APP,实现对用电量的实时监测的功能。功率检测模块实时测量用电器的供电电压、电流、功率;按键输入模…

微信小程序:navigateTo跳转无效

关于 navigateTo 跳转无效问题,在IOS、模拟器上面都能正常跳转,但是在安卓上面不能跳转,过了一段时间IOS也不能跳转了。仔细找了下问题结果是要跳转的页面是tab,不能使用navigateTo 取跳转修改为: wx.switchTab({url:…