您的当前位置:首页正文

MATLAB介绍材料

来源:九壹网
MATLAB

——加速创新与算法开发

MATLAB是一种高级科学计算软件,也是进行算法开发、数据可视化、数据分析以及数值计算的交互式应用开发环境。世界上许许多多的科研工作者都在使用MATLAB产品来加快他们的科研进程,缩短数据分析和算法开发的时间,研发出更加先进的产品和技术。相对于传统的C、C++或者FORTRAN语言,MATLAB提供了高效快速解决各种科学计算问题的方法。目前,MATLAB产品已经被广泛认可为科学计算领域内的标准软件工具之一。

MATLAB可以被广泛的应用于不同的领域,例如信号与图像处理、控制系统设计与仿真、通讯系统设计与仿真、测量测试与数据采集、金融数理分析以及生物科学等。在MATLAB中内建了丰富的数学、统计和工程计算函数,使用这些函数进行问题的分析解答,无论是问题的提出还是结果的表达都采用工程师习惯的数学描述方法,这一特点使MATLAB成为

了数学分析、算法开发及应用程序开发的良好环境。MATLAB是MathWorks产品家族中所有产品的基础。附加的工具箱扩展MATLAB基本环境用于解决特定领域的工程问题。

特点

   

高级科学计算语言;

代码、数据文件的集成管理环境; 算法设计开发的交互式工具;

用于线性代数、统计、傅立叶分析、滤波器设计、优化和数值计算的基本数学函数;

 

2-D和3-D数据可视化;

创建自定义工程师图形界面的工具;

 与第三方算法开发工具——C/C++、FORTRAN、Java、COM、Microsoft Excel——集成开发基于MATLAB的算法;

强大的功能

数学计算

利用以矩阵、向量为基本运算单元的MATLAB进行数学计算是加速算法开发的有效途径,而且MATLAB提供的数学算法凝聚了世界上诸多科学家的辛勤劳动,保证了数学计算精确的结果。MATLAB数学计算的内容有:

       

线性代数和矩阵分析与变换 数据处理与基本统计

快速傅里叶变换(FFT),相关与协方差分析 稀疏矩阵运算 三角及其它初等函数

Bessel、beta及其它特殊函数 线性方程及微分方程求解 多维数组的支持

开发工具

MATLAB提供了各种用于算法开发的工具,其中包括:

 MATLAB Editor —— 该工具提供了标准的编辑、调试M语言算法的基本环境,例如可以在该工具中定义断点并且进行单步调试。

 M-Lint Code Checker —— 该工具用于分析M语言代码并且向开发人员提出改善代码性能和维护性的建议。

 MATLAB Profiler —— 该工具可以计算每行M语言代码执行消耗的时间;

 Directory Reports —— 该工具扫描当前目录下所有的M语言,并且报告文件的代

码效率、文件的相关性以及代码覆盖度等信息。

数据的可视化

MATLAB提供了功能丰富的数据可视化功能函数,其中包括:

 二维、三维绘图,包括散点图、直线图、封闭折线图(polygon)、网线图、等值线图、极坐标图、直方图等丰富多样的数据可视化手段;

 

交互的文本注释编辑能力;

提供文件I/O能利用来显示绘制图形,支持多种图像文件格式例如:EPS, TIFF, JPEG, PNG, BMP, HDF, AVI, PCX等;

    

软硬件支持的OpenGL渲染; 支持动画和声音;

多种光源设置、照相机和透视控制;

对图形界面元素提供了交互式可编程的控制方法——句柄图形;

能够打印或者导出数据图形文件到其它的应用程序中,例如Word and PowerPoint,共享开发的结果。

交互式编辑创建图形

MATLAB提供了交互式工具用于设计、修改图形窗体,在MATLAB的图形窗体中工程师可以完成:

    

拖放数据集到窗体;

修改图形窗体中任意对象的属性;

放大、旋转、平移、修改摄像机或者光线的位置、角度等; 增加注释和数据标注; 将图形窗体文件转变为M代码;

集成的算法开发编程语言和环境

MATLAB提供了一种简便易用的算法开发语言——M语言,直接利用MATLAB提供的基本数学、图形能力,开发工程师自定义的算法。几乎所有的MATLAB工具箱函数都是利用M语言开发的。

   

可视化的程序编辑器/调试器; 语法风格类似C语言,容易掌握; JIT加速器加快程序运行速度;

多维向量及工程师自定义结构,以及数组、结构、元胞数组等多种数据结构;

    

支持面向对象编程(OOP);

流程控制(for,while,if,switch); 字符变换;

ASCII及二进制文件输入输出;

灵活的开发性能够与C, C++, FORTRAN, Java, COM 组件以及 Excel 集成使用;

 

支持使用底层I/O手段获取数据,操作数据文件; MATLAB数据文件——MAT文件支持跨平台应用。

图形用户界面开发环境——GUIDE

  

应用程序向导简化开发步骤; 下拉及弹出式菜单;

支持多种界面元素按钮(PUSH BUTTON),选项钮(RADIO BUTTON),检查框(CHECK BOXE

S), 滑块(SLIDERS)、可编辑文本框(EDIT BOX)和ActiveX控件;

 

鼠标事件(Mouse Event)和回调; 利用回调函数响应工程师的操作。

开放性、可扩展性强

M-语言函数文件是可见的MATLAB程序,所以工程师可以查看源代码。开放的系统设计使工程师能够检查算法的正确性,修改已存在的函数,或者加入自己的新部件,包括:

       

使用C或者FORTRAN MEX 文件集成已有的C/FORTRAN算法; 在独立C或FORTRAN程序中调用MATLAB函数; 在MATLAB中使用Java语言编程; 提供COM服务和COM控制支持;

输入输出各种MATLAB及其它标准格式的数据文件; 对计算机串口进行输入输出操作; 加载通用DLL文件;

创建图文并貌的技术文档,包括MATLAB图形、命令,并可通过Word、HTML输出;

专业应用工具箱

MATLAB的工具箱加强了对工程及科学中特殊应用的支持。工具箱也和MATLAB一样是完全工程师化的,可扩展性强。将某个或某几个工具箱与MATLAB联合使用,可以得到一个功能强大的计算组合包,满足工程师的特殊要求。于是,MATLAB产品被广泛应用于下列领域:

     

测量测试 数学建模与分析 信号处理

财经金融建模与分析 图像处理与地理信息 MATLAB桌面应用程序发布

Control System Toolbox

——控制系统的分析和设计

Control System Toolbox为线性控制系统的分析、设计和调节提供符合工业标准的算法和工具。用户可以通过传递函数、状态方程、零极点增益或者频率响应模型对系统进行描述。通过交互式的工具和命令行行数,如阶跃响应图和波德图,用户能够可视化的了解系统的时域和频域行为。用户还可以通过自动的PID控制器来调节补偿参数,通过验证上升时间、超调、稳态时间、增益、相位差和其它要求来验证设计。 特点

     

线性系统的传递函数、状态方程、零极点和频率响应模型 线性模型的串行、并行、反馈和普通模块连接

阶跃响应、耐奎斯特图和其它的时域、频域工具分析系统稳定性和性能 根轨迹、波德图、LQR、LQG和其它经典、状态空间控制系统设计技术 PID控制器自动调节

支持模型间的转换:包括表达方式之间的转换、离散连续模型间的转换;可以实现高阶模型的低阶近似计算

 使用LAPACK及SLICOT库中的高级内建算法进行模型的精炼及性能的优化

控制和评估工具(上图),基于GUI的工作流程能让用户交互式的进行控制器分析、设计和调节。提供的工具包括根轨迹、波德图和阶跃响应(下图)。

