Simulink仿真中get_param函数用法

news2024/10/1 17:04:20

目录

语法

说明

示例

获取模块参数值和模型参数值

获取根参数名称和值

获取模型参数名称和值

获取模块列表和参数值

使用模块句柄获取模块参数值

显示模型中所有模块的模块类型

获取封装参数、Simulink 对象、模块图或注释的选项列表

获取封装参数的计算值


        get_param函数的功能是获取参数名称和值。

语法

value = get_param(object,parameter)

说明

        value = get_param(object,parameter) 为由 object 指定的目标对象返回指定参数 parameter 的值 value。目标对象可以是模型、子系统、库、模块、信号线、端口或总线元素端口元素。

        在调用此函数之前,请打开或加载相关的 Simulink® 模型、子系统或库。

示例

获取模块参数值和模型参数值

        加载 vdp 模型。

load_system('vdp');

        获取 Expression 模块参数的值。

BlockParameterValue = get_param('vdp/Mu','Multiplication')
BlockParameterValue =

    'Element-wise(K.*u)'

        获取 SolverType 模型参数的值。

SolverType = get_param('vdp','SolverType')
SolverType =

    'Variable-step'

获取根参数名称和值

        通过找出 Simulink 根参数名称与模型参数名称之间的区别,获取全局参数名称的列表。

RootParameterNames = fieldnames(get_param(0,'ObjectParameters'));
load_system('vdp')
ModelParameterNames = fieldnames(get_param('vdp','ObjectParameters'));
GlobalParameterNames = setdiff(RootParameterNames,ModelParameterNames)
GlobalParameterNames =

  79×1 cell array

    {'AccelNoncompliantBlocksRatioLimit'             }
    {'AutoAccelerationStepsPerBlockLimit'            }
    {'AutoAccelerationStepsPerCodegenLimit'          }   
    . . .
    {'CurrentSystem'                                 }

获取全局参数的值。

GlobalParameterValue = get_param(0,'CurrentSystem')
GlobalParameterValue =

    'vdp'

获取模型参数名称和值

        获取 vdp 模型的模型参数列表。

load_system('vdp')
ModelParameterNames = get_param('vdp','ObjectParameters')
ModelParameterNames = 

  struct with fields:

                                              Name: [1×1 struct]
                                               Tag: [1×1 struct]
                                       Description: [1×1 struct]
                                              Type: [1×1 struct]
                                            Parent: [1×1 struct]
                                            Handle: [1×1 struct]
                                            . . .
                       ZeroInternalMemoryAtStartup: [1×1 struct]

        获取 vdp 模型的 ModelVersion 模型参数的当前值。

ModelParameterValue = get_param('vdp','ModelVersion')
ModelParameterValue =

    '7.0'

获取模块列表和参数值

        获取 sldemo_fuelsys 模型中模块的模块路径和名称列表。对于其中一个模块,获取模块对话框参数列表和模块对话框参数值。

        打开 Model a Fault-Tolerant Fuel Control System 示例。

openExample('simulink_automotive/ModelingAFaultTolerantFuelControlSystemExample');

        获取 sldemo_fuelsys 模型顶层中所有模块的模块路径和名称列表。

BlockPaths = get_param(gcs,'blocks')
BlockPaths =

  21×1 cell array

    {'Callback Button'             }
    {'Constant2'                   }
    {'Constant3'                   }
    {'Constant4'                   }
    {'Constant5'                   }
    {'Dashboard'                   }
    {'EGO Fault Switch'            }
    {'Engine Gas Dynamics'         }
    {'Engine Speed'                }
    {'Engine Speed↵Fault Switch'  }
    {'Engine_Speed_Selector'       }
    {'MAP Fault Switch'            }
    {'MAP_Selector'                }
    {'O2_Voltage_Selector'         }
    {'Scope'                       }
    {'Throttle↵Command'           }
    {'Throttle Angle↵Fault Switch'}
    {'Throttle_Angle_Selector'     }
    {'To Controller'               }
    {'To Plant'                    }
    {'fuel_rate_control'           }

        该命令输出当前系统顶层中所有模块的模块路径和名称列表。如果当前系统是子系统,该命令将输出该子系统顶层中所有模块的模块路径和名称列表。

        在此示例中,当前系统为 sldemo_fuelsys,因此该命令输出 sldemo_fuelsys 系统的顶层中所有模块的模块路径和名称列表。

        获取 sldemo_fuelsys 模型的所有层级中所有模块的模块路径和名称列表。

