资源预览内容
第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
第9页 / 共15页
第10页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
MATALAB 混合仿真平台控制算法的概述MATALB 混合仿真平台,即为将硬件引入到仿真回路里的半实物仿真系统,可用于过程控制器的开发与测试。平台提供了三种控制器的嵌入方法,尤其能用Matlab 语言编写,大大提高了平台的灵活性。为了建立过程控制混合仿真试验系统,必须解决PC 机作为虚拟控制器设计环境的实现和在Windows 操作系统中实时控制的实现这两个问题。我们先详细阐述过程控制混合仿真试验系统的实现原理;最后介绍平台控制算法的嵌入方法,并通过实验仿真验证平台的有效性。 过程控制混合仿真平台实现原理:(1)数值计算,MATLAB 提供了大约600 多个数学和工程上常用的函数。这些函数的数值运算是针对矩阵操作优化过的,可以使用它来代替底层编程语言。在保持同样性能的情况下,编程工作量非常小,数值计算采用了LAPACK,BLAS,FFTW 等优秀数学函数库,使得计算效率得到进一步的提升。MATLAB 包含的主要数学函数有线性代数和矩阵运算、傅立叶变换和统计分析、微分方程求解、稀疏矩阵运算以及三角和其他初等数学运算等;除此之外,随着Matlab 的应用领域不断的扩大,补充了用于许多特定领域的函数。(2)算法开发,强大的计算能力,方便易用的编程语言和丰富的数学函数使MATLAB 最适于用于算法开发工作。典型的应用包括:数据分析,信号处理,图像处理,系统建模和高级算法研究等。不管用户是使用已有的算法,还是自行开发,MATLAB 提供了一个通用的平台。使用MATLAB 进行算法开发就像平时书写数学表达式一样。将用户在MATLAB 中开发的算法结合到外部运行的系统中。一旦用户的算法和仿真经过了编写和调试,MATLAB Compiler 和C/C+ Math Library 会将MATLAB 应用自动转换成可移植C 和C+代码的工具。对于信号处理,控制系统设计和其他一些应用,MATLAB 工具箱提供了一系列先进的技术。工具箱远远超出了提供一些基本算法的范畴:他们提供了一个学习,研究,创新前沿理论和技术的舞台。提供的算法工具箱有Neural Network Toolbox、Optimization Toolbox、System Identification Toolbox、Robust Control Toolbox、Model Predictive Control Toolbox、Control System Toolbox,Fuzzy logic Toolbox 等。(3)数据分析与可视化,通过 MATLAB,用户可以分析所有类别的数据包括信号,图像,多项式,时间历程,多变量数据和线性系统等。从分析中总结出来的结果可以作为将来进一步的算法和模型开发的基础。此外,用户可以快速地将代码片段和知识转换成可以重复使用的自动分析例程,不需要变量声明和维数定义,可很快编写出程序。MATLAB 提供了方便的数据访问工具。例如,Data Acquisition Toolbox 允许用户将实时的测量数据直接传送到MATLAB 进行分析,Database Toolbox 允许用户访问符合ODBC 和JDBC的数据库,而M 文件,C 和Fortran 程序中的处理文本和二进制文件的I/O 函数,则允许用户处理任何格式的数据。MATLAB 和相关的工具箱包含了科学计算中需要的专业图形功能。从2-D 原始数据的曲线图到带标记的等值线图和交互式的GUI,这些工具提供了模型可视化的能力,帮助用户理解复杂的系统。特别是MATLAB 提供了对3-D 标量和矢量可视化的能力,包括显示等值面和流图。这个能力使科学家和工程师们能够对大量、复杂和多维的数据进行可视化。Matlab 实时仿真环境,RTW 是MATLAB 提供的一个实时开发环境,是MathWork 系列软件的重要组成部分。RTW 与MATLAB 其他组成软件的无缝连接,既满足了设计者在系统概念与方案设计等方面的需求,也为系统的技术实现或完成不同功能的系统实时操作实验提供了方便,并且为并行工程的实现创造了一个良好的环境。它能直接从Simulink 的模型中产生优化的、可移植的和个性化的代码,并根据目标配置自动生成多种环境下的程序,在硬件上运行动态系统模型,同时还支持基于模型的调试。使用RTW 进行实时硬件的设计测试,用户可以缩短开发周期,降低成本。当用户在Simulink环境下建模,并得到较满意的仿真结果后,就可将RTW 与一个快速原型化目标(例如RTWT 目标)联合使用。该快速原型化目标与用户的物理系统连接在一起。用户可使用Simulink 模型作为连接物理目标的接口,完成对系统的测试。RTW 的实现机制是一个复杂的过程,这里仅从RTW 自动构建应用程序的过程这一方面进行分析。RTW 生成应用程序的过程图( modle 为建立的simulink 模型的名称)。RTW 构造应用程序的过程由一个M-file 的命令来控制,对于大多数目标,缺省命令是make.rtw。其过程如下:1.模型分析,首先分析 Simulink 模型,分析的过程包括以下一些主要任务(1)数值化仿真参数和模框参数;(2)传递信号宽度和采样时间;(3)确定模块中框图的执行次序;(4)计算工作向量的大小(主要是针对S-Functions 模框)。在这个过程中,RTW 读取模型文件modle.mdl,然后把它编译为模型的内部描述。这个描述存储是与语言无关的ASCII 文件,名称为model.rtw。我们可以把这个文件看作是下个过程的输入,它将会在代码生成后被自动删除。2.调用TLC 程序来生成C 代码,在这个阶段,TLC 把存储在modle.rtw 中的内部模型描述转换为特定的目标代码。TLC 是一种解释性的程序语言,设计这个程序语言的唯一的目的就是把模型描述转变成代码。在编译过程中TLC 执行包含多个目标文件(TLC 脚本文件)和TLC 函数库的程序。目标文件分为两种:一种是系统目标文件,一种是模块目标文件。这些目标文件指定如何把 modle.rtw 用作输入,从modle 中生成代码。Real-Time Workshop 绑定了用于各种目标环境下的系统目标文件,图3.5 给出了所有可用的系统目标文件。在本系统中,我们的目标环境是windows,选定的快速原型化目标为RTWT,那么在构建程序前,指定rtwin.tlc 作为我们在编译过程用到的TLC 脚本文件。3.生成定制Makefile,在这一步中,将产生定制的模板文件(makefile ),文件名称是model.mk.。生成的makefi1e 用来指导make utility 编译和链接模型,从而生成源代码。RTW是从一个系统生成模板(system template makefile)中生成modle.mk 的,这个模板文件名称是system.tmf (syetem 是指被选择目标名称),例如在上一步中,我们选择了rtwin.tlc 作为我们的系统目标文件,那么同时也选定了一个叫做rtwin.tmf 作为了我们的系统模板文件。模板文件(makefile )允许用户定制编译器、编译器的选项和程序建立期间其他的信息,如果所用的编译器不同,那么makefile 文件也将不同,例如当目标为Windows 时,系统目标文件是rtwin.tlc,但是如果用visual CC+的编译器时,系统模板文件就是win_vc.tmf,而选用watcom 时,系统的模板文件就是win_watc.tmf。molde.mk 只是system.tmf 的一个拷贝,可以修改此文件来定制构建程序的过程。RTWT(Real-Time Windows Target)是MATLAB 提供和发行的一个基于RTW体系框架的附加产品,它可将PC 机转变为一个实时系统,其目的是引入一种快速原型设计的方法,用于控制器的实时测试和开发。在这个环境里,一台PC 机既作为宿主机,又作为目标机存在。对于RTWT,Simulink 和所生成的代码都运行在同一个PC 机上,其运行界面可使用户PC 机的处理器运行在Windows NT 或者Windows 95/98/2000/XP 操作系统的同时采用RTW 生成的代码。RTWT 支持许多类型的I/O 设备板卡(包括ISA 和PCI 两种类型) 。用户只需要安装相关的软件、一个编译器和I/O 设备板卡,就可将一个PC 机用作实时系统并通过I/O 设备与外部设备进行连接。内核通过I/O driver 模块作为接口,与I/O 硬件进行通讯,并且检查I/O board 安装的正确性。Simulink与实时程序之间的通讯是通过Simulink的外部模式下的模块来实现的。这个模块直接与实时内核建立通讯,来开始和终止可执行程序的运行。Simulink模型和实时应用程序之间保持着一个校验机制,实时内核使用这个校验机制来判断Simulink模型结构在代码生成的自动中是否和实时应用程序的结构保持一致。这就确保了在线修改模型参数的时候,Simulink模型的参数可以正确地映射到实时应用程序相应的参数上。RTWT 对I/0 board 的支持,在混合仿真试验系统中,数据的物理采集和物理控制输出是靠I/O板卡完成的,那么实时应用程序必须在软件上具备数据采集和控制输出的能力,也就说程序必须要和I/O板卡建立连接。这一功能的实现需要RTWT的支持。在Simulink模型中加入输入输出模块,设置与实际板卡一致的参数,然后编译连接就可以了,需要说明的是,板卡的驱动程序并不真的参与编译,而只是在程序运行期间,需要采集数据或者输出数据时,进行动态连接。RTWT 支持标准的I/O boards。当Simulink 模型的运行期间,RTWT 从一个或多个输入通道获得采样数据作为模型的输入,然后快速的处理数据,再通过I/O boards 的输出通道输送到外部。RTWT 提供了一个通用的Simulink block library-I/O driver block library. 在Matlab 命令中输入rtwinlib 便可以查看,I/O driver block library 提供了RTWT 所支持的I/O board 的驱动程序。通过各个block 可以很方便的设置I/O boards。这些block 和其他的Simulink block 一样,都支持拖放操作。对于RTWT 不支持的板卡,可利用S-function 模块自行开发板卡的驱动程序。I/O boards 是由其厂商提供,往往通过Switches 或者Jumpers 和厂商提供的软件来设定based dresses,voltage levels 和unipolar or bipolar modes。在Real-Time Windows Target 也提供了参数设定的功能,这个功能的应用与厂商提供的软件有相同的灵活性。Simulink 外部模式下实现参数传递的机制,在外部模式下Simutink 不再对框图表示的系统模型进行仿真,而是把当前的参数值下载到目标系统。在初始下载完成后,Simulink 保持在等待状态,只有在框图中的参数发生改变或者接收到来自目标机的参数才开始动作。当框图的参数发生改变,Simulink 调用一个外部接口Mex 文件,把新的参数值和其他一些信号传递给外部Mex 文件。外部接口Mex 文件执行Inter Process Communication (IPC)通道一端的代码,这个通道把Simulink 过程(Mex 文件执行的过程)和外部可执行性程序的过程连接在一起。Mex 文件通过这个通道,把新的参数传递给外部程序。通道的另一端在外部程序中执行,这一端把新的参数值写到目标参数结构中。Simulink 通过发送一个含有参数信息的讯息初始化下载操作。在C/S 结构中,Simulink 作为客户端,外部程序为服务端。两个过程可以是远程的,也可以是当
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号