强大功能

线性控制技术是控制系统设计和分析的基础。利用控制系统工具箱,用户可以创建控制系统的线性模型。利用交互可视化工具,用户可以对模型进行诸如行为、性能及约束等方面的更为细致的分析。利用单回路和多回路设计技术,用户还可以方便系统地调节控制系统的参数。

利用控制系统工具箱得到的线性模型还可以应用于其它进行控制设计的产品模块,比如鲁棒控制工具箱及模型预测控制工具箱。结合Simulink Control Design及Simulink Response Optimization,控制系统工具箱还可以为用户提供一个全面的、图形用户界面驱动的工具集,用于在Simulink环境中对控制系统进行分析和调节。

使用PID调节器,调节如等式所定义的PID控制器C。用户可自动计算初始化条件然后重复计算PID增益及调节响应时间。

创建和操作线性模型

控制系统工具箱允许用户将动态系统表示及操作成线性模型,这种线性模型以对象的形式存在。工具箱支持所有的标准表示方法,包括:传递函数形式、零极点增益形式、状态空间形式及频率响应数据的形式。线性模型可以是SISO的、MIMO的、连续的或离散的。用户可将PID控制器作为PID对象。不仅如此,用户还可以对带有时间延迟的系统进行精确描述和仿真,包括系统的反馈回路带有延迟的情况。

控制系统工具箱提供下述指令:

 

进行线性模型操作的算法

通过简单模型的串联、并连及反馈连接创建复杂的模块框图

 

对连续时间模型进行离散化处理 对高阶模型进行低阶的近似计算

用户还可以利用LTI模块将线性模型对象导入到Simulink中。

创建被控对象的线性模型通常都是控制系统设计的第一步,如果被控对象不可得,可以利用实验数据以及系统辨识工具箱拟合出一个数学模型,或者利用Simulink Control Design将非线性数学模型进行线性化处理。这两类型数学模型都可以以对象的形式导入控制系统工具箱,一旦被控对象以对象(object)的形式表示出来,用户就可以利用控制系统工具箱进行分析和设计了。

MATLAB代码用于创建和分析控制器C和被控对象模型G的反馈回路。这个被控对象是以具有延时T秒的一阶传递函数进行建模的。

分析模型

控制系统工具箱提供了GUI和命令行两种方式进行系统设计,以方便不同模型的分析和设计。

控制系统工具箱中的LTI Viewer是一个GUI工具,可以简化线性时不变系统的分析。利

用LTI Viewer可以同时观察和对比不同的线性模型的响应曲线,还可以在时域频域响应曲线中加入关键的性能指标,比如上升时间,超调量和稳定裕度等。结合鼠标操作,可以对MIMO系统选择所要观察的输入输出通道。

LTI Viewer可以同时显示6种不同的响应曲线,包括阶跃相应,脉冲响应,Bode图,Nyquist曲线,Nichols图,Sigma图和零极点分布图。用户还可以自定义输入信号和初始条件,以便对系统进行更深入的分析。

LTI的GUI界面,在时域和频域进行线性模型分析的交互式工具。用户可以使用各种频域和时域图一次比较多个线性模型。

调整控制系统

控制系统工具箱可让用户使用SISO和MIMO设计技术系统调节控制系统参数。

调节PID控制器

控制系统工具箱提供两种操作和调节PID控制器的工具,分别为PID调节器GUI和命令行函数,用户可以:

   

以标准或者并行的方式使用表示连续时间或者离散时间PID控制器的PID对象 自动调节PID增益以平衡性能和鲁棒性 说明调节参数,如要求的响应时间和相位差 调节SISO控制器

控制系统工具箱提供的SISO设计工具可以设计和分析SISO控制系统。利用SISO设计工具的GUI,可以完成:

   

设计通用控制器,比如PID控制器、超前/滞后网络及带阻滤波器等

利用根轨迹、Bode图及Nichols图等经典工具以图形化的方式调节SISO回路参数 在调节控制器参数的同时,监控闭环系统的响应性能指标 对设计因素进行评估,比如采样时间及控制器的复杂型影响分析

除了标准模型表示形式之外,如传递函数和频率响应数据,SISO设计工具支持具有延时时间的系统。用户也可以使用多个被控对象模型来仿真评估不同操作条件下的控制器设计。

Simulink Control Design扩展了Control System Toolbox,可使用户在Simulink中调节由多个SISO回路组成的控制器。用户可以逐个关闭SISO回路,查看回路响应,并交互调节每个回路使其达到最好的性能。Simulink Control Design可使用户通过非线性仿真为更加长远的设计验证直接调节参数。

结合Simulink Response Optimization,还可以实现基于时频性能指标要求的控制系统参数的优化。结合鲁棒控制工具箱,还可以通过H无穷算法进行自动化整形开环响应分析。

使用SISO设计工具调节具有多个被控对象模型的控制器

设计多回路控制系统

控制系统工具箱支持MIMO系统设计,包括LQG和极点配置方法。该工具箱还提供观测器的设计工具,包括卡尔曼滤波器的设计。

Aerospace Toolbox

——航空航天参考标准,环境模型和空气动力学数据导入

Aerospace Toolbox针对执行高级航空航天分析应用。工具箱提供了参考标准、环境模型和气动系数导入来支持设计任务。同时,工具箱还提供了与FlightGear飞行模拟器的接口,可以三维方式使飞行数据可视化并且复现飞行测试中的异常现象。为了保证设计的连续性,航空航天工具箱提供了单位转换、坐标系转和四元数计算,还有大气、地球重力场重力和磁场的标准环境模型。用户可以从美国空军数字数据大纲(Air Force Digital Data Compendiun/Datcom)中导入气动数据来进行控制系统初步设计和飞行器性能分析。

特点

    

提供了大气、地球重力场和磁场的标准环境模型; 提供单位转换和坐标系转换系统及空间表达式;

预置计算工具,支持对航空航天参数,时间和四元数等的计算; 支持从美国空军数字数据大纲Datcom中导入气动系数;

提供与FlightGear飞行模拟器的接口,可将飞行器的运动以三维显示。

利用Aerospace toolbox与FlightGear模拟器显示Boing 747的飞行

强大功能 环境模型

航空航天工具箱提供了大气、地球重力场和磁场的标准环境模型。

大气模型可用于计算的飞行条件并且规范化飞行数据。它将1976 标准大气扩展委员会(COESA)和国际标准大气模型(ISA)结合起来,同时也结合了美军标准的非正常天气状况模型(MIL-HDBK-310和MIL-STD-210C)。这些非正常天气状况模型提供了在给定重力高度下绝对温

度、气压、大气密度和声速等信息。

地球重力场和磁场模型可辅助导航和测绘应用中的数据分析和算法开发。重力场模型基于1984年全球测量系统中的重力模型。磁场模型包含2000年和2005年版的全球磁场模型(WMM)版本,这两个版本的WMM都使用了NIMA标准来计算在特定时刻和位置处地球磁场的总强度、水平强度、偏差度、倾斜度和方向。

使用Aerospace Toolbox编辑的脚本,计算在飞行中的重力变化。使用工具转换了单位,并

通过COESA模型计算真实的空速,还导入使用了Datcom气动系数。

单位转换和坐标系转换

航空航天工具箱中包含单位转换和坐标系变换的工具。可以进行各种物理量,如加速度、密度和温度等,之间进行公英制转换。坐标系的转换工具能够创建方向余弦矩阵,在不同的空间表述方式,如欧拉角和四元数之间,进行转换。两个不同的坐标系之间通过方向余弦矩阵进行转换,例如在本体坐标系和惯性系中之间、本体系和风速系之间、地心地固系(ECEF)和北东天坐