BlockPaths = find_system(gcs,'Type','Block')
BlockPaths =

  188×1 cell array

    {'sldemo_fuelsys/Callback Button'                                                                     }
    {'sldemo_fuelsys/Constant2'                                                                           }
    {'sldemo_fuelsys/Constant3'                                                                           }
    ...
    {'sldemo_fuelsys/fuel_rate_control/fuel_rate'                                                         }

        该命令输出当前系统的顶层和当前系统包含的所有较低模型层级中所有模块的模块路径和名称列表。在此示例中,当前系统为 sldemo_fuelsys,因此输出是 sldemo_fuelsys 模型中所有模块的模块路径和名称的列表。

        获取名为 RT/Vm 的 Gain 模块的模块对话框参数列表。get_param 函数中的第一个参数是模块路径和名称。从 BlockPaths 元胞数组中获取模块路径和名称。

BlockDialogParameters = get_param(BlockPaths{44},'DialogParameters')
BlockDialogParameters = 

  struct with fields:

                         Gain: [1×1 struct]
               Multiplication: [1×1 struct]
                     ParamMin: [1×1 struct]
                     ParamMax: [1×1 struct]
             ParamDataTypeStr: [1×1 struct]
                       OutMin: [1×1 struct]
                       OutMax: [1×1 struct]
               OutDataTypeStr: [1×1 struct]
                    LockScale: [1×1 struct]
                      RndMeth: [1×1 struct]
    SaturateOnIntegerOverflow: [1×1 struct]
                   SampleTime: [1×1 struct]

        获取 Multiplication 模块参数的值。

BlockParameterValue = get_param(BlockPaths{44},'Multiplication')
BlockParameterValue =

    'Element-wise(K.*u)'

使用模块句柄获取模块参数值

        获取 vdp 模型中名为 Mu 的 Gain 模块的 Multiplication 模块参数值。

        使用 getSimulinkBlockHandle 函数获取 vdp 模型中名为 Mu 的 Gain 模块的句柄。通过输入 'vdp/Mu' 作为输入参数来指定模型和模块名称。如果未加载 vdp 模型,则通过将 true 指定为 getSimulinkBlockHandle 函数的第二个输入参数来加载模型。

mublockhandle = getSimulinkBlockHandle('vdp/Mu',true)
mublockhandle =

    5.0001

        句柄包含双精度值,例如,5.0001。如果您在 MATLAB® 命令行窗口中显示句柄编号,显示画面可能不会显示该编号的所有数字。请不要尝试通过手动输入您在显示画面上看到的内容来使用此句柄编号。而要将该句柄赋给变量,并使用该变量名称指定模块。

提示

        如果对同一模块多次调用 get_param,请使用模块句柄,而不要重复将完整的模块路径指定为字符向量,如 'vdp/Mu'。您可以在对 get_param 或 set_param 的后续调用中使用该模块句柄。

        要获取 Multiplication 模块参数的值,请使用 get_param 函数。将模块句柄指定为第一个输入参量,将模块参数的名称指定为第二个输入参量。

BlockParameterValue = get_param(mublockhandle,'Multiplication')
BlockParameterValue =

    'Element-wise(K.*u)'

显示模型中所有模块的模块类型

        获取 vdp 模型的模块路径和名称列表。

load_system('vdp')
BlockPaths = find_system('vdp','Type','Block')
BlockPaths =

  14×1 cell array

    {'vdp/Constant'            }
    {'vdp/More Info'           }
    {'vdp/More Info/Model Info'}
    {'vdp/Mu'                  }
    {'vdp/Mux'                 }
    {'vdp/Product'             }
    {'vdp/Scope'               }
    {'vdp/Square'              }
    {'vdp/Sum'                 }
    {'vdp/Sum1'                }
    {'vdp/x1'                  }
    {'vdp/x2'                  }
    {'vdp/Out1'                }
    {'vdp/Out2'                }

        获取 vdp 模型中每个模块的 BlockType 参数值。

