Matlab simulink建模与仿真 第十章(模型扩展功能库)

2024-09-08 05:28

本文主要是介绍Matlab simulink建模与仿真 第十章(模型扩展功能库),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

一、模型扩展功能库中的模块概览

        注:下面不会对Block Support Table模块进行介绍。

二、基于触发的和基于时间的线性化模块

1、Trigger-Based Linearization基于触发的线性化模块

(1)每次当模块受到触发时,都会调用linmod或者dlinmod函数,求出当前控制系统的线性状态空间模型(A、B、C、D四个矩阵以及其它的一些相关信息),相关信息会以结构体数组的形式存储在基本工作空间中(每触发一次,生成一个工作点,也就是求一次线性状态空间模型,这个工作点以结构体表示,若干个工作点便构成了结构体数组)。

(2)模块的触发方式有上升沿(rising)、下降沿(falling)、跳变(either)、函数调用(function-call)四种,下面以上升沿为例继续介绍。

(3)控制系统的线性状态空间模型与输入、输出无关,在构建控制系统时,输入和输出要分别用In模块和Out模块代替,Trigger-Based Linearization模块也是根据In模块和Out模块对模型中的控制系统进行识别的。

(4)上图示例中的方波发生器每10秒产生一个上升沿,仿真时长设置为25秒,那么仿真过程中Trigger-Based Linearization模块会受到两次触发,受到触发时它会求出当前时刻控制系统的线性状态空间模型,并输出到基本工作空间中,存储其的结构体数组名为“<模型文件名>_Trigger_Based_Linearization”,如下图所示(Ts并不是触发时刻,触发时刻记录在变量Operpoint中)。

2、Timed-Based Linearization基于时间的线性化模块

(1)每当达到设定的时间时,模块都会调用linmod或者dlinmod函数,求出当前控制系统的线性状态空间模型(A、B、C、D四个矩阵以及其它的一些相关信息),相关信息会以结构体数组的形式存储在基本工作空间中。

(2)双击模块可对时间进行设定,若设定是一个矩阵,则每个元素都为设定时间,每次达到设定时间都会生成一个工作点,工作点记录当前控制系统的线性状态空间模型,若干个工作点会存储在基本工作空间的结构体数组中。

(3)控制系统的线性状态空间模型与输入、输出无关,在构建控制系统时,输入和输出要分别用In模块和Out模块代替,Timed-Based Linearization模块也是根据In模块和Out模块对模型中的控制系统进行识别的。

(4)上图示例中,仿真时长设置为25秒,仿真过程中Timed-Based Linearization模块会在t=10s和t=20s时分别求出当前时刻控制系统的线性状态空间模型,并输出到基本工作空间中,存储其的结构体数组名为“<模型文件名>_Timed_Based_Linearization”,如下图所示(Ts并不是时刻值,时刻值记录在变量Operpoint中)。

(3)需要注意的是,该模块的仿真求解器需要是离散的,且仿真步长也是固定的。

三、其余几种模块

1、Model Info模型信息模块

(1)在建立模型时,有时需要给模型添加一些属性,比如创建者、创建日期、修改者、修改日期、版本号等,这时可以在模型文件中添加模型信息模块,将需要添加的属性配置进该模块即可。

(2)在下图所示的右侧输入窗口中可以编辑显示信息,除了“%<属性名>”会被替换为相应的文件属性以外,其它内容都会原封不动地显示到模型信息模块上,另外还可配置文本对齐方式(Horizontal text alignment)。

2、DocBlock文本模块

(1)文本模块的作用是在模型文件中添加注释,这和在C代码等代码中添加注释异曲同工。

(2)双击该模块,打开文本编辑器,在这里可以编辑注释。

这篇关于Matlab simulink建模与仿真 第十章(模型扩展功能库)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1147239

相关文章

Spring配置扩展之JavaConfig的使用小结

《Spring配置扩展之JavaConfig的使用小结》JavaConfig是Spring框架中基于纯Java代码的配置方式,用于替代传统的XML配置,通过注解(如@Bean)定义Spring容器的组... 目录JavaConfig 的概念什么是JavaConfig?为什么使用 JavaConfig?Jav

SpringBoot+Vue3整合SSE实现实时消息推送功能

《SpringBoot+Vue3整合SSE实现实时消息推送功能》在日常开发中,我们经常需要实现实时消息推送的功能,这篇文章将基于SpringBoot和Vue3来简单实现一个入门级的例子,下面小编就和大... 目录前言先大概介绍下SSE后端实现(SpringBoot)前端实现(vue3)1. 数据类型定义2.

SpringBoot整合Apache Spark实现一个简单的数据分析功能

《SpringBoot整合ApacheSpark实现一个简单的数据分析功能》ApacheSpark是一个开源的大数据处理框架,它提供了丰富的功能和API,用于分布式数据处理、数据分析和机器学习等任务... 目录第一步、添加android依赖第二步、编写配置类第三步、编写控制类启动项目并测试总结ApacheS

Python实现繁体转简体功能的三种方案

《Python实现繁体转简体功能的三种方案》在中文信息处理中,繁体字与简体字的转换是一个常见需求,无论是处理港澳台地区的文本数据,还是开发面向不同中文用户群体的应用,繁简转换都是不可或缺的功能,本文将... 目录前言为什么需要繁简转换?python实现方案方案一:使用opencc库方案二:使用zhconv库

Java领域模型示例详解

《Java领域模型示例详解》本文介绍了Java领域模型(POJO/Entity/VO/DTO/BO)的定义、用途和区别,强调了它们在不同场景下的角色和使用场景,文章还通过一个流程示例展示了各模型如何协... 目录Java领域模型(POJO / Entity / VO/ DTO / BO)一、为什么需要领域模

深入理解Redis线程模型的原理及使用

《深入理解Redis线程模型的原理及使用》Redis的线程模型整体还是多线程的,只是后台执行指令的核心线程是单线程的,整个线程模型可以理解为还是以单线程为主,基于这种单线程为主的线程模型,不同客户端的... 目录1 Redis是单线程www.chinasem.cn还是多线程2 Redis如何保证指令原子性2.

Qt实现删除布局与布局切换功能

《Qt实现删除布局与布局切换功能》在Qt应用开发中,动态管理布局是一个常见需求,比如根据用户操作动态删除某个布局,或在不同布局间进行切换,本文将详细介绍如何实现这些功能,并通过完整示例展示具体操作,需... 目录一、Qt动态删除布局1. 布局删除的注意事项2. 动态删除布局的实现步骤示例:删除vboxLay

Spring Boot整合Redis注解实现增删改查功能(Redis注解使用)

《SpringBoot整合Redis注解实现增删改查功能(Redis注解使用)》文章介绍了如何使用SpringBoot整合Redis注解实现增删改查功能,包括配置、实体类、Repository、Se... 目录配置Redis连接定义实体类创建Repository接口增删改查操作示例插入数据查询数据删除数据更

使用EasyPoi快速导出Word文档功能的实现步骤

《使用EasyPoi快速导出Word文档功能的实现步骤》EasyPoi是一个基于ApachePOI的开源Java工具库,旨在简化Excel和Word文档的操作,本文将详细介绍如何使用EasyPoi快速... 目录一、准备工作1、引入依赖二、准备好一个word模版文件三、编写导出方法的工具类四、在Export

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②