标系(NED)之间、地心地固系(ECEF)和纬度经度高度系(LLA)之间。另外的还提供地心纬度和大地纬度的表述形式。

执行参数计算,时间计算和四元数运算

航空航天工具箱提供了飞行参数计算、时间计算和四元数运算的工具,例如共轭计算,除法,求逆和求模。

飞行参数计算工具可实现常用参数的计算,如相对压力、密度、温度比率、等价空速、修正空速、马赫数、动压力和在给定地心纬度处的行星半径。时间工具计算平台中可以计算儒略历(Julian)、十进制年和闰年。

利用Aerospace Toolbox单位转换、气动模型和飞行参数计算工具得到的Cessna 172机型

的寄生阻力、额外阻力和总阻力曲线。箭头处为最佳滑翔速度,对应最小总阻力值

从Digital Datcom导入气动系数数据

美国空军Digital Datcom是一套计算程序,它利用飞行条件和飞行器气动外形来估计飞行器气动稳定性和控制特性。Digital Datcom沿袭了美国空军Stability and Control Datcom的方法。航空航天工具箱提供了一个用于从Digital Datcom中导出文件到Matlab中的函数,这个函数支持从静态和动态分析中收集气动系数,并将它们以结构体元胞数组的形式存储在Matlab中,其中每一个结构体都包含Digital Datcom输出文件的信息。

从两个Digital Datcom输出文件astdatcom1.out, astdatcom2.out中将气动系数导入到Matlab中。系数以1×2结构体元胞数组形式导入,可以在Matlab Array Editor中察看,左

图中表示为5个攻角、2个Mach数、2个高度数据。

FlightGear模拟器接口

与FlightGear模拟器的接口可以将飞行器运动在已有的成熟三维仿真环境中显示出来。用户可以在FlightGear中回放飞行测试数据,并快速复现飞行测试结果中的异常现象。航空航天工具箱提供了一系列函数,这些函数通过使用Matlab中双精度类型的经度、纬度、高度、滚转、俯仰和偏航数据控制FlightGear模拟器中飞行器的位置和姿态。

Simulink®

——基于模型的设计、仿真工具

Simulink是用来建模、分析和仿真各种动态系统的交互环境,包括连续系统,离散系统和混合系统。Simulink提供了采用鼠标拖放的方法建立系统框图模型的图形交互平台。通过Simulink提供的丰富的功能块,可以迅速地创建动态系统模型。同时Simulink还集成了Stateflow,用来建模、仿真复杂事件驱动系统的逻辑行为。另外,Simulink也是实时代码生成工具Real-Time Workshop的支持平台。 特点

        

丰富的可扩充的预定义模块库; 交互式的图形编辑器; 模型分割实现复杂模型的管理;

通过Model Explorer 导航、配置、搜索模型中的任意信号、参数、属性; 支持M语言和C语言方式的功能模块扩展; 进行系统交互式或批处理式仿真; 支持交互式定义输入和浏览输出; 图形化调试工具检查和诊断模型行为;

通过MATLAB进行数据分析和可视化数据,开发图形用户界面,以及创建模型数据、参数;

 提供模型分析和诊断工具。

Model Explorer工具

强大功能

基于模型的系统设计

Simulink是层次化建模工具,数据管理工具,定制子系统工具。无论工程师的系统有多复杂,都可以轻松完成简明精确的模型描述。Simulink包括超过一千个模块以实现对构建系统常用的应用函数的描述。它们包括:

     

连续、离散动态系统模块。例如:积分和单位延迟模块 算法模块。例如:加法、乘法和查表模块

结构模块。例如:mux, switch 和信号和总线选择

特定领域的应用。例如:航空航天,通讯,信号处理,机械,电力…… 采用MATLAB,FORTRAN、Ada和C代码生成自定义模块

基于模型和单个模块的完善的CallBack机制,允许用户对模型的仿真过程进行定制 

Simulink模型中可以包括用M语言写的模块,并且支持代码生成

模型的组织

   

Simulink通过信号及子系统打包模块达到模型层次化管理的目的 Simulink支持模型功能分解 Simulink支持模型分割

Simulink模型支持版本管理以及需求管理

在Simulink模型中使用模型引用

模型信号和参数的管理

Simulink允许定义和控制模型的信号、参数。用户可以定义如下的信号、参数属性:

 数据类型——单精度浮点,双精度浮点, 8,16或32位整型(有符号或无符号);定点数据和布尔数据

   

维数——标量,矢量,矩阵 实复数特性——实数、虚数或复数 数值范围和单位

采样类型——基于采样、基于帧

使用Simulink 数据对象,用户可以定义总线信号、数据结构以及用户自定义的数据类型。用户可以通过局部工作空间限制定义的数据属性的仅适用于模型的特定部分。数据对象通过M语言脚本或在Model Explorer的数据字典中配置。

调试系统仿真

 

用户可以通过MATLAB命令行形式批量仿真

Simulink Debugger工具是一个交互式的调试Simulink 模型的工具。该工具可以设置断点,控制仿真的执行,显示模型的运行信息。

Simulink Debugger工具

分析结果

Simulink提供了诸多工具用来分析模型,测试验证系统,可视化结果以及模型的文档生成。

 可视化结果

用户可以通过Simulink提供的Display模块和Scopes模块观察信号;也可以通过MATLAB可视化函数和GUI开发工具搭建定制的显示模块;还可以把这些信号信息记录起来留待以后处理。为了对动态系统复杂的3-D运动获得深层次的认识,用户可以结合虚拟现实模块(Virtual Reality Blocksets)进行可视化。

 测试验证模型

o S

imu

link包括了用于创建仿真测试用例的模块

o Singal Builder block模块通过图形方式创建方波来测试模型

o 使用Singal&Scope Manager工具,用户可以在不增加模块的前提下插入

信号到模型中

o Simulink还提供各种模型验证模块来验证模块的信号输出是否符合设计需求

o 模型、测试用例以及验证模块可以实现需求跟踪

模型的文档生成

o 添加文档到Simulink模型非常容易。注释可以直接加到模型中,描述也可以

以每个模块的属性的形式添加。

o 通过DocBlock模块可以包括一个text文件作为模型中的一个模块。 o Simulink提供了打印能力。通过一个命令,就可以打印描述了全部模型信息

的文档。

o 通过使用Simulink Report Generator可以创建定制化的报告,以满足特

定文档标准的要求。

自动代码生成

Simulink模型可以通过Real-Time Workshop生成实时的标准C代码,用于半物理仿真,快速原型和产品代码。使得用户可以完成从系统级仿真到工程实现的无缝过渡。

Simulink针对雷达系统进行建模仿真

Simulink Control Design

—— 用于在控制系统设计中进行线性分析

Simulink Control Design提供了对非线性模型进行线性分析的能力。利用该工具可以提取近似的线性模型,用于时域响应、频域响应以及零极点等动态特性分析。从而降低了开发线性模型上所需的时间和复杂度。

Simulink Control Design提供了系统化的方法来设计控制器,这种方法综合考虑了航空航天、汽车、工业设备、电子和工业过程领域问题的复杂性和动态特性。 特点

    

能够自动整定PID控制器的参数

计算和管理工作点(配平)和模型的线性化 计算模型的频域响应

提供图形用户界面方式进行任意控制系统的整定

可以对补偿器进行数值优化来达到系统时域和频域的要求(借助Simulink Design Opitmization模块)

 

支持命令行操作,可以编写线性化脚本文件或者执行线性化批处理文件 提供linearization inspector,用来逐个模块地检查线性化结果

强大功能

