设为首页收藏本站

最大的系统仿真与系统优化公益交流社区

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10177|回复: 0

[知识] Matlab-SimuLink仿真软件介绍

[复制链接]
发表于 2009-1-19 21:03:48 | 显示全部楼层 |阅读模式
介绍, P+ C* {" F& Q" z* z% E$ H7 O. Y
Simulink®是用于动态系统和嵌入式系统的多领域仿真和基于模型的设计工具。对各种时变系统,包括通讯、控制、信号处理、视频处理和图像处理系统,Simulink提供了交互式图形化环境和可定制模块库来对其进行设计、仿真、执行和测试。., R7 C: K6 s% g5 H) H  m) o" E

, b/ Y" K' i* @* x构架在Simulink基础之上的其他产品扩展了Simulink多领域建模功能,也提供了用于设计、执行、验证和确认任务的相应工具。Simulink与MATLAB® 紧密集成,可以直接访问MATLAB大量的工具来进行算法研发、仿真的分析和可视化、批处理脚本的创建、建模环境的定制以及信号参数和测试数据的定义。
6 B$ S0 r7 f" X# q4 M$ R8 Y* r  e1 d) p7 C& r- |$ f  J, x: _
特点
5 @* c4 c0 t5 c丰富的可扩充的预定义模块库 9 ]9 n5 [2 u# m' E  T$ `
交互式的图形编辑器来组合和管理直观的模块图
1 W8 [/ }  ]+ t: y) m- M以设计功能的层次性来分割模型,实现对复杂设计的管理 6 Q; s$ S! r$ C# g! U
通过Model Explorer 导航、创建、配置、搜索模型中的任意信号、参数、属性,生成模型代码   I0 i* N/ j6 y, b( ^
提供API用于与其他仿真程序的连接或与手写代码集成 $ k; ^+ u/ r9 S. g/ R3 l+ ~
使用Embedded MATLAB™ 模块在Simulink和嵌入式系统执行中调用MATLAB算法
8 @' ~3 i7 c7 z使用定步长或变步长运行仿真,根据仿真模式(Normal,Accelerator,Rapid Accelerator)来决定以解释性的方式运行或以编译C代码的形式来运行模型
  V2 I; y$ }/ b' p6 [6 `4 s图形化的调试器和剖析器来检查仿真结果,诊断设计的性能和异常行为 6 `! P1 g; G# f/ H3 e. K