BlockTypes = get_param(BlockPaths,'BlockType')
BlockTypes =

  14×1 cell array

    {'Constant'  }
    {'SubSystem' }
    {'SubSystem' }
    {'Gain'      }
    {'Mux'       }
    {'Product'   }
    {'Scope'     }
    {'Math'      }
    {'Sum'       }
    {'Sum'       }
    {'Integrator'}
    {'Integrator'}
    {'Outport'   }
    {'Outport'   }

获取封装参数、Simulink 对象、模块图或注释的选项列表

        可以使用 get_param 函数和关键字 options 检索参数、Simulink 对象、模块图或注释的选项列表。

        获取封装参数的选项列表。以 ACSystem 模型中的封装 Subsystem 模块为例。获取 Subsystem 模块参数 Show port labels 的选项列表。

openExample('simulink_masking/DesignAMaskDialogBoxExample')
get_param('ACSystem/AC System','options@showportlabels')
ans =

  1×4 cell array

    {'none'}    {'FromPortIcon'}    {'FromPortBlockName'}    {'SignalName'}

        获取模块参数的选项列表。例如,获取 Inport 模块的 Icon display 参数的选项列表。

get_param('ACSystem/In1','options@icondisplay')
ans =

  1×3 cell array

    {'Signal name'}    {'Port number'}    {'Port number and si…'}

获取封装参数的计算值

        可以使用带关键字 value 的 get_param 函数来访问封装模块参数的计算值。

        以 ACSystem 模型中的封装 Subsystem 模块为例。获取名为 Room Width (W) 的封装上 edit 参数的计算值。

openExample('simulink_masking/DesignAMaskDialogBoxExample')
get_param('ACSystem/AC System','value@W')
ans =

   133

        检索计算值的选项仅限于封装参数。

        通过双击 AC System 模块打开该模块的封装。Room Width (W) 参数的值与使用 get_param 函数得到的值相同。

如图所示:

参数说明

object — 对象或根的名称、路径或句柄

        对象或根的名称、路径或句柄,指定为字符向量、字符向量元胞数组、字符串数组、数值标量或 0。

        如何指定目标对象取决于其类型。

  • 模型 - 模型名称或句柄。

  • 子系统 - 系统名称或句柄。

  • 库 - 库名称或句柄。

  • 模块 - 模块路径或句柄。

  • 信号线 - 信号线句柄。

  • 端口 - 端口句柄。

  • 总线元素端口元素 - 具有元素标签的模型组件的模块路径。元素可以是端口的任何元素,例如顶层总线、嵌套总线、信号或消息。

        要用一个公共参数指定多个对象,请使用字符向量元胞数组、字符串数组或句柄数组。所有指定的对象都必须具有指定的参数,否则该函数将返回错误。

        指定0以获取根参数名称,包括当前 Simulink 会话的全局参数和模型参数。

  • 全局参数包括编辑器预设项和 Simulink Coder™ 参数。

  • 模型参数包括配置参数、Simulink Coder 参数和 Simulink Code Inspector™ 参数。

        对象或根的名称、路径或句柄,指定为字符向量、字符向量元胞数组、字符串数组、数值标量或 0。

提示

  • 如果对同一模块多次调用 get_param,请用数值句柄指定该模块。这种方法比对 get_param 使用完整模块路径更高效。使用 getSimulinkBlockHandle 获取模块句柄。

  • ​不要尝试手动指定句柄的数字,例如 5.007,因为通常需要指定的位数多于 MATLAB 显示的位数。要将句柄赋给变量并使用该变量名称。​

parameter — 参数、属性或特性名称

        参数、属性或特性名称,指定为字符向量或字符串标量。有些名称区分大小写。

下表显示特例。

指定的参数结果
'ObjectParameters'

结构体数组中作为单独字段的指定对象的参数名称。

'DialogParameters'

