MATLAB Simulink中的离散系统模块

合集下载

第三讲MatlabSimulink入门——离散系统仿真实例

第三讲MatlabSimulink入门——离散系统仿真实例

第三讲MatlabSimulink ⼊门——离散系统仿真实例第三讲 Matlab/Simulink ⼊门——离散系统仿真实例1、离散系统基本概念1.1 离散系统 离散系统: 是指系统的输⼊和输出仅在离散的时间上取值,⽽且离散的时间具有相同的时间间隔,与连续的概念相反。

设系统输⼊变量为,其中为系统的采样时间,为采样时刻。

由于为⼀固定值,因此系统输⼊,常简记为。

设输出系统为,简记为。

于是,离散系统的数学表达为:1.2线性离散系统 线性离散系统: 是离散系统的⼀种特殊形式,需要同时满⾜(1)、(2)两个条件,即 (1)、齐次性: 对于离散系统,如果对任意的输⼊与给定的常数,下⾯的式⼦总成⽴:则称系统满⾜齐次性。

(2)、叠加性: 对于系统对于输出和,输出分别为 和,总有下⾯的式⼦成⽴:则称系统满⾜叠加性。

对于线性离散系统,其⼀般数学描述为:⽤差分⽅程描述为:状态⽅程:输出⽅程:1.3 Z 变换u (nT ),n =s 0,1,2...T s n T s u (nT )s u (n )y (nT )s y (n )y (n )=f (u (n ),u (n −1),...;y (n −1),y (n −2))T {αu (n )+1βu (n )}=2αT {u (n )}+1βT {u (n )}2y (n )=T {u (n )},n =0,1,2...u (n )αT {αu (n )}=αT {u (n )}u (n )1u (n )2y (n )1y (n )2T {u (n )+1u (n )}=2T {u (n )}+1T {u (n )}2y (n )=f (u (n ),u (n −1),...;y (n −1),y (n −2))x (n +1)=f (x (n ),u (n ),n )y (n )=g (x (n ),u (n ),n ) 变换: 对于⼀个离散信号,其变换为。

⼀般来说离散信号的起始时间往往⼤于零,这时它的变换为,可简记为。

SIMULINK的基本模块

SIMULINK的基本模块
图10
表10
模块名
功能简介
Atomic Subsystem
CodeReuseSubsystem
Configurable Subsystem
Enable
Enable Subsystem
Enabled and Triggered Subsystem
For Iterator Subsystem
Function-Call Generator
Repeating Sequence Interpol…
Repeating Sequence stair
Signal Builder
Signal Generator
Sine Wave
Step
Uniform Random Number
图15
表15
模块库
功能简介
EmbeddedMATLAB Function
Selector
Switch
图13
表13
模块名
功能简介
Display
Floating Scope
Out1
Scope
Stop Simulation
Terminator
To File
To Workspace
XY Graph
图14
表14
模块库
功能简介
Band-Limited White Noise
Chirp Signal
Subtract
Sum
对输入求代数和
Sum of Elements
Trigonometric Function
三角函数
Unary Minus
Vector Concatenate
Weighted Sample Time Math

如何在Matlab中进行离散系统设计

如何在Matlab中进行离散系统设计

如何在Matlab中进行离散系统设计离散系统设计在工程领域中扮演着重要的角色。

离散系统指的是使用一系列离散时间点进行操作和观测的系统。

而Matlab作为一种强大的数学软件,提供了丰富的工具和函数来进行离散系统设计。

本文将介绍如何使用Matlab进行离散系统设计,并提供一些实际案例来帮助读者理解和应用这些概念。

一、离散系统和离散系统设计概述离散系统是指系统的状态和输出在离散时间点上进行操作和观测,与连续系统相对应。

离散系统设计的目标是通过对系统进行建模、分析和控制,以实现所需的性能指标。

离散系统设计的基本步骤包括系统建模、性能分析和控制器设计。

系统建模是指将实际系统抽象为数学模型,以方便进行分析和设计。

性能分析是评估系统在不同工况下的性能表现,如稳定性、响应速度等。

控制器设计是根据性能要求设计出合适的控制器,使得系统能够满足需求。