Control and Estimation Tools Manager (Simulink Control Design的GUI)可用于管理、执行线性分析过程。使用Control and Estimation Tools Manager,可以:

  

确定和计算工作点 选择模型的输入输出节点 线性化模型

 

校验和分析线性化结果 设计控制系统

自动整定PID控制器参数

利用Simulink Control Design可以自动整定PID控制器的参数(包括比例系统、积分系数以及微分系数);

可以指定期望的带宽和相位裕度来调节PID控制器的参数;

可以利用提供的GUI界面进行交互式的调节系统的响应时间,GUI界面提供了阶跃响应、BODE图等图形来方便分析控制器的性能。

确定和计算平衡点

Simulink Control Design提供了以下几种方法用于确定模型的平衡点:

    

利用梯度搜索和直接搜索优化算法从用户自定义的起始点处计算稳态工作点; 在模型仿真过程中在指定时间或事件处提取工作点;

从MATLAB工作空间、文件或其它的线性化工程文件中输入工作点; 指定已知的工作点;

当使用单独提供的优化工具箱后,还可以调用非线性最小二乘优化算法

选择模型的输入输出节点

利用Simulink Control Design,可以通过在模块的输出端插入I/O节点来定义需要线性化的模型的输入和输出位置。通过放置I/O节点位置的不同,可以对整个模型、部分模型或模型中的子系统求取线性化。利用Control and Estimation Tools Manager,可以观察和配置I/O节点;

另外,在模型中插入I/O节点,还可以在不修改模型(打断信号线,将系统作开环处理)的基础上,对闭环系统计算其开环响应。

线性化模型

Simulink Control Design允许用户对连续系统、离散系统、混合系统以及多速率系统进行线性化。可以通过下列步骤控制线性化过程:

       

选择分组工作点,以确定在哪些位置进行模型的线性化; 对模块、子系统进行线性化或计算开环被控对象模型; 指定解析法或小扰动法进行线性化;

对那些难于线性化的模块进行各个选项的配置; 对那些未作选项配置的模块,指定扰动阶次; 自动辨识那些对线性化模型无影响的模块; 指定线性化模型的状态个数 自动生成代码

校验和分析线性化结果

       

可以使用SISOTOOL工具设计: 可以观察参数改变时对系统的影响; 图形化的方式整定多重、连续或者 离散的SISO回路;

可以对补偿器进行数值优化来达到 系统时、频域的性能指标;

可以直接调节模块参数,如PID参数、零极点增益以及封装模块;

可以将整定好的控制器参数写回Simulink模型,方便检验整个非线性系统的控制性能使用系统级的设计算法(如鲁棒响应PID参数整定、Ziegler-Nichols PID参数整定、IMC以及LQG算法)来进行补偿器的计算;

输出和保存结果

Simulink Control Design允许将线性化模型和工作点输出和保存到MATLAB工作空间以便进行其它分析。用户可以利用线性化模型,结合控制系统工具箱及其它的控制系统设计工具进行控制器的设计。可以将控制器与原系统(未经线性化的系统)结合以检验控制器的性能。

Simulink Design Optimization

——估计和优化Simulink模型参数

Simulink Design Optimization通过数值优化的方法估计和优化模型参数,使用测试数据校准物理参数,比如质量、电阻等,提高模型的精度,从而提高系统的性能,减少设计成本,通过自动调节模型参数达到设计目标。例如,优化控制器增益,以达到所要求的上升时间和超调

量,或优化关联的物理和算法参数,最大化整个系统的性能。

主要特点

     

从测试数据估计物理参数

测试数据预处理工具,包括数据选择,消除漂移量,校正,噪声滤波和缺失数据复现 非线性Simulink模型时域响应的优化

线性控制系统时域和频域响应的优化(连同Control System Toolbox) 能够图形化指定响应要求,并能可视化监控优化的过程 能够为鲁棒设计优化考虑参数的变化和不确定性

强大功能

使用Simulink Design Optimization

使用Simulink Design Optimization能够利用测试数据校准模型参数,使其达到设计需求。Simulink Design Optimization使用控制和估计工具管理界面可以配置、操作和运行Simulink优化问题,能够直接与包括非线性因素、多采样速率或是定点计算的Simulink模型协

同工作,支持使用Simulink任一模块或是附加产品的模型。

Simulink Design Optimization能够同时优化多个模型参数。这些参数可以是在MATL

AB或模型工作空间中定义的标量、矢量、矩阵或是结构体变量的字段。

Simulink Design Optimization采用各种优化算法:梯度下降法、非线性最小二乘法、单纯形搜索法以及模式搜索法(连同Genetic Algorithm and Direct Search Toolbox)。通过调节优化算法设置,如收敛误差和迭代次数,调整优化的性能。Simulink Design Optimization协同Parallel Computing Toolbox(并行计算工具箱)可以加快优化的过程。

使用测试数据校准模型参数

Simulink Design Optimization可以通过以下三步利用测试数据校准模型参数:

  

导入和预处理数据 估计参数

比较和验证估计值

导入和预处理数据

Simulink Design Optimization使用从实际硬件测量而来的输入输出数据来估计和验证Simulink模型参数。它支持多种类型数据文件的导入,包括MATLAB基本类型, Microsoft Excel,ASCII 和CSV文件格式等。测量数据常常会包括漂移、越界值、周期性丢数以及其它不规则量等。Simulink Design Optimization支持对测量数据进行预处理以消除这些误差

量。预处理通过以下方式进行:

   

消除数据中的漂移和偏差

用滤波消除数据中的噪声和带限干扰 用插值方法填补缺失的数据

设置剔除规则消除数据组中有问题的数据片断

估计参数

对每一次参数估计任务,Simulink Design Optimization都允许用户选择特定的数据组来估计特定的模型参数组合和状态变量。用户可以使用前次计算所得的参数值作为初始值在后续

的估计中微调参数,或是设置估计参数的范围。

除了估计模型参数,Simulink Design Optimization提供估计静态查表模块和Simulink模块的功能实现自适应查表。通过对Simulink模型进行编译,并使用合适的目标平台,例如

xPC Target,用户可将自己的自适应查表直接与真实系统相衔接

估计参数的比较和验证

Simulink Design Optimization可以生成估计结果的对照图形曲线以帮助用户确认哪些参数最恰当的描述了模型的行为。绘图曲线中还包括参数敏感度视图,测量值与仿真模型输出的

比较以及残差。

验证还涉及模型输出与一个独立测试数据组的比较,以确定模型校正是否准确描述了系统的动态行为。Simulink Design Optimization还支持用户进行多个模型的输出和验证数据组

的比较以选择最优估计和参数组。

达到设计需求

使用Simulink Design Optimization能够调节非线性Simulink模型参数达到时域要

求,也能够优化线性系统补偿器以满足时域和频域的要求。

调节Simulink模型参数使其达到时域要求

Simulink Design Optimization能够自动调节Simulink模型参数使其达到时域要求。用户能够优化任何的设计标准,通过将其表述为一个Simulink的信号连接到由Simulink Design Optimization提供的信号约束模块的方法。信号约束模块通过图形化表述响应要求或是指定参考信号轨迹的方法约束信号,然后可以调节所选择的模型参数以满足约束。信号约束模块的界面在优化时可以不断更新,使用户能够可视化监控优化的过程,并且用户可以使用多个信号约

束模块同时优化多个设计标准。

优化补偿器达到时域和频域设计要求

线性补偿器设计通常要在稳定性、鲁棒性和性能之间取得折中。在使用Control System Toolbox 和Simulink Control Design设计补偿器时Simulink Design Optimization能够

帮助用户考虑这些折中因素。

