excite与matlab联合仿真,只有你想不到,没有EXCITE做不到的瞬态工况模拟

一、前言

瞬态过程的分析评估一直是多体动力学模拟仿真的难点。一方面它需要仿真工具可以支持进行时域计算;另一方面,还需要对过程中的仿真参数进行精确的控制,即通过控制策略的详细定义实现所期望的瞬态工况过程的精确模拟。而AVL EXCITE Power Unit以及TimingDrive软件均可完成时域下的多体动力学仿真,充分满足了第一个要求。而在提及控制策略、自由编译等功能时,Matlab则独居鳌头。基于此背景,《EXCITE与Matlab联合仿真特辑》将以系列的形式不定期更新一些用户较为感兴趣的瞬态工况案例,作为首次尝试,您的意见对我们尤为重要,您可以在下方进行留言,或是邮件的形式将您的宝贵意见或关心的瞬态过程反馈给我们。

二、EXCITE与Matlab 关系说明

EPU作为一款时域多体动力学分析软件,可以应用于任意运动过程的模拟。这些运动过程从宏观角度来说是一个系统驱动力与负载的动态平衡过程,这其中包含了驱动力、控制目标以及负载三个要素。以动力总成系统为例,驱动力即为发动机缸压激励;控制目标为系统转速或输出扭矩;负载则源于台架测试工况或根据仿真需求定义的真实载荷。对于稳态过程而言,它是发动机在给定负荷率的缸压激励与负载扭矩的动态平衡下转速维持稳定的过程,所以无论是发动机缸压还是负载扭矩,都可以通过预定义的方式直接给定,单独采用EPU进行仿真即可。而瞬态过程则需要发动机缸压根据负载或目标转速的变化需求进行实时调整从而实现加减速,下图以转速为控制目标进一步说明其实现过程:

5619bd64684e8de97fb89b167dd77020.png

我们假设发动机目标转速为A,发动机实时转速为a,负载扭矩为B,发动机输出扭矩为b,油门开度即发动机负荷率为C。那么整个过程即可简化为不断调整负荷率C来控制输出扭矩b从而减小目标转速A与发动机实时转速a差异的过程。从以上控制逻辑框图中可以看到PID控制器的被控对象为负荷率ls,该PID的具体控制参数见下式:

c5a5618aad20bc7a5aedef5beec3ac85.png

PID通过接受到的的目标转速A与实际转速a的差值信号来不断调整负荷率C,负荷率C的变化会改变施加到发动机中的缸压大小,从而使得发动机输出扭矩b增大或降低,如果此时的输出扭矩b大于负载扭矩B,那么发动机转速将会升高,反之亦然。最终通过对负荷率C的自动调节来实现对发动机转速的控制。在这一过程中的缸压无法再通过预定义的方式给定,就需要Matlab模型的介入进行控制。

在EXCITE软件当中,除了常规有限元软件(如Abaqus、Ansys、Nastran以及Optistruct等)的接口以外,也有完善的Matlab接口集成在软件中。

下图具体描述了EXCITE与Matlab中的数据关系。左边框图中为EPU模型,右边大框图为Matlab模型,中间为数据交互接口。从图中可以看到,我们可以提前在Matlab中设置好目标发动机或动力总成的载荷Map。在计算过程中,EPU输出每个迭代步下的曲轴转角及转速给Matlab,Matlab在获得了这些信号之后,通过瞬态过程的逻辑控制及预定义好的Map将相对应的载荷传递给EPU直至计算完成。

838bc0cedbc05d18839c00486b89bd5f.png

总结起来它们之间的关系就是:

Ø Matlab读取EPU中仿真得到的发动机转速与转角数据并基于给定的转速或扭矩目标为EXCITE提供下一步的缸压激励以及对应的输出端负载;

Ø EXCITE在Matlab提供的载荷下进一步计算结构体的运动,得到发动机当前时刻的真实转速并传递给Matlab,如此迭代循环

三、瞬态工况案例

本次案例我们将对发动机工作时的失火过程进行模拟。场景假设为一台四缸直列发动机在工作过程中出现失火,失火气缸为第三缸,失火时长为两个循环。EPU模型为软件自带的例子模型I4_demo,Matlab模型采用其中的Simulink模块对缸压载荷、输出端负载以及失火的逻辑控制进行了编写,控制目标是发动机转速稳定。

以下为相应模型:

ef8cc694261359d1af519d16a5609854.png

要实现EXCITE与Matlab的在线联合仿真,在EXCITE模型当中,首先需在link to Matlab单元中指定联合仿真的Simulink模型,同时定义需要与Simulink模型进行数据交互的连接点,如连杆小头节点(施加缸压载荷)和曲轴飞轮节点(施加负载扭矩并传递曲轴转速及角位移)。需要注意的是支持的Simulink模型格式为mdl。见下图:

9495c5d6fc7815d607c8ef8056871ff3.png

而在Simulink模型当中,首先需要定义与EXCITE进行交互的模块,该模块已提前编译并打包到了EXCITE软件安装包中,可在以下路径找到并调用…AVL\R2020.1\EXCITE\matlab\v2014b\Excite.mdl。通过该模块一方面可将EXCITE计算出的节点位移及速度信号传递到后续的控制逻辑当中;另一方面可以把Simulink中定义好的载荷施加到EXCITE模型中的节点上。以该模型为例,传递的角位移和转速可用于后续基于载荷Map查找当前载荷步的缸压。这就需要我们事先在相应的模块当中提前导入与转速、转角以及负荷率相关的缸压数据,如下图。

9387ae00a64c84e56e53ce6485e119dc.png

设置好后,只需在EPU中提交计算即可自动与相应的Simulink模型关联。

计算结果:

2bf895d98f4f43a234defb2c8d41f272.png

上图为预设的仿真边界,可以看到第三缸的连杆激励按预设的连续两次点火失败,这两个循环的缸压为压气压力。而右图为加载到发动机上的负载扭矩,整个工作过程为定值。

5c5ed1d60b6997e302676434cc20b603.png

在上图仿真结果中可以看到,在第三缸失火后(蓝线),其他三缸的缸压依次提高,这与在Simulink中设置的控制逻辑相关。由于其中一缸失火,在负载扭矩不变的情况下,势必会导致输出扭矩降低进而引起发动机转速下降,为了维持发动机转速,在Simulink模型当中加入了针对转速的PID控制,在第三缸失火时提高了其他缸的缸压确保发动机转速稳定。

由上文可知,采用EXCITE和Matlab联合仿真的方式,可以方便地进行发动机失火瞬态过程的模拟,并且实现了失火时稳定发动机转速的目标。

EXCITE与Matlab作为各自领域的翘楚,强强联合充分发挥EXCITE时域分析的强大功能和Matlab在仿真控制上的自由度。基于此,可以说对发动机任意瞬态过程都能进行相应的仿真分析,为研究瞬态过程可能产生的可靠性、振动噪声等问题提供了模拟方案。

以上就是本次技术贴的全部内容,若有任何疑问,欢迎发邮件至我们的技术支持公共邮箱mechanical_support_china@avl.com咨询。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值