二、Matlab中的离散系统建模在Matlab中,可以使用多种方法进行离散系统的建模。

最常用的方法是差分方程法和状态空间法。

差分方程法是将系统的输入输出关系表示为差分方程的形式,而状态空间法则是使用状态向量和状态方程来描述系统的动态行为。

在使用差分方程法进行建模时,可以使用Matlab中的函数tf或zpk来创建传递函数模型。

传递函数模型是用来描述系统输入和输出之间的关系的一种数学表达式。

例如,通过以下代码可以创建一个二阶传递函数模型:```matlabnum = [1, 0.5];den = [1, -0.6, 0.08];sys = tf(num, den, 1);```在使用状态空间法进行建模时,可以使用Matlab中的函数ss来创建状态空间模型。

状态空间模型是使用状态向量和状态方程来描述系统的动态行为的一种数学表达式。

例如,通过以下代码可以创建一个二阶状态空间模型:```matlabA = [0, 1; -0.08, 0.6];B = [0; 1];C = [1, 0.5];D = 0;sys = ss(A, B, C, D, 1);```三、离散系统性能分析离散系统的性能分析是评估系统在不同工况下的性能表现,如稳定性、响应速度等。

Simulink中连续与离散模型的区别

Simulink中连续与离散模型的区别

Simulink中连续与离散模型的区别matlab/simulink/simpowersystem中连续vs离散!本文中的一些具体数学推导见下面:计算机仿真技术1.连续系统vs离散系统连续系统是指系统状态的改变在时间上是连续的,从数学建模的角度来看,可以分为连续时间模型、离散时间模型、混合时间模型。

其实在simpowersystem的库中基本所有模型都属于连续系统,因为其对应的物理世界一般是电机、电源、电力电子器件等等。

离散系统是指系统状态的改变只发生在某些时间点上,而且往往是随机的,比如说某一路口一天的人流量,对离散模型的计算机仿真没有实际意义,只有统计学上的意义,所以在simpowersystem中是没有模型属于离散系统的。

但是在选取模型,以及仿真算法的选择时,常常提到的discrete model、discrete solver、discrete simulate type等等中的离散到底是指什么呢?其实它是指时间上的离散,也就是指离散时间模型。

下文中提到的连续就是指时间上的连续,连续模型就是指连续时间模型。

离散就是指时间上的离散,离散模型就是指离散时间模型,而在物理世界中他们都同属于连续系统。

为什么要将一个连续模型离散化呢?主要是是从系统的数学模型来考虑的,前者是用微分方程来建模的,而后者是用差分方程来建模的,并且差分方程更适合计算机计算,并且前者的仿真算法(simulationsolver)用的是数值积分的方法,而后者则是采用差分方程的状态更新离散算法。

在simpowersystem库中,对某些物理器件,既给出的它的连续模型,也给出了它的离散模型,例如:离散模型一个很重要的参数就是采样时间sampletime,如何从数学建模的角度将一个连续模型离散化,后面会有介绍。

在simpowersystem中常用powergui这个工具来将系统中的连续模型离散以便采用discrete算法便于计算机计算。

Matlab-Simulink各模块对应的中文名称及介绍

Matlab-Simulink各模块对应的中文名称及介绍

精品好资料——————学习推荐这些图片的窗口是从MA TLAB R2012b里面截图下来的,注释还不够全面。

如有出入之处,敬请谅解!1/ 20Derivative :微分模块,输出为输入信号的微分。

