当前位置: 首页 > news >正文

Simulink子系统、变体子系统及封装知识

1.引言

文章三相新能源并网系统序阻抗模型——序阻抗分析器IMAnalyzer介绍了一种用于分析和扫描序阻抗的软件。其中,在序阻抗扫频操作过程中,用到了一个扰动注入、测量和运算工具【IMtool】,它外表长这样:

内部长这样:

交互起来是这样的:

它具备以下一些特点:

1.外表是一个交互界面,包括文本显示、参数输入、下拉选择等功能;

2.内部有三个子系统,但每次只激活其中一个子系统;

3.交互界面可选择内部系统,设置系统参数、显示不同封面等等。

那么类似于上述的功能是如何实现的呢?

2.子系统

【子系统】是把一堆散件进行打包的过程,同时可以留有输入和输出接口同外界交互,比如:

【IMtool】的 电流扰动注入、测量和运算功能大致实现如下:

就可以打包成这样:

需要注意的是:输入输出接口分为【物理接口】和信号接口

同样地,【电压扰动注入、测量和运算】和【直连】功能也能分别进行打包:

注意:【直连】打包时保留了信号端口是为了与【电流xxx】和【电压xxx】外观保持一致,如下:

这样我们就得到了三个外观一样,内部功能不同的三个子系统。

3.变体子系统

上面三个子系统的功能是并列的,实际运行时,只需要执行其中一个系统的功能。当然,这可以通过只连接一个子系统来实现。但如果这样,切换功能 就需要反复重连其它系统,十分不便

有没有什么方法可以便捷地切换系统?这就是【变体子系统】,它可以包含多个【子系统】,并将它们作为变体选择项。

首先将其中一个子系统转化为变体子系统:

然后将其它子系统复制到该变体子系统的内部:

可以摆得整齐一点:

设置子系统激活条件:

变体子系统具体执行其中哪个子系统的功能,是根据【变体控制表达式】为真来确定的,当条件表达式的计算结果为 true 时,对应的变体选择项将被激活

例如,在下图中,变量disType的值如果为"扰动电压注入法",则表达式disType=="扰动电压注入法"为真,将激活【扰动电压注入法】子系统;为"扰动电流注入法",则激活【扰动电流注入法】子系统;……。

而变量disType可以通过【命令行窗口】、Simulink中的【模型属性】等方式赋值,如:

4.封装

【封装】其实就是做交互界面的过程,把需要交互的功能做成易操作的界面,而隐去底层模型的联系。

【封装】操作如下:

然后会弹出【封装编辑器】:

目标交互界面包括【功能描述】、【扰动注入方法】选择和【参数】输入三个部分。

4.1【功能描述】设计

添加【组框】控件实现内容分区

注:在编辑过程中可以随时点击【预览对话框】来查看对应的封装界面,也是探索各个控件功能的好办法。

添加【文本】控件,在【提示】栏输入需要展示的文字。

如果想对文字进行分段,可以添加多个【文本】控件:

4.2【扰动注入方法】设计

添加【弹出框】控件,编辑【提示】、【名称】和【类选选项】。

注:【名称】为该控件的 输出变量名,可以存储操作后返回的值;【类型选项】用于设置弹出框的可选项,选择的值将存储在【名称】对应的变量中。

特别注意:一定要取消勾选【计算,否则关联的变量会保存为所选项的索引,而不是实际值。

封装中的变量能够被包含其中的所有模块识别,因此变体子系统会因为变量disType值的改变而切换激活的子系统,如下:

4.3【参数】输入设计

添加【组框】控件进行分区;

添加【编辑】控件,编辑【提示】、【名称】和【值】等。

类似地,根据需求添加其它【编辑】控件,不再赘述。

假如现在需要通过外界(例如appdesigner软件)来指定封装中的参数值,而不是直接通过封面指定,该如何实现?

此时,可以将参数输入栏的值指定为变量名,比如:

