APP下载

基于Simulink/Stateflow的汽车转向灯控制系统的研究

2019-12-12倪朋朋顾海全王文斌郑丽丽

汽车零部件 2019年11期
关键词:转向灯高电平载波

倪朋朋,顾海全,王文斌,郑丽丽

(常州星宇车灯股份有限公司,江苏常州 213000)

0 引言

车灯是汽车必不可少的零部件,除了夜间照明外,更重要的是对其他行驶车辆和行人具有警示和提醒的作用,汽车转向灯作为指示汽车运行状态的信号灯关乎汽车运行安全,国际和国内都制定了一些重要法规来保障动态转向灯的安全可靠。

主机厂和灯具生产企业为了保障灯具安全可靠,除了遵守相关法规外,还会制定一些项目开发流程来对项目进行规范和节点把控。灯具控制器作为灯具的核心部件,其硬件和软件一直是设计过程中的重点。软件的运行依赖于硬件平台,按照传统的开发方式,需要等硬件完成后才能调试软件,如果此时发现大的逻辑缺陷,不仅软件硬件需要修改,可能整个设计方案都需要更改,影响项目开发效率和项目节点。目前主机厂和一些零部件供应商对ECU单元的开发多采用基于模型的设计,使用MATLAB等工具箱进行前期模型的设计及仿真,可以验证方案的可行性,并对模型进行测试。最后将可靠的模型生成不同的目标代码下载到ECU单元,可缩短项目开发时间,提高开发效率。

1 动态转向灯控制系统的组成

1.1 硬件组成

动态转向灯控制系统主要由车身端BCM、控制芯片MCU、LED驱动电路组成。BCM一个通道输出13.5 V常电,一个通道输出频率为1.25 Hz;PWM的占空比为50%;13.5 V常电经LDO转换成5 V给MCU供电,PWM给LED驱动供电。同时MCU检测PWM信号的上升沿来保证动态转向灯的同步性,系统原理如图1所示。

1.2 软件处理逻辑

动态转向灯控制器会对LED驱动芯片错误反馈引脚进行实时监控,一旦出现错误信息,LED驱动芯片Fault引脚输出高电平,MCU检测到高电平信号时,首先关闭动态转向灯,然后向MCU内部的EEPROM写入错误代码。

系统重新上电时若检测到Fault反馈端仍然为高电平,那么动态转向灯继续关闭;若检测到Fault反馈端为低电平,则说明上次的故障检测属于错误的检测,那么MCU将擦除上次存储的故障代码,重新开启动态转向灯。逻辑功能流程如图2所示。

图1 系统硬件框图

图2 逻辑功能流程

2 Simulink/Stateflow建模与仿真

根据动态转向灯的控制系统硬件框图,分别对BCM、LED驱动及MCU建模,其中MCU的模型主要包括信号滤波及信号处理功能。

2.1 BCM模型建立

通过对主机厂BCM输出波形实测,发现BCM在电压低于13.1 V时输出频率为1.25 Hz、占空比50%的方波;当电压高于13.1 V时,BCM进行过压保护,输出的方波在高电平周期会带有100 Hz的载波,且载波随着电压的升高,频率不变、占空比减小。为了实现这种波形,选用锯齿波模块,该信号在周期内线性增大,每个周期都复位归零。由于BCM输出的方波为1.25 Hz,所以在锯齿波的设置中,将幅值范围设置为[0,2],周期为[0,0.8]。生成变占空比PWM信号,还需要正弦波模块,与锯齿波进行幅值比较,将正弦波幅值设为[0,1],经布尔逻辑运算输出波形,搭建好的模型结构如图3所示。

图3 BCM模型

为了能准确反映BCM工作机制,同时也是生成代码的需要,将仿真的步长设置为固定步长,步长越小仿真越精确不失真,所以将步长设置为1 ms。为了模拟出BCM在13.1 V以上带载波的情况,需要将正弦波的频率参数设置为2×π×100,即正弦波的频率为100 Hz,BCM模型输出波形如图4所示。上面为锯齿波,中间为频率100 Hz的正弦波,下面为频率1.25 Hz、占空比50%的方波,同时在高电平周期带有100 Hz载波。

图4 BCM模型输出的波形

2.2 MCU模型建立

MCU作为主控芯片主要功能是对信号检测滤波,根据信号进行逻辑判断,输出高电平驱动LED电路工作,因此对MCU的建模主要针对这些功能进行。

(1)信号检测及滤波模型