无需设置参数Integrator:积分模块,输出时输入信号的积分,可设定初始条件(比如混沌系统的仿真),通常情况下初始条件不用考虑Memory:输出来自前一个时间步的模块输入State-Space:状态空间模块,主要应用应用于现代控制理论中多输入多输出系统的仿真,双击模块可设置的主要参数有:系数矩阵A,B,C,D以及初始条件Transfer Fcn:传递函数多项式模型,实现现行传递系统,双击可设置分子多项式和坟墓多项式的系数Transport Delay:时间延迟模块,通过模块内部参数设定延迟时间Variable Transport Delay:将输入延迟一可变的时间Zero-Pole:传递函数零、极点模型,实现一个用零极点标明的传递函数,双击设置零点、极点、增益2/ 20Backlash:磁滞回环特性模块Coulomb & Viscous Friction:库伦摩擦与黏性摩擦特性模块Dead Zone:死区特性模块Hit Crossing:检测输入信号的零交叉点模块Quantizer:阶梯状量化处理模块Rate Limiter:变化速率限幅模块Relay:带有滞环的继电特性模块Saturation:限幅的饱和特性模块3/ 204/ 20Discrete Transfer Fcn:离散系统传递函数多项式模型,可设置分子分母多项式Discrete Zero-Pole:离散系统传递函数零极点模型,可设置零点、极点、增益,可以设置采样时间Discrete Filter:离散系统滤波器,可设置分子分母系数(按照z-1作升幂排列),可设置采样时间Discrete State-Space:离散系统状态空间表达式模块,可设置参数矩阵A,B,C,D,可设置采样时间、初始条件Discrete-Time Integrator:离散系统积分器模块,可设置采样时间、初始条件Unit Delay:离散系统单位延迟模块,可设置采样时间,初始条件Fist-Order Hol:一阶采样保持器Memory:存储模块Zero-Order Hold:零阶采样保持器Discrete Filter:实现IIR和FIR滤波器Discrete State-Space:实现一个离散状态空间系统Discrete-Time Integrator:离散时间积分器Discrete Transfer Fcn :实现一个离散传递函数Discrete Zero-Pol:实现一个用零极点来说明的离散传递函数First-Order Hold:实现一个一阶保持采样-保持系统Unit Delay:将信号延时一个单位采样时间Zero-Order Hold:实现具有一个采样周期的零阶保持5/ 206/ 20Direct Look-Up Table(n-D):直接查询n维表模块Interpolation(n-D)Using Prelook-up:适用预查询的n维内查表模块Look-Up Table:一维查表模块Look-Up Table(2-D):二维查表模块Look-Up Table(n-D):n维查表模块Prelook-Up Index Search:预查询索引搜寻模块7/ 208/ 20Abs:绝对值或复数求模模块,输出是输入信号的绝对值(或复数的模)Algebraic Constraint:代数约束模块,将输入信号约束为零,计算输入信号为零时的状态值Assignment:分配器模块Bitwise Logical Operator:位逻辑运算模块,可选择逻辑运算关系(与-AND,或-OR,非-NOT,异或-XOR等),可设置第二运算数(默认值为FFFF)Combinatorial Logic:实现一个真值表,组合逻辑运算模块Complex to Magnitude-Angle:复数模、角运算模块,输入量为复数,输出量有两个,一个输出为输入信号的模,另一个为输入信号的角Complex to Real-Imag:复数实部、虚部运算模块,输入量为复数,输出量有两个,一个输出为输入信号的实部,另一个为输入信号的虚部Derivative:输出输入信号的时间微分Dot Product:两输入信号进行点积(内积)运算,无需设置参数Gain:增益模块,将模块的输入信号乘上一个增益Logical Operator:多输入单输出逻辑运算模块,可选择逻辑运算关系(与-AND,或-OR,非-NOT,异或-XOR等)、设置输入信号的个数Magnitude-Angle to Complex:模角生成复数模块,默认输入量有两个:一模一角。

simulink离散仿真简单实例

simulink离散仿真简单实例

simulink离散仿真简单实例Simulink是MATLAB的一个工具箱,它提供了一个图形化界面,用于建立和模拟动态系统。

它使用块图的形式表示系统,其中每个块代表系统中的一个组件或功能单元。

这些块可以通过线连接在一起,以表示信号的流动。

通过配置块的参数和连接,可以建立一个完整的系统模型。

在Simulink中进行离散仿真时,时间被划分为离散的步长,系统在每个步长内的行为被模拟。

离散仿真可以用于分析系统在不同时间点的行为,例如系统的稳定性、响应时间等。

接下来,我们将通过一个简单的实例来展示Simulink离散仿真的过程。

假设我们要建立一个简单的温度控制系统,系统包括一个温度传感器、一个控制器和一个加热器。

