概述

学习一门语言或者一门技术,最烦的就是长篇大论的理论和脱离实际的练习,我想正在阅读这篇文章的你一定深有体会,既然认识到了这样的痛点,我们接下来就换一种方式来学,通过实际工程中能运用到模型来逐步入门simulink建模。
下面就以电动车整车控制器(VCU)的部分控制模型来做相关介绍。
模型顶层主要三部分构成,输入信号(计算用实时参数及错误状态标志位),主控模块(核心控制算法)以及输出信号(对执行器的控制参数)。

这部分我们主要学习输入输出模块,信号线处理和子系统。
输入输出模块
在模块库(Simulink Library Browser)里的常用模块(Commonly Used Blocks)或者接口子系统模块(Ports&Subsystems)中可以找到输入输出模块。

把模块拖到工作区后双击可打开模块参数设置对话框:
port number:In模块的编号,根据拖入工作区的顺序编号;
icon display:模块在工作区显示的内容;
interpolate data:当将workspace的数据导入模型时,对没有对应数据点的采样时刻进行线性插值;

Bus Creator模块
各种信号输入模块用一条“粗黑线” 汇总到一起,这个“粗黑线”就是常用的Bus Creator模块

在学习Bus Creator模块前我们先区分下Bus信号的虚拟信:
1)虚拟Bus信号
虚拟信号使用自身的存储空间,连接虚拟Bus信号的模块在仿真时会到Bus输入信号的存储空间读取信号的值,输出时找到虚拟Bus信号的存储空间再写值进去,这些存储空间并不一定连续。
2)非虚拟Bus信号
非虚拟Bus信号在模型代码生成时将Bus信号生成结构体。数据访问时,连接非虚拟Bus信号的模块在读取和写入值时并非直接访问Bus信号的存储空间,而是将非虚拟Bus信号的内容拷贝到一个连续的存储空间再进行读写,所以速度比虚拟Bus信号要慢一些,并且数据拷贝占用的存储空间也比虚拟Bus信号多。非虚拟Bus信号中的每一个成员信号都必须具有相同的采样时间。

属性窗口:
Number of inputs: 表示输入信号的个数;
Signal in the bus: 显示输出的总线信号已经存在的成员信号,可以增加/删除/移动信号;
Output data type: 规定输出信号的数据类型。输出虚拟总线信号,选择Inherit:auto或Bus:
<object name>; 输出非虚拟总线信号,选择Bus:<object name>的同时还要勾选Output as nonvirtual bus;
Output as nonvirtual bus: 当Output data type选择为Bus:<object name>,出现勾选框,勾选时表示输出信号是非虚拟信号,在C代码生成时将输出总线信号定义为结构体。
顶层模型说完我们进入主控模块,看一看子层模型又是怎样的风景:

图中六个灰色方框就是子系统(Subsystem),其功能类似于编程语言中的子函数。
下面我们先介绍下子系统的创建和封装,再依照整车控制模型的子系统层层剥开它的使用方法。
创建Subsystem子系统
建立子系统有两种方法:在模型中新建子系统或者在已有的模块上生成。
前者是在模块库中找到Subsystem模块,再在其中添加模型。

后者是框选已有的模型,单机鼠标右键创建子系统。

封装Subsystem子系统
在封装对话框中的设置参数,主要有Icon,Parameter,Initialization和Documentation四个选项卡。
1)Icon选项卡

Icon选项卡用于设定封装模块的名字和外观。Drawing Commands输入栏用于建立用户化的图标,可以输入相关命令显示文本、图像、图形或者传递函数等。图中举例,是绘制了一个简单正弦函数作为外观显示。
2)Parameters & Dialog选项卡

Parameters & Dialog选项卡用于输入变量名称和相应提示。
Prompt:输入变量的提示,其内容会显示在输入提示中;
Variable:输入变量的名称;
Type:给用户提供设计编辑区的选择。Edit提供一个编辑框;Checkbox提供一个复选框;Popup提供一个弹出式菜单;
3)Initialization选项卡

Initialization选项卡用于初始化封装子系统,即用户参数的初始化设置。
4)Documentation选项卡

Documentation选项卡用于编写封装系统对应的Help说明及文字说明。
最后
以上就是苹果丝袜为你收集整理的电气simulink常用模块_从整车控制器VCU模型入门simulink(1)的全部内容,希望文章能够帮你解决电气simulink常用模块_从整车控制器VCU模型入门simulink(1)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复