用户可以指定各种时域和频域要求以优化控制器性能。典型的要求包括增益裕度、幅值裕度、阻尼比、最小带宽、高频衰减以及阶跃或脉冲响应的各种约束。用户能够优化补偿器的零极点和增益值,能够直接在Simulink中调节对应模块的参数。在优化过程中当前响应和设计需求

之间的对比图可以帮助用户监控优化过程。

指定模型的不确定性参数

Simulink Design Optimization能够帮助用户针对模型参数中的不确定性进行鲁棒性测试。用户可以使用蒙特卡洛或定格仿真提高包含不确定参数的设计的鲁棒性。Simulink Desig

n Optimization同时允许用户为模型中的每一个不确定性参数设置边界值。

Simulink Coder

——从Simulink和Stateflow模型生成C和C++代码

Simulink Code(之前版本为 Real-Time Workshop)从 Simulink框图、Stateflow图和 MATLAB函数生成并执行 C和C++代码。生成的代码可用于实时和非实时应用,包括仿真加速、快速原型建立和硬件在回路测试。可以使用 Simulink 对生成的代码进行调优和监测,或在 MATLAB和 Simulink之外运行代码并与之交互。

特点

离散、连续或混合 Simulink 和 Stateflow 模型的 ANSI/ISO C 和 C++ 代码及可执行文件

用于大型模型的增量代码生成 支持整型、浮点型和定点型数据类型

针对单采样率、多采样率和异步模型的代码生成 使用或不使用 RTOS 的单任务、多任务和多核代码执行

用于参数调优和信号监测的外部模式仿真

强大的功能

■ 选择和使用目标

Simulink 模型资源管理器在 Simulink 中提供了单一用户界面,用于配置所有代码生成设置。模型资源管理器可提供:

  

 选择代码生成目标  配置目标以进行代码生成  为模型或子系统生成代码

Code Generation Advisor 会检查模型和代码生成设置,然后根据需求针对如何改进配置提供建议。 一旦为项目确定了最优设置之后,便可以将这些设置保存为配置集以重复用于其他模型。

使用 Simulink 建模的大型飞机系统。 Simulink Coder 支持用于大规模建模的高级 Simul

ink 功能,包括模型块、变量子系统和总线数组。

◆ 选择目标:

Simulink Coder 使用系统目标文件将模型转换为源代码和可执行文件。 目标文件指定生成的代码将要在其中运行的环境。 Simulink Coder 包括若干个准备好运行的配置的目标文件,还支持第三方目标和自定义目标。 内置目标包括:

  一般实时目标——生成用于模型参数交互式调优的代码,记录和显示实时仿真结果并静态分配数据为进行高效的实时执行;

  一般实时 Malloc 目标——在生成的代码中使用动态内存分配,以便在一个可执行文件中包含同一模型的多个实例或包含多个模型;

  快速仿真目标 (RSim)——提供快速灵活的测试平台用于使用定步长或变步长求解器执行批量或 Monte Carlo 仿真研究,并使您可以将每次运行的数据保存到唯一的输出文件中。

可以扩展这些目标以创建自定义的运行时接口和设备驱动程序文件,从而能以特定环境为目标,访问 Simulink Coder 的执行并调试其中的功能。

■ 编译和执行生成的代码

Simulink Coder为使用常用桌面环境编译和执行生成的代码提供内置支持,包括:

   

 Eclipse™ IDE

 Microsoft® Visual C++® IDE  Linux® 操作系统  Windows® 操作系统

可以使用 Embedded Coder 在实时嵌入式系统中生成和运用优化的 C 和 C++ 代码。

■ 定义和控制数据

Simulink Coder 允许用户定义和控制模型数据在所生成代码中的出现方式。 可通过以下方式管理数据:

   

 将数据类型声明为整型、浮点型和定点型  指定调优和校准参数或常数的存储区  指定监测和记录信号数据的存储区  重复使用存储区以最小化局部范围的数据

Simulink Coder 从存储在 Simulink 框图或数据字典(通过 Simulink 模型资源管理器访问)中的数据生成代码。 通过利用不同的数据字典集,可以将代码从一个模型重新运用到多个目标。

Simulink 模型资源管理器可显示模型中使用的各种数据类型和存储类。

注意存储类要求Embedded Coder。

■ 生成代码

Simulink Coder 为 Simulink 和 Stateflow 功能和组件提供了全面的代码生成支持,包括:

   

 模型块用于增量生成代码

 原子子系统和原子子图表,用于通过可重入 C 函数的重用代码  在代码中,总线对象和总线数组用于生成结构  S-函数,用于对已有代码进行仿真和对接

Simulink 中的 MATLAB 函数块和 Stateflow 中的 MATLAB 函数,用于从具有 MAT

LAB 组件的模型生成代码

Simulink Coder 还支持 Simulink 系列产品,包括定点建模、物理建模、信号处理和通信建模以及快速原型建立和硬件在回路 (HIL) 测试产品。

◆ 代码生成选项:

Simulink Coder 提供了用户可选择的选项,以便在桌面和仿真环境中执行生成的代码。选项包括:

     

 代码重用  表达式折叠  信号存储区重用  死路径消除  参数内联

 单精度和预制数学库(包括 ISO C 和 GNU C)

生成的代码,其中将 For 循环融合和表达式折叠用于一个 10 元素数组模型。

Simulink Coder 为单维和多维信号生成高效且可读的代码。

■ 在实时环境中执行代码

Simulink Coder 提供了实时执行生成的代码并将其合并到用户执行环境中的完整框架。

它根据用户在模型中指定的周期采样次数生成单采样率或多采样率代码。

◆ 执行模式:

在单任务、多任务或异步模式下部署代码,可使用或不使用 RTOS。

◆ 单任务模式

在单任务模式下,简单的调度程序以单线程执行来调用生成的代码,防止不同速率之间的抢占。

◆ 多任务模式

在多任务模式下,通过确定性单调速率调度程序调用生成的代码,允许不同速率之间的抢占。在裸机环境中以嵌套中断来抢占代码。在 RTOS 环境中则使用任务优先级和任务抢占。

◆ 异步模式

在异步模式下,使用 Simulink S-函数指定非周期性采样率或异步采样率。 Simulink Coder 将这些采样率转换为用户执行环境所需的代码。 用户为硬件中断之类的事件建模并生成代码,然后作为独立的任务触发各子系统。 可以使用所含的异步块库作为模板,以创建适用于其他环境的库。

◆ 实时部署

Simulink 和 Simulink Coder 为实时部署提供了一整套独立于目标的功能。其中包括:

  

 可以为模型中的每个采样率指定的任务优先级

 产品级质量计数器以及计算绝对时间和实耗时间的计时器

 采样率转移块,用于指定各采样率之间的数据传输机制(例如信号量、互斥和双缓冲),从而使您可以权衡数据完整性、确定性和性能

  对合并每种采样率的错误处理逻辑进行超限检测

◆ 继承代码集成

通过合并已有的用于仿真和代码生成的自定义 C、Fortran、Ada 和 C++ 代码,可以自定义生成的代码及其运行时环境。 Simulink Coder 中的自定义工具包括目标语言编译器 (TLC)、自定义代码块、模板联编文件 (makefile)、构建过程 API 和 S-函数生成器。 使用代码继承工具 (Legacy Code Tool),可以快速地将现有 C 和 C++ 函数集成到 Simulink 模块中,这对于集成通常用于嵌入式系统的离散时间代码特别有用。

■ 调优参数和记录数据

Simulink Coder 使用户可以与生成的可执行文件交互并进行分析,从而帮助用户优化算法的性能并改进代码执行行为。

