我是靠谱客的博主 冷艳冰棍,最近开发中收集的这篇文章主要介绍【matlab专题】脚本(5):批量设置信号名观测量功能前言目的设计思路代码演示,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前言

实现simulink模型信号名观测量建立

目的

在汽车领域的软件中,一部分模型是分开集成的,例如输入输出逻辑都是按照各个功能逐渐划分的,这个时候模型之间的信号就需要传递,在嵌入式开发中,没有使用arxmal文件进行传递,也没有rte接口传播数据,这个时候我们就会使用“ImportedExtern”和“ExportedGlobal”的方式进行传递,这一类的方法中,需要将模型的输入与输入设置为解析为simulink对象,进行信号传递

在这里插入图片描述
在这里插入图片描述

这种设置也在在信号线上单机右键选择设置中,点击信号名称必须解析为simulink信号对象即可完成设置

在这里插入图片描述

接下来我们讲解以下如何使用脚本进行所有的信号进行设置

设计思路

1、如何使用脚本读取你的信号名称

第一步就是读取你的信号数量,有多少个输入与输出

inportCell = find_system(bdroot,'FindAll','on','BlockType','Inport');

这一步是确定你的信号输入输出,输出的结果每一行代表一个输入与输出

2、读取你的信号名称

 InportName = get_param(inportCell(i),'Name');

这里的i是为了后续的循环语句使用,这一步是读取inportCell中i的名称

3、获取你要设置的信号

InportHandle = get_param(inportCell(i),'Handle');

这一步是读取修改信号的具体位置

4、将这个信号的信号线命名

set(LineHandele,'Name',InportName);

5、设置信号解析观测量

  set(LineHandele,'MustResolveToSignalObject',1);

整体的大概思路就是先查询有多少个信号,然后使用循环语句对每个信号进行设置

下边看一下整体的代码

代码演示

%%
inportCell = find_system(bdroot,'FindAll','on','BlockType','Inport');
for i=1:length(inportCell)
    InportName = get_param(inportCell(i),'Name');
    InportHandle = get_param(inportCell(i),'Handle');
    PortHandle = get(InportHandle,'PortHandles');
    OutputHandle = PortHandle.Outport;
    LineHandele = find_system(bdroot,'SearchDepth',1,'FindAll','on','Type','Line','SrcPortHandle',OutputHandle);
    set(LineHandele,'Name',InportName);
    set(LineHandele,'MustResolveToSignalObject',1);
  
end

OutportCell = find_system(bdroot,'FindAll','on','BlockType','Outport');
for i=1:length(OutportCell)
    OutportName = get_param(OutportCell(i),'Name');
    OutportHandle = get_param(OutportCell(i),'Handle');
    PortHandle = get(OutportHandle,'PortHandles');
    OutputHandle = PortHandle.Inport;
    LineHandele = find_system(bdroot,'SearchDepth',1,'FindAll','on','Type','Line','DstPortHandle',OutputHandle);
    set(LineHandele,'Name',OutportName);
    set(LineHandele,'MustResolveToSignalObject',1)
    %OutportName = Simulink.Signal ;
    %OutportName.CoderInfo.CustomStorageClass = 'ImportedExtern' ;
end

这部分代码比较简单,这里就不详细说明了,具体不懂的地方可以留言或者私信作者

最后

以上就是冷艳冰棍为你收集整理的【matlab专题】脚本(5):批量设置信号名观测量功能前言目的设计思路代码演示的全部内容,希望文章能够帮你解决【matlab专题】脚本(5):批量设置信号名观测量功能前言目的设计思路代码演示所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部