《控制系统实时仿真解决方案》由会员分享,可在线阅读,更多相关《控制系统实时仿真解决方案(9页珍藏版)》请在金锄头文库上搜索。
1、dSpace控制系统实时仿真解决方案c利用 MATLAB与Dspace开发平台,控制系统仿真平台的开发测试流程步骤如下:被控对象的理论分析及数学描述这是离线仿真的第一步,用线性或非线性方程建立控制系统数学模型,该方程应能用 MATLAB的m-file格式或 Simulink 方框图方式表示,以便于用MATLAB/Simulink进行动态分析。当部分被控对象难于用理论方法描述时,可以结合 MATLAB的系统辨识工具箱和 Simu link 参数估计模型库来辅助进行系统建模。控制系统建模当被控对象的模型搭建完毕之后,可以用 MATLAB的控制系统工具箱等工具分析被控对象的响应特性,然后根据这些响应
2、特性为其设计控制器。离线仿真与优化模型建立之后,可以通过离线仿真查看控制系统的时域频域性能指标,通过对离线仿真结果的分析来优化控制系统仿真平台的算法或被控对象的模型,使系统的输出特性尽可能的好。当这一步完成之后,就要将离线仿真过渡到实时仿真了。用真实的硬件接口关系代替Simulink中的逻辑联接关系由于实时仿真中需要与硬件通讯,所以需要在 Simulink 方框图中,从 RTI库用拖放指令指定实时测试所需的 I/O(A/D 转换器,增量编码器接口等 ) ,并对 I/O 参数 ( 如 A/ D电压范围等 ) 进行设置。自动代码生成与下载这是从离线仿真到实时仿真的关键,当用户用传统的方法进行开发的
3、时候,从控制算法到代码实现需要手工编程,这一步会耗去很长时间,但当用户采用 MATLAB+dSP ACE这一整体解决方案时,只需用鼠标选择 RTWBuild ,就可以自动完成目标系统的实时 C代码生成、编译、连接和下载。即使是复杂的大型控制系统该过程一般也只需几分钟左右。实验过程的全程自动化管理用 ControlDesk 试验工具软件包与实时仿真系统进行交互操作,如调整参数,显示系统的状态,跟踪过程响应曲线等。通过实时测试可以确定系统的一些重要特性。与 MATLAB结合进行参数优化如果需要,利用 MLIB/MTRACE从实时闭环系统获得数据,并将该数据回传给用于建模和设计的软件环境 ( 如:
4、MATLAB),由 MATLAB根据一定的算法计算下一步控制参数并通过 MLIB/MTRACE将参数送给实时系统,实现参数的自动寻优过程。循环返回第一步。只有通过实时测试,才能得到一些反馈信息如:对象模型是否需要改进、算法特性是否过严或过松、控制系统对不能建模的对象动特性 ( 如:考虑到实时性而将部分对象直接包含于闭环测试中 ) 、干扰及传感器噪音是否有足够的鲁棒性。 1. 控制系统离线仿真的过程及所用到的工具1.1 控制系统离线仿真的过程控制系统仿真平台的设计始于系统的数学仿真,即 MATLAB环境下的离线仿真,图 1 表明了系统仿真的大致过程,下面就主要工作进行细述:首先,是被控对象模型的
5、建立。在这一阶段,可以利用两种方式建立被控对象的数学模型。其一是利用已有的数学及专业知识,结合系统中已有的数据列写被控对象的微分方程,再根据微分方程写出模型的状态空间描述或传递函数表达;其二是利用 MATLAB的相关专业工具,如系统辨识工具箱和Simulink ParameterEstimation等完成系统被控对象模型的建立。这种方法常用于被控对象的数学模型 难于推导或目前我们已有的知识不足以较准确的建立系统模型的情况。当被控对象的模型建立起来之后,就需要利用 MATLAB,Simulink 为被控对象开发合适的控制算法了。对于控制系统仿真来说,通常采用经典的控制算法即可。当然也可以利用现代
6、控制理论开发一些高级算法。开发算法的前提是了解被控对象当前的各项时域频域性能指标,然后根据这些性能指标设计相应的控制器,用以补偿当前被控对象性能的不足。由于工程领域中的被控对象基本上都有一些非线性,为了方便控制器的设计,通常都会利用 MATLAB的相关工具先将被控对象线性化,找到其工作点位置,然后再对线性化模型在平衡点位置附近设计控制器。控制器的设计包括结构设计和参数优化两方面。当被控对象和控制器的模型都建立好之后,就可以进行系统仿真了。仿真是一个不断迭代的过程。首先,是要对建立好的被控对象模型进行仿真,以使模型能够较准确的描述真实的物理系统。当在给定输入信号下,模型的输出与实际系统的输出能够
7、较好的吻合时,被控对象的模型就算搭建好了。当然,如果不吻合,需要返回被控对象建模部分,修改数学模型。然后需要对线性化系统进行仿真,使全系统 ( 控制器加被控对象 ) 的输出满足规定的性能指标,通常这时的性能指标应好于实际要求的性能指标,因为这时的被控对象是线性化的。最后,要将仿真后所定好的控制器算法与实际非线性被控对象结合,做全系统的仿真,观察此时,系统的各项性能指标是否能够达到。如果仿真结果不尽如人意,需要返回算法开发阶段,修改控制器的结构,以得到正确满意的仿真结果。以上是系统仿真的过程,在工作进行的同时,还可以结合仿真进行文档生成。利用相应工具,以多种格式将仿真的模型和数据生成文档,包括
8、HTML, RTF,XML,SGML以及 PDF等等。1.2 控制系统离线仿真中用到的工具为完成控制系统的仿真,我们在 MATLAB产品家族中精选了系统开发中必不可少的产品模块,下面,就集成的控制系统设计环境中所用到的主要模块功能介绍如下:MATLAB提供贯穿于控制系统设计开发全过程的工具。这些工具分别负责系统设计开发的某个阶段,产品的分布如图 2所示:图 2控制系统设计各阶段所用到的MATLAB产品模块数据分析、建模在系统建模阶段常用的工具箱是 System Identification Toolbox 和Simulink ParameterEstimation 。前者完全由实验数据进行数学
9、模型的估算,而后者是通过实验数据对已有数学模型的参数进行优化,使数学模型尽可能反映实际系统的真实情况。System Identification Toolbox该工具箱提供了一个交互式工具环境,基于预先测试得到的输入/ 输出数据来建立动态系统的线性模型。可以使用时域频域技术对单通道数据或多通道数据进行模型辨识。利用该工具箱可以对那些不容易用数学方式描述的动态系统建立数学模型。工具箱支持传递函数和状态空间的模型描述方式,可以通过非参数相关或谱分析的方法进行系统辨识,工具箱函数可以对任意通道数的输入输出数据进行连续时间或离散时间系统的辨识,导入测试数据并对其进行预处理,产生模型,并根据测试数据进行
10、模型的验证。Simulink Parameter Estimation该工具可以帮助用户校正系统的 Simulink 模型,使之满足实际物理系统的输出特性 。使用这一工具就可以避免通过试凑法或是自行编写优化程序来调整模型参数。用 户可以使用时域测试数据和优化手段来估计模型参数和初始条件,并且可以在 Simu link 中创建自适应查表函数。用 Simulink 所建立的动态系统模型通常会包含一些无法直接测量的参数或是无法用模型进行精确表达的部分。根据实际物理系统或是原型机得到的输入-输出测量数据, Simulink ParameterEstimation 能够计算出那些未知的参数并通过优化算法
11、来弥补 Simulink 模型与实际系统的差别。系统模型仿真系统模型的正确与否将直接影响到系统后续的设计工作,所以系统模型的仿真和优化是基于模型的控制系统设计重要的一环,在软件环境中进行动态系统模型的仿真不仅可以较早的排查系统设计的缺欠和错误,还有助于设计者更好的理解系统模型的行为,从而完成对模型和控制系统算法进行优化。在这一步骤中, MATLAB产品提供的 Simulink 工具,是建立动态系统模型,进行数学仿真优化的最佳工具。此外,MATLAB的产品中还包括了针对航空航天和国防领域的Aerospace功能模块集合等等。Simulink使用面向方框图的可视化动态系统仿真工具 Simulink
12、 ,可以方便地建立控制器和被控对象模型,通过仿真不断地优化和改善设计。无论是离散的,连续的,条件执行的,多采样的或混合系统, Simulink 都是描述动态系统模型的最佳工具。通过 Simulink 提供的丰富的功能块,可以迅速地创建动态系统模型,而不需要书写一行代码。 Simulink 提供了完整的功能模块库,用于建立单入单出、多入多出、线性 / 非线性、离散 / 连续 / 混杂及多速率系统;支持矩阵数据类型和线性代数运算;支持 M语言和 C语言方式的功能模块扩展;支持层次化建模方式,可应用 子系统 进行结构化建模,并可以通过模型浏览器察看各个层次;可以建立用户自己的功能模块库并加入到 Si
13、mulink 库浏览器中由于 Simulink 可以直接利用 MATLAB的数学、图形和编程功能,用户可以直接在 Simu link 下完成诸如数据分析、过程自动化、优化参数等工作。工具箱提供的高级的设计和分析能力可以通过 Simulink 的封装手段在仿真过程中执行。Stateflow这是建模与仿真真实世界中常见的事件驱动行为的图形化环境,利用有限状态机概念、状态流程图原理,对事件驱动系统建立起简洁而清晰的描述,内嵌于Simulink中。通过 Simulink 和Stateflow ,可以在在单一的集成环境下对包含顶层控制逻辑物理对象和控制器的整个系统进行建模与仿真。,Aerospace B
14、locksetsSimulink 的模型库可以通过专用模块集进一步扩展,比如航空模型库 (Aerospace Blocksets) 。航空模型库是针对飞行控制系统而设计的专用模型库,具体包括数学运算和坐标变换 (Utilities) 、执行机构模型 (Actuators ,二阶线性模型和二阶非线性模型 ) 、气动力和气动力矩计算 (Aerodynamics) 、动画显示 (Animation ,三自由度动画和六自由度动画 ) 、环境模型 (Environment ,具体包括大气模型、重力场模型和风扰动模型 ) 、运动方程 (Equations ofMotion ,三自由度和六自由度 ) 、飞行
15、参数计算 (FlightParameters ,迎角、侧滑角、空速等 ) 、导航控制模块 (GNC)、质量特性计算 (Mass Properties ,质心、惯性张量等计算 ) 、推进计算 (Propulsion ,涡轮发动机系统 ) 。这些模型库提供了飞行控制系统中的通用模型,在建模仿真中可以直接引用,也可以根据具体的设计需要,对模型库进行添加和完善,供其它的系统设计项目所引用中,避免重复性工作。控制系统设计分析与优化控制系统的设计分析是基于模型的系统设计中重要的一步,在这一阶段,设计人员需要对被控对象数学模型的各种特性进行分析,然后设计出合适的控制器。在这个环节中,不仅可以利用 MATLAB高级编程语言的强大功能,在短时间内开发出控制算法并结合 MATLA