通过 Simulink Coder 可以使用下列数据接口来监测和调优模块信号及参数:

  基于目标的 C API——允许用户编写的代码访问 MATLAB 和 Simulink 外部的模块输出和参数;

  基于主机的 ASAP2 数据交换文件——允许将 ASAP2 标准数据描述用于 MATLAB 和 Simulink 外部的数据测量、校准和诊断系统;

  Simulink 外部模式——允许下载新的参数值和上传信号值,以便在 Simulink 内部查看或在 MATLAB 工作空间中进行记录。(打开源模块的对话框会造成 Simulink 暂停。尽管 Simulink 已暂停,但仍可编辑参数值。 必须关闭该对话框才能使更改生效并使 Simulink 继续运行。)

Embedded Coder

——为嵌入式系统生成优化的C/C++代码

Embedded coder可为嵌入式处理器、目标上的快速原型及产品中使用的微处理器生成可读的、集成的、高效的C/C++代码。Embedded coder扩展了Matlab coder和Simulink coder配置选项和优化设置,来更好的控制生成代码的函数、文件和数据。这些优化设置提高了代码的执行效率,并能够集成产品应用时的外部代码、数据类型及标定参数。还可以将第三

方开发环境集成到为嵌入式系统生成可执行文件的build过程中。

Embedded coder本身提供对AUTOSAR和ASAP2软件标准的支持。同时也提供可追溯性报告、代码接口文件和自动化的软件测试来支持DO-178B,IEC61508和ISO26262的

软件开发。

特点:

    

 扩展了Matlab coder和Simulink coder的优化和代码生成配置选项。  具有使用Simulink数据字典进行存储类型、数据类型和别名定义的能力。  针对具体目标平台的代码优化。

 无论有无RTOS的多速率、多任务和多核的代码执行。

 代码验证,包含SIL/PIL测试,自定义注释,具有模型和需求到代码双向追踪的代码报告。

  集成Texas Instruments Code Composer Studio™, Analog Devices™ VisualDSP++®及其它的第三方嵌入式开发环境。

  对标准的支持,包含ASAP2, AUTOSAR, DO-178, IEC 61508, ISO 26262, and MISRA C。

一个生成代码的定点模型和它的设置为SIL执行的仿真模型。

Embedded Coder可进行产品级的嵌入式系统代码快速生成、归档和测试。

强大的功能

■ 配置目标平台

可使用Matlab Coder的工程用户界面及Simulink Model Explore来设置Embedded Coder的代码生成的配置选项。也可以直接使用Matlab命令和脚本的形式对每个选项进行设

置。

从Matlab Coder的工程用户界面,可进行:

   

 为MATLAB文件和函数生成代码。  选择使用Embedded Coder特性。  为代码生成配置功臣设置选项。  创建、加载和重用多个工程。

从Simulink Model Explore,可进行:

   

 为Simulink模型和子系统生成代码。  选择一个Embedded Coder目标。  为代码生成进行目标配置。  创建、加载和重用多个配置集。

■ 选择目标

Embedded Coder使用配置对象和系统目标文件将MATLAB代码和Simulink模型转换

为产品级的源代码和可执行文件。

对于一个MATLAB配置对象,需要说明如下的输出目标:

  

 MEX文件  C/C++静态库  C/C++可执行文件

对于Simulink系统目标文件,需要说明生成的代码即将运行在哪种实时环境中。

Embedded Coder包含多种配置的目标文件,也支持第三方和自定义目标。内置的目标

包括:

  Embedded Real-Time目标:为任意的产品级处理器生成具有定点和浮点数据的ANSI/ISO C,C++代码,可进行高效的实时运行。

 

 AUTOSAR 目标:生成支持AUTOSAR软件组件的C代码和实时运行接口。  共享库目标:生成可在主机目标平台上运行的静态库,如windows的动态链接库(.dll),UNIX共享目标文件(.so)。

  IDE LINK目标:生成支持第三方集成开发环境编译和下载的代码,如(CCS)。

■ 定义嵌入式硬件特性

可从预定义的列表或者使用目标设置为MATLAB或者SIMULINK代码生成选择目标平台。

可通过自定义环境来扩展这个预定义的列表。

可通过Simulink Model Explore为代码部署设置预定义列表或者设置生成的微处理器选项。 Embedded Coder可为任意的微处理器或者DSP生成代码,包括8位,16位,32位。

■ 定义及控制自定义数据

Embedded Coder可以定义及控制生成代码中的数据格式。为了便于软件集成,可以通过MATLAB Coder工程用户界面说明入口函数和全局数据的类型、长度及是否是复数。

对于MATLAB代码,Embedded Coder支持所有的MATLAB Coder的数据定义,包括

定点数据对象。

对于Simulink模型,Embedded Coder生成代码支持如下的数据说明及数据字典定义:

  Simulink data object—提供预定义存储类型,包括constant,volatile,exported global,imported global,structure,bit fileld及获取和设置的方法。

  Module packaging data object—为高级的数据对象提供预定义的特性,主要用于多种产品,如内存分配来进行标定或者调节查表数据。

  User data type-从复杂的数据中创建抽象的数据类型,可精确控制生成代码中的模型数据,可与legacy data进行交互,同时也可替代simulink内置的数据类型。

如下的工具将有助于在simulink中设计和管理工程数据:

  Custom Storage Class Designer-通过图形化的界面创建自定义的数据定义和声明,将数据结构导入到生成的代码中,或者是导出数据,分配内存,将自动生成与交换标准如ASAM或者ASAP2兼容的数据格式。

  Simulink Model Explore—显示simulink模型和stateflow图中所有用到的数据,可以以数据字典的格式查看所有自定义数据的信息。

  Embedded Coder可以创建ASAP2的数据交换文件,能够使用ASAP2标准导出具有复杂数据定义的模型数据。可修改内置的属性生成其它的数据交换机制文件。

通过Custom Storage Class Designer创建自定义的存储类型,可使用内置图形用户界面进

行设计、查看及验证复杂数据类型。

■ 优化及打包代码

使用Embedded Coder,可控制函数边界、保留表达式,对多个模块使用优化选项以减少代码量。数据通过全局变量或者函数参数的形式与生成的代码进行交换。可将生成的代码追溯

到模型中的模块和信号。

从MATLAB代码和Simulink模型生成代码,Embedded Coder选项可进行:

   

 为数学函数和操作符生成具体目标平台的代码。  生成导出到外部环境的可重用代码。

 减少不必要的初始化、终止、记录和错误处理的代码。  从整形应用中去除浮点型代码。

Embedded Coder还为simulink模型提供额外的代码优化和配置选项,可进行:

从模型中生成具有处理器编译宏定义的代码变量。

按位存储布尔型数据和stateflow状态。

  

 可控制每个生成文件的格式。

 控制全局变量数据是如何定义和引用的。  对注释的内容和放置位置进行说明。

具有具体目标平台的数学扩展函数和重用函数优化选项的MATLAB例子和Simulink例子。 Embedded Coder使用具体目标平台和可移植的代码优化选项来提高代码的执行效率。

■ 注释、追溯及记录代码

Embedded Coder提供多种方式来检查从MATLAB文件和函数或者Simulink模型和子

系统生成的代码。使用这些方式,可进行:

  

 生成代码生成报告,来描述模型和模块的配置选项。  控制生成代码中全局数据,数据烈性和函数的标识符。

 在生成的代码中可将MATLAB代码作为注释,包含函数帮助文档。

Embedded Coder也可将高级需求作为代码注释插入到代码中,与需求文档可进行链接(需要Simulink Verification and Validation)。代码生成报告也包含代码接口描述文件,追溯性报告及可显示生成的源文件和代码。模型和代码间存在双向的链接,可以方便的在每行代码和相关的simulink模型间进行定位,包含子系统、模块、MATLAB函数和代码及Stateflow