结构体数组中作为单独字段的模块对话框参数名称。如果模块有封装,则函数返回封装参数。

        有关参数、属性或特性的信息,请参阅对应参考页上的编程使用信息。例如:

  • 模型 - 参考配置参数参考页。

  • 模块 - 参考通用模块属性和模块参考页。

  • 端口 - 参考信号属性工具参考页。

  • 总线元素端口元素 - 参考 In Bus Element 和 Out Bus Element 模块参考页。

value — 参数值

        参数值,以参数类型确定的格式返回。如果您指定多个对象,则输出是元胞数组。

下表显示特例。

指定的参数结果
'ObjectParameters'

结构体数组中作为单独字段的指定对象的参数名称。

'DialogParameters'

结构体数组中作为单独字段的模块对话框参数名称。如果模块有封装,则函数返回封装参数。

        如果通过指定 get_param(0,'ObjectParameters') 来获取根参数,则输出 value 是一个结构体数组,根参数名称在结构体中为单独的字段。每个参数字段都是一个结构体,其中包含以下字段:

  • 类型 - 参数类型值包括 'boolean'、'string'、'int'、'real'、'point'、'rectangle'、'matrix'、'enum'、'ports' 或 'list'。

  • 枚举 - 枚举字符向量值的元胞数组,仅适用于 'enum' 参数类型。

  • 属性 - 定义参数属性的字符向量元胞数组。值包括 'read-write'、'read-only'、'read-only-if-compiled'、'write-only'、'dont-eval'、 'always-save'、'never-save'、'nondirty' 或 'simulation'。

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

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

相关文章

如何用TorchAO优化PyTorch模型:看得见的性能提升

你有没有在训练PyTorch模型时,遇到过速度慢、内存占用高的问题?不管你是研究模型优化,还是追求性能极致的开发者,TorchAO可能正是你需要的工具。今天我们来聊聊这个PyTorch原生的架构优化工具,看看它是如何帮助你优化模型的,并且提升整体性能。 TorchAO是什么? Tor…

基于JAVA+SpringBoot+Vue的社区养老服务平台

基于JAVASpringBootVue的社区养老服务平台 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码下载链接🍅 哈…

脸爱云管理系统存在任意文件上传漏洞

漏洞描述 脸爱云一脸通智慧管理平台是一套功能强大、运行稳定、操作简单方便、用户界面美观的一脸通系统。该平台整合了人脸识别技术和智能化解决方案,可以实现识别和管理个体身份,为各种场景提供便捷的身份验证和管理功能。其存在任意文件上传漏洞&…

数值计算的程序设计问题举例

### 数值计算的程序设计问题 #### 1. 结构静力分析计算 **涉及领域**:工程力学、建筑工程 **主要问题**:线性代数方程组(Linear Algebraic Equations) **解释说明**: 在结构静力分析中,我们需要解决复杂的…

C++第五讲(2):STL--string--string的模拟实现+知识加餐

C第五讲(2):STL--string--string的模拟实现知识加餐 1.string的模拟实现1.1string.h头文件 -- string类的声明1.2string.cpp源文件 -- string的具体实现1.3test.cpp源文件 -- string模拟实现的测试 2.知识补充1:swap3.知识补充2&a…

IDEA几大常用AI插件

文章目录 前言列表GPT中文版TalkXBito AIIDEA自带的AI 前言 最近AI、GPT特别火,IDEA里面又有一堆插件支持GPT,所以做个专题比较一下各个GPT插件 列表 先看idea的plugins里支持哪些,搜索“GPT”之后得到的,我用下来感觉第一第二和…

【Iceberg分析】调研Iceberg中表的原地演变

调研Iceberg中表的原地演变 文章目录 调研Iceberg中表的原地演变原生非分区表文件关系图表的原地演变之表schema演变新增字段new_column文件关系变化图为新增字段写入数据文件关系变化图删除新增字段文件关系变化图新增字段new_column2文件关系变化图删除数据文件关系变化图 原…

无人机之数据提取篇

一、无人机平台与传感器 无人机是进行数据采集的基础设施,其稳定性、可靠性、灵活性和负载能力直接影响到数据采集的效果。根据实际需求,需选择适合的无人机类型,如固定翼无人机适合大范围、长时间的数据采集,而多旋翼无人机则更适…

