Stateflow逻辑系统建模

所需积分/C币:40 2017-06-21 13:22:39 11.35MB PDF

《Stateflow逻辑系统建模》 张威 编著
前 言 MATLAB软件最早成为商品化软件是在1984年,那时由 Math Works公司推出了 MATLAB的第一个版本。在编写本书的时候, MATLAB的最新版本是73,即 MATLAB Release2006b。 MATLAB产品提供了丰富的应用函数,并且具有易扩充的开放性结构。在 不断地吸收各行各业专家、学者、工程师的经验之后, MATLAB已成为了国际上优秀的工 程应用欤件之一。目前,该软件涵盖了控制系统设计与仿真、数字信号处理没计与仿真 数字图像处理、歐入式系统设计与实现、通信、神经网络、小波理论分析、凭化与统计、 偏徼分方程、动态系统实时仿真等多学科专业领域,其应用行业包括航空航大、汽车、兵 器与匡防工业、通信、医药卫生、化工工心、生物遗传工程、大学教育、国家政府机关以 及金融财经等。在全球, MATLAB的正式用户已经达到六十余万,遍布世界上100多个国 家和地区。而自从20世纪90年代 MATLAB进入中国起, MATLAB软件在国内已经拥有 了众多用户。目前在国内很多高校经在本科教学阶段将 MATLAB作为一门必(选)修课程, 并把它作为应用数学、控制、信号欠理、通信等专业博士研究生、硕士研究生、本科生必 须掌握的工具软件之 基于模型的系统级设计是 Math Works公司近年来大力倡导的一种系统设计方法,它定 义了从系统没计、仿真到具伾实现的一系列工具以及应用方法。基于模型的系统级没计的 核心工具是 MATLAB软件族当中以 Simulink为基础的模块集合为相应的工具。而 Stateflow 是 MATLAB产品体系中非常重要的一个分支,它是在基于框图的动态系统建模仿真环境 Simulink的基础上完成动态逻缉系统建模与仿真的可视化开发平台。 Stateflow能够对 那些基于有限次怒机理论的事件驱动系统进行建模和仿真,也能够针对复杂逻辑系统进行 跫模和仿真。结合 Simulink的动态系统建模和仿真能力, MATLAB产品为广大用户提供了 多领域系统建模和仿真的统一开发环境。目前, Stateflow产品主要被用来完成下列系统中 动态逻辑部分的建模和仿真工作: ■嵌入式系统应用: 航空电子设备 车辆设备,例如中控门锁逻辑、电动车窗逻辑等; 电信设备,例如路由算法 通信系统,例如计算机外设; 可编程逻辑控制器(PLCS); 工业机械设备。 人机交互界面(MMD:图形亿用户界面(GUD)的控制逻辑。 复杂系统:例如航空空管選信系统,其中包含了DSP、控制系统以及人机界面的开 发等 本书详细介绍了使用 Stateflow进行动态逻辑系统建模和仿真的方法。本书的内容组织 如下 第1章对 MATLAB产品体系以及 Simulink的应用进行简的回顾,是学习 Stateflow 动态逻辑系统建模和仿真的基础。 第2章介绍 Stateflow图形对象的创建方法,详细介绍状态、状态转移、连接节点等常 用图形对象的使用方法。 第3章介绍 Stateflow非图形对象——数据对象、事件等的使用方法以及如何完成筒单 事件驱动系统的建模和仿真。 第4章介绍 Stateflow创建流程图的方法。 第5章介绍 State llow层次化有限状态系统的建模与仿真方法。 第6章介绍 Stateflow层次化框图的并行运行机制。 第7章介绍 Stateflow的各种代码生成目标及 Stateflow Coder产品的使用方法。 第8章介绍 Stateflow的真值表和 Embedded maTLab Function的应用方法。 第9章介绍利用 Stateflow APl在 MATLAB命令行中实现 Stateflow框图模型的刨建 方法。 本书的附录中还详细总结了 Stateflow的语法等内察,供大家在使用相应工具时参考。 本书的前六章内容是掌握 Stateflow产品的必修内容,其中第1~3直是第4-6章的基 础,而掌握了第4~6章的内窣就基本掌握了各种动杰逻辑系统的建模和仿真方法。从第7 章开始的后三章内容涉及 Stateflow的高级话题。建议初学者从第1章开始循序渐进地学习 到第6章,这烊就能够基木掌握 Stateflow产品的应用方法。而后三章约为容可以快速池浏 览一下,等需要时手仔纽学习。另外,要掌握 Stateflow并且能灵活地应用,还需要用户对 Simulink产品的应用有足够的了解,因此,对于没有 Simulink应用基础的读者,作者建议 先学习掌握 Simulink产品的应用方法。如果读者已经有 Simulink甚至 Stateflow的应用基础, 则可以直接从本的第4章开始学习 本书是在作者收集了国内外大量的最新权威资料,总结了自身丰宫的动态系统建模与 仿真的开发经验和 MATLAB产品技术支持、培训教学以及应用经验钓基础上编写而成的 内容详实、全面、权威,示例丰富,便于读者学习具体工具的使用方法。 本书既可作为需娶完成动态逻辑系统建模和仿真的工程人员的参考书,乜可作为在校 本科玍、硕士研究生和博士研究生的教材,还可作为 MATLAB相应产品培训课程的教材。 本书的编写前前后后历经了三年的时间,期间 MATLAB软件儿次升级, Stateflow模块 的特性也多次发生变化,而作者本人也经历了不少事情以及意外。在本书的编写过程中, 得到了西安电子科技大学出版社毛红兵编辑的大力支持,在这里对她表示衷心的感谢。还 要感谢北京九州恒润科技有限公司以及北京赛四达科技有限公司的全体员工,特别是这两 家公司的工程抆术人员。和他们在一起共同学习、钻研 MATLAB软件以及研究实时仿方真、 系统仿真应用的E子让我终生难忘。更要感谢父母、兄长以及我的妻子余志鸿,我花费了 太多的时间在计算机前而没能很好地尽到自己应尽的义务和责任,如果没有父母、兄长多 年来对我的培养和教育,没有家人对我的关心、支持和鼓励,也就没有了今天这本书的 出版。 Stateflow涉及的内容比较丰富,在这样一本300多页的书籍中不可能将每个技术细节 都介绍到。不过,希望此书能够发挥引路者的作凨,嗽领大家进λ Stateflow逻辑系统建模 的大门。需要提醒读者的是,学习 Stateflow的基础是 Simulink,如果读者对 Simulink不甚 了解,可以阅读作者编写的《 Simulink动态系统建模与仿真基础》一书。 主于时间仓促,书中难免存在一些不妥之处,诚望广大读者谅解,并且提出宝贵的意 见和建议,以便我们在再版时改进。 本书没有为读者提供任何示例源文件,希望读者在使用本书学习 Stateflow的过程中能 够边学习边动手,在实践的过程中掌握 Stateflow产品的应用方法。如果对本书的内容有任 何疑问或者想法,可以通过E-mail与作者直接联系:way.buaa@gmail.com,或者登录作者 的博客matlabworld.tianyablog.com 作者 〕7年8月 第1章概述 第1章概述 MATLAB产品是用来解决工程与科学实际问题的应用软件,该产品包含了 很多产品模块和工具粕。本书介绍的 Stateflow是其产品体系中非常重要的产品 之一。不过,在正式介绍 Stateflow产品之前,作为本书的基础,首先筒要回顾 MATLAB产品的概况以及 Simulink产品的使用方法。如果读者对 MATLAB 产品体系和 Simulink模块的使用方法比较熟悉,则可以快速浏览本章的内容, 甚至可以跳过本章,学习后面的为容。 本章的主要内容包括: ■ MATLAB产品简介。 Simulink回顾 Stateflow概述。 安装配置 Stateflow 1.1 MATLAB产品简介 MATLAB的名称源自 Matrix Laboratory,它的首创者是在数值线性代数领域颇有影响 的( Cleve moler博士,他也是生产经营 MATLAB产品的美国 Math Works公司的创始人之。 MATLAB是一种科学计算软件,专门以矩阵的形式处理数据。 MATLAB将高性能的数值计 算和强大的数据可视化功能集成在一起,提供了大量的内置函数,因而被广泛地应用于科 学计算、控制系统、信息处理等领域的分析、仿真和设计工作中;而且利用 MATLAB产品 的开放式结构,可以非常容易地对 MATLAB的功能进行扩充,从而在不断深化对问题的认 识的同时,不断完善 MATLAB产品以提高产品自身的竞争能力 日前, MATLAB产品族可以完成以下功能: ■数值分析。 ■数值和符号计算。 工程与科学绘图。 ■控制系统的设计与仿真 ■数字图像处理。 数字信号处理。 ■通信系统设计与仿真。 财务与金融工程。 编写本书时,作者使用的 MATLAB版本为 MATLAH7.3, Math Works公司将其称为 MATLAB Release 2006b Stateflow逻辑系统建模 提示 对」 MATLAB的版木,国内匀惯以 MATLAB产品休系中核心模块 - MATLAB模块的 版本号作为整个产品体系的版本号。例如有的读者可能使用的 MATLAB核心模块版本是 MATLAB72,而 Math Works公司对 MATLAB产品使用的是以产品发布次数计数的版本号, 对应 MATLAB72的是 MATLAB Release2006a,是 MATLAB产品体系第15次正式发布版 每个 MATLAB核心模块都对应一个完整的版本号,这里将常见的 MATLAB版本对照总结如下 MATLAB 5.3 MATLAB Release 11 MATLAB 6.0 MATLAB Release 12 MATLAB 6. MATLAB Release 12.1 MATLAB 6.5 MATLAB Release 13 MATLAB 6.5.1 MATLAB RcIcasc 13 service pack 1 MATLAB 6.5.2 MATLAB Release l3 service pack 2 MATLAB 7.0 MATLAB Release 14 MATLAB 7.0.1 MATLAB Release [4 Service Pack l MATLAB 7. 0.4 MATLAB Release 14 service pack 2 MATLAB 7.1 MATLAB Release 14 service pack 3 MATLAB 7.2 MATLAB Release 2006a MATLAB 7. 3 MATLAB Release 2006b MATLAB 7. 5 MATLAB Rclcasc 2007a 根据 Math Works公司2006年初发表的声明,从2006年开始 MATLAB每年将进行两次 产品发布,以发布的年份作为版本号,3月份发布的版本为a版本,9月份发布的版本为b 版本,因此2006年3月份该公司发布了 MATLAB Release2006a,而2006年9月份该公司 发布」 MATLAB Release2006b 请读者核对自己所使用的 MATLAB产品版本,不同版本的 MATLAB产品有诸多特性 上的差别。如果需要了解特性上的差别,请读者自行查看相应版本的 Release notes信息。 MATLAB产品由若干个模块组成,不同的模块可完成不同的功能。这些模块有: ● MATLAB ● MATLAB Toolboxes O MATLAB Compiler Simulink Simulink blocksets Real-Time Workshop(RTW) Stateflow 这些产品人体上可以分为以 MATLAB为基础的产品和以 Simulink为基础的产品两人分 支,由这些模块构成的 MATLAB产品体系如图1-1所示。 其中, MATLAB模块是 MATLAB产品家族的基础,它提供了基本的数学算法,例如 矩阵运算、数值分析算法笭。 MATLAE集成了2D和3D图形功能,可以完成相应数值可视 化的工作,并且提供了一种交互式的高级编程语言—M语言。用户利用M语言可以通过 编写脚本或者函数文作来实现自己的算法。 第1章概述 MATLAB 独立可执行|桌面应用 Simulink 程序开发工具 Stateflow 工具箱( Toolboxes) Blocksets 数据源 数据获取工具 代码生成 c/C++ 学生版产品 MathWorks 第三方产品 图1-1 MATLAB产品体系 MATLAB的桌面应用程序开发工具是以 MATLAB Compiler为核心的一组编译工具 MATLAB Compiler能够将那些利用 MATLAB提供的编程语言—M语言编与的函数文件 编译生成函数库或者可执行文件。这样就可以扩展 MATLAB功能,使 MATLAB能够同其 他高编程语言(例如CC++语言)进行混合应用,取长补短,以提高程序的运行效率,丰富 程序开发的于段。从 MATLAB Release14开始, MATLAB Compiler4能够支持所有M语 亡特性,可以将大多数工具箱函数都编译生成为独立可执行应用程序,这极大地提髙了 MATLAB的应用范围。 另外, MATLAB除了能够和CC+语言集成开发以外,还提供了和Jaa语言接口的能 力,并且还支持COM标准,能够和任何攴持COM标准的软件协同工作。特别是从 Release 13开始,包含了 MATLAB Compiler的扩展产品 -MATLAB Builder能够将 MATLAB的 函数文件打包成COM组件或者NET组件、 Excel插件,甚至可以打包成Java对象,这样 就能够将 MATLAB应用程序算法集成到相应的开发工只或者应用软件中。 Math Works公司及其他厂商利用M语言还开发了相应的 MATLAB专业工具箱函数供 用户直接使用。这些工具箱应用的算法是开放的、可扩展的,用广不仅可以查看其中的算 法,还可以针对一些算法进行修改,甚至开发自己的算法来扩充工具箱的功能。日前, MATLAB产品的工具箱有四十多种,分别涵盖了数据采集、科学计算、控制系统设计与分 析、数字信号处理、数字图像处理、金融财务分析以及生物遗传工程等专业领域 MATLAB的数据采集τ具可以将各种数据源提供的信号直接读入 MATLAB环境,无 论L程师使用的是PC插卡式的数据采集卡或图像采集卡,还是基于总线协议的高端仪器仪 表设备以及各种关系型数摭库, MATLAB都提供了与其进行数据IO的交互工只、函数等。 利用 MATLAB开放的集成环境还能够引入更加丰富的数据IO能力 MATLAB的主要工具箱和产品模块包括 ■数学与数据分析 Optimization Statistics 4 Stateflow逻辑系统建模 ● Ncrual Network embolic matl Partial Differential Equation Mapping Ine Curve Fitting Bioinforamtics Genetic Algorithm and Direct Search ■数据采集与测量测试 Data acquisition · Imagc Acquisition Instrument control Database OPC Toolbox Excel Link ■信号处理与图像处理 Signal processing ● Image processing ● Communication System Identification Wavele ● Filter Design Filter Design HDL Code MATLAB Link for Codc Composer studio ● Link for modelsin ■探制系统设计与分析 Control system Fuzzy Logic Robust control e Model predictive control ■财经与金融: ● Financial Fi Nanci ● garc Datafeed Financial derivatives Fixed income 应用程序集成与发布: MATLAB Compiler 第1章概述 MATLAB Report Generator ● MATLAB Web server e MATLAB Builder for NEt e MATLAB Builder for excel MALTAB Builder for java 这些产品一般作为整个 MATLAB产品的基础,它们的共同特点是可通过M语言编程 或者命令行窗体指令完成具体的功能,即需要·定的代码⊥作才能够完成算法的丌发与实 现。在所有 MATLAB产品基础之上就形成了 Simulink产品, Simulink产品的特点是使用拖 放方式开发,较少需要编写代码 Simulink乜是两个单词的缩写— Simulation和Link,它是一个框图化的建模坏境,能 够针对各种复杂的动态系统建立相应的系统仿真模型。 Simulink利用其內建的数学求解器, 能够针对任何和使用数学手段建立的系统进行建模和仿真。目前该产品被广泛应用于控 制系统建模与仿真、数字信号处理系统的建模与仿真等领域 Simulink的特点 ■交式建模。 Simulink木身提供了大量的功能块以方使用户快速建立动态系统的模 型。建模的过稈只需要利用鼠标拖放功能块并将其连接起来即可完成。 Simulink的基本模块 库如图1-2所示。 Library: simulink File Edit View Format Help 四四 Discontinuities signal Routing Attributes u M ath Logio and Bit Lookup User-Defined Model Ports 2s Model-wride Operations operations Tables Functions Verification Subsystems Utilities Additional Meth Simulink Block Library 6.5 Tool blocks Discrete Demos Copyright (c)1990-2006 The M athwroros Inc 图1-2 Simulink的基本模块库 ■交互式仿真。 Simulink的框图提供可交互的仿真环境,可以将仿真结果动态显小出 来,并且可在各种仿真过程中调节系统的参数 ■任意扩允和定制功能。 Simulink的丌放式结构允许用户扩充仿頁环境的功能,可以 将用户利用C、C++、 FORTRAN语言编写的算法集成到 Simulink框图中 与 MATLAB工具集成。 Simulink的基础是 MATLAB,那么在 Simulink框图屮就可 以直接利用 MATLAB的数学、图形和编辑功能,完成诸如数据分析、过程自动化分析、优 化参数等工作 为了丰富该产品在不同领域内的应用, Math Works公司还专门开发了不同的功能模块 如图1-3所示),用于特殊领域的应用。这些模块包括:

...展开详情
img
  • 分享王者

    成功上传51个资源即可获取

关注 私信 TA的资源

上传资源赚积分,得勋章
最新资源