状态图和转换。可点击一个链接以高亮显示相关的模型元素或者代码行,更加方便代码检查和调

试。

Simulink代码生成报告,高亮现实算法和代码间的双向追踪。

■ 执行和验证代码

Embedded Coder可将生成的代码与代码执行环境进行集成,Embedded Coder对MA

TLAB生成的代码的执行与使用MATLAB Coder生成的代码具有相同的执行框架。

对于Simulink,Embedded Coder扩展了Simulink Coder提供的实时执行的框架。默认情况下,代码可在具有或者没有实时操作系统、单任务多任务或者异步模式下执行。也可以使

用软件在环(SIL)和处理器在环(PIL)的方式验证代码执行的结果。

◆ 生成主程序

Embedded Coder按照所提供的实时环境代码部署信息生成一个可扩展的主程序。这种

特性可为模型生成和创建一个完整的自定义可执行文件。

◆ 速率分组

Embedded Coder按照模型中的采样时间设置生成单速率或者多速率代码。对于多速率

多任务模型,按照速率分组为每个速率任务生成独立的函数。

◆ 使用链接和目标

第三方IDE、微处理器及RTOS包括Wind River Systems® VxWorks支持生成代码

的自动下载、集成、优化和执行。

◆ SIL和PIL测试

Embedded Coder可在simulink中使用simulink仿真模型或者s-function模块自动执行生成代码进行SIL测试,或者在嵌入式目标平台上进行PIL测试。代码生成测试API可帮助自动测试的执行,并与之前的模型比较测试结果。与第三方工具的集成可进行代码结构覆盖度分

析来确保测试的完整性。

Simulink HDL Coder

—— 将Simulink模型和MATLAB代码生成可综合的HDL代码

Simulink HDL Coder可以把Simulink模型、MATLAB代码和Stateflow框图生成位真(bit-true)、周期精确(cycle-accurate)、可综合的Verilog和VHDL代码。通过使用工业标准化设计工具,可以对自动生成的HDL代码进行仿真和综合,并进一步映射到FPGA和ASIC芯片上。

Simulink HDL Coder可以控制HDL的体系架构和实施,突出模型中的关键路径,生成硬件资源利用评估。Simulink HDL Code还能够生成测试验证平台以及EDA Simulator Link的仿真模型,并提供支持DO-254工作流的代码跟踪能力,从而对生成的HDL代码进行快速验证。 特点:

 将Simulink模型、MATLAB代码和Stateflow框图生成独立于目标器件、可综合的HDL代码;

     

支持Mealy / Moore有限状态机以及控制逻辑的实现; 生成测试验证平台和EDA Simulator Link协同仿真模型; 资源共享和子系统级重定时,以实现面积与速度的权衡;

利用时间约束信息和HDL合成工具箱进行Simulink模型的优化; 支持DO-254规范从代码到模型,模型到代码的跟踪能力; 遗产代码集成;

将Simulink模型生成HDL代码;Simulink HDL Coder能够为系统建模,自动生成位真、周期精确(cycle-accurate)、可综合的Verilog和VHDL代码,以及测试平台。

使用Simulink HDL Coder

从建模到FPGA和ASIC的实现,Simulink HDL Coder能够使得算法设计过程自动化,步骤如下:

  

配置参数,以选择实现不同的HDL模块 优化模型以达到面积与速度的设计指标

利用HDL Workflow Advisor或者Configuration Parameters GUI生成HDL代码

 根据测试平台验证生成的代码,并自动生成协同仿真模型

通过使用Simulink HDL Coder,用户可以首先在Simulink、MATLAB和Stateflow中

构建系统模型,然后对模型进行HDL代码的生成。Simulink提供了160多个模块供用户选择,来进行信号处理和通信的算法建模。例如,可以使用Viterbi译码器或者Reed-Solomon译码器来建立通信接收端模型,并生产HDL代码。同样,可以使用信号处理FFT函数和滤波算法,如CIC插值法、FIR插值法,以及抽取滤波器等。

Simulink中的Embedded MATLAB功能模块可以将MATLAB代码生成HDL代码。Simulink HDL Coder提供了一个现有的通用逻辑单元库,如可以写入MALAB代码中的计数器和定时器等。用户还可以在Stateflow中建立有限状态机(FSM)模型,并且通过黑箱接口将手写代码或者HDL遗产代码与Simulink模型合成为一体。

用户创建好模型之后, 通过HDL Work Advisor或者Configuration Parameters GUI,并应用代码生成控制文件来生成HDL代码。

通过Configuration Parameters GUI设置代码生成选项并生成Verilog及VHDL Code

Simulink HDL Coder与EDA仿真器共同生成协同仿真测试平台模型,并由HDL仿真器进行配置,包括Cadence Incisive,Mentor Graphics ModelSim和Synopsys Discovery。除此之外,还可以生成HDL测试平台和脚本文件,从而在仿真环境中进行独立的测试验证。

优化设计

面积与速度权衡的资源利用报告

Simulink HDL Coder使得用户可以通过模型的模块和子系统来控制HDL代码的体系结构。例如,将分布式流水线、连续数据流以及资源共享应用到子系统、Stateflow框图和Embedded MATLAB功能模块,在实现FPGA和ASIC时获得速度与面积的权衡。用户还可以实现多通道设计和序列化技术,这些技术通常用于信号处理和多媒体应用程序当中。

资源优化举例。数据速率提高4倍,使得设计面积减少为原来的1/4

文档记录及代码跟踪

Simulink HDL Coder帮助用户对生成的代码进行验证,具体如下:

 

用户自定义注释及描述,增强代码可读性 模型到代码,以及代码到模型的双向可跟踪性

 生成的代码中包含需求,且符合DO-254标准

模型与代码之间的相互跟踪。Simulink HDL Coder促进DO-254标准的符合以及对所做设计的检验和确认

Simulink HDL Coder以HTML报告的形式记录生成的代码,报告中全面描述了代码的模型结构以及在HDL代码生成过程中应用的模型优化设置。报告中包含与Simulink模型直接相关的摘要和生成的源文件列表。在MATLAB Help浏览器中选择一个源文件使得模型中相应的模块突出显示,方便对相应的代码跟踪和回顾。用户还能够对Simulink模块,Stateflow状态及转移,Embedded MATLAB突触显示HDL代码,以实现代码和模型之间的双向跟踪。使用Simulink Verification and Validation时,Simulink HDL Code将系统需求作为注释嵌入到HDL代码中。因此,从系统需求到HDL代码实现,用户可以对整个流程完整地把握。

协同仿真及测试平台生成

Simulink HDL Coder生成VHDL和Verilog测试平台,对生成的HDL代码快速验证。用户能够通过若干选项来激励HDL代码,从而实现自定义HDL测试平台。还能够生成脚本文件,使得在HDL仿真器中,代码编译和仿真过程自动化。

Simulink HDL Coder与EDA仿真器共同生成协同仿真模型。为实现Simulink仿真及

协同仿真,由HDL仿真器对自动生成的模型进行配置,如Cadence Incisive,Mentor Graphics ModelSim和Synopsys Discovery等。

利用Simulink HDL Coder自动生成协同仿真模型(左下)和HDL(右上)测试平台

FPGA自动化设计

Simulink HDL Coder下的FPGA设计流程。将HDL Workflow Advisor与第三方合成工具,如Xilinx ISE和Altera Quartus共同使用,以实现迭代次数的快速设计。