可访问MATLAB从而对结果进行分析与可视化,定制建模环境,定义信号参数和测试数据 2 ~6 Y8 I; w, ?5 o
模型分析和诊断工具来保证模型的一致性,确定模型中的错误3 Z8 K  T% P5 k3 }
创建和使用模型
9 g- ?3 d! B, V/ I4 N7 b通过Simulink® 可使用大量的预定义模块快速地推导、建模和维护系统详细的模块图。Simulink提供层次化建模、数据管理、定制子系统工具,无论工程师的系统有多复杂,都可以轻松完成简明精确的模型描述.2 G) _+ L9 h5 j( l9 ^& s6 s" R

  I+ X$ @  c9 g选择和定制模块0 D$ m0 W1 [) G9 ^* h0 _- O
Simulink包含广泛的用于对系统建模的模块库。这些库包括:
6 f2 f8 }& L+ a. C- W0 v: C3 p4 t7 o1 W0 F/ v
连续和离散动态模块,如Integration和Unit Delay 0 l8 q4 A+ z' Y! ~( J& A) l
算法模块,如Sum, Product, Lookup Table
' x2 ^( J8 \, w  P( A信号结构模块,如 Mux, Switch, Bus Selector
6 m3 I# c% I  Y. a2 `- o可定制这些内联的模块或直接在Simulink中创建新的模块然后将其放置到自己的库中.# t/ F6 F# Z/ X# @1 l
' b2 Q& }, ]# F: e0 D2 S4 n
额外的模块库(需另外购买)扩展了Simulink的特殊应用功能,如对航空航天、通讯、无线电频率、信号处理、视频和图像处理和其他领域的应用.% `& @" z" k" V" F1 z4 t1 R

0 I) r2 \) P8 ^) n可在Simulink中对物理系统建模。Simscape™, SimDriveline™, SimHydraulics®, SimMechanics™, SimPowerSystems™ (需另外购买)扩展了Simulink对物理系统建模的功能,广泛应用于如机械、电力电子和液压领域.
; x+ L. @7 O2 [# m. g. {# N: s6 K& q4 G% r% @3 G" x$ W
集成MATLAB® 算法代码和手写代码
* {7 D7 s6 Z1 f. i; r- L可调用MATLAB函数来集成MATLAB代码从而用于数据分析与可视化;此外,Simulink可使用 Embedded MATLAB™ 来设计嵌入式算法模块,然后和模型的其他模块一起以代码生成的方式实施使用;也可以在模型中创建自定义模块,直接集成手写的C/Fortran/Ada代码.
' e( X3 E9 ?! t3 c
6 p+ l; \+ O8 ~" v建立和编辑模型
- \3 J' J; o$ G* pSimulink在使用时,从Library Browser中拖放模块到图形编辑器、然后用线连接模块来建立模块之间的数学关系,从而完成模型的建立,同时可以通过使用图形编辑功能来对模型布局,如拷贝、粘贴、撤销、对齐、分布和改变尺寸等.! i+ O' C+ {5 U9 C
8 h- x: Z" P( x7 Y& {3 g  {3 t
Simulink user interface使得在屏幕上的所见所用都可以得到全面控制。用户可以添加指令和子菜单到编辑器和文件菜单中,也可以对菜单、菜单项和对话框进行禁用和隐藏等控制./ N- h+ }0 }/ P" i" l( \3 ~' E
) U5 ?1 `+ h' U$ L+ i; E
组织模型
$ s7 U0 ~8 }1 Q7 t. c2 [  lSimulink使用子系统和模型引用功能,从而以清晰的可管理的层次来组织模型。子系统将一组模块和信号组合到单个模块中,用户可以针对子系统添加自定义的使用界面,隐藏子系统内的内容,使得子系统以独立的模块具有自己的图标和参数对话框." \" e, F8 j) L# G6 h
6 R& M" Y4 T9 t7 f/ a
在Simulink中用户可以将整个模型按照功能分割成几个部件,分别独立地对每个部件进行建模、仿真与验证。每个部件也可以以模型引用的形式保存为单独的模型,或者以子系统的形式保存在Simulink库中。Simulink与配置管理系统兼容,如CVS、ClearCase或在Windows® 平台上注册的版本控制软件.
3 ]  h; P- R2 B+ j/ Q
8 ]- ]" S3 Q& \可在多个项目中对设计部件进行复用,同时还很方便地对审核和修订的历史记录进行维护.
: Q9 Q! g) Q$ ^5 j. b& z$ }7 z) |( e8 h% N# v: u' z' J4 C9 c+ A" c
通过这种方式组织模型可以使用户来针对不同的设计任务选择合适的详细程度。例如,针对高层规范可使用简单的关系来建模,在项目后期的实现时就得使用非常详尽的关系来建模.
" ^1 j8 G8 V- |6 Z* I% V- u* \7 v& [, d6 y2 E' o5 n: l- Y6 p
配置子系统5 i/ \. i" J- t6 w1 |9 i  i9 P
Simulink中的配置子系统可以在一个模型中将子系统与设计变量相关联,该功能通过共享部件设计方式简化了设计过程和管理,因为一个模型可以代表一类设计.! t# U- D2 U/ S3 [5 O
7 J9 m1 y) ?$ b: x2 \* c
条件执行子系统
/ m$ W  ~' ?, G% E; V. H: B条件执行子系统可以通过控制逻辑信号的使能或非使能来改变系统的动态行为。在Simulink中用户可以根据特定的时间或事件来创建控制信号,使得子系统以使能或触发的模式来执行.1 m4 J, A) Y  r% h, I5 |4 h, b8 z

  I+ W0 ?) Y! ]% }% ^2 n# r同时,Simulink中提供了逻辑模块,可用于对简单的控制指令来建模,从而控制使能或触发子系统。用户也可以包含更复杂的控制逻辑,如使用Stateflow® (需另外购置)中的状态机.  t( s* [& \/ S* n