MCU的管脚对PMW信号进行检测,在高电平周期控制动态转向灯流水点亮。为了保证所有灯具的同步性,需要对PWM上升沿检测,由于BCM输出电压高于13.1 V时,高电平带有100 Hz载波,因此如果不对载波进行滤波,动态转向灯将无法正常工作。通过分析载波特征,发现载波周期不变、占空比随电压升高而变大。因此可以在转向灯正常工作最高电压下测出载波低电平时间,设置一个阈值,即可将载波滤除,输出频率1.25 Hz、占空比50%的方波。采用Sateflow建模如图5所示。

图5 载波滤波模型

滤波效果如图6所示,下方为带载波PWM,上方为滤波后PWM。

图6 滤波效果

(2)上升沿检测模型

为了保证汽车左右灯具的同步性,对PWM进行上升沿检测,检测到上升沿信号后才执行动态转向功能,上升沿检测模型如图7所示。PWM信号输入,通过一个Delay模块将信号分为前一个状态u和后一状态u0,2个信号进入Chart进行逻辑判断输出上升沿信号PWM_edge。

图7 上升沿检测模型

图8为上升沿检测输出波形,上方为输入PWM信号,下方为输出的上升沿信号,具有很好的追随性,延迟时间为1 ms。

图8 上升沿检测信号输出

(3)信号逻辑处理模型

经过上述几个模块对信号的检测处理,可以获得高电平状态PWM_State及上升沿信号Up_Flag,对2个信号进行逻辑判断的模型如图9所示。模型有2个状态:OFF和ON状态。OFF状态是默认状态对LED进行关闭,ON状态是按照设置的时序将LED依次打开。

图9 动态转向灯开关状态切换

2.3 LED驱动模型

LED驱动模型工作流程如图10所示。

图10 模型工作流程

当MCU管脚输出高电平时,可以使LED驱动导通将LED点亮。为了能够显示模型工作状态,建立一个LED模型,当LED模型接收到高电平信号后,由白色变成黄色,表示LED点亮。采用S函数的方式创建LED模型,在仿真的各个阶段,Simulink引擎调用不同的方法,执行各项任务。在第一次执行循环之前,Simulink引擎会初始化S函数,然后进入仿真循环阶段,在每个循环内系统会按照初始化阶段决定的次序依次执行各模块,模型工作流程如图10所示。

根据模型工作流程图编写S函数的t_led.m文件,将t_led.m添加到S-Function模块中,再将模块封装成LED驱动模型,LED关闭时为白色,点亮时为灰色,如图11所示。

图11 LED驱动模型

3 仿真结果和分析

将上述创建的各单元模型,根据硬件系统框图,组成基于Simulink/Stateflow的动态转向灯控制系统模型,如图12所示。运行控制系统模型,BCM模块输出PWM信号,经过滤波模块和上升沿检测模块,将处理的信号传递给Turn_LED模块,控制LED周期性流水点亮。

图12 控制系统模型

通过示波器Scope采样每组LED的输入电流,如图13所示。共9组LED依次点亮,每组间隔20 ms,幅值可以表示电流大小,仿真结果符合预期。

将控制系统模型利用Simulink工具箱进行覆盖度检测、兼容性检测、软件在环测试、硬件在环测试后,将算法部分利用代码生成工具Code Generation生成C代码,并将代码嵌入手写应用程序中,编译通过后下载到硬件电路板,用示波器和电流钳实测时序电流图,纵坐标设置为电流值(mA),横坐标为时间(ms),如图14所示。

图13 仿真转向灯时序电流图

图14 实测动态转向灯时序电流图

4 结论

本文作者通过对汽车转向灯控制系统的研究,采用基于模型设计的方式,以MATLAB2016a为软件平台,基于Simulink/Stateflow对硬件系统进行建模。对模型进行仿真和测试,并将控制算法自动生成C代码,再将C代码嵌入到工程中下载到硬件电路板,实测波形与仿真波形一致。采用基于模型设计的方式,工程师前期可以脱离硬件平台研究需求,快速进行算法验证。同时进行自动代码生成和对代码进行测试,避免了传统手写代码开发项目,前期需要依赖硬件平台,开发周期长,一般需要重复多次才能成功的弊端。

猜你喜欢

转向灯高电平载波
大功率微波部件多载波无源互调分析与实验验证
2018款上汽通用别克GL8右侧转向灯异常
分布式转向灯同步策略的研究
2015 款宝骏730 车右侧转向灯均不点亮
高电平MMC子模块电容电压控制策略研究
低载波比下三电平NPC逆变器同步SVPWM算法
中国移动LTE FDD&TDD载波聚合部署建议
数字电子技术的应用
浅谈物理电路与数字电路
关于Multisim10.0的高电平调幅电路仿真研究