Simulink仿真系统模块库1
Simulink的模块库
Simulink模块库一、Continuous:它包括以下七个功能模块:1.Derivative:输入信号微分模块;2.Integrator:输入信号积分模块;3.State-Space:线性状态空间系统模型;4.Transfer-Fcn:线性传递函数模型;5.Transport Delay:输入信号延时一个固定时间再输出;6.Variable Transport Delay:输入信号延时一个可变时间再输出;7.Zero-Pole:以零极点表示的传递函数模型。
二、Discrete它包括以下九个功能模块:1.Discrete Transfer-Fcn:离散传递函数模型;2.Discrete Zero-Pole:以零极点表示的离散传递函数模型;3.Discrete Filter:实现无限脉冲响应(IIR)与有限脉冲响应(FIR)滤波器;4.Discrete State-Space:离散状态空间系统模型;5.First-Order Hold:实现一阶采样和保持器;6.Memory:存储上一个时刻的状态值;7.Unit Delay:一个采样周期的延时;8.Discrete-time Integrator:离散时间积分器;9.-Order Hold:实现零阶采样和保持器。
三、Look-Up Tables(查询表模块库)它包括以下六个功能模块:1.Direct Look-Up Table(n-D):检索n维表,以重新获得标量、向量或2维矩阵2.Interpolation(n-D)using PreLook-Up:执行高精度的常值或线性插值3.Look-Up Table:使用指定的查表方法近似一维函数,即建立输入信号的查询表4.Look-Up Table(2-D): 使用指定的查表方法近似二维函数,即建立两个输入信号的查询表5.Look-Up Table(n-D):执行n个输入定常数、线性或样条插值映射6.PreLook-Up Index Search:在设置的断点处为输入执行检索查找和小数计算四、Math Operations(数学运算模块库)它包括以下25个功能模块:1.Abs:对输入信号求绝对值运算;2.Sum:加减运算,可以加减标量、向量和矩阵;3.Product:对输入信号求积和商运算;4.Dot Product:点积(内积)运算;5.Gain:比例运算,或称为常量增益(输入信号乘以常数);6.Sign:表明输入符号信号或符号函数;7.MinMax:输出输入信号的最小值和最大值(即极值运算);8.Slider Gain:可以用滑动条来改变增益;9.Matrix Gain:矩阵增益,即输入信号乘以矩阵;10.Math Function:包括指数、对数函数、求平方、开根号等常用数学运算函数;11.Rounding Function:取整运算函数;12.Trigonometric Function:三角函数,包括正弦、余弦、正切等;13.Logical Operator:逻辑运算14.Relational Operator:关系运算15.Complex to Magnitude-Angle:由复数输入信号转为幅值和相角输出;16.Magnitude-Angle to Complex:由幅值和相角输入信号合成复数输出;17.Complex to Real-Imag:由复数输入信号转为实部和虚部输出;18.Real-Imag to Complex:由实部和虚部输入信号合成复数输出。
simulink模块库介绍
图 18
x F
.
26
解法1: 构建常微分方程
根据牛顿运动定律,得到小车的运动方程 kx fx mx F 将相关参数代入上式得 x 4 x 3x F 将上述微分方程改写为
x u(t ) 4 x 3x
.
6
图7
.
7
图8
3、数据类型转换模块
Data type conversion 可将输入数据类型转换为 指定输出类型。具体选择有:inherit(与输入数据保 持一致)、double、single、int8等。同时可以选择取 整方向。Zero:向零取整;nearest:向最接近整数取 整;floor:向负无穷取整;ceiling:向正无穷取整。
.
8
4、积分模块
Integrator模块为连续时间积分单元。双击图9中 该模块,在initial condition可设置积分其初始值,在 limit output可设置输出最大和最小值。仿真运行结果 如图10所示。
.
9
图9
图 10
. 10
5、离散时间积分模块
Discrete time integrator(离散时间积分),可完 成离散系统积分作用。如图11所示,双击离散积分模 块,设置gainvalue(积分增益值),改变积分速度。 在sample time文本框可设置离散积分采样时间,如设 置为-1,表示与输入信号采样时间一致。在limit output可设置积分输出上下限。在图11中设置 Discrete time integrator1模块增益值为2,采样时间为 0.5,仿真结果如图12所示。
6.1常用模块库
初学simulink,常用模块 (commonly used blocks)使用最为频繁。 在Simulink浏览器中, 单击左侧“commonly used blocks”节点,可打 开常用模块库。
Simulink常用库模块介绍
Simulink常用库模块介绍1. Sources Library(源库):该库提供了一些用于输入信号的模块,如步进信号、正弦信号、随机信号等。
用户可以根据自己的需求选择适合的信号类型。
2. Sinks Library(输出库):该库提供了一些用于输出和记录信号的模块,如作用在信号上的示波器、记录信号的Scope等。
3. Continuous Library(连续库):该库提供了一些用于连续时间系统的模块,如积分器、微分器、比例积分微分控制器(PID)等。
这些模块可以用于建立和仿真连续时间动态系统。
4. Discrete Library(离散库):该库提供了一些用于离散时间系统的模块,如采样器、保持器、差分器等。
这些模块可以用于建立和仿真离散时间动态系统。
5. Logic and Bit Operations Library(逻辑和位运算库):该库提供了一些用于逻辑运算和位运算的模块,如AND门、OR门、XOR门、移位器等。
这些模块可以用于建立和仿真逻辑和位运算系统。
6. Math Operations Library(数学运算库):该库提供了一些用于数学运算的模块,如加法器、减法器、乘法器、除法器等。
这些模块可以用于建立和仿真数学运算系统。
7. Lookup Tables Library(查找表库):该库提供了一些用于查找表操作的模块,如一维和多维插值查找表、查找表与插值、查找表与线性插值等。
这些模块可以用于建立和仿真查找表系统。
8. Control Systems Library(控制系统库):该库提供了一些用于控制系统的模块,如PID控制器、状态空间模型、传递函数等。
这些模块可以用于建立和仿真控制系统。
9. Signal Routing Library(信号路由库):该库提供了一些用于信号路由的模块,如切换器、多路复用器、分支器等。
这些模块可以用于控制信号的路由和选择。
10. Simulink Extras Library(额外功能库):该库提供了一些Simulink中的辅助模块,如信号生成器、信号调整器、时间尺度转换器等。
SIMULINK模块介绍
SIMULINK模块介绍实验五SIMULINK仿真⼀、实验⽬的SIMULINK是⼀个对动态系统(包括连续系统、离散系统和混合系统)进⾏建模、仿真和综合分析的集成软件包,是MA TLAB的⼀个附加组件,其特点是模块化操作、易学易⽤,⽽且能够使⽤MATLAB提供的丰富的仿真资源。
在SIMULINK环境中,⽤户不仅可以观察现实世界中⾮线性因素和各种随机因素对系统⾏为的影响,⽽且也可以在仿真进程中改变感兴趣的参数,实时地观察系统⾏为的变化。
因此SIMULINK已然成为⽬前控制⼯程界的通⽤软件,⽽且在许多其他的领域,如通信、信号处理、DSP、电⼒、⾦融、⽣物系统等,也获得重要应⽤。
对于信息类专业的学⽣来说,⽆论是学习专业课程或者相关课程设计还是在今后的⼯作中,掌握SIMULINK,就等于是有了⼀把利器。
本次实验的⽬的就是通过上机训练,掌握利⽤SIMULINK对⼀些⼯程技术问题(例如数字电路)进⾏建模、仿真和分析的基本⽅法。
⼆、实验预备知识1. SIMULINK快速⼊门在⼯程实际中,控制系统的结构往往很复杂,如果不借助专⽤的系统建模软件,则很难准确地把⼀个控制系统的复杂模型输⼊计算机,对其进⾏进⼀步的分析与仿真。
1990年,Math Works软件公司为MATLAB提供了新的控制系统模型图输⼊与仿真⼯具,并命名为SIMULAB,该⼯具很快就在控制⼯程界获得了⼴泛的认可,使得仿真软件进⼊了模型化图形组态阶段。
但因其名字与当时⽐较著名的软件SIMULA类似,所以1992年正式将该软件更名为SIMULINK。
SIMULINK的出现,给控制系统分析与设计带来了福⾳。
顾名思义,该软件的名称表明了该系统的两个主要功能:Simu(仿真)和Link(连接),即该软件可以利⽤系统提供的各种功能模块并通过信号线连接各个模块从⽽创建出所需要的控制系统模型,然后利⽤SIMULINK提供的功能来对系统进⾏仿真和分析。
SIMULINK的启动⾸先启动MATLAB,然后在MA TLAB主界⾯中单击上⾯的Simulink按钮或在命令窗⼝中输⼊simulink命令。
Simulink中的模块
x[(n + 1)T ] = Ax (nT ) + Bu (nT ) y ( nT ) = Cx (nT ) + Du (nT )
功能:用于执行一个离散传递函数。 7.离散零极点传递函数模块(Discrete Zero-Pole) 功能:用于建立一个预先指定的零点、极点,并用延迟算子 z-1 表示的离散系统。 8.一阶保持器模块(First Order Hold) 功能:在一定时间间隔内保持一阶采样。 9.存储器模块(Memory) 功能:保持输出前一步的输入值。 三:函数与表格模块库(Function & Table) 1. 一维查表模块(Look-Up Table) 一维查表模块(Look-Up Table)实现对单路输入信号的查表和线性插值。 2.二维查表模块(Look-Up Table 2-D) 功能:根据给定的二维平面网格上的高度值,把输入的两个变量经过查表、插值,计算出模 块的输出值,并返回这个值。 说明:对二维输入信号进行分段线性变换。 3.自定义函数模块(Fcn) 功能:用于将输入信号进行指定的函数运算,最后计算出模块的输出值。 说明:输入的数学表达式应符合 C 语言编程规范;与 MATLAB 中的表达式有所不同,不能 完成矩阵运算。 4.MATLAB 函数模块(MATLAB Fcn) 功能:对输入信号进行 MATLAB 函数及表达式的处理。 说明:模块为单输入模块;能够完成矩阵运算。 注意:从运算速度角度,Math function 模块要比 Fcn 模块慢。当需要提高速度时,可以考虑 采用 Fcn 或者 S 函数模块。 5.S-函数模块(S-Function) 功能:按照 Simulink 标准,编写用户自己的 Simulink 函数。它能够将 MATLAB 语句、C 语 言等编写的函数放在 Simulink 模块中运行,最后计算模块的输出值。 四:数学模块库(Math) 1. 求和模块(Sum) 功能:求和模块(Sum)用于对多路输入信号进行求和运算,并输出结果。 2. 乘法模块(Product) 功能:乘法模块(Product)用于实现对多路输入的乘积、商、矩阵乘法或者模块的转置等。 3. 矢量的点乘模块(Dot Product) 功能:矢量的点乘模块(Dot Product)用于实现输入信号的点积运算。 4. 增益模块(Gain) 功能:增益模块(Gain)的作用是把输入信号乘以一个指定的增益因子,使输入产生增益。 5. 常用数学函数模块(Math Function) 功能: 用于执行多个通用数学函数, 其中包含 exp、 log、 log10、 square、 sqrt、 pow、 reciprocal、 hypot、rem、mod 等。 6. 三角函数模块(Trigonometric Function) 功能:用于对输入信号进行三角函数运算,共有 10 种三角函数供选择。 7. 特殊数学模块 特殊数学模块中包括求最大最小值模块(MinMax)、取绝对值模块(Abs) 、符号函数模块 (Sign)、取整数函数模块(Rounding Function)等。 8. 数字逻辑函数模块
SIMULINK模块库大全(PDF精品)
动态检测开区间
Logical Operator
逻辑操作符
Relational Operator
关系操作符
Shift Arithmetic
移位运算
5.查找表模块 Lookup Table
名称
功能说明
Cosine
余弦函数查询表
Direct Lookup Table (n-D)
N 个输入信号的查询表(直接匹配)
IC Probe Rate Transition Signal Conversion Signal Specification Weighted Sample Time Width 11.信号线路模块 Signal Routing 名称 Bus Assignment
触发线性分析
功能说明 结构子系统 单元子系统 代码重用子系统
菜单名 File Edit View Simulation
Format
Tools
菜单项 New——Model Model properties Preferences Print… Close Exit MATLAB Create subsystem Mask subsystem… Look under mask Update diagram Go to parent Model browser options Block data tips options
检查静态上限
8.模型扩充模块 Model-Wide Utilities
名称
功能说明
Block Support Table
功能块支持的表
DocBlock
文档模块
Model Info
模型信息
Timed-Based Linearization
Simulink常用库模块介绍(Matlab2013a)
SIMULINK常用库模块介绍一、SIMULINK简介1、简介SIMULINK是一个对动态系统(包括连续系统、离散系统和混合系统)进行建模、仿真和综合分析的集成软件包,是MA TLAB的一个附加组件,其特点是模块化操作、易学易用,而且能够使用MA TLAB提供的丰富的仿真资源。
在SIMULINK环境中,用户不仅可以观察现实世界中非线性因素和各种随机因素对系统行为的影响,而且也可以在仿真进程中改变感兴趣的参数,实时地观察系统行为的变化,因此已在许多领域,如通信、信号处理、DSP、电力、金融、生物系统等获得重要应用。
对信息类专业的学生来说,无论是学习专业课程或相关课程设计,还是在今后的工作中,SIMULINK都是一个重要的仿真建模工具。
2、预备知识⏹SIMULINK的启动首先启动MATLAB,然后在MA TLAB主界面中单击上面的Simulink按钮,如下图所示:或在命令窗口中输入simulink命令打开。
⏹SIMULINK的模块库Simulink的模块库有两部分组成:基本模块和各种应用工具箱,如下图所示。
对通信系统仿真来说,主要用到Simulink基本库,通信系统工具箱和数字信号处理工具箱。
二、SIMULINK的模块库1、SIMULINK基本库(6)数学模块Math Operations(7)模型检测模块Model Verification(10)信号属性模块Signal Attributes(12)接收器模块Sinks(14)用户自定义函数模块User-Defined Functions2、通信系统工具箱Communication System Toolbox②CPM3、DSP系统工具箱DSP System Toolbox (1)信号管理Signal Management(2)输出Sinks。
SIMULINK模块库详细介绍
Simulink 模块库——Source
模块
In1 Constant Signal Generator
功能
子系统输入 生成一个常量值 生成变化的波形
Ramp
Sine Wave Step Repeating Sequence
生成一连续递增或递减的信号
生成正弦波 生成一阶跃函数 生成一重复的任意信号
Pulse Generator
Simulink 模块库——Source
From File(从文件读数据)
模块功能 从文件读数据 模块说明 From File模块从指定的文件读取数据作为其 输出。模块的图标中显示了提供数据的文件 名。文件名必须包含一个两行或两行以上的 矩阵,第一行应是单调递增的时间点,其它 行是与之对应的数据点。 模块数据类型 双精度类型实数信号 模块参数对话框 File name:输入数据的文件名。 Sample time:从文件中读去数据的采样率
Simulink 模块库——Source
Pulse Generator(脉冲发生器)
模块功能 以一定的间隔生成脉冲 模块说明 Pulse Generator模块以一定的间隔产生一 系列的脉冲。 模块数据类型 双精度类型实数信号 模块参数对话框 Amplitude:脉冲幅度 Period:脉冲周期(s) Pulse Width:脉冲宽度(占整个周期的百 分比) Phase delay:脉冲产生开始前的时间延 迟(s)
Simulink 模块库——Source
Uniform Random Number(均匀 分布随机数)
模块功能 生成均匀分布的随机数 模块说明 Uniform Random Number模块在指定的区间内, 以起始种子,生成均匀分布的随机数。生成的 随机序列是可重复的,只要种子和参数相同。 模块数据类型 双精度类型实数信号 模块参数对话框 Minimum:指定区间的最小值 Maximum:指定区间的最大值 Initial seed:随机数发生器开始的种子 Sample time:采样周期
simulink各模块详解
翔威国际股份有限公司 第二事业部 厂区信息流自动化项目
SFIS.PPT 8
Shop Floor Information System, SFIS现场信息整合系统
二、 直流电路仿真
【例2_1】 测量下图所示电路的节点电压。
翔威国际股份有限公司 第二事业部 厂区信息流自动化项目
1. “Connectors”模块库
其中包括接地点和中间节点两大类共1连接线
细垂直连接线
垂直连接线
接地端(输入型)
接地端(输出型)
L型导线连接器 共享节点(输入型)
共享节点(输出型)
T型导线连接器
翔威国际股份有限公司 第二事业部 厂区信息流自动化项目
SFIS.PPT 2
6.2 Simulink电路分析应用 Shop Floor Information System, SFIS现场信息整合系统
一、Power System Blockset模块集 (电路仿真模块集)
翔威国际股份有限公司 第二事业部 厂区信息流自动化项目
SFIS.PPT 1
Shop Floor Information System, SFIS现场信息整合系统
4. “Measurements”模块库
其中包括的是5种测量模块
功能说明
测量电流值
测量电路两节点之间的 电阻值
测量多个器件、支路的 电流电压值
测量电路中的三相 电流、电压值 测量电压值
翔威国际股份有限公司 第二事业部 厂区信息流自动化项目
SFIS.PPT 6
Shop Floor Information System, SFIS现场信息整合系统
功能说明
MATLAB simulink模块简介
SIMULINK的模块库介绍SIMILINK模块库按功能进行分为以下8类子库:Continuous(连续模块)Discrete(离散模块)Function&Tables(函数和平台模块)Math(数学模块)Nonlinear(非线性模块)Signals&Systems(信号和系统模块)Sinks(接收器模块)Sources(输入源模块)连续模块(Continuous)continuous.mdlIntegrator:输入信号积分Derivative:输入信号微分State-Space:线性状态空间系统模型Transfer-Fcn:线性传递函数模型Zero-Pole:以零极点表示的传递函数模型Memory:存储上一时刻的状态值Transport Delay:输入信号延时一个固定时间再输出Variable Transport Delay:输入信号延时一个可变时间再输出离散模块(Discrete)discrete.mdlDiscrete-time Integrator:离散时间积分器Discrete Filter:IIR与FIR滤波器Discrete State-Space:离散状态空间系统模型Discrete Transfer-Fcn:离散传递函数模型Discrete Zero-Pole:以零极点表示的离散传递函数模型First-Order Hold:一阶采样和保持器Zero-Order Hold:零阶采样和保持器Unit Delay:一个采样周期的延时函数和平台模块(Function&Tables) function.mdlFcn:用自定义的函数(表达式)进行运算MATLAB Fcn:利用matlab的现有函数进行运算S-Function:调用自编的S函数的程序进行运算Look-Up Table:建立输入信号的查询表(线性峰值匹配)Look-Up Table(2-D):建立两个输入信号的查询表(线性峰值匹配)数学模块(Math )math.mdlSum:加减运算Product:乘运算Dot Product:点乘运算Gain:比例运算Math Function:包括指数函数、对数函数、求平方、开根号等常用数学函数Trigonometric Function:三角函数,包括正弦、余弦、正切等MinMax:最值运算Abs:取绝对值Sign:符号函数Logical Operator:逻辑运算Relational Operator:关系运算Complex to Magnitude-Angle:由复数输入转为幅值和相角输出Magnitude-Angle to Complex:由幅值和相角输入合成复数输出Complex to Real-Imag:由复数输入转为实部和虚部输出Real-Imag to Complex:由实部和虚部输入合成复数输出非线性模块(Nonlinear )nonlinear.mdlSaturation:饱和输出,让输出超过某一值时能够饱和。
第六章 simulink模块库介绍
图 16
8、增益、输入、输出及终端模块
Gain可用来设置信号的放大倍数;in1(输入)在建子系统时作为信号的输入接口; out1(输出)在 建子系统时作为信号的输出接口;终端(Terminator)可用来连接没有与其它模块连接的输出端口。
6.2连续系统模块库 严格说来,一个具体的物理系统通常都是非线性系统,而且是以分布参数的形式存在的,但是
解法2: 利用传递函数 利用拉普拉斯变换,弹簧——质量——阻尼器微分方程可以转化为如下形式的传递函数
代入参数值,有
H(s)U Y((ss))ms21fsk
H(s)U(s) Y(s)
s214s3
1、总线信号生成与总线信号选择模块
Bus creator用于将多个信号合成为一个总线信号;Bus selector选择总线信号的一个或多个。 如图2所示,有三种输入信号:正弦、阶跃、脉冲。为便于观察,设置阶跃信号阶跃时间为1.2s, 初始值为0,终止值为0.5(如图3所示)。Bus creator输入信号改为3(图4)。Bus selector选择信 号1和3(图5)。双击scope模块,再单击Parameters参数,将坐标数改为2。最终运行效果如图6所 示。
x(0)x(0)0
f
x
m F
k
图 18
解法1: 构建常微分方程 根据牛顿运动定律,得到小车的运动方程
将相关参数代入上式得 将上述微分方程改写为 式中
kxfxmxF
x4x3xF
u(t) F
xu(t)4x3x
பைடு நூலகம்
利用积分模块构建simulink模块
u(t)
x’’
x’
x
图 19
小车位移随时间的变化 图 20
simulink的模块库介绍[整理版]
simulink的模块库介绍[整理版] SIMULINK的模块库介绍SIMILINK模块库按功能进行分为以下8类子库:Continuous(连续模块)Discrete(离散模块)Function&Tables(函数和平台模块)Math(数学模块)Nonlinear(非线性模块)Signals&Systems(信号和系统模块)Sinks(接收器模块)Sources(输入源模块)连续模块(Continuous)continuous.mdl Integrator:输入信号积分Derivative:输入信号微分State-Space:线性状态空间系统模型Transfer-Fcn:线性传递函数模型Zero-Pole:以零极点表示的传递函数模型Memory:存储上一时刻的状态值Transport Delay:输入信号延时一个固定时间再输出 Variable Transport Delay:输入信号延时一个可变时间再输出离散模块(Discrete) discrete.mdl Discrete-time Integrator:离散时间积分器 Discrete Filter:IIR与FIR滤波器Discrete State-Space:离散状态空间系统模型 Discrete Transfer-Fcn:离散传递函数模型Discrete Zero-Pole:以零极点表示的离散传递函数模型 First-Order Hold:一阶采样和保持器Zero-Order Hold:零阶采样和保持器Unit Delay:一个采样周期的延时函数和平台模块(Function&Tables) function.mdlFcn:用自定义的函数(表达式)进行运算MATLAB Fcn:利用matlab的现有函数进行运算 S-Function:调用自编的S函数的程序进行运算 Look-Up Table:建立输入信号的查询表(线性峰值匹配) Look-Up Table(2-D):建立两个输入信号的查询表(线性峰值匹配)数学模块( Math ) math.mdlSum:加减运算Product:乘运算Dot Product:点乘运算Gain:比例运算Math Function:包括指数函数、对数函数、求平方、开根号等常用数学函数Trigonometric Function:三角函数,包括正弦、余弦、正切等MinMax:最值运算Abs:取绝对值Sign:符号函数Logical Operator:逻辑运算Relational Operator:关系运算Complex to Magnitude-Angle:由复数输入转为幅值和相角输出 Magnitude-Angle to Complex:由幅值和相角输入合成复数输出 Complex to Real-Imag:由复数输入转为实部和虚部输出 Real-Imag to Complex:由实部和虚部输入合成复数输出非线性模块( Nonlinear ) nonlinear.mdl Saturation:饱和输出,让输出超过某一值时能够饱和。
Simulink系统仿真原理
仿真效率取决于计算机性能、模型复杂度和数值算法的优化程度。
03
Simulink模型建立
模型元素
模块
Simulink中的模块是构成模型的基本单元, 每个模块代表一个特定的功能或算法。
连接线
连接线用于将不同模块连接起来,表示数据 流或信号流。
参数设置
每个模块都有一些参数可以设置,用于调整 模块的行为或功能。
性能评估
根据仿真结果,评估系统性能指标,如响应时间、超调量、稳态误 差等。
优化设计
基于仿真结果,对系统参数和结构进行优化设计,提高系统性能和 稳定性。
05
模型优化与改进
参数优化
参数优化
在Simulink模型中,参数的选择和调整对仿真结果的影响非常大。通过调整模型中的 参数,可以优化模型的性能,提高仿真的准确性和效率。
通过点击Simulink界面上的“开 始”按钮或使用命令行指令来启 动仿真。
实时监测
02
03
结果导出
在仿真过程中,可以通过 Simulink界面实时监测系统状态、 变量值和输出结果等。
将仿真结果导出为文本、图像或 数据文件,以便进一步分析或与 其他软件进行交互。
模型性能分析
稳定性分析
通过分析仿真结果,判断系统是否稳定,并找出可能的不稳定因素。
特点
支持图形化建模、交互式仿真、动态 系统分析等,适用于多种领域的系统 建模与仿真。
Simulink的历史与发展
1980年代初
由美国MathWorks公司推出Simulink的早期版 本。
1990年代
随着计算机技术的进步,Simulink的功能不断 扩展,支持更多的系统和算法。
2000年代至今
基于matlab simulink的控制系统仿真及应用
基于matlab simulink的控制系统仿真及应用Simulink是MATLAB的一个附加组件,它提供了一种可视化建模和仿真环境,主要用于控制系统、信号处理、通信系统等领域的建模和仿真。
以下是一个简单的基于Simulink的控制系统仿真的步骤:
1. 模型建立:首先,你需要使用Simulink库中的模块来构建你的控制系统模型。
这些模块包括输入、输出、控制算法等。
你可以直接从库中拖放模块到你的模型中,然后通过连接线将它们连接起来。
2. 参数设置:在连接模块后,你需要为每个模块设置适当的参数。
例如,对于传递函数模块,你需要输入分子和分母的系数。
3. 仿真设置:在完成模型和参数设置后,你需要设置仿真参数,例如仿真时间、步长等。
4. 运行仿真:最后,你可以运行仿真并查看结果。
Simulink提供了多种方式来查看结果,包括图形和表格。
在Simulink中,你可以使用许多内建的工具和函数来分析和优化你的控制系统。
例如,你可以使用MATLAB的控制系统工具箱中的函数来分析系统的稳定性、频率响应等。
总的来说,Simulink是一个强大的工具,可以用于设计和分析各种控制系统。
通过学习和掌握这个工具,你可以更有效地进行控制系统设计和仿真。
Simulink1模块操作
第2章 Simulink模块操作
图2-8
第2章 Simulink模块操作 2.2.2 改变模块名称 模型中所有模块的名称都必须是唯一的,而且至少包含 一个字符。缺省时,若模块端口位于模块左右两侧,则模块 名称位于模块下方;若模块输入端口位于模块顶部,输出端 口位于模块底部,则模块名称位于模块左侧,如图2-9所示。
第2章 Simulink模块操作
图2-11
第2章 Simulink模块操作 如果选择了Custom命令,则Simulink会显示Choose Custom Color对话框,如图2-11所示,用户可以在调色板中 选择自定义颜色。 用户也可以在MATLAB命令行或M文件中利用 set_param命令中的参数来设置方块图的背景色或模块的前 景色和背景色。表2-2给出了set_param命令中用来控制模块 方块图的参数。
第2章 Simulink模块操作
图2-10
第2章 Simulink模块操作
2.2.3 指定方块图颜色 Simulink允许用户在方块图中指定任何模块或标注的前景色 和背景色,也可以指定方块图的背景色。 若要设置方块图的背景色,可选择Simulink模型窗口中 Format菜单下的Screen color命令;若要设置模块或标注的背景 色,可首先选择这些模块或标注,然后选择Simulink模型窗口中 Format菜单下的Background color命令;若要设置模块或标注的 前景色,可首先选择这些模块或标注,然后选择Simulink模型窗 口中Format菜单下的Foreground color命令。不管选择了哪些命 令,Simulink都会显示一个颜色选择菜单,从这个菜单中选择希 望的颜色,Simulink就会按照选择的颜色更改前景色或背景色。
SIMULINK系统仿真
1 Gain 1 s Integrator Scope
0.5 Product Gain1
2.3 求解方程组:z2+z1=1,z2-z1=1。模型如下
f (z)
Solve f(z) = 0
z
0 Display
Algebraic Constraint
f (z)
Solve f(z) = 0
z
1 Display1
y To Workspace1
-398601 Math Function3 Fcn1 1 u u^3 Math Function1 sqrt Product2
1 s Gain2 -398601 Math Function5 1 u Math Function4 sqrt Product5 Integrator4
(4) 工具箱提供面向具体应用领域的功能。 (5) 丰富的数据 I/O 工具。 (6) 提供与其它高级语言的接口。 (7) 支持多平台(PC / UNIX等)。 (8) 开放与可扩展的体系结构。
Simulink的应用领域 至此,对Simulink的强大功能也会有一定 的了解。那么使用Simulink到底可以对什 么样的动态系统进行仿真分析与辅助设 计呢?其实,任何使用数学方式进行描 述的动态系统都可以使用Simulink进行建 模、仿真与分析。由于Simulink具有强大 的功能与友好的用户界面,因此它已经 被广泛地应用到诸多领域之中,如:
利用Simulink进行系统的建模仿真,其最 大的优点是易学、易用,并能依托 MATLAB提供的丰富的仿真资源。这里对 Simulink的强大功能进行简单的介绍。 • 交互式、图形化的建模环境 Simulink提供了丰富的模块库以帮助用户 快速地建立动态系统模型。建模时只需使 用鼠标拖放不同模块库中的系统模块并将 它们连接起来。
simulink积分模块详解(一)
simulink积分模块详解(一)Simulink积分模块Simulink是一种基于图形化编程的仿真工具,用于建立模型和分析不同系统的行为。
Simulink中提供了积分模块用于数学模型的建立和数值仿真。
在本文中,我们将对Simulink积分模块进行详细解释。
积分积分是数学中的一个重要概念,它可以将一个函数转化为另一个函数。
在Simulink中,我们也可以使用积分模块对输入信号进行积分得到输出信号。
数值积分在Simulink中,积分通常使用数值方法进行计算。
常用的数值方法有欧拉法、梯形法、Simpson法等。
在数值积分中,输入信号通常需要离散化处理。
连续积分如果输入信号是连续的,我们需要进行连续积分。
在Simulink中,我们可以使用积分模块(Integral block)来进行连续积分。
离散积分如果输入信号是离散的,我们需要进行离散积分。
在Simulink中,我们可以使用离散积分模块(Discrete-time Integrator block)来进行离散积分。
积分模块在Simulink中,积分模块分为连续积分模块和离散积分模块。
连续积分模块连续积分模块将输入信号进行积分后输出。
如果输入信号是连续的,那么输出信号也是连续的。
连续积分模块的输入和输出类型可以是连续的或离散的。
离散积分模块离散积分模块将输入信号离散化后进行积分。
如果输入信号是离散的,那么输出信号也是离散的。
离散积分模块的输入和输出类型都是离散的。
使用积分模块在Simulink中,使用积分模块非常简单。
我们只需要将积分模块拖拽到模型中,并设置好输入和输出端口即可。
下面以连续积分模块为例,为大家演示如何使用积分模块:1.打开Simulink,并创建一个新模型;2.在Simulink库浏览器中找到积分模块;3.将积分模块拖拽到模型中,并设置好输入和输出端口;4.连接输入信号和积分模块的输入端口;5.连接积分模块的输出端口和输出信号。
总结本文对Simulink积分模块进行了详细解释,并介绍了连续积分模块和离散积分模块的使用方法。
simulink模块库介绍
信号滤波与变换
利用Simulink模块库中的滤波器设计、信号变换等 模块,可以对信号进行各种处理和分析,提取有用 信息。
信号检测与估计
Simulink模块库中的信号检测和估计模块可 以帮助用户对信号进行各种检测和估计,如 频率估计、相位估计等。
嵌入式系统设计
嵌入式处理器建模
Simulink模块库提供了嵌入式处理器建模模块, 用于对嵌入式处理器进行建模和仿真。
01
信号调制与解调
利用Simulink模块库中的信号调制和解 调模块,可以对通信信号进行调制和解 调,实现信号的传输和处理。
02
03
通信系统性能评估
Simulink模块库中的性能评估模块可 以帮助用户对通信系统的性能进行评 估和优化。
THANKS
感谢观看
地学习和使用这些工具。
丰富的非线性模型
非线性模块提供了丰富的非线性模型, 可以模拟各种非线性系统的行为,方 便用户进行系统分析和设计。
灵活的参数设置
非线性模块通常提供灵活的参数设置, 用户可以根据实际需求调整参数,以 获得更好的系统模拟效果。
通信系统模块
通信系统模块
这些模块用于设计和分析通信系统。 它们提供了各种通信协议、调制解调
使用MATLAB函数创建自定义模 块,需要编写MATLAB代码,并 将其封装为一个可调用的函数。
自定义模块可以通过Simulink的 MATLAB Function Block来实现, 该块允许用户在Simulink环境中 直接调用MATLAB函数。
使用Simulink块创建自定义模块
01
Simulink块是Simulink自带或 第三方提供的可重用组件,用 于实现各种信号处理、控制和 通信等功能。
Simulink模块库简介_GAOQS
Simulink模块库简介在进行系统动态仿真之前,应绘制仿真系统框图,并确定仿真所需要的参数。
Simulink 模块库包含有大部分常用的建立系统框图的模块,下面简要介绍常用模块。
1、连续模块(continuous) (1)2、非连续模块(Discontinuous) (2)3、离散模块(Discrete) (3)4、逻辑和位操作模块(Logic and Bit Operation) (4)5、查找表模块(Lookup Table) (5)6.数学模块(Math Operations) (6)7、模型检测模块(Model Verification) (7)8、模型扩充模块(Model-Wide Utilities) (8)9、端口和子系统模块(Prot & Subsystems) (9)10、信号属性模块(Signal Attributes) (10)11、信号路线模块(Signal Routing) (11)12、接收器模块(Sinks) (12)13、输入源模块(Sources) (13)14、用户自定义函数模块(User-Defined Functions) (14)15、Additional Math & Discrete (14)综合 (15)1、连续模块(continuous)^_^(1) Derivative 输入信号微分;(2) Integrator输入信号积分;(3) State-Space状态空间系统模型(4) Transfer-Fcn传递函数模型(5) Transport Delay输入信号延时一个固定时间再输出(6) Variable Transport Delay输入信号延时一个可变时间再输出(7) Zero-Ploe零极点模型2、非连续模块(Discontinuous)(1) Backlash间隙非线性(2) Coulomb&Viscous Friction库仑和粘度摩擦非线性(3) Dead Zone死区非线性(4)Dead Zone Dynamic动态死区非线性(5) Hit Crossing冲击非线性^_^(6) Quantizer量化非线性(7) Rate Limiter静态限制信号的变化速率(8) Rate Limiter Dynamic动态限制信号的变化速率(9) Relay滞环比较器,限制输出值在某一范围内变化(10) Saturation饱和输出,让输出超过某一值是能够饱和(11) Saturation Dynamic动态饱和输出(12) Wrap To Zero3、离散模块(Discrete)^_^(1) Difference差分环节(2) Discrete Derivative 离散微分环节(3) Discrete Filter 离散滤波器(4) Discrete State-Space 离散状态空间系统模型(5) Discrete Transfer Fcn 离散传递函数模型(6) Discrete Zero-Pole 以零极点表示的离散传递函数模型(7) Discrete-Time Integrator 离散时间积分器(8) First-Order Hold 一阶保持器(9) Integer Delay 整数被延迟(10) Memory 输出本模块上一步的输入值(11) Tapped Delay 延迟(12) Transfer Fcn First Order 离散一阶传递函数(13) Transfer Fcn Lead or Lag 传递函数(14) Transfer Fcn Real Zero 离散零点传递函数(15) Unit Delay 一个采样周期的延时(16) Weighted Moving Average 权值移动平均模型(17) Zero-Order Hold 零阶保持器4、逻辑和位操作模块(Logic and Bit Operation)^_^(1) Bit Clear 位清零(2) Bit Set 位置位(3) Bitwise Operator 逐位操作(4) Combinatorial Logic 组合逻辑(5) Compare To Constant 和常量比较(6) Compare To Zero 和零比较(7) Detect Change 检测跳变(8) Detect Decrease 检测递减(9) Detect Fall Negative 检测负上升沿(10) Detect Fall Nonpositive 检测非负下降沿(11) Detect Increase 检测递增(12) Detect Rise Nonnegative 检测非负上升沿(13) Detect Rise Positive 检测正上升沿(14) Extract Bits 提取位(15) Interval Test 检测开区间(16) Interval Test Dynamic 动态检测开区间(17) Logical Operator 逻辑操作符(18) Relational Operator 关系操作符(19) Shift Arithmetic 移位运算5、查找表模块(Lookup Table)(1) Cosine 余弦函数查询表(2) Direct Lookup Table (n-D) n个输入信号的查询表(直接匹配)(3) Interpolation (n-D) using PreLookup n个输入信号的预插值(4) Lookup Table 输入信号的查询表(线性峰值匹配)(5) Lookup Table (2-D) 两维输入信号的查询表(线性峰值匹配)^_^(6) Lookup Table (n-D) n维输入信号的查询表(线性峰值匹配)(7) Lookup Table Dynamic 动态查询表(8) PreLookup Index Search 预查询索引搜索(9) Sine 正弦函数查询表6.数学模块(Math Operations)^_^(1) Abs 取绝对值(2) Add 加法(3) Algebraic Constraint 代数约束(4) Assignment 赋值(5) Bias 偏移(6) Complex to Magnitude-Angle 由复数输入转为幅值和相角输出(7) Complex to Real-Imag 由复数输入转为实部和虚部输出(8) Divide 除法(9) Dot Product 点乘运算(10) Gain 比例运算(11) Magnitude-Angle to Complex 由幅值和相角输入合成复数输出(12) Math Function 包括指数函数、对数函数、求平方、开根号等常用数学函数(13) Matrix Concatenation 矩阵级联(14) MinMax 最值运算(15) MinMax Running Resettable 最大最小值运算(16) Polynomial 多项式(17) Product 乘运算(18) Product of Elements 元素乘运算(19) Real-Imag to Complex 由实部和虚部输入合成复数输出(20) Reshape 取整(21) Rounding Function 舍入函数(22) Sign 符号函数(23) Sine Wave Function 正弦波函数(24) Slider Gain 滑动增益(25) Subtract 减法(26) Sum 求和运算(27) Sum of Elements 元素和运算(28) Trigonometric Function 三角函数,包括正弦、余弦、正切等(29) Unary Minus 一元减法(30) Weighted Sample Time Math 权值采样时间运算7、模型检测模块(Model Verification)^_^(1) Assertion 确定操作(2) Check Discrete Gradient 检查离散梯度(3) Check Dynamic Gap 检查动态偏差(4) Check Dynamic Lower Bound 检查动态下限(5) Check Dynamic Range 检查动态范围(6) Check Dynamic Upper Bound 检查动态上限(7) Check Input Resolution 检查输入精度(8) Check Static Gap 检查静态偏差(9) Check Static Lower Bound 检查静态下限(10) Check Static Range 检查静态范围(11) Check Static Upper Bound 检查静态上限8、模型扩充模块(Model-Wide Utilities)(1) Block Support Table 功能快支持的表(2) DocBlock 文档模块(3) Model Info 模型信息(4) Timed-Based Linearization 时间线性分析(5) Trigger-Based Linearization 触发线性分析^_^9、端口和子系统模块(Prot & Subsystems)^_^(1) Configurable Subsystem 结构子系统(2) Atomic Subsystem 单元子系统(3) CodeReuseSubsystem 代码重用子系统(4) Enable 使能(5) Enabled and Triggered Subsystem 使能和触发子系统(6) Enabled Subsystem 使能子系统(7) For Iterator Subsystem 重复操作子系统(8) Function-Call Generator 函数响应生成器(9) Function-Call Subsystem 函数响应子系统(10) If 假设操作(11) If Action Subsystem 假设动作子系统(12) In1 输入端口(13) Model 模型(14) Out1 输出端口(15) Subsystem 子系统(16) Subsystem Examples 子系统例子(17) Switch Case 转换事件(18) Switch Case Action Subsystem 转换事件子系统(19) Trigger 触发操作(20) Triggered Subsystem 触发子系统(21) While Iterator Subsystem 重复子系统10、信号属性模块(Signal Attributes)^_^(1) Data Type Conversion 数据类型转换(2) Data Type Conversion Inherited 继承的数据类型转换(3) Data Type Duplicate 数据类型复制(4) Data Type Propagation 数据类型继承(5) Data Type Propagation Examples 数据类型继承例子(6) Data Type Scaling Strip 数据类型缩放(7) IC 信号输入属性(8) Probe 探针点(9) Rate Transition 比率变换(10) Signal Conversion 信号转换(11) Signal Specification 信号特征说明(12) Weighted Sample Time 权值采样时间(13) Width 信号带宽11、信号路线模块(Signal Routing)^_^(1) Bus Assignment 总线分配(2) Bus Creator 总线生成(3) Bus Selector 总线选择(4) Data Store Memory 数据存储(5) Data Store Read 数据存储读取(6) Data Store Write 数据存储写入(7) Demux 将一个复合输入转化位多个单一输出(8) Environment Controller 环境控制器(9) From 信号来源(10) Goto 信号去向(11) Goto Tag Visibility 标签可视化(12) Index Vector 索引向量(13) Manual Switch 手动选择开关(14) Merge 信号合并(15) Multiport Switch 多端口开关(16) Mux 将多个单一输入转化为一个复合输出(17) Selector 信号选择器(18) Switch 开关选择,当第二输入端大于临界值时,输出由第一个输入端而来,否则输出由第三输入端而来(1) Display 数字显示器(2) Floating Scope 浮动观察器 (3) Out1 输出端口 (4) Scope 示波器(5) Stop Simulation 仿真停止(6) Terminator 连接到没有连接到的输出端(7) To File 将输出数据写入数据文件保存(8) To Workspace 将输出数据写入Matlab 的工作空间 (9) XY Graph 显示二维图形^_^^_^(1) Band-Limited White Noise 带限白噪声(2) Chirp Signal 产生一个频率不断增大的正弦波(3) Clock 显示和提供仿真时间(4) Constant 常数信号(5) Counter Free-Running 无限计数器(6) Counter Limited 有限计数器(7) Digital Clock 在规定的采样间隔产生仿真时间按(8) From File 来自数据文件(9) From Workspace 来自Matlab的工作空间(10) Ground 连接到没有连接到的输入端(11) In1 输入信号(12) Pulse Generator 脉冲发生器(13) Ramp 斜坡信号输入(14) Random Number 产生正态分布的随机数(15) Repeating Sequence 产生规律重复的任意信号(16) Repeating Sequence Interpolated 重复序列内插值(17) Repeating Sequence Stair 重复阶梯序列(18) Signal Builder 信号创建器(19) Signal Generator 信号发生器,可以产生正弦波、方波、锯齿波及任意波形(20) Sine Wave 正弦波信号(21) Step 阶跃信号(22) Uniform Random Number 一致随机数14、用户自定义函数模块(User-Defined Functions)(1) Embedded MATLAB Function 嵌入的Matlab函数(2) Fcn 用自定义的函数(表达式)进行运算(3) Level-2 M-file S-Function M文件编写的S函数(4) MATLAB Fcn 利用Matlab的现有函数进行运算(5) S-Function 调用自编的S函数程序进行运算(6) S-Function Builder S函数建立器(7) S-Function Examples S函数例子^_^Additional Math & Discrete15、(1) Additional Discrete(2) Additional Math: Increment – Decrement综合^_^^_^^_^^_^^_^^_^^_^^_^。
simulink各模块详解-simulink模块
7. “Extra Library”模块库
其中包含Simpower模块库中各类模块的扩充模块
二、 直流电路仿真
【例2_1】 测量下图所示电路的节点电压。
见Sim6_2_1.mdl
说 明
1. 模块库中没有直流电流源模块,可对“AC Current Source”模块进行适当设置:
2. 模块库中没有单独的电阻模块,可对 “Series RLC Branch”模块进行适当设置:
【例2_2】 测量下图所示电路的电流I。
见Sim6_2_2.mdl
说 明
CCCS的仿真模型
设置电流增益
取得控制电流Ix
受控电流源 注意参考方向
2. “Electrical Sources”模块库
其中包括7个用于产生电源信号的模块 功能说明 可编辑三相电源 三相电源
交流电流源
交流电压 受控电流源 受控电压源
直流电压源
3. “Elements”模块库
其中包括的是线性及非线性的电路网络元件模块,可分为 Elements(元件类)、Lines(导线类)、Circuit Breaker(开关类)、 Transformer(变压器类)共四类24个模块
功能说明
三相动力负载 三相互感线圈
三相并联RLC支路 三相并联RLC负载 三相串联RLC支路 三相串联RLC负载 三相开关 三相短路电路 三相电力传输线 三相变压器
功能说明
一般电路开关 多相分布电力传输线 线性变压器 互感线圈 并联RLC支路 并联RLC负载 单相电力传输线 饱和变压器 串联RLC支路 串联RLC负载 电涌放电器 三相变压器(三绕组) 三相变压器(两绕组) Y形变换三相变压器
6.2 Simulink电路分析应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
l a b 311.g f k d .m t n5 动态仿真集成环境—SimulinkSimulink 是MA TLAB 软件的扩展它是实现动态系统建模和仿真的一个软件包它支持连续离散及两者混合的线性和非线性系统它与MA TLAB 语言的主要区别在于其与用户交互接口是基于Windows 的模型化图形输入其结果是使得用户可以把更多的精力投入到系统模型的构建而非语言的编程上所谓模型化图形输入是指SIMULINK 提供了一些按功能分类的基本的系统模块用户只需要知道这些模块的输入输出及模块的功能而不必考察模块内部是如何实现的通过对这些基本模块的调用再将它们连接起来就可以构成所需要的系统模型以.mdl文件进行存取进而进行仿真与分析5.1 控制系统模型构造1 控制系统Simulink 模型 1 启动Simulink• 在MA TLAB 命令窗口中直接键入simulink 或simulink3• 通过MA TLAB 主窗口的快捷按钮来打开Simulink Library Browser 窗口 2 Simulink 的模块库介绍•连续模块Continuous continuous.mdl Integrator 输入信号积分 Derivative 输入信号微分 State-Space 线性状态空间系统模型 Transfer-Fcn 线性传递函数模型 Zero-Pole 以零极点表示的传递函数模型 Memory 存储上一时刻的状态值 Transport Delay 输入信号延时一个固定时间再输出V ariable Transport Delay 输入信号延时一个可变时间再输出•离散模块Discrete discrete.mdl Discrete-time Integrator 离散时间积分器Discrete Filter IIR 与FIR 滤波器 Discrete State-Space 离散状态空间系统模型 Discrete Transfer-Fcn 离散传递函数模型 Discrete Zero-Pole 以零极点表示的离散传递函数模型 First-Order Hold 一阶采样和保持器 Zero-Order Hold 零阶采样和保持器 Unit Delay 一个采样周期的延时• 函数和平台模块Function&Tables function.mdl Fcn 用自定义的函数表达式进行运算MA TLAB Fcn 利用matlab 的现有函数进行运算 S-Function 调用自编的S 函数的程序进行运算 Look-Up Table 建立输入信号的查询表线性峰值匹配 Look-Up Table(2-D)建立两个输入信号的查询表线性峰值匹配• 数学模块Math math.mdl Sum 加减运算 Product 乘运算 Dot Product 点乘运算l a b 311.g f k d .m t nGain 比例运算 Math Function 包括指数函数对数函数求平方开根号等常用数学函数 Trigonometric Function 三角函数包括正弦余弦正切等MinMax 最值运算 Abs 取绝对值 Sign 符号函数Logical Operator 逻辑运算Relational Operator 关系运算 Complex to Magnitude-Angle 由复数输入转为幅值和相角输出 Magnitude-Angle to Complex 由幅值和相角输入合成复数输出 Complex to Real-Imag 由复数输入转为实部和虚部输出 Real-Imag to Complex 由实部和虚部输入合成复数输出• 非线性模块Nonlinear nonlinear.mdl Saturation饱和输出让输出超过某一值时能够饱和 Relay 滞环比较器限制输出值在某一范围内变化 Switch 开关选择当第二个输入端大于临界值时输出由第一个输入端而来否则输出由第三个输入端而来 Manual Switch 手动选择开关• 信号和系统模块Signal&Systems sigsys.mdl In1输入端 Out1输出端Mux 将多个单一输入转化为一个复合输出 Demux 将一个复合输入转化为多个单一输出 Ground 连接到没有连接到的输入端 Terminator 连接到没有连接到的输出端 SubSystem 建立新的封装Mask 功能模块•接收器模块Sinks sinks.mdl Scope 示波器 XY Graph 显示二维图形 To Workspace 将输出写入MA TLAB 的工作空间 To File(.mat)将输出写入数据文件• 输入源模块Sources sources.mdl Constant 常数信号 Clock 时钟信号 From Workspace 来自MA TLAB 的工作空间 From File(.mat)来自数据文件 Pulse Generator 脉冲发生器 Repeating Sequence 重复信号Signal Generator信号发生器可以产生正弦方波锯齿波及随意波 Sine Wave 正弦波信号 Step 阶跃波信号 3 Simulink 简单模型的建立及模型特点 1简单模型的建立• 建立模型窗口l a b 311.g f k d .mt n • 将功能模块由模块库窗口复制到模型窗口 • 对模块进行连接从而构成需要的系统模型例建立模型mymod4-5-1.mdl 如图4-5-1所示图4-5-1 控制系统Simulink 模型的建立 模型的特点有• 在Simulink 里提供了许多如Scope 的接收器模块这使得用SIMULNK 进行仿真具有像做实验一般的图形化显示效果• Simulink 的模型具有层次性通过底层子系统可以构建上层母系统• Simulink 提供了对子系统进行封装的功能用户可以自定义子系统的图标和设置参数对话框 4 Simulink 功能模块的处理 功能模块的基本操作包括模块的移动复制删除转向改变大小模块命名颜色设定参数设定属性设定模块输入输出信号等模块库中的模块可以直接用鼠标进行拖曳选中模块按住鼠标左键不放而放到模型窗口中进行处理在模型窗口中选中模块则其4个角会出现黑色标记此时可以对模块进行以下的基本操作• 移动选中模块按住鼠标左键将其拖曳到所需的位置即可若要脱离线而移动可按住shift 键再进行拖曳• 复制选中模块然后按住鼠标右键进行拖曳即可复制同样的一个功能模块 • 删除选中模块按Delete 键即可若要删除多个模块可以同时按住Shift 键再用鼠标选中多个模块按Delete 键即可也可以用鼠标选取某区域再按Delete 键就可以把该区域中的所有模块和线等全部删除• 转向为了能够顺序连接功能模块的输入和输出端功能模块有时需要转向在菜单Format 中选择Flip Block 旋转180度选择Rotate Block 顺时针旋转90度或者直接按Ctrl+F 键执行Flip Block 按Ctrl+R 键执行Rotate Block• 改变大小选中模块对模块出现的4个黑色标记进行拖曳即可•模块命名先用鼠标在需要更改的名称上单击一下然后直接更改即可名称在功能模块上的位置也可以变换180度可以用Format 菜单中的Flip Name来实现也可以直接通过鼠标进行拖曳Hide Name 可以隐藏模块名称l a b 311.g f k d .m t n•颜色设定 Format 菜单中的Foreground Color 可以改变模块的前景颜色Background Color 可以改变模块的背景颜色而模型窗口的颜色可以通过Screen Color 来改变•参数设定用鼠标双击模块就可以进入模块的参数设定窗口从而对模块进行参数设定参数设定窗口包含了该模块的基本功能帮助为获得更详尽的帮助可以点击其上的help 按钮通过对模块的参数设定就可以获得需要的功能模块• 属性设定选中模块打开Edit 菜单的Block Properties 可以对模块进行属性设定包括Description 属性 Priority 优先级属性Tag 属性Open function 属性Attributes format string 属性其中Open function 属性是一个很有用的属性通过它指定一个函数名则当该模块被双击之后Simulink就会调用该函数执行这种函数在MA TLAB 中称为回调函数• 模块的输入输出信号模块处理的信号包括标量信号和向量信号标量信号是一种单一信号而向量信号为一种复合信号是多个信号的集合它对应着系统中几条连线的合成缺省情况下大多数模块的输出都为标量信号对于输入信号模块都具有一种“智能”的识别功能能自动进行匹配某些模块通过对参数的设定可以使模块输出向量信号 5 Simulink 线的处理Simulink 模型的构建是通过用线将各种功能模块进行连接而构成的用鼠标可以在功能模块的输入与输出端之间直接连线所画的线可以改变粗细设定标签也可以把线折弯分支•改变粗细线所以有粗细是因为线引出的信号可以是标量信号或向量信号当选中Format 菜单下的Wide V ector Lines 时线的粗细会根据线所引出的信号是标量还是向量而改变如果信号为标量则为细线若为向量则为粗线选中V ector Line Widths 则可以显示出向量引出线的宽度即向量信号由多少个单一信号合成• 设定标签只要在线上双击鼠标即可输入该线的说明标签也可以通过选中线然后打开Edit 菜单下的Signal Properties 进行设定其中signal name 属性的作用是标明信号的名称设置这个名称反映在模型上的直接效果就是与该信号有关的端口相连的所有直线附近都会出现写有信号名称的标签•线的折弯按住Shift 键再用鼠标在要折弯的线处单击一下就会出现圆圈表示折点利用折点就可以改变线的形状•线的分支按住鼠标右键在需要分支的地方拉出即可以或者按住Ctrl 键并在要建立分支的地方用鼠标拉出即可2 SIMULINK 自定义功能模块 自定义功能模块有两种方法一种方法是采用Signal&Systems 模块库中的Subsystem 功能模块利用其编辑区设计组合新的功能模块另一种方法是将现有的多个功能模块组合起来形成新的功能模块对于很大的SIMULINK 模型通过自定义功能模块可以简化图形减少功能模块的个数有利于模型的分层构建 1 创建自定义功能模块方法• 方法1将Signal&Systems 模块库中的Subsystem 功能模块复制到打开的模型窗口中 双击Subsystem 功能模块进入自定义功能模块窗口从而可以利用已有的基本功能模块设计出新的功能模块• 方法 2 • 在模型窗口中建立所定义功能模块的子模块 用鼠标将这些需要组合的功能模块框住然后选择Edit 菜单下的Create Subsystem 即可 例建立模型mymod4-5-2.mdl 如图4-5-2所示l ab 311.g f k d .m t n 图4-5-2 创建自定义功能模块 2 自定义功能模块的封装 上面提到的两种方法都只是创建一个功能模块而已如果要命名该自定义功能模块对功能模块进行说明选定模块外观设定输入数据窗口则需要对其进行封装处理首先选中Subsystem功能模块再打开Edit 菜单中的Mask Subsystem 进入mask 的编辑窗口可以看出有3个标签页 • Icon 设定功能模块的外观 • Initialization 设定输入数据窗口Prompt List • Documentation 设计该功能模块的文字说明例建立模型mymod4-5-3.mdl 如图4-5-3所示图4-5-3自定义功能模块的封装5.2连续系统数字仿真 构建好一个系统的模型之后接下来的事情就是运行模型得出仿真结果运行一个仿真的完整过程分成三个步骤设置仿真参数启动仿真和仿真结果分析 1 设置仿真参数和选择解法器 设置仿真参数和选择解法器选择Simulation 菜单下的Parameters 命令就会弹出一个仿真参数对话框它主要用三个页面来管理仿真的参数如图4-5-4所示l a b 311.g f k d .m t n图4-5-4设置仿真参数和选择解法器 1 Solver 页它允许用户设置仿真的开始和结束时间选择解法器说明解法器参数及选择一些输出选项• 仿真时间注意这里的时间概念与真实的时间并不一样只是计算机仿真中对时间的一种表示比如10秒的仿真时间如果采样步长定为0.1则需要执行100步若把步长减小则采样点数增加那么实际的执行时间就会增加一般仿真开始时间设为0而结束时间视不同的因素而选择总的说来执行一次仿真要耗费的时间依赖于很多因素包括模型的复杂程度解法器及其步长的选择计算机时钟的速度等等• 仿真步长模式用户在Type 后面的第一个下拉选项框中指定仿真的步长选取方式可供选择的有V ariable-step 变步长和Fixed-step 固定步长方式变步长模式可以在仿真的过程中改变步长提供误差控制和过零检测固定步长模式在仿真过程中提供固定的步长不提供误差控制和过零检测用户还可以在第二个下拉选项框中选择对应模式下仿真所采用的算法 变步长模式解法器有ode45ode23ode113ode15s ode23s ode23t ode23tb 和discrete • ode45缺省值四/五阶龙格库塔法适用于大多数连续或离散系统但不适用于刚性stiff 系统它是单步解法器也就是在计算y(tn)时它仅需要最近处理时刻的结果y(t n -1)一般来说面对一个仿真问题最好是首先试试ode45 • ode23二/三阶龙格库塔法它在误差限要求不高和求解的问题不太难的情况下可能会比ode45更有效也是一个单步解法器 • ode113是一种阶数可变的解法器它在误差容许要求严格的情况下通常比ode45有效ode113是一种多步解法器也就是在计算当前时刻输出时它需要以前多个时刻的解 • ode15s 是一种基于数字微分公式的解法器NDFs 也是一种多步解法器适用于刚性系统当用户估计要解决的问题是比较困难的或者不能使用ode45或者即使使用效果也不好就可以用ode15s • ode23s 它是一种单步解法器专门应用于刚性系统在弱误差允许下的效果好于ode15s 它能解决某些ode15s 所不能有效解决的stiff 问题 • ode23t 是梯形规则的一种自由插值实现这种解法器适用于求解适度stiff 的问题而用户又需要一个无数字振荡的解法器的情况l a b 311.g f k d .m t n• ode23tb 是TR-BDF2的一种实现 TR-BDF2 是具有两个阶段的隐式龙格库塔公式 discrtet 当Simulink 检查到模型没有连续状态时使用它 固定步长模式解法器有ode5ode4ode3ode2ode1和discrete • ode5缺省值是ode45的固定步长版本适用于大多数连续或离散系统不适用于刚性系统 • ode4四阶龙格库塔法具有一定的计算精度 • ode3固定步长的二/三阶龙格库塔法 • ode2改进的欧拉法 • ode1欧拉法 • discrete 是一个实现积分的固定步长解法器它适合于离散无连续状态的系统 步长参数对于变步长模式用户可以设置最大的和推荐的初始步长参数缺省情况下步长自动地确定它由值auto 表示 • Maximum step size最大步长参数它决定了解法器能够使用的最大时间步长它的缺省值为“仿真时间/50”即整个仿真过程中至少取50个取样点但这样的取法对于仿真时间较长的系统则可能带来取样点过于稀疏而使仿真结果失真一般建议对于仿真时间不超过15s 的采用默认值即可对于超过15s 的每秒至少保证5个采样点对于超过100s 的每秒至少保证3个采样点 • Initial step size 初始步长参数一般建议使用“auto”默认值即可• 仿真精度的定义对于变步长模式 • Relative tolerance相对误差它是指误差相对于状态的值是一个百分比缺省值为1e-3表示状态的计算值要精确到0.1% • Absolute tolerance 绝对误差表示误差值的门限或者是说在状态值为零的情况下可以接受的误差如果它被设成了auto 那么simulink 为每一个状态设置初始绝对误差为1e-6 Mode 固定步长模式选择 • Multitasking 选择这种模式时当simulink 检测到模块间非法的采样速率转换它会给出错误提示所谓的非法采样速率转换指两个工作在不同采样速率的模块之间的直接连接在实时多任务系统中如果任务之间存在非法采样速率转换那么就有可能出现一个模块的输出在另一个模块需要时却无法利用的情况通过检查这种转换Multitasking 将有助于用户建立一个符合现实的多任务系统的有效模型使用速率转换模块可以减少模型中的非法速率转换Simulink 提供了两个这样的模块unit delay 模块和zero-order hold 模块对于从慢速率到快速率的非法转换可以在慢输出端口和快输入端口插入一个单位延时unit delay 模块而对于快速率到慢速率的转换则可以插入一个零阶采样保持器zero-order hold • Singletasking 这种模式不检查模块间的速率转换它在建立单任务系统模型时非常有用在这种系统就不存在任务同步问题 • Auto 这种模式simulink 会根据模型中模块的采样速率是否一致自动决定切换到multitasking 和singletasking输出选项 • Refine output 这个选项可以理解成精细输出其意义是在仿真输出太稀松时simulink 会产生额外的精细输出这一点就像插值处理一样用户可以在refine factor 设置仿真时间步间插入的输出点数产生更光滑的输出曲线改变精细因子比减小仿真步长更有效精细输出只能在变步长模式中才能使用并且在ode45效果最好l a b 311.g f k d .m t n• Produce additional output 它允许用户直接指定产生输出的时间点一旦选择了该项则在它的右边出现一个output times编辑框在这里用户指定额外的仿真输出点它既可以是一个时间向量也可以是表达式与精细因子相比这个选项会改变仿真的步长 • Produce specified output only 它的意思是让simulink 只在指定的时间点上产生输出为此解法器要调整仿真步长以使之和指定的时间点重合这个选项在比较不同的仿真时可以确保它们在相同的时间输出 2 Workspace I/O 页作用是管理模型从MA TLAB 工作空间的输入和对它的输出此页主要用来设置SIMULINK 与MA TLAB 工作空间交换数值的有关选项 • Load from workspace 选中前面的复选框即可从MA TLAB 工作空间获取时间和输入变量一般时间变量定义为t 输入变量定义为u Initial state 用来定义从MA TLAB 工作空间获得的状态初始值的变量名 • Save to workspace 用来设置存往MA TLAB工作空间的变量类型和变量名选中变量类型前的复选框使相应的变量有效一般存往工作空间的变量包括输出时间向量Time状态向量States 和输出变量OutputFinal state 用来定义将系统稳态值存往工作空间所使用的变量名 • Save option 用来设置存往工作空间的有关选项Limit rows to last 用来设定SIMULINK 仿真结果最终可存往MA TLAB工作空间的变量的规模对于向量而言即其维数对于矩阵而言即其秩Decimation 设定了一个亚采样因子它的缺省值为1也就是对每一个仿真时间点产生值都保存而若为2则是每隔一个仿真时刻才保存一个值Format 用来说明返回数据的格式包括矩阵matrix 结构struct 及带时间的结构struct with time 3 Diagnostics 页允许用户选择Simulink 在仿真中显示的警告信息的等级 此页分成两个部分仿真选项和配置选项配置选项下的列表框主要列举了一些常见的事件类型以及当SIMULINK 检查到这些事件时给予的处理仿真选项options 主要包括是否进行一致性检验是否禁用过零检测是否禁止复用缓存是否进行不同版本的SIMULINK 的检验等几项除了上述3个主要的页外仿真参数设置窗口还包括real-time workshop页主要用于与C 语言编辑器的交换通过它可以直接从SIMULINK 模型生成代码并且自动建立可以在不同环境下运行的程序这些环境包括实时系统和单机仿真 2 启动仿真 设置仿真参数和选择解法器之后就可以启动仿真而运行选择Simulink 菜单下的start 选项来启动仿真如果模型中有些参数没有定义则会出现错误信息提示框如果一切设置无误则开始仿真运行除了直接在SIMULINK 环境下启动仿真外还可以在MA TLAB 命令窗口中通过函数进行格式如下[t,x,y]=sim(‘模型文件名’,[to tf],simset(‘参数1’,参数值1,‘参数2’,参数值2, …)) 其中to 为仿真起始时间tf 为仿真终止时间[t,x,y]为返回值t 为返回的时间向量值x 为返回的状态值y 为返回的输出向量值simset 定义了仿真参数包括以下一些主要参数 AbsTol 默认值为1e-6设定绝对误差范围 Decimation 默认值为1决定隔多少个点返回状态和输出值 Solver 解法器的选择 MaxRows 默认值为0表示不限制若为大于零的值则表示限制输 出和状态的规模使其最大行数等于该数值l a b 311.g f k d .m t nInitialState一个向量值用于设定初始状态 FixedStep 用一个正数表示步阶的大小仅用于固定步长模式 MaxStep 默认值为auto 用于变步长模式表示最大的步阶大小 如果知道模型文件名称可以用以下命令得到该模型的仿真参数simget(‘模型文件名’5.3 Simulink 的扩展工具—S 函数Simulink 为用户提供了许多内置的基本库模块通过这些模块进行连接而构成系统的模型对于那些经常使用的模块进行组合并封装可以构建出重复使用的新模块但它依然是基于Simulink 原来提供的内置模块而Simulink s-function 是一种强大的对模块库进行扩展的新工具1 S-function 的概念S-function 是一个动态系统的计算机语言描述在MA TLAB 里用户可以选择用m 文件编写也可以用c 或mex文件编写在这里只介绍如何用m 文件编写s-functionS-function 提供了扩展Simulink 模块库的有力工具它采用一种特定的调用语法使函数和Simulink 解法器进行交互S-function 最广泛的用途是定制用户自己的Simulink 模块它的形式十分通用能够支持连续系统离散系统和混合系统2 建立m 文件S-function 1 使用模板文件sfuntmp1. m• 该模板文件位于MA TLAB 根目录下toolbox/simulink/blocks 目录下• 模板文件里s-function 的结构十分简单它只为不同的flag 的值指定要相应调用的m 文件子函数比如当flag=3时即模块处于计算输出这个仿真阶段时相应调用的子函数为sys=mdloutputs(t,x,u)• 模板文件使用switch 语句来完成这种指定当然这种结构并不唯一用户也可以使用if 语句来完成同样的功能而且在实际运用时可以根据实际需要来去掉某些值因为并不是每个模块都需要经过所有的子函数调用• 模板文件只是Simulink 为方便用户而提供的一种参考格式并不是编写s-function 的语法要求用户完全可以改变子函数的名称或者直接把代码写在主函数里但使用模板文件的好处是比较方便而且条理清晰•使用模板编写s-function 用户只需把s-函数名换成期望的函数名称如果需要额外的输入参量还需在输入参数列表的后面增加这些参数因为前面的4个参数是simulink 调用s-function 时自动传入的对于输出参数最好不做修改接下去的工作就是根据所编s-function要完成的任务用相应的代码去替代模板里各个子函数的代码即可• Simulink 在每个仿真阶段都会对s-function进行调用在调用时Simulink 会根据所处的仿真阶段为flag 传入不同的值而且还会为sys 这个返回参数指定不同的角色也就是说尽管是相同的sys 变量但在不同的仿真阶段其意义却不相同这种变化由simulink 自动完成• m 文件s-function 可用的子函数说明如下 mdlInitializeSizes 定义s-function 模块的基本特性包括采样时间连续或者离散状态的初始条件和sizes 数组 mdlDerivatives 计算连续状态变量的微分方程 mdlUpdate 更新离散状态采样时间和主时间步的要求 mdlOutputs 计算s-function 的输出l a b 311.g f k d .m t n mdlGetTimeOfNextV arHit计算下一个采样点的绝对时间这个方法仅仅是在用户在mdlInitializeSizes 里说明了一个可变的离散采样时间 mdlTerminate 实现仿真任务必须的结束• 概括说来建立s-function 可以分成两个分离的任务a)初始化模块特性包括输入输出信号的宽度离散连续状态的初始条件和采样时间b) 将算法放到合适的s-function 子函数中去 2 定义s-function 的初始信息• 为了让Simulink 识别出一个m 文件s-function 用户必须在s-函数里提供有关s-函数的说明信息包括采样时间连续或者离散状态个数等初始条件这一部分主要是在mdlInitializeSizes 子函数里完成• Sizes 数组是s-function 函数信息的载体它内部的字段意义为 NumContStates 连续状态的个数状态向量连续部分的宽度 NumDiscStates 离散状态的个数状态向量离散部分的宽度 NumOutputs 输出变量的个数输出向量的宽度 NumInputs 输入变量的个数输入向量的宽度 DirFeedthrough 有无直接馈入 NumSampleTimes 采样时间的个数• 如果字段代表的向量宽度为动态可变则可以将它们赋值为1• 注意DirFeedthrough 是一个布尔变量它的取值只有0和1两种0表示没有直接馈入此时用户在编写mdlOutputs 子函数时就要确保子函数的代码里不出现输入变量u 1表示有直接馈入• NumSampleTimes 表示采样时间的个数也就是ts 变量的行数与用户对ts 的定义有关• 需要指出的是由于s-function会忽略端口所以当有多个输入变量或多个输出变量时必须用mux 模块或demux 模块将多个单一输入合成一个复合输入向量或将一个复合输出向量分解为多个单一输出 3 输入和输出参量说明• S-function 默认的4个输入参数为t x u 和flag 它们的次序不能变动代表的意义分别为t 代表当前的仿真时间这个输入参数通常用于决定下一个采样时刻或者在多采样速率系统中用来区分不同的采样时刻点并据此进行不同的处理 x 表示状态向量这个参数是必须的甚至在系统中不存在状态时也是如此它具有很灵活的运用 u 表示输入向量 flag 是一个控制在每一个仿真阶段调用哪一个子函数的参数由Simulink 在调用时自动取值• S-function 默认的4个返回参数为sys x0str 和ts 它们的次序不能变动代表的意义分别为 sys 是一个通用的返回参数它所返回值的意义取决于flag 的值 x0 是初始的状态值没有状态时是一个空矩阵[]这个返回参数只在flag 值为0时才有效其他时候都会被忽略str这个参数没有什么意义是MathWorks公司为将来的应用保留的m 文件s-function 必须把它设为空矩阵 ts 是一个m 2的矩阵它的两列分别表示采样时间间隔和偏移。