从Fast-UMI到Diff-Control:分别改进UMI的硬件、UMI所用的扩散策略

前言 24年9.28日下午,微信上的好友丁研究员和我说 hi 周总,我们基于umi改进了一下——弄了一个用户友好的采集系统(当然,现在这个版本还比较初级 后续不断迭代)项目网站为:https://fastumi.com/ 技术报告见:https://…

docker和kafka连接Topic失败处理措施

使用 docker 镜像部署一套单节点的 Zookeeper Kafka,但是一直Java却连不上一些处理思路。 为了提高部署效率,这里提供一个简单可启动的docker-compose。 version: "3.3" services:zookeeper:image: zookeeper:3.5.5restart: alwayscontainer…

Global Illumination_VXGI(VCT) Deep Optimizations

之前针对RSM和LPV优化技术介绍后,我们可以看出来一个大致的思路的:就是减少计算量提升最大,因此VXGI的优化思路和之前两种算法几乎一样,之前也实现过Global Illumination_Voxel Global Illumintaion (VXGI)有兴趣的可以去简单了解…

软件系统可视化建设方案书(word原件)

第 一 章 系统总体设计 1.1 总体架构 1.1.1 系统拓扑 1.1.2 系统组成 1.2 设计概述 1.3 平台系统功能 1.3.1 总部数据看板 1.3.2 项目部数据看板 1.3.3 视频联网系统 1.3.4 实名制考勤系统 1.3.5 安全生产系统 1.3.6 塔吊安全监控子系统 1.3.7 施工升降机安全监控管系统 1.3.8 …

videojs 播放mp4视频只有声音没有画面问题

在使用Video.js播放MP4视频时,如果遇到只有声音没有画面的情况,这通常与视频文件的编码格式、浏览器兼容性或Video.js的配置有关。以下是一些可能的解决步骤和原因分析: 1. 检查视频编码 MP4视频支持多种编码格式,但并非所有编码…

Python 如何使用 Pandas 进行数据分析

Python 如何使用 Pandas 进行数据分析 在数据分析领域,Python 是非常流行的编程语言,而 Pandas 是其中最重要的库之一。Pandas 提供了高效、灵活的数据结构和工具,专门用于处理和分析数据。对于数据分析新手来说,理解如何使用 Pa…

Java增强for循环遍历集合删除指定值不安全问题

在这里因为remove方法有两种参数,一种是对象(删除此元素),一种是Integer (删除此下标对应的元素)。恰好我对象类型就是Integer,所以或默认为删除下标对应元素,造成下标越界不安全。可…

RSA算法模拟实验报告(后篇,非常感谢橘味小奶糖的反馈)

有朋友说代码运行不出来,因为我是平板上写的,没在电脑上运行过,这也算是我的疏忽吧,今天尝试了一下,刚开始运行出来是乱码,改了一些东西,还是运行出来了。 我用的devc。 首先是文字显示&#…

【数据结构】---图

图 前言 本篇作为图的基础概念篇, 了解图的离散数学定义, 图的分类, 图模型解决的问题(图的应用), 图的相关算法(仅仅介绍,具体不在此篇展开)。 学习基本路线&#xff…

计算两点结构的斜率

在行列可自由变换的条件下,平面上的2点结构只有3个 (A,B)---6*n*2---(0,1)(1,0) 分类A和B,A是3个2点结构,让B全是0。当收敛误差为7e-4,收敛199次取迭代次数平均值。让隐藏层节点数n分别为10,15,20&#xf…

【漏洞复现】泛微OA E-Office do_excel.php 任意文件写入漏洞

》》》产品描述《《《 泛微0-0fice是一款标准化的协同 OA办公软件,泛微协同办公产品系列成员之一,实行通用化产品设计,充分贴合企业管理需求,本着简洁易用、高效智能的原则,为企业快速打造移动化、无纸化、数字化的办公平台。 》》…

C# 变量与常量

一 变量与常量 1.1 内存如何存放数据 计算机使用内存来记忆计算时所使用的数据 内存如何存储数据? 数据各式各样,要先根据数据的需求(即类型)为它申请一块合适的空间 内存像宾馆 1.2 为什么需要变量 内存地址不好记&#x…