Simulink模块库学习笔记
- 格式:docx
- 大小:957.12 KB
- 文档页数:37
simulink常用模块梳理与总结Simulink is a powerful tool for modeling, simulating, and analyzing dynamic systems. It offers a wide variety of modules that can be used to construct complex models for various applications. These modules can be categorized into blocks, sources, sinks, continuous, and discrete blocks, among others.Simulink中常用的模块可以帮助用户快速构建复杂的系统模型,有效地进行仿真分析。
模块可以分为多种类型,如Blocks、Sources、Sinks、Continuous、Discrete等等。
不同的模块可以用于不同的应用场景,满足用户的各种需求。
Blocks are the basic components in Simulink, representing various mathematical operations, logical conditions, and signal processing functions. They can be connected together to form a block diagram that describes the system dynamics. Commonly used blocks include Sum, Gain, Integrator, and Transfer Function.Blocks是Simulink中的基本组件,代表各种数学运算、逻辑条件和信号处理功能。
用户可以将这些Blocks连接在一起,构成描述系统动态的框图。
Simulink模块库简介0 修改历史1、连续模块(continuous)(1)Derivative输入信号微分;(2)Integrator输入信号积分;(3)State-Space状态空间系统模型(4)Transfer-Fcn传递函数模型(5)TransportDelay输入信号延时一个固定时间再输出(6)VariableTransportDelay输入信号延时一个可变时间再输出(7)Zero-Ploe零极点模型2、非连续模块(Discontinuous)(1)Backlash间隙非线性(2)Coulomb&ViscousFriction库仑和粘度摩擦非线性(3)DeadZone死区非线性(4)DeadZoneDynamic动态死区非线性(5)HitCrossing冲击非线性(6)Quantizer量化非线性(7)RateLimiter静态限制信号的变化速率(8)RateLimiterDynamic动态限制信号的变化速率(9)Relay滞环比较器,限制输出值在某一范围内变化(10)Saturation饱和输出,让输出超过某一值是能够饱和(11)SaturationDynamic动态饱和输出(12)WrapToZero3、离散模块(Discrete)(1)Difference差分环节(2)DiscreteDerivative离散微分环节(3)DiscreteFilter离散滤波器(4)DiscreteState-Space离散状态空间系统模型(5)DiscreteTransferFcn离散传递函数模型(6)DiscreteZero-Pole以零极点表示的离散传递函数模型(7)Discrete-TimeIntegrator离散时间积分器(8)First-OrderHold一阶保持器(9)IntegerDelay整数被延迟(10)Memory输出本模块上一步的输入值(11)TappedDelay延迟(12)TransferFcnFirstOrder离散一阶传递函数(13)TransferFcnLeadorLag传递函数(14)TransferFcnRealZero离散零点传递函数(15)UnitDelay一个采样周期的延时(16)WeightedMovingAverage权值移动平均模型(17)Zero-OrderHold零阶保持器4、逻辑和位操作模块(LogicandBitOperation)(1)BitClear位清零输入的数指定位清零请参考(3)的示例图。
一、set_param 函数的应用(一)函数调用格式:set_param(object,param,value),其中object为模块句柄,param 为参数,value 为参数值。
(二)举例(1)启动模型仿真set_param(gcs,'SimulationCommand','start')(2)精确控制模型仿真步长set_param(gcs, 'SimulationCommand', 'step'),step 为仿真步长数。
(3)设置模块在模型中的位置set_param('mymodel/Gain','Position',[50 250 125 275])(4)设置模块的回调函数set_param('mymodel/Gain','OpenFcn','my_open_cb')(5)设置模块的朝向set_param('mymodel/Gain','Orientation','left')二、实时改变模块的参数单步仿真一次,改变一次参数的值,代码如下:set_param(gcs,'SimulationCommand','start')while 1set_param(gcs,'SimulationCommand','pause')set_param(你的模块名,'Resistance', 你想改变的值); %这一句你替换一下参数即可set_param(gcs,'SimulationCommand','step')end三、上次末状态作为本次初始状态进行仿真问:已经建立好一个数据仿真模型现在想单独改变一个参数去观察参数扰动对结果的影响,例如参数变化范围是1000 到1500,每7s 的时间让参数变化100,用什么方法可以实现?答:分次仿真,每次仿真保存末状态,下一次仿真前更改参数,再倒入上次仿真的末状态作为初始状态,设置如下图:四、模型加上标题问:怎么给模型加上标题?答:双击模型空白位置,即可输入text 文本,并可以设置字体大小颜色等。
1、PowerGui:Simscape→simpowersystems→PowerGui2、双击Powergui模块图标将弹出该模块的主窗口,如图所示。
1. 仿真类型(configure parameters→上图→simulation type)1) “相量法仿真”(Phasor simulation)单选框2) “离散系统仿真”(Discrete)单选框点击该单选框后,在“采样时间”(Sample time)文本框中输入指定的采样时间(Ts>0),按指定的步长对离散化系统进行分析。
若采样时间等于0,表示不对数据进行离散化处理,采用连续算法分析系统。
若未选中该单选框,“采样时间”文本框显示为灰色。
3) “连续系统仿真”(Continuous)单选框点击该单选框后,采用连续算法分析系统2. 分析工具1) “稳态电压电流分析”(Steady-State Voltages and Currents)按键打开稳态电压电流分析窗口,显示模型文件的稳态电压和电流。
2) “初始状态设置”(Initial States Setting)按键打开初始状态设置窗口,显示初始状态,并允许对模型的初始电压和电流进行更改。
3) “潮流计算和电机初始化”(Load Flow and Machine Initialization)按键打开潮流计算和电机初始化窗口。
4) “LTI视窗”(Use LTI Viewer)按键打开窗口,使用“控制系统工具箱”(Control System Toolbox)的LTI视窗。
5) “阻抗依频特性测量”(Impedance vs. Frequency Measurement)按键打开窗口,如果模型文件中含阻抗测量模块,该窗口中将显示阻抗依频特性图。
6) “FFT分析”(FFT Analysis)按键打开FFT分析窗口。
7) “报表生成”(Generate Report)按键打开窗口,产生稳态计算的报表。
认识Simulink的重要模块库(Simulink模块库按照功能分类,包括13类模块库)一、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模块库简介0 修改历史1、连续模块(continuous)(1)Derivative输入信号微分;(2)Integrator输入信号积分;(3)State-Space状态空间系统模型(4)Transfer-Fcn传递函数模型(5)TransportDelay输入信号延时一个固定时间再输出(6)VariableTransportDelay输入信号延时一个可变时间再输出(7)Zero-Ploe零极点模型2、非连续模块(Discontinuous)(1)Backlash间隙非线性(2)Coulomb&ViscousFriction库仑和粘度摩擦非线性(3)DeadZone死区非线性(4)DeadZoneDynamic动态死区非线性(5)HitCrossing冲击非线性(6)Quantizer量化非线性(7)RateLimiter静态限制信号的变化速率(8)RateLimiterDynamic动态限制信号的变化速率(9)Relay滞环比较器,限制输出值在某一范围内变化(10)Saturation饱和输出,让输出超过某一值是能够饱和(11)SaturationDynamic动态饱和输出(12)WrapToZero3、离散模块(Discrete)(1)Difference差分环节(2)DiscreteDerivative离散微分环节(3)DiscreteFilter离散滤波器(4)DiscreteState-Space离散状态空间系统模型(5)DiscreteTransferFcn离散传递函数模型(6)DiscreteZero-Pole以零极点表示的离散传递函数模型(7)Discrete-TimeIntegrator离散时间积分器(8)First-OrderHold一阶保持器(9)IntegerDelay整数被延迟(10)Memory输出本模块上一步的输入值(11)TappedDelay延迟(12)TransferFcnFirstOrder离散一阶传递函数(13)TransferFcnLeadorLag传递函数(14)TransferFcnRealZero离散零点传递函数(15)UnitDelay一个采样周期的延时(16)WeightedMovingAverage权值移动平均模型(17)Zero-OrderHold零阶保持器4、逻辑和位操作模块(LogicandBitOperation)(1)BitClear位清零输入的数指定位清零请参考(3)的示例图。
(2)BitSet位置位输入的数指定位置1请参考(3)的示例图。
(3)BitwiseOperator逐位操作输入的数与指定的常数逐位进行“AND”、“OR”、“NAND”、“NOR”、“XOR”和“NOT”等算术运算。
“AND”:逐位进行“与”运算,即两个输入都同时为1,则输出为1“OR”:逐位进行“或”运算,即两个输入只要有一个为1,则输出为1 “NAND”:逐位进行“非与”运算,即两个输入只要有一个为0,则输出为1 “NOR”:逐位进行“非或”运算,即两个输入都同时为0,则输出为1“XOR”:逐位进行“异或”运算,即两个输入不同,则输出为1“NOT”:逐位进行“求反”运算,即如果输入1,则输出为0;如果输入0,则输出为1(4)CombinatorialLogic组合逻辑(5)CompareToConstant和常量比较请参考(6)(6)CompareToZero和零比较一个输入一个输出,运算可从“==”、“~=”、“<”、“<=”、“>=”和“>”等选择。
输入为浮点数、内嵌整数、定点数和布尔值,输出为布尔值或者uint8类型值。
如果输入满足条件,则输出为1,否则输出0.例如输入为0x3812,运算符为“==”,则输出为0(即输入不满足条件)。
(7)DetectChange检测跳变如果当前输入和前一次输入不同,则输出为1,否则输出为0。
输入可以是浮点值、内嵌整数、定点数、布尔值和枚举值。
输出为布尔值或者uint8。
(8)DetectDecrease检测递减(11)DetectIncrease检测递增输出为布尔值或者uint8。
(9)DetectFallNegative检测负上升沿(10)DetectFallNonpositive检测非负下降沿(12)DetectRiseNonnegative检测非负上升沿(13)DetectRisePositive检测正上升沿操作模式前一个输入(或初始值)当前输入输出Detect Fall Negative>=0<01>=0>=00<0>=00<0<00 Detect Fall Nonpositive>0<=01>0>00<=0>00<=0<=00 Detect Rise Nonnegative<0>=01<0<00>=0<00>=0>=00 Detect Rise Positive<=0>01<=0<=00>0<=00>0>00输入可以是Double | Single | Boolean | Base Integer | Fixed-Point输出可以是布尔值或者uint8。
(14)ExtractBits提取位输入Bits toextract Number of bitsExtractBits处理图Outputscalingmode输出0110 1000 0100 0101 0111 1001 0010 0101buint32Upperhalf---- Preservefixed-point scalingTreat bit field as an integerLower half ---- Preservefixed-point scalingTreat bitfield as anintegerRange starting with most significan t bit 12Preservefixed-point scalingTreat bitfield as anintegerRange ending with least significan t bit 16Preservefixed-point scalingTreat bitfield as anintegerRange of bits [7 18]Preservefixed-point scalingTreat bitfield as aninteger数据类型:Double | Single | Boolean | Base Integer | Fixed-Point(15)IntervalTest检测开区间这里的a和b是提前设定的常量值,I为输入,设定的常量满足a b,开闭区间要提前做选择:Interval(16)IntervalTestDynamic 动态检测开区间这里的a 、I 和b 分别是输入1、输入2和输入3的动态值,且满足a b <,开闭区间要提前做选择:输入数据类型:Double | Single | Boolean | Base Integer | Fixed -Point | Enumerated 输出可以是布尔值或者uint8。
(17)LogicalOperator 逻辑操作符输入至少为2个(除“NOT ”外),输出为一个,运算可从“AND ”、“OR ”、“NAND ”、“NOR ”、“XOR ”、“NXOR ”和“NOT ”等选择,输入一般为布尔型值。
布尔输入1布尔输入2运算符选项输出0---- NOT11---- 0(18)RelationalOperator关系操作符输入1输入2运算符选项说明图标满足条件输出a b ==等于a b=1a b≠0 ~=不等于a b≠1a b=0 <小于a b<1a b≥0 <=小于等于a b≤1a b>0 >大于a b>1a b≤0 >=大于等于a b≥1a b<0a ---- isInf无穷大无穷大1非无穷大0 ---- isNaN不是一个数---- isFinite有限的输入数据类型:Double | Single | Boolean | Base Integer | Fixed-Point | Enumerated 输出可以是布尔值或者uint8。
(19)ShiftArithmetic移位运算属性设置框图如下图:(1)1个输入,移位数由对话框内的常数决定(1)右移8位(2)左移8位(2)2个输入,移位数由输入2决定数u左移s位:5、查找表模块(LookupTable)(1)Cosine余弦函数查询表(2)DirectLookupTable(n-D)n个输入信号的查询表(直接匹配)(3)Interpolation(n-D)usingPreLookupn个输入信号的预插值(4)LookupTable输入信号的查询表(线性峰值匹配)(5)LookupTable(2-D)两维输入信号的查询表(线性峰值匹配)(6)LookupTable(n-D)n维输入信号的查询表(线性峰值匹配)(7)LookupTableDynamic动态查询表(8)PreLookupIndexSearch预查询索引搜索(9)Sine正弦函数查询表6.数学模块(MathOperations)(1)Abs取绝对值(2)Add加法请参考(25)(3)AlgebraicConstraint代数约束(4)Assignment赋值(5)Bias偏移输出等于输入+固定数值Double | Single | Base Integer | Fixed-Point(6)ComplextoMagnitude-Angle由复数输入转为幅值和相角输出(7)ComplextoReal-Imag由复数输入转为实部和虚部输出(8)Divide除法实现数的除法(或乘法)运算,也可以实现点乘除和矩阵乘除法。
属性main-->Number of inputs一栏里填入的是输入参数个数相关的各输入参数的乘除属性,例如输入“*/”则表示“输入1/输入2”,“**//”则表示“输入1*输入2/输入3/输入4”。
(9)DotProduct点乘运算(10)Gain比例运算可参考乘法(除法)运算可以看做常数乘法(11)Magnitude-AngletoComplex由幅值和相角输入合成复数输出(12)MathFunction包括指数函数、对数函数、求平方、开根号等常用数学函数(13)MatrixConcatenation矩阵级联(14)MinMax最值运算(15)MinMaxRunningResettable最大最小值运算(16)Polynomial多项式(17)Product乘运算(18)ProductofElements元素乘运算(19)Real-ImagtoComplex由实部和虚部输入合成复数输出(20)Reshape取整修改向量和矩阵的维度(21)RoundingFunction舍入函数(22)Sign符号函数(23)SineWaveFunction正弦波函数(24)SliderGain滑动增益(25)Subtract减法输入的属性由“Main----->List of signs”内的符号决定+-(默认值)2个输入1-输入2++ 2个输入1+输入2+-- 3个输入1-输入2-输入3---- 4个-输入1-输入2-输入3-输入4(26)Sum求和运算请参考(25)。