温度传感器用于测量当前环境温度,控制器根据测量值调整加热器的功率。

在Simulink中创建一个新的模型。

在模型中,我们将使用三个块来表示系统的各个组件:一个输入块用于表示环境温度的输入信号,一个控制器块用于调整加热器的功率,一个输出块用于表示系统的输出信号。

接下来,我们需要配置每个块的参数和连接它们。

输入块可以配置为生成一个随机的环境温度信号,控制器块可以配置为根据测量值输出一个控制信号,输出块可以配置为显示系统的输出信号。

通过连接输入块、控制器块和输出块,我们可以建立一个完整的系统模型。

在配置完模型后,我们可以设置仿真参数。

例如,我们可以设置仿真的时间范围、步长等参数。

然后,我们可以运行仿真并观察系统的行为。

通过仿真结果,我们可以分析系统的稳定性、响应时间等性能指标。

通过这个简单的实例,我们可以看到Simulink离散仿真的基本过程。

首先,我们建立一个系统模型,然后配置各个组件的参数和连接它们。

最后,我们设置仿真参数并运行仿真来分析系统的行为。

Simulink离散仿真可以应用于各种实际问题的建模和分析。

例如,它可以用于分析控制系统的性能、优化电路设计、评估通信系统的可靠性等。

通过Simulink离散仿真,我们可以更好地理解和改善系统的行为。

MATLAB simulink模块简介

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仿真基础之离散时间系统分析

