车辆控制系统开发软件闭环模拟方法
另一种系统配置是采用笔记本电脑。PC 计算机固有的外设有串口、并口、USB 和网络接口,串口由于通信速度慢,显然不适于作采集数据。网络接口由于与单片机的接口比较复杂,也不太适于作系统的数据交换与通信。USB和并口通信速度比较高,并且与单片机的接口也比较简单,这样可以外挂两个独立的外设。一般在我们的系统中一个作为单片机的仿真器用,一个作为采集卡构成实时模拟系统,这样采用笔记本就增加了移动性,方便灵活。图2 为这一系统的框图。
图2 笔记本PC 构成的开发系统框图
1)纯模拟系统:采用MATLAB 建模,进行控制系统的模拟。
2)集成单片机开发系统:采用PC104 总线结构,控制算法直接生成C 代码,并直接下载到单片机仿真器中运行,这样可以实时修改控制算法,即可以在试验室条件下进行,也可以在实车上进行调试。
3)集成测试系统:利用PC104 采集卡可以对车辆非控制器参数进行采集,如压力、速度等,用这些数据可以有效地对控制效果进行评估。
4)集成实时硬件模拟系统:利用采集卡可以发出各种模拟的传感器信号,如模拟量通过D/A 发出,脉冲信号通过PWM 信号发出。
5)集成的车载系统:采用专用的计算机抗振机箱,整套系统可以直接放到车辆上进行ECU 的调试,调试过程中可以采集各种物理量,同时此系统可以进行各个阶段的模拟。这种系统将软件及硬件一体化,同时应用于车辆控制系统各个开发阶段,最有效地提高了设备的利用率,避免了开发环境的切换,从而可以缩短开发时间。图3 为这一系统的外形图。这一系统首先硬件实现了从模拟到系统的集成化,硬件是同一设备完成各个阶段的开发,下面要介绍的软件也是一体化的。
图3 开发系统外形图
系统软件采用MATLAB 系统建立控制对象模型,即车辆模型。混合控制器的模型就可以形成纯模拟系统,但这种纯模拟系统可以采用统一的MATLAB 环境控制器模型,也采用SIMULINK 可视化模型,这是最初的模型。如果要使用MATLAB 中的工具箱,这类模型有一定的限制,如不能采用连续性模块,采用嵌入式代码生成器工具箱,可以将控制器子系统生成C 代码,也可以采用专用的单片机代码生成器生成C 代码,如目前MATLAB 中已有Motorola MPC555、TI TMS320C6000、Infineon C167 系统单片机专用工具箱控制C 代码的生成并可以控制C 代码的编译、连接,最后生成可执行代码。生成可执行代码后,可以将系统直接下载到目标单片机上,这时就可以用目标单片机直接对应用对象即实际车辆进行控制了。但单片机代码不能直接对模拟模型进行控制了,这样就造成了开发过程的脱节。因为由SIMULINK生成代码的过程,有可能改变了系统算法的特性。不同厂商的编译器也会存在一些问题,所以直接用生成的单片机代码对模拟对象进行控制是最便利的,当然这时可以利用实时硬件闭环系统进行模拟与验证。但由于控制器硬件的过早介入要花费很大的精力去调整信号,而往往硬件连接会带来很多麻烦,如信号连接等。再者在算法调整阶段并不需要硬件的介入,在这种情况下,就需要有一种连接单片机与计算机之间的数据交换界面,从而形成一种快速实时交换数据方式,使车辆模型系统与控制系统能够实现快速通信,从而实现软件实时模拟,基于此在本系统中采用两种数据交换方式。
(1) CAN 通信方式
(2) 双口RAM 通信方式
其结构方式见图4。
图4 数据交换方式
采用CAN 总线通信比较方便,这是因为目前许多单片机已内置了CAN 控制器,一般CAN 控制器具有15 个信息体,新出现的单片机则可以带更多的CAN 控制器,每个信息体有8 个字节,这样就可以有120个字节用于实时数据交换,同时CAN 的最高通信速度为1MHz 波特率,足以满足实时模拟的要求。在PC计算机方面一般没有CAN 接口,但CAN 的接口卡是比较多的。本系统采用自制的CAN 采集卡,该采集卡可以采用USB接口转换,也有并口、ISA、PCI 几种接口,只用两根CAN 通信线就可以将单片机与PC计算机进行通信连接。当然串口与单片机的连接也很方便,除非是一些低速简单的控制系统,但串口通信一是速度慢,二是它的数据传递不像CAN 是数据包的形式,所以容易产生错误。
CAN 通信只能传送字节型数据,对不同的数据类型要进行变换,例如要传送浮点数据,先把它变换为字节型变量,接收后要进行解码,把它还原为浮点数据类型。系统的原理见图5。
图5 CAN 数据交换原理
评论