MATLAB环境下的分布式硬件在环仿真技术研究
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘 要:采用主机-客户机多机并行运行技术途径,对 MATLAB 软件环境中的硬件在环仿真技术
进行了研究,解决了要求运算精度高、运算量大的复杂系统在实时仿真时面临的困难,并以某型履
带车辆电传动系统为研究对象,开发了集电传动控制系统硬件、车辆及路面环境仿真模型、虚拟
视景为一体的分布式硬件在环仿真平台。仿真平台验证了研究成果的有效性,对复杂系统硬件在
1.2 程序转换
在前面已经提到过,MATLAB 环境编程效率很高,但 程序运行效率比较低,这不适合硬件在环的实时仿真系统, 因此需要对建立的仿真模型进行转换和优化。模型的转换可 以借助 MATLAB 环境中提供的 REAL-TIME WORKSHOP 工具,利用该工具可以将建立好的仿真模型转换成可以独立 实时运行的 C 语言可执行程序。在变换的过程中,需要一套 变换规则,也就是变换用的模板程序,用户可以根据 MATLAB 提供的模板设计自己的模板程序,使得变换后的 可执行程序简洁、具有更好的实时运行能力。当仿真模型转 换成可独立执行的 C 语言程序后,下一步的工作就是为运行 该 C 语言程序的计算机,也就是本文所说的客户机制作系统 软件,也就是实时内核的制作。
在 MATLAB 环境中实现分布式硬件在环仿真主要需要 解决三个问题,最重要的就是 S 函数的编程问题,因为 MATLAB 软件本身所包含的硬件驱动程序较少,在仿真中 要加入用户设计的硬件系统就需要用户编写硬件系统和 C 语言运行程序之间的通信程序,而这个任务是通过编写 S 函 数完成的。其二是模型的转换,使用不同的转换模板程序, 就会得到不同的 C 语言程序,如果用户可以编写一个好的 转换模板程序,则转换后的 C 语言程序就会更简练,实时 运行能力就越强。其三是实时内核的制作,这个过程需要解 决主机和客户机之间的通信问题,如果可以实现多台客户机 和主机同时通信,就将大大提高实时运算能力。当然,在第 二和第三个过程中,MATLAB 环境中已经具有默认的资源 可用,用户只需在转换过程中或制作过程中做一些设置和选 择就可以实现。
第 22 卷第 8 期 2010 年 8 月
系 统 仿 真 学 报© Journal of System Simulation
Vol. 22 No. 8 Aug., 2010
MATLAB环境下的分布式硬件在环仿真技术研究
颜南明,张豫南,刘春光,王 冬
(装甲兵工程学院控制系控制工程系电气室,北京 100072)
引 言1
硬件在环仿真(HIL,Hardware-in-loop),又称半实物 仿真,是将需要仿真的部分系统硬件直接放到仿真回路中的 仿真系统,它不仅弥补了纯数字仿真中的许多缺陷,提高了
辆及路面环境仿真模型、虚拟视景为一体的分布式硬件在环 仿真平台。并利用仿真平台对电传动系统的性能进行了仿 真,仿真结果验证了本文研究成果的有效性。
1.3 实时内核
实时内核是些小程序,在计算机中起到操作系统的功 能,该程序容量小,占用计算机资源少,可以代替操作系统 来管理前面 C 语言可执行程序的运行,为其提供一个更干净 的运行环境。这些小程序除了控制 C 语言可执行程序的运行 外,对该程序与其他计算机应用程序之间的通信也做了规 定,比如通信方式,通信协议,通信速度等。
• 1867 •
第 22 卷第 8 期 2010 年 8 月
环系统。整个仿真系统的实体如图 3 所示:
客户机 (实时运行程序)
产品开发周期。
算过程和计算结果实时提供给用户,用户也可以通过主机对
MATLAB 软件环境以其强大的运算能力和丰富的专业 模块库已经成为目前各大高校和研究单位有力的设计、开发 和研究工具。该软件可进行可视化建模,编程效率高,能对
各个客户机的运行过程进行观察和控制。整个技术途径的实 现如图 1 所示。图中描述了该种技术途径下主机和客户机之间 的工作过程,实现这个过程需要完成以下几个步骤的工作:
航天、冶金、医药和控制领域等各种连续系统、离散系统的 动态、静态过程进行仿真分析,该软件功能强大,应用领域 广,不足之处在于程序运行效率低,尤其在进行硬件在环仿 真时需借助第三方产品如德国的 DSPASE 仿真产品,这样 导致在 MATLAB 环境下进行硬件在环仿真研究成本非常 高。在这种背景下,本文采用主机-客户机多机并行运行技 术,结合 MATLAB 软件本身的优势和特点,对该环境中的 硬件在环仿真技术进行了研究,并以我国某型履带车辆电传 动系统为研究对象,开发了一个集电传动控制系统硬件、车
2 技术应用
利用前面提出的技术途径,本文结合科研项目要求设计 了一套用于履带装甲车辆电传动技术研究方面的硬件在环 仿真系统。系统结构如图 2 所示。系统由五个主要部分组成。 ①驾驶员信号输入部分;②电传动控制系统部分;③主机部 分;④客户机部分;⑤视景显示部分。其中“驾驶员信号输 入部分”部分将驾驶员给定的加速、转向和制动等信号转换 成相应的电信号;“电传动控制系统”对驾驶员的输入信号进 行识别、计算和分流,主要完成电传动牵引用电机、发动机 -发电机系统以及整车的控制策略和控制方法计算;“客户机 部分”运行从发动机、发电机、整流器、逆变器到牵引电机 的仿真模型(这些程序就是利用主机中的 MATLAB 环境转 化而成的可独立运行的 C 语言程序),并和控制系统部分进 行数据动态交互。客户机部分通过 MATLAB 软件环境利用 TCP/IP 协议和客户机中运行的 C 语言程序进行实时数据交 互,并采用虚拟视景建模语言(VRML)建立装甲车辆及运 行环境的三维模型以实时展现客户机中 C 语言程序的运行 情况。“视景显示”部分显示从主机传过来的仿真结果(以虚 拟视景的方式),为驾驶员提供一个虚拟的样车运动环境, 如车辆在虚拟环境中的运行状况和姿态等,和驾驶员形成闭
收稿日期: 2008-10-21
修回日期: 2009-01-04
基金项目:全电装甲平台技术
作者简介: 颜南明(1975-), 男,湖南邵阳市,讲师,研究方向为武器系
统与运用工程;张豫南(1961-),男,北京,教授,博导,研究方向为武
器系统与运用。
1.1 仿真模型的建立
在 MATLAB 环境中实现分布式硬件在环仿真需要解 决的首要问题就是仿真模型的建立。这里的仿真模型在功能 上和普通的 Simulink 仿真模型不同,它除了需要完成模型 本身的运算任务外,还必须具备和硬件、其他仿真程序的接 口程序。对于模型本身的运算任务部分,可以在任何一台装 有 MATLAB 软件的电脑中通过 MATLAB 语言或者 Simulink 模块完成,而接口程序需要使用 S 函数和 MATLAB 中特定 的专业模块(如 xPC 或者 VR 工具箱模块)来完成。S 函数 是 MATLAB 提供给用户的一个功能扩展函数,就像高级语 言 VC、VB 中的虚拟函数一样,利用该函数可进行硬件驱 动程序和软件接口程序编程。该函数具有固定的格式,使用 者只要根据自己的需要按照 S 函数的格式编程就可以实现
YAN Nan-ming, ZHANG Yu-nan, LIU Chun-guang, WANG Dong
(Control Engineering Department of Academe of Armored Force Engineering, Beijing 100072, China)
Abstract: Using parallel operation technology based on host-client machines, distributed hardware-in-loop simulation technology in MATLAB was researched. It resolved the difficulties in real-time simulation of complex system because of its heavy calculation and high precision requirement. With the achievement received, a distributed hardware-in-loop simulation flat of electric drive system for armored tracklayer, which consists of control hardware, simulation models and Virtual Reality output was developed. This simulation flat tested its validity and proved that what acquired provided a scientific and effective measure to research hardware-in-loop simulation technology of complex system. Key words: MATLAB; hardware-in-loop; armored tracklayer; simulation
环仿真研究提供了一种简洁、科学的手段。
关键词:MATLAB;硬件在环;履带装甲车辆;仿真
中图分类号:TP391.9
文献标识码:A
文章编号:1004-731X (2010) 08-1866-04
Research on Distributed Hardware-in-loop Simulation Technology in MATLAB
生成的实时运行程序 下载
通信 参数调节,监视
图 1 主机-客户机并行计算途径
图 1 表示的是用两台电脑(一台作为主机,一台作为客 户机)实现主机-客户机并行运算功能的计算环境。主机中 装有 MATLAB 软件及工具箱,用 MATLAB 建立好的仿真 程序在该软件环境中转换成可独立执行的 C 语言运行程序, 然后通过客户机中实时内核规定的信息传输方式下载到客 户 机 中 , 下 载 行 为 通 过 MATLAB 中 的 REAL-TIME
ห้องสมุดไป่ตู้
• 1866 •
第 22 卷第 8 期 2010 年 8 月
颜南明,等:MATLAB 环境下的分布式硬件在环仿真技术研究
Vol. 22 No. 8 Aug., 2010
各种数据通信的功能(如 I/O、串行通信、并行通信、CAN 通信等),达到分布式硬件在环仿真的目的,S 函数的具体 编写方法可参阅文献[5]。当这种适合于 MATLAB 环境中硬 件在环仿真的模型建立后,还必须将程序进行转换。
有了这几步的准备,实现 MATLAB 环境下的分布式硬 件在环仿真就简单了。下面参照图 1 对这种仿真技术做一个 简单的总结。
控制系统
I/O 硬件
A/D D/A DIO 计数器 CAN RS232 GPIB
主机 PC MATLAB Simulink RTW XPC 目标
客户 PC 实时内核
PC 硬件 PCI/ISA 总线
1 技术途径
整个模型的置信度,而且可以大大减轻编程的工作量。这种
本文采用的主机-客户机并行运行技术途径,指的是在
仿真的另一个优势在于它实现了仿真模型和实际系统间的 进行仿真运行计算时采用多台计算机分别对运算程序的不
数据实时交互,仿真结果的验证过程非常直观,大大缩小了 同部分同时进行运算,计算机之间的信息实时交互,整个计
WORKSHOP 工具箱来完成。由于仿真程序在建立的时候就 具备了和主机以及其他的硬件(如 I/O 卡,A/D 卡、D/A 卡、 串行模块以及 CAN 卡等)通信的接口程序,因此转换后的 C 语言运行程序在客户机中实时运行并与主机和硬件进行 实时的数据交换,由于客户机中只有实时内核和 C 语言程 序参与运行,没有别的操作系统如 Windows 和应用程序等, 因此具有很强的实时运行能力。而客户机和主机之间的信息 实时交互可以使仿真系统的部分模型或仿真结果可在主机 中做后续处理(如虚拟视景显示等),实现分布式计算。主 机中还可以建立良好的用户界面供用户对仿真过程进行观 察和控制。