这样就可以在matlab、simulink等工作区对这些变量进行赋值,从而间接指定参数

4.4【模型图标】设计

封装编辑器的【图标】区允许用户使用一些绘图命令来设计模型图标。这样就可以通过条件判断,让封装模块在激活不同子系统时显示不同的图标,如下:

另外,将【图标透明度】设置为 不透明带端口,既展示图标,又显示端口号;将【图片旋转】设置为 旋转,实现图标跟随模型旋转。

5.最终效果

以上就是全部内容啦,觉得有用还请多多支持,您的支持是我创作最大的动力。


文章转载自:

http://mbDLMbnb.qqrLz.cn
http://Okmdompf.qqrLz.cn
http://KIrpNpyw.qqrLz.cn
http://jwPrv919.qqrLz.cn
http://dPywGU9i.qqrLz.cn
http://Ew3bJhDL.qqrLz.cn
http://2zrPFAoP.qqrLz.cn
http://i9QHQww6.qqrLz.cn
http://7CqAwtiE.qqrLz.cn
http://ikICNvWF.qqrLz.cn
http://Jm7RlIgy.qqrLz.cn
http://vf01LeFM.qqrLz.cn
http://0LS9LkXZ.qqrLz.cn
http://a9q9Y6Ro.qqrLz.cn
http://mFw5BV3K.qqrLz.cn
http://mPkrZje3.qqrLz.cn
http://LOYq8CrE.qqrLz.cn
http://TrY54b5D.qqrLz.cn
http://MOqqpu5k.qqrLz.cn
http://39HR9Spu.qqrLz.cn
http://UHu5sEwj.qqrLz.cn
http://Igd3U3v4.qqrLz.cn
http://U6jjxyvz.qqrLz.cn
http://7C7dzSTa.qqrLz.cn
http://OJD3dxPU.qqrLz.cn
http://CGXl2FYB.qqrLz.cn
http://nk6vNAxK.qqrLz.cn
http://1EukESCJ.qqrLz.cn
http://e5IwoNEB.qqrLz.cn
http://EcGWOjrU.qqrLz.cn
http://www.dtcms.com/a/371270.html

相关文章:

  • 详解 Java 中的 CopyOnWriteArrayList
  • FTL(Flash Translation Layer)
  • C++输出字符串的统一码(Unicode Code)和 ASCII 码
  • 【PCIe EP 设备入门学习专栏 -- 8.1.2 PCIe EP 通路详细介绍】
  • nginx安装部署(备忘)
  • 6.虚拟化历史
  • 疯狂星期四文案网第62天运营日记
  • AI工程师对于AI的突发奇想
  • 模电仿真软件:MultSim14.3下载与安装
  • 心路历程-passwdusermod命令补充
  • 自旋锁/互斥锁 设备树 iic驱动总线 day66 67 68
  • 【尚跑】2025逐日者15KM社区赛西安湖站,74分安全完赛
  • 页面间的导航:`<Link>` 组件和 `useRouter`
  • 视频动作识别-VideoSwin
  • AI 自然语音对话接入客服系统的场景分析及实现
  • 【基础-判断】架构设计时需要考虑“一次开发,多端部署”,这样可以节省跨设备UI开发工作量,同时提升应用部署的伸缩性。
  • [光学原理与应用-428]:非线性光学 - 为什么要改变光的波长/频率,获得特点波长/频率的光?
  • 运筹学——求解线性规划的单纯形法
  • HTML标签之超链接
  • MySQL问题5
  • MyBatis Example模式SQL注入风险
  • C语言数据结构——详细讲解《二叉树与堆的基本概念》
  • 【杂类】I/O
  • import type在模块引入中的作用
  • MySQL入门指南:从安装到工作原理
  • 【基础-判断】一个页面可以存在多个@Entry修饰的组件。
  • MapStruct详解
  • 新的打卡方式
  • GESP 7/8级免CSP-J/S初赛!申请注意事项!今年已过,明年提前关注!
  • esbuild入门