在simulink中创建bus总线,主要包含2种方法:

基于模块创建总线对象

使用模块,根据输入信号创建总线

基于 MATLAB 数据创建总线对象

可以使用 Simulink.Bus.cellToObject 函数,基于 MATLAB 中的总线元胞数组信息创建总线对象。每个元胞子元胞数组代表一个总线对象,并包括反映 Simulink.Bus 对象属性的以下数据:

{BusName,HeaderFile,Description,DataScope,Alignment,Elements}

Elements 字段是为每个 Simulink.BusElement 对象定义以下属性的元胞数组:

{ElementName,Dimensions,DataType,SampleTime,Complexity,DimensionsMode,Min,Max,Units,Description}

其中FirmamentPilot开源MBD飞控工程便是采用基于MATLAB数据创建总线对象,如控制器输出PWM的bus代码如下:

function cellInfo = control_bus(varargin)
% CONTROL_BUS returns a cell array containing bus object information
%
% Optional Input: 'false' will suppress a call to Simulink.Bus.cellToObject
%                 when the MATLAB file is executed.
% The order of bus element attributes is as follows:
%   ElementName, Dimensions, DataType, SampleTime, Complexity, SamplingMode, DimensionsMode, Min, Max, DocUnits, DescriptionsuppressObject = false;
if nargin == 1 && islogical(varargin{1}) && varargin{1} == false suppressObject = true;
elseif nargin > 1 error('Invalid input argument(s) encountered');
endcellInfo = { ... { ... 'Control_Out_Bus', ... '', ... '', ... 'Auto', ... '-1', {...
{'timestamp', 1, 'uint32', -1, 'real', 'Sample', 'Fixed', [], [], sprintf('ms'), ''}; ...
{'actuator_cmd', 16, 'uint16', -1, 'real', 'Sample', 'Fixed', [], [], '', ''}; ...} ...} ...
}';if ~suppressObject % Create bus objects in the MATLAB base workspace Simulink.Bus.cellToObject(cellInfo)
end

项目源码地址:https://github.com/FirmamentPilot

使用.m文件进行分模块管理总线,在自动代码生成时方便生成各总线对应的头文件,但需进行总线m文件和启动加载m文件的编写,下篇推文介绍使用bus editor与data dictionary进行总线的创建管理。

simulink bus总线创建方法相关推荐

  1. matlab总线,MATLAB SIMULINK 创造总线 Bus Creator

    MATLAB SIMULINK Bus Creator 创造总线 创建信号总线 库 信号路由 描述 创造总线块结合成一组信号.创造总线块设置参数数目的输入会显示你指定的端口数并将信号组中的数量,捆绑成 ...

  2. matlab中selector用法,MATLAB SIMULINK Bus Selector 总线选择

    MATLAB SIMULINK Bus Selector 从传入的总线选择信号 库 信号路由 描述 总线选择模块,在其输入输出的总线元素中选定子集.块可以作为单独的信号,或作为一种新的总线输出的指定的 ...

  3. vue学习【非父子组件传值问题(Bus/总线/观察者模式)】

    如果两个组件是父子关系,就可以通过props的方式传值. 父组件通过props向子组件传值,子组件通过事件触发向父组件传值 那么如果两个组件之间不具备父子关系,该如何传值呢?任何一个网页都可以拆分成几 ...

  4. 【Pandas库】(3) DataFrame的创建方法及基本操作

    各位同学好,今天给大家介绍一下Pandas库中DataFrame类型数据的创建方法和基本操作. 文章内容如下: (1)使用字典类创建. 字典类有:①数组.列表.元组构成的字典:②Series构造的字典 ...

  5. 【Pandas库】(1) Series的创建方法

    各位同学大家好,今天和大家分享一下Pandas库中Series的创建方法. 文章主要介绍了使用 列表.数组.字典 三种方法创建Series. 介绍了 如何查看Series索引和值.如何让使用字典生成的 ...

  6. OpenCV【零】—————cv::Mat——Mat对象创建方法

    OpenCV (一)--Mat对象创建方法 目录 OpenCV (一)--Mat对象创建方法 1. cv::Mat优点及原理(本质类) 2. Mat类拷贝及对象的创建方法 3. Mat 对象元素的高效 ...

  7. linux oracle 用户创建,LINUX下Oracle数据库用户创建方法详解

    本文实例分析了LINUX下Oracle数据库用户创建方法.分享给大家供大家参考,具体如下: 1)登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切 ...

  8. solidworks模板_SolidWorks文件属性分类和创建方法,图纸自动属性的基础

    1.文件属性 文件属性描述了基于Windows系统的文件的一些可用于识别该文件的细节信息.我们可以通过文件属性来搜索和组织文件.SolidWorks的文件添加有其独有的文件属性,这些属性可更好地用于工 ...

  9. java中executorservice_java中ExecutorService创建方法总结

    在对线程进行控制时,Executor虽然能够对其进行管理,但是缺少终止的功能,所以我们要用到Executor的进阶方法ExecutorServic来处理.ExecutorServic也是一种接口,相比 ...

最新文章

  1. python命令行大全-用什么库写 Python 命令行程序(示例代码详解)
  2. 数据恢复专业基础之python解释NTFS runlist的代码
  3. python百分号和斜杠_Python中正反斜杠(‘/’和‘\’)的意义与用法
  4. SSH远程终端连接数问题
  5. python 递归的最大层数_练习题-Python的最大递归层数
  6. tornado异步请求响应速度的实例测试
  7. 个人练习-jq 鼠标移上移出查看图片(放大)提示
  8. mysql数据库密码有效期_Mysql5.7.19密码已过有效期的处理过程(密码过期password_expired)...
  9. 过滤掉Abp框架不需要记录的日志
  10. Redis集群:主从节点添加和删除
  11. NYOJ234吃土豆
  12. 业务需求与解决方案管理机制
  13. Python二级--奖学金评选2
  14. QQmm无处藏 2.1
  15. java Date.getDay()
  16. 编程题目:使用C++语言模拟完成一个简单的计算机系统
  17. Rabbit的工作原理
  18. 星辰变服务器响应超时,星辰变游戏出现突然安装不了怎么办 解决方案一览
  19. 看雪2020CTF 守株待兔
  20. 计算机教室英语怎么读音,电脑教室,computer teaching room,音标,读音,翻译,英文例句,英语词典...

热门文章

  1. 集线器、路由器、交换机对帧转发操作
  2. 全网热搜·走近棒球运动
  3. 工信部对多家涉及网络数据和用户个人信息安全突出情况的企业开展问询调查...
  4. 用Python打开视频文件
  5. 基于matlab的瑞利信道模拟和仿真
  6. 软件测试之---车载简历编写
  7. greensock下载_使用GreenSock绘制Alligator.io SVG徽标
  8. 常用的CSS命名规范大总结
  9. vsto clickonce 发布setup.exe失败
  10. 鲁大师2015官方版 v5.8.14.1085 电脑版​