Simulink HDL Coder使得用户快速地将Simulink模型应用到Xilinx和Altera FPGA中。HDL Workflow Advisor支持FPGA设计过程的全部阶段,包括:

    

检测Simulink模型对HDL代码生成的兼容性 生成RTL代码,RTL测试平台,以及协同仿真模型

在与Xilinx ISE和Altera Quartus II的集成过程中进行综合时序分析 根据为达到设计指标所作出的模型修改,提供资源利用评估报告和指导 根据关键路径信息,对Simulink模型后端注释

HDL Workflow Advisor支持在Simulink环境中进行FPGA设计过程的全部阶段

用户可以查看到综合时序分析报告,并对Simulink模型后端注释以鉴别时序限制瓶颈。与合成工具的综合使用,为迭代次数快速设计提供了途径,并且使得FPGA的设计流程时间显著减少。

Simulink中合成前期和后期时序信息的关键路径突出显示。能够快速迭代设计,以规避时序限制瓶颈。

Simulink HDL Coder能够生成可读的,独立于目标机的HDL代码,并且支持遗产代码集成。因此,用户能够根据设计需求在FPGA和ASIC的实现之间快速转换。

Simulink Verification and Validation

——检查模型与生成的代码

Simulink Verification and Validation可以自动实现需求跟踪、建模标准规范检查以及测试框架生成。

用户可以创建详细的需求跟踪报告,定义适合自己建模风格的模型检查规则以及配置团队间共享的检查规则。需求文档可以链接到模型、测试用例以及生成的代码。还可以在完整的系统

实现以前生成模型框架用于部件模型以及代码的测试。从而,用户可以在早期的研究程序中将需求和用户设计及测试用例进行关联来设计流程,同时在模型级别进行测试和生成代码,通过模型覆盖率和建模标准检验来验证你的设计和测试,从而将不适当的需求,不完全的测试和不必要的设计结构暴露出来。

Simulink Verification and Validation支持DO-178B标准和IEC 61508工业标准的建模标准检查。其它的支持可以通过DO Qualification Kit和IEC Certification Kit得到。 特点

     

提供遵从MAAB、DO-178B和IEC 61508规范的检查; 利用Model Advisor配置编辑器,还可以自定义检查规则;

利用需求管理接口可以将需求与模型、代码以及测试用例进行相互跟踪; 可以对子系统自动生成测试框架

通过仿真、软件在环(SIL)以及处理器在环(PIL)进行部件测试;

可编程的脚本文件接口可以进行自动模型规范检查、需求跟踪分析以及部件测试。

通过Simulink Verification and Validation工具箱对需求跟踪、建模标准检查、部件测试以及模型覆盖度的分析以及报告生成。

强大功能

需求管理接口创建了外部文档与Simulink模块之间的链接关系。这些链接可以用于需求的检查、设计的检查、跟踪分析以及项目文档。使用需求管理接口,可以进行:

   

将Simulink和Stateflow对象与需求进行关联; 从Simulink或者Stateflow对象到需求的相互导航; 使用高亮和定义的标签功能来辅助检查需求链接;

可以为Simulink模型创建报告,该报告可以表达出哪些模块对应哪条需求。

Simulink Verification and Validation也提供了便于检查建模规范的库。这些检查可以很容易的进行配置,用于MAAB、DO-178B和IEC 61508规范的检查。使用Model Advisor可以进行:

   

运行建模规范检查来验证模型或者部件是否遵从建模规范的要求; 创建并共享检查规范;

使用命令行API函数自动运行检查规范; 自定义新的检查规范。

Simulink Verification and Validation提供的部件测试函数可以生成框架模型以及从现存的模型中记录数据来帮助用户运行部件模型的仿真。用户可以进行:

    

自动生成模型的部件测试框架

提取子系统或者子状态图中的数据到新模型中用于分析; 在仿真中记录输入端口值; 使用测试用例仿真模型; 搜集并分析模型的覆盖度。

跟踪需求来设计、测试和生成代码

Simulink Verification and Validation包括一个需求管理界面,可以使用户在整个开发过程中链接到设计说明书中进行调整、跟踪并实施变更。用户可以访问存储在正式需求管理系统中的需求,如Telelogic DOORS, Microsoft Word, Microsoft Excel, PDF或HTML格式的文件,并将需求与Simulink和Stateflow模型中的模块、子系统、状态、转移、函数以及真值表相结合。需求管理界面也可扩展到支持额外的文件类型和需求管理系统。当链接需求管理系统时,用户可以在DOORS, Word 或Excel文件中插入导航图标来使Simulink和Stateflow模型中相关的模块、子系统、状态、转移、函数或真值表高亮显示。

为了保证需求链接和源文件一致,用户可以运行checks来确认移除的或修改的需求。同时还可以在使用RTW Embedded Coder代码生成时将需求作为comments的形式显示。

需求界面(左边)可以与需求文档(右上方)之间连接和双向导航。系统需求模块(左上方)显示子系统需求。

建模标准规范检查

Simulink Verification and Validation工具箱提供的建模规范有:MathWorks Automotive Advisory Borard(MAAB)、DO-178B、IEC 61508(ISO 26262)以及需求一致性。借助Model Advisor可以运行单个规范检查或者一组规范检查。每项检查都有详细的文档说明,当检测到跟建模规范不一致时还会提供相应的推荐修改方法;某些检查还提供其它配置选项。

在Model Advisor中,不遵从建模规范的模块会以高亮显示,便于观察分析。

指定验证模块来测试信号

Simulink 提供Signal Builder模块,用户可以通过它在Simulink中来指定验证模块从而测试信号,形成测试用例和test harness,就可以在仿真中验证功能需求。可用来创建模型级的测试用例和验证功能需求的test harness;同时,用户还可以在Simulink和Stateflow中使用assertion模块,利用其建模能力,直接利用或者扩展它来建立更加复杂的验证模块库。每一个模型级测试都可以链接到需求中去并用于评估模型中需求的执行情况。

模型级的测试用例可以结合形成test harness,用于保证在仿真过程中对应于模型的代码与模型满足同样的需求。在模型中的test harness的应用与软件在回路中(SIL)或处理器在回路中的应用(PIL)应用测试时生成代码的应用过程正好相反。

使用Simulink Signal Builer模块链接测试用例到verification模块和需求。确认模块设置面板和需求面板显示如上图。

分析模型覆盖率

Simulink 验证和确认提供了模型覆盖度报告,来显示用户设计中未被测试的部分,如:未被执行的Logical conditions, Switches, Lookup table, interpolation intervals和未被执行的子系统。其结果将使用结构覆盖的工业标准规格,自动生成HTML文档格式的报告。覆盖信息也可以清晰地显示在模型上,从而让用户快速地就覆盖度缺失对模型进行检查,并浏览相关需求。由此用户可以快速确定是否需要修改需求、测试用例或者改变设计以满足覆盖度目标。

Simulink Verification and Validation提供了6种模型覆盖分析规则:

 Cyclomatic complexity—测量模型中结构的复杂度,近似化McCabe复杂性测量从模型中生成的代码。

 Decision coverage—检查在模型中代表精确点的项,例如Simulink中的Switch和Stateflow中的States

 Condition coverage—检查对应输入下逻辑结合的输出,例如Logic和Stateflow转移。

 MC/DC—分析重要软件的安全性(定义在RTCA DO-178B),并确定逻辑输入是否独立于改变的输出。

 Lookup table coverage—记录下每一个插值间隔的使用频率。(一个测试实例达到所有的覆盖如果它每次都执行一次内插或外推间隔)。

 Signal range coverage—在仿真中通过每个模块的输出和对于所有的Stateflow数据目标显示产生的最大和最小值。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top