. _$ F  ?$ H: D模型信号和参数的定义和管理/ c+ ~# r: S  D$ o
Simulink® 允许定义和控制模型的信号、参数. Signals are信号是连接不同模块的时变量;参数是定义系统的动态行为的系数.
" Y* z% V1 I9 d. Z( ?
! s" y! c( B5 v. U4 F, }信号和参数属性可以在Simulink框图中分别指定,也可在data dictionary中集中指定. 推荐使用Model Explorer来管理data dictionary快速地结合不同的数据集来重配置模型 .
4 M/ v2 C3 {! C' U
$ u- `" X/ p( v& e7 r& |4 _用户可以定义如下的信号、参数属性:& c' b0 L% \# n
' j. H. W" L( ?- h; A1 z* S# Q2 Q
数据类型—单精度浮点,双精度浮点, 8,16或32位整型(有符号或无符号)
% r7 w, Q% v- r维数—标量,矢量,矩阵或N维矩阵 # \1 ?, v7 `" `" A
实复数特性—实数、虚数或复数
6 u7 f% W5 a/ I+ a2 k4 L数据最大最小值范围、初始值和单位 6 z9 ?, z+ _( N5 B0 R
定点数据类型提供了对定标和任意字长(不多于128位)的支持,这些数据类型需要Simulink® Fixed Point™(需另外购置)来仿真和生成代码.
1 E- ^1 p1 F6 W( E( V# D
5 i0 R# D' i. Y4 s( w9 s用户还可以指定信号的采样模式为基于采样的形式或是基于帧的形式,以保证Simulink环境中信号处理的应用以及信号处理模块库中的应用,用以获得较快的执行速度.$ l# D& {: X; h/ ^  R- D7 s
/ U/ L3 T6 o) }6 e, W
使用Simulink 数据类型对象(data-typeobjects),用户可以自订制数据类型和总线信号,总线信号允许用户在不同的设计组件之间定义接口.1 E2 j3 O/ d! f$ k, O. S
! s9 j) |* K8 _. N6 ^/ F
Simulink 允许用户确定信号的规范及层次。如果没有特别指定的话,Simulink 通过传递的机制来确定信号的属性,当然,用户也可以为模型中特定的组件定义接口或对所有的数据定义属性,但无论如何,Simulink 都将对信号进行一致性检查以确保数据的完整性.& t+ {( B; `; D0 z. @
" G) d. x/ G0 P& I$ T5 d# {
用户可以通过工作空间的层次性使用来约束参数的可用区域,也可以通过全局工作空间的使用在模型间共享参数.$ i2 x4 ?  c2 u6 S5 _2 H
4 B. W2 V  Q; ]' u0 q1 v* n
运行仿真
' S% n; _% i0 ^1 ]1 }+ e$ o) P在Simulink® 环境中建好模型之后,就可以仿真系统的动态行为并查看仿真结果了。Simulink 提供了多种特性以及相关的工具来确保仿真的精度和速度,这些特性及工具包括:定步长求解器以及变步长求解器、图形调试器以及模型剖析器.
4 ?  S6 T2 {/ C& E8 ]; |- O
0 D' Q( A, X2 {使用求解器
% U, A1 _  \! l7 v+ l* l求解器是利用模型中的信息对系统的动态进行数值积分算法求解的工具。Simulink 提供的求解器可以支持各种领域的仿真,包括连续时间系统、离散时间系统、混合系统以及多速率系统.
5 l+ `$ D4 j% z% d
# Q" U3 P9 w/ B0 }) r这些求解器可以仿真刚性系统、带有状态事件的系统,比如非连续系统以及包含瞬态变化的系统动态。用户可以指定仿真选项,包含求解器的类型、属性、仿真的起始和终止时间、载入或存贮仿真数据的位置。用户还可以设置仿真的优化选项和诊断信息。这些不同选项的结合可以随模型加以保存 .% y& p9 L+ N8 l2 K3 f
调试仿真" F' o' K( S/ s1 I+ w0 J
Simulink 调试器是检测仿真结果、定位并诊断Simulink 模型中不期望的行为的交互式工具. / u! @- d+ N+ t6 m' T" R6 P
) J& Z5 X! G$ L3 o) A
Simulink 调试器允许用户设置断点、控制仿真的执行以及显示模型的信息。可以从MATLAB® 命令行或者GUI 来运行Simulink 调试器。GUI 可以清晰地并使用颜色标识的形式观察模型的执行状态。模型仿真的同时,用户可以显示模块状态的信息,模块的输入输出信息以及模块执行的动态过程等其它信息. ; X. W3 v- V+ N3 T2 ]6 C8 K
. H8 W' g) v" f5 W3 P
执行仿真
5 A% G/ T. T: N" x- f& ^" r4 S一旦用户完成仿真选项的设置之后,就可以利用Simulink 的GUI 运行仿真或是从MATLAB 的命令行完成仿真的批量运行,可以使用的仿真模式包含:
0 c1 J2 U% p) V- K+ {4 a- o7 I3 t$ y2 ]" ?. B) o* `  Y- v
正常模式(缺省):对模型进行解释执行 9 p/ p/ t6 Z/ Y5 A+ }0 P5 y
加速模式:通过创建编译目标代码的形式加速模型的仿真过程,在此期间用户还可以修改模型的参数
! T8 F0 A. J6 j9 i$ @快速加速模式:这种模式下模型的仿真速度比加速模式还快,但是交互性降低,因为这种模式生成的是独立可执行的应用,这个应用可以运行在第二个处理器内核上 ; M# {/ Y% A  c2 @, |
用户也可以利用MATLAB命令行来载入和处理模型的数据、参数以及完成对结果的可视化工作.
' u- m4 F( X. K' \
" ?8 l# K& U( K8 b, J: W' V* P剖析仿真
8 X7 A2 m! H# q# |9 u4 O. z; N8 Y模型剖析可以帮助用户确定仿真过程中的性能瓶颈,即在仿真的过程中收集性能数据并基于这些数据生成仿真剖析报告,用以显示在执行每个仿真method 时Simulink 的时间开销.
% B) e8 Z/ Q" p+ {8 c2 b* r. j, Y9 E9 v: |2 Q. r
分析结果
( W& h, M6 R* }1 [Simulink®  有一系列工具用于对系统进行分析、结果的可视化处理、测试、验证及对模型生成文档报告. ) \. b2 g$ o( v7 X

& K" I: j" r0 S7 t* G( G9 {可视化仿真结果+ I5 N8 m* J, y+ P2 u2 _) J" n
用户可以利用Simulink 中提供的display 和scope 等模块实现可视化,完成对信号的查看。或者,也可以利用MATLAB® 的可视化及GUI工具创建用户自己的显示功能,不仅如此,还可以对数据进行记录以便进行后处理. 2 X4 E; b* M1 _( }" y/ ~  L

" u/ n9 @& h) a- e; K2 w# l如想对动态系统进行更深层次的3维动画显示,还可以利用虚拟现实工具箱在可视化的过程中集成进虚拟现实视景. - ?" H- e4 B  Q: ]
  E! a& h7 w0 A3 k
测试和验证模型  R6 H" ^% I1 D8 _
Simulink 包含可以产生测试条件、确认模型性能的工具。这些工具含有能够创建仿真测试的模块,例如:Signal Builder 模块可以以图形化的方式创建对模型进行实验的波形,Signal & Scope Manager 无需在模型中添加模块,即可在模型中注入信号用来记录并观测信号。Simulink 还提供确认模块,用来检测模块的输出是否符合用户的设计需求. / B  F: P1 \5 u! b1 |

1 S6 `# O4 C( y) B用户还可以利用Simulink® Verification and Validation™ 将需求和特定的模型关联起来,制定自定义的模型检查标准,对模型执行覆盖度分析;利用Simulink® Design Verifier™, 为模型生成符合模型覆盖度要求的测试用例以及用来证明模型属性的自定义对象。为了独立于模型对测试进行管理及存储,还可以利用SystemTest™ 开发测试序列并生成测试报告.
7 N! Y6 y! @  s9 }3 k
- G2 f6 a2 I& x, C: ]! E对模型生成报告. u& ]" n' w& d5 V) x/ b
添加文档到Simulink模型非常容易。注释、包括对其它文档以及网页的超链接都可以直接加到模型中,而描述性文字比如模型的历史信息也可以以模块的属性形式添加。通过DocBlock模块可以包括一个text文件,作为整个模型中的一个模块。Simulink提供了打印能力。通过一个命令,就可以创建一个HTML文档用来描述整个模型,包括模型不同层次级别的快照,以及所有的模块规范信息.
9 N9 @9 k0 {& J0 d1 ^' L1 r9 K2 x
8 C/ |: z1 L" n+ w7 l& M8 O使用Simulink Manifest Tools可以创建一个包含模型所需所有文件的列表报告并将其压缩,从而方便提供给其他用户。通过使用Simulink® Report Generator™ 可以创建定制化的报告,使其符合特定的文档格式,还可以以网页的形式将模型与他人共享.
* D: F5 f1 M- ]0 y/ u& P  \: t% I# g, m+ Y0 M
创建C/C++ 以及HDL代码* Z+ l# i% l8 n+ a5 D
在Simulink 中创建好的模型可以配置并生成代码。使用Real-Time Workshop® 以及 Real-Time Workshop® Embedded Coder™,用户可以将模型生成可以用于实时仿真、快速原型以及嵌入式系统开发的C/C++代码,还可以生成综合的、目标独立的Verilog 及VHDL代码,用于HDL仿真.# |( q# w% _! A+ l9 y0 G
! x" t7 V8 w7 q- M
[ 本帖最后由 focuscon 于 2009-1-19 21:51 编辑 ]

评分

参与人数 1仿真币 +10 收起 理由
苘苘 + 10

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|SimulWay 道于仿真   

GMT+8, 2026-9-2 10:12 , Processed in 0.015149 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表