SIMULINK仿真基础之离散时间系统分析
轴承寿命h频率随机数区间10000100010110001301002312000250230481300013048061140000906107015000120700821600002082084170000608409018000050900951900005095100延迟时间频率随机数区间5060006100300609150100910轴承寿命随机数延迟时间随机数应用举例可靠性问题由于在这一问题中各个轴承的寿命完全决定了系统的运行状态也即决定了两个方案的费用大小故我们选择轴承发生故障作为事件这三个轴承发生故障的事件分别记为abc
事件步长法-例子
实体: 服务员(忙1,闲0), 顾客 (到达时刻ca,服务时间cs,等待 时间ct) 队列(长度lq); 事件event: 顾客到达事件1(交款,排队) 服务结束事件2(闲忙) 事件表: 序号 事件类型(1、2) 发生时刻t
事件步长法-例子
顾客到达子程序图
事件步长法-例子
服务结束子程序图
事件步长法-例子
下表列出了当 m= 86,1/V= 500小时,1/U= 34小时 ,c1=3.46元/小时,c2=3.2元/小时时的仿真结果,其 中每次预定仿真时间为一万个小时,连续仿真五次取 其平均值作为仿真结果。由仿真结果可知当工人数 c≤10时,最优工人数为7.
工人数C
2
3
4
5
8
7
8
9.4
应用举例-可靠性问题
为了进行仿真,首先对轴承寿命和延迟时间与随机数 对应,对应规则分别如下两个表.
轴承寿命h 1000 1100 频率 0.10 0.13 随机数区间 (0,0.10) [0.10,0.23) 延迟 时间 5 10 频率 随机数区间 0.60 0.30 (0,0.6) [0.6,0.9)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(5) 用同样的方法打开接收模块库“Sinks”,选择其中的“Scope”模块(示波器)拖放到 “untitled ”窗口中。
(6) 在“untitled”窗口中,用鼠标指向“Sine Wave”右侧的输出端,当光标变 为十字符时,按住鼠标拖向“Scope”模 块的输入端,松开鼠标按键,就完 成了两个模块间的信号线连接,一个简单模型已经建成。如图3所示
图六
图六
可以看出当T=0.6 而Tk=0.1 时,系统出现振荡。
(8) 修改参数,将“Discrete Filter ” 和“Zero-Order Hold”模块“Sample time”都设 置为0.6s,更新框图颜色,开始仿真,则示波器显示如图七所示。
图七 可以看出当T=Tk=0.6 时,系统出现强烈的振荡。
(5) 设置颜色,Simulink 为帮助用户方便地跟踪不同采样频率的运作范围和信号 流向,可以采用不同的颜色表示不同的 采样频率,选择菜单“Format ”→ “Sample time color”,就可以看到不同采样频率的模块颜色不同。 (6) 开始仿真,在Simulink 模型窗口,选择菜单“Simulation”? “Simulation parameters…”,将“Max step size”设置 为0.05s,则两个示波器“Scope”和 “Scope1”的显示如图五 所示
表一
4、离散系统仿真
【例2 】控制部分为离散环节,被控对象为两个连续环节,其中一个有反馈环, 反馈环引入了零阶保持器,输入为阶跃信号。 创建模型并仿真: (1)选择两个“Scope”模块,选择一 个“Gain”模块,在“Discrete”模块库选择一个 “Discrete Filter ”和一个“Zero-Order Hold ”模块。 (2) 连接模块,将反馈环的“Gain”模块和“Zero-Order Hold ”模块翻转。 (3) 设置参数,“Discrete Filter”和“Zero-Order Hold ”模块的“Sample time”都设置 为0.1s。 (4) 添加文本注释,系统框图如图所示。
3、Simulink 的基本模块
Simulink 的基本模块包括几个子模块库。
(1)输入信号源模块库(Sources) (2)接收模块库(Sinks) (3)连续系统模块库(Continuous) (4)离散系统模块库(Discrete) (5)离散系统模块是用来构成离散系统的环节,常用的离散系统模块如表一所示
2、Simulink 的文件操作
(1) 新建文件 新建仿真模型文件有几种操作: 在MATLAB的命令窗口中选择菜单“File”→“New”→“Model”。 在图一的Simulink模块库浏览器窗口中选择菜单“File”→“New”→“Model”,或 者单击 图标。 在图三的Simulink模型窗口选择菜单“File”→“New”→“Model”,或者单击 图标。 (2)打开文件 在MATLAB 的命令窗口输入不加扩展名的文件名,该文件必须在当前搜索路 径 中,例如输入“Ex0701”。 在MATLAB 的命令窗口选择菜单“File”→Open…”或者单击工具栏的图标打开 文件。 在图图一 的Simulink 模块库浏览器窗口选择菜单“File”→“Open…”或者单击 图标打开“.mdl”文件。 在图三 的Simulink 模型窗口中选择菜单“File”→ “Open…”或者单击工具栏的 图标打开文件。
1、演示一个simulink的简单程序
例1:创建一个正弦信号的仿真模型
在matlab的命令窗口中运行simulink命令,或单击工具栏的的图标, 就可以打开Simulink 模块库浏览器(Simulink Library Browser) 窗 口,如图1所式
(2) 单击工具栏上的 图标或选择菜单“File”——“New ”——“Model”,新建一个名为 “untitled”的空白模型窗口 (3) 在上图的右侧子模块窗口中,单击“Source”子模块库前的“+”(或双击 Source), 或者直接在左侧模块和工具箱栏单击 Simulink 下的Source 子模块库,便可看到各 种输入源模块 (4) 用鼠标单击所需要的输入信号源模块“Sine Wave”(正弦信号),将其拖放到的空白模 型窗口“untitled”,则“Sine Wave” 模块就被添加到untitled 窗口;也可以用鼠标选中 “Sine Wave”模块,单击鼠标右键,在快捷菜单中选择“add to 'untitled'” 命令,就可以 将“Sine Wave”模块添加到untitled 窗口。如图2所示
(7) 开始仿真,单击“untitled ”模型窗口中“开始仿真”图标 ,或者选择菜单 “Simulink”——“Start”,则仿真开 始。双击“Scope”模块出现示波器显示屏,可以看到 黄色的正弦波形8) 保存模型,单击工具栏的 图标,将该模型保存为“Ex0701.mdl”文件 。
图五
可以看出当T=0.6 而Tk=0.1 时,系统出现振荡。
(7)修改参数,将“Discrete Filter ”模块的“Sample time”设置为0.6s,“Zero-Order Hold ”模块的“Sample time”不变; 选择菜单“Edit”→ “Update diagram ”命令修改 颜色,就可以看到“Discrete Filter”模块的颜色变化了;然后开始仿真,则示波器显 示如图六所示
相关文档
最新文档