离散连续详解

离散连续详解
离散连续详解

matlab/simulink/simpowersystem中连续vs离散!

1.连续系统vs离散系统

连续系统是指系统状态的改变在时间上是连续的,从数学建模的角度来看,可以分为连续时间模型、离散时间模型、混合时间模型。其实在simpowersystem 的库中基本所有模型都属于连续系统,因为其对应的物理世界一般是电机、电源、电力电子器件等等。

离散系统是指系统状态的改变只发生在某些时间点上,而且往往是随机的,比如说某一路口一天的人流量,对离散模型的计算机仿真没有实际意义,只有统计学上的意义,所以在simpowersystem中是没有模型属于离散系统的。但是在选取模型,以及仿真算法的选择时,常常提到的discrete model、discrete solver、discrete simulate type等等中的离散到底是指什么呢?其实它是指时间上的离散,也就是指离散时间模型。

下文中提到的连续就是指时间上的连续,连续模型就是指连续时间模型。离散就是指时间上的离散,离散模型就是指离散时间模型,而在物理世界中他们都同属于连续系统。为什么要将一个连续模型离散化呢?主要是是从系统的数学模型来考虑的,前者是用微分方程来建模的,而后者是用差分方程来建模的,并且差分方程更适合计算机计算,并且前者的仿真算法(simulationsolver)用的是数值积分的方法,而后者则是采用差分方程的状态更新离散算法。

在simpowersystem库中,对某些物理器件,既给出的它的连续模型,也给出了它的离散模型,例如:

离散模型一个很重要的参数就是采样时间sampletime,如何从数学建模的角度将一个连续模型离散化,后面会有介绍。在simpowersystem中常用

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

机计算。

2.连续模型的数学建模vs离散模型的数学建模

Note:这里的连续和离散都是指时间上的连续和离散,无关乎现实世界的连续系统和离散系统。所谓数学建模就是用什么样的数学语言来描述模型,

连续系统的数学模型通常可以用以下几种形式表示:微分方程、传递函数、状态空间表达式,这三中形式是可以相互转换的,其中又以状态空间表达式最有利于计算机计算。

①微分方程:

一个连续系统可以表示成高阶微分方程,即

②传递函数

上式两边取拉普拉斯变换,假设y 及u 的各阶导数(包括零阶)的初值均为零,则有

于是便得微分方程的传递函数描述形式如下:

③状态空间表达式

线性定常系统的状态空间表达式包括下列两个矩阵方程:

(7-1)

(7-2)

式(7-1)由n 个一阶微分方程组成,称为状态方程;式(7-2)由l个线性代方程组称为输出方程因此获得如下的状态方程与输出方程(令a0=1 ):

离散模型假定一个系统的输入量、输出量及其内部状态量是时间的离散函数,即为一个时间序列:

,其中T为离散时间间隔,其实T也就是上文中的sample time。Note:再强调一次,这里的离散模型是指离散时间模型,与现实世界中的离散事件模型没有任何关系,在simpowersystem中所讲的离散都是指时间上的离散,与我们在信号中学的那个离散概念没有关系。

离散时间模型有差分方程、离散传递函数、权序列、离散状态空间模型等形式。

①差分方程

差分方程的一般表达式为:

同样差分方程可以转换成后面那些表达形式。

3.连续模型的离散化

正如7.1.连续系统vs离散系统中截图所示的那样,如何由一个连续模型得到它的离散模型,

(RMS?discrete RMS value),以及powergui是通过什么方法将连续模型离散化的,即simulator 是如何将微分方程转换成差分方程的。

假设连续系统的状态方程为

现在人为地在系统的输入及输出端加上采样开关,同时为了使输入信号复员为原来的信号,在输入端还要加一个保持器,如图所示。现假定它为零阶保持器,即假定输入向量的所有分量在任意两个依次相连的采样瞬时为常值,比如,对第n个采样周期u(t)=u(nt),其中T为采样间隔。

由采样定理可知,当采样频率w s和信号最大频率w max满足w s>2w max的条件时,可由采样后的信号唯一地确定原始信号。把采样后的离散信号通过一个低通滤波

器,即可实现信号的重构。值得注意的是,图所示的采样器和保持器实际上是

不存在的,而是为了将式离散化而虚构的。

下面对上式进行求解,对方程式两边进行拉普拉斯变换,得

通过一系列的拉斯反变换和卷积,最终得到其差分方程(具体过程不用关心)

统称为系统的离散系数矩阵。

在转换过程中引入了一个重要参数T,即采样间隔,也就是采样时间,不管是powergui还是其他离散模型,只要涉及到离散,都必然会涉及到sample time,如下图

那么sample time 一般取多大呢,一直满足采样定理即可,即信号的采样频率

大于信号本身最大频率的2倍即可。

4. simulator连续模型的仿真算法(simulatesolver,也可译成仿真解算器)和步长的概念。

连续系统的计算机仿真算法是数值积分法,即计算机用数值积分来解微分方程,从而得到其近似解。具体方法如下

①欧拉法和改进的欧拉法:

现有微分方程如下:

上式右端的积分,计算机是无法求出的,其几何意义为曲线f(t,y)在区间(t i ,t i+1)上的面积。当(t i ,t i+1)充分小时,可用矩形面积来近似代替:

其中h即为积分步长。

Note:在simulator仿真计算时,h实际为仿真时间间隔。

因此可得下式:

因此只要知道当前状态和步长,便可得到下一状态。其几何意义如下:

分析其误差特性:

由泰勒展式可得:

可知其截断误差是和步长h2成正比的,因此计算机在计算时,若要使近似积分精度更高,就要减小步长,但会增加截断误差。

②改进的欧拉法(预测—校正法)

对积分公式(3.1.2)式利用梯形面积公式计算其右端积分,得到

将上式写成递推差分格式为:

从上式可以看出,在计算 y n+1中,需要知道f n+1,而f n+1=f(t n+1,f n+1)又依赖于y n+1本身。因此要首先利用欧拉法计算每一个预估的y p n+1,以此值代入原方程式计算f p n+1,最后利用下式求修正后的y p n+1。所以改进的欧拉法可描述为

③龙格—库塔法(rung-kuta)

欧拉法是将经泰勒级数展开并截去h2以后各

项得到的一阶一步法,所以精度较低。如果将展开式多取几项以后截断,就得到精度较高的高阶数值解,但直接使用泰勒级数展开式要计算函数的高阶导数较难。龙格—库塔法是采用间接利用泰勒级数

展开式的思路,即用在n个点上的函数值f的线性组合来代替f的导数,然后按泰勒级数展开式确定

其中的系数,以提高算法的阶数。这样既能避免计算函数的导数,同时又保证了计算精度。由于龙格—库塔法具有许多优点,故在许多仿真程序包中,它是一个最基本的算法之一。

④线性多步法

以上所述的数值解法均为单步法。在计算中只要知道。也

就是说,根据初始条件可以递推计算出相继各时刻的y值,所以这种方法都可以自启动。下面要介

绍的是另一类算法,即多步法。

用这类算法求解时,可能需要各时刻的值。显然多步法计算公式不能自启动,并且在计算过程中占用的内存较大,但可以提高计算精度和速度。例如:亚当斯—贝希霍斯显式多步法

⑤刚性(stiff)系统解法

所谓刚性系统,就是用来描叙这类系统的微分方程的解,往往是由多个时间常数共同作用的,其中某些小时间常数对解的影响往往是微乎其微但的确不可或缺的。例如下式是一个简单刚性系统微分方程的解:

当时间较大时特征解-1000几乎对方程不起任何作用,但开始时有不能忽略e-1000t的影响,因此若前面介绍的计算机数值解法,为了保证解的稳定性在选取步长h时,必须保证1000h较小,也就是说步长h必须十分的小,这必然会增大计算次数,增大计算时间,而又因为在t一定大时,e-1000t几乎不起作用,因此这种增大次数又不会对计算精度有多大改善,就是说常规解法计算刚性系统是在做无用功。

到目前为止,已提出不少解刚性方程的数值方法,基本上分为:显式公式,隐式公式和预测校正型。显示公式常用雷纳尔法

隐式方程都是稳定的,故都适合于解描述刚性系统的方程组,如隐式的龙格—库塔法。但这种方法每计算一步都需要进行迭代,故计算量大,在工程上使用有一定困难。因此在解刚性方程时,常采用Rosenbrock提出的半隐式龙格—库塔法。

预测—校正型中常用的解刚性方程的方法是Gear算法

5. simulator离散模型的仿真算法和步长的概念。

离散模型的数学建模一般采用差分方程的方式,在matlab中其仿真算法是采用discrete算法,就是根据simulation step 定时对离散模块进行更新(就是定时计算差分方程的意思)

至于其步长的概念和连续模型中h的概念差不多,但是它的大小选择和sample time 有着密切关系,下面会给予说明。

6.simulink中仿真参数(simulation/configurationparameters)

有了上面知识的铺垫,可以介绍simulink仿真参数的设置

上图中solver(仿真解算器)就是上面介绍的各种算法用计算机语言编程的实现。

continuous solver就是数值积分法,discrete solver就是离散解法。

步长有variable step(变步长)和fixed step(固定步长之分)。continuous solver中的步长就是h,就是积分时间间隔,对于discrete solver的步长是和要仿真的模型中的sample time有密切关系的,是不可以随便取的。

①variable step(变步长)

就是说变步长会根据模型状态的变化的快慢适当调节步长,也就是相邻仿真计算的时间间隔,这样在保证了一定精度的同时又减少了仿真的次数,从而减小了仿真时间。

对于continuous solver而言,可以人为设定max step size 和min step size,然后计算机自动选择积分步长h进行数值积分。以下是它的仿真solver(ODE表示常微分方法)

②fixed step(固定步长)

就是仿真从头到尾用同一个步长。Note:对于continuous solver而言固定步长可以认为任取;而对于dicretesolver而言固定步长可以auto(即仿真帮你取),若人为取必选要遵守和sample time之间的一定关系,下面会有介绍。

Note: 关于simulink中搭建一些DSP,fpga等外设模块,仿真通过后自动生成代码,可在实际器件上运行时,此时simulation step一定要用fixed step(固定步长)。具体说明见下图:

③discretesolver

solver就是discrete算法,就是不断更新discrete block在各离散点的状态,步长的大小是与模型中的sampletime 有密切关系的,

由上面阐述的差分方程可知,差分方程中T采样时间是固定的,对于discrete solver而言不管是variable step 还是fixed step,simulation step(仿真步)必须要有出现在sample time所有的整数倍上,即simulation step的设置必须使simulator在1T、2T、3T要对模型进行计算仿真,以免错过主要状态的转化。

若一个离散仿真模型中具有多个sample time,那么要保证每个模型在其采用时间的1T、2T、3T都能进行仿真,那么最小步长只能取各个仿真时间的公约数,其中最大公约数又称为fundamental sample time,例子如下

假设仿真的离散模型中有两个采样时间T1=2e-6,T2=4e-6那么其公约数为1e-6和2e-6,而fundamental sample time=2e-6

若采用fixed step步长,为了不错过模型在每个采样时刻状态的变化,要求simulator的仿真时间必须要包含每一个采样时刻的整数倍,因此其固定步长必须取各个sampletime 的公约数,可以是1e-6或2e-6,若写auto则为fundamental sample time=2e-6,若写出其他步长,则simulation会提示错误。

上述仿真过程如下:

箭头表示simulation step,就是simulator在每一个箭头处都会仿真计算一次;圆圈处表示模型采样时刻(sample time)处,其实只有在这一刻离散模型的状态才有可能发生改变,即差分方程的解才有可能发生改变;由上图可见这样设置步长保证了在每个sample time处simulator都进行了仿真。若采用variable step步长,simulator会根据模型中的各个sample time自动调整步长,以使得仿真时间时刻等于sample time。

此时又有一个max step size的限制,若如上图写的是auto,那么上述仿真过程如下:

可见simulator只在sample time处才进行仿真计算,这样减少了仿真次数,节约了时间。

若max step size=0.7e-6,那么仿真过程又该如何?如下图:

可见variable step时,即使有人为maxstep size的限制,simulator总会跟踪sampletime。一般选择auto即可。

⑥关于powergui的作用

powergui基本上在simpowersystem的仿真中有两个作用:

ⅰ:离散化系统中的一些连续模型,以便simulator采用discrete算法计算,注意:对本来就已经存在的离散模型不起任何作用,如下图:

powergui的离散sample time为2e-6,而系统中还有离散模块的sample time为4e-6,powergui的离散作用对它没有影响。

ⅱ:提供各种graphical userinterface tools用于分析仿真过程中的信号以及数据(尤其是FFT分析)。

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

Simulink中连续与离散模型的区别 matlab/simulink/simpowersystem中连续vs离散! 本文中的一些具体数学推导见下面链接:计算机仿真技术 1.连续系统vs离散系统 连续系统是指系统状态的改变在时间上是连续的,从数学建模的角度来看,可以分为连续时间模型、离散时间模型、混合时间模型。其实在simpowersystem的库中基本所有模型都属于连续系统,因为其对应的物理世界一般是电机、电源、电力电子器件等等。 离散系统是指系统状态的改变只发生在某些时间点上,而且往往是随机的,比如说某一路口一天的人流量,对离散模型的计算机仿真没有实际意义,只有统计学上的意义,所以在simpowersystem中是没有模型属于离散系统的。但是在选取模型,以及仿真算法的选择时,常常提到的discrete model、discrete solver、discrete simulate type等等中的离散到底是指什么呢?其实它是指时间上的离散,也就是指离散时间模型。 下文中提到的连续就是指时间上的连续,连续模型就是指连续时间模型。离散就是指时间上的离散,离散模型就是指离散时间模型,而在物理世界中他们都同属于连续系统。为什么要将一个连续模型离散化呢?主要是是从系统的数学模型来考虑的,前者是用微分方程来建模的,而后者是用差分方程来建模的,并且差分方程更适合计算机计算,并且前者的仿真算法(simulationsolver)用的是数值积分的方法,而后者则是采用差分方程的状态更新离散算法。 在simpowersystem库中,对某些物理器件,既给出的它的连续模型,也给出了它的离散模型,例如: 离散模型一个很重要的参数就是采样时间sampletime,如何从数学建模的角度将一个连续模型离散化,后面会有介绍。在simpowersystem中常用powergui这个工具来将系统中的连续模型离散以便采用discrete算法便于计算机计算。

离散系统与连续时间系统的根本差别是:离散系统(图3)有采样开

离散系统与连续时间系统的根本差别是:离散系统(图3)有采样开关存在,而连续系统则无。连续信号经过采样开关变成离散信号(图4),采样开关起这理想脉冲发生器的作用,通过它将连续信号调制成脉冲序列。 图3 离散系统方块图 图4 离散型时间函数 调制之后的信号中,包含与脉冲频率相关的高频频谱(图5),相邻两频谱不相重叠的条件是: max 2f f s 其中: s f ---采样开关的采样频率 m ax f ---连续信号频谱中的最高频率 这就是采样定理,通常选择采样频率时取四倍连续信号的最大频率。实验中,信号源产生频率可调的周期性信号,计算机通过A/D 板将信号采集入内存,通过软件示波器显示出来,调整采样频率,可以得到不同的采样结果,以波形图直观显示 出来。由此,可考察波形失真程度。 三、实验使用的仪器设备及实验装置 1. 装有LabVIEW 软件和PCI-1200数据采集卡的计算机一台 2. 频率计或信号发生器一台 3. 外接端子板、数据采集板、计算机、组态软件 基于LabVIEW 的信号测试系统主要包括信号发生器、DAQ 数据采集卡和计算机软件三部分组成。A/D 数据采集采用NI 公司PCMCIA 接口的PCI-1200型多功能数据采集卡;L abVIEW 7.1软件。 将PCI-1200数据采集卡插到计算机主板上的一个空闲的PCI 插槽中,接好各种附件,其驱动程序就是NI-DAQ 。附件包括一条50芯的数据线,一个型号为CB-50LP 的转接板,转接板直接与外部信号连接。 图5 信号频谱图

LabVIEW 进行模拟 信号的数 计算机调理端子板信号发生器 据采集 1. 安装 数据采集 示(图6)连接线路,并检查测试。 2. 熟悉LabVIEW软件中与数据采集相关的控件与设置项。 3. 编制DAQ程序,并调试数据采集组态。 4. 应用该组态软件进行波形数据采集并存储,信号种类设置为正弦波,分别设置信号发生器频 率为50,100Hz,观察并记录波形变化。 5. 设置信号种类为方波或锯齿波,重复上述实验。 (二)采样定理验证实验 1. 按图8连接线路,并检查测试。 2. 熟悉 GeniDAQ软件中与数据采集相关的控件与设置项。 3. 编制、调试数据采集组态。 4. 应用该组态软件进行波形数据采集并存储,信号种类设置为正弦波,分别设置信号发生器频 率为50,100Hz,采集频率设置为50、100、150、200、300、500Hz,观察并记录波形变化,体验采样定理的正确性。 五、实验准备及预习要求 1.认真阅读实验指导书,在老师答疑和同学讨论的基础上,完成实验准备任务: 1).了解数据采集及其硬件(A/D变换器和数据采集卡)选择的基本知识; 2).熟悉G语言编程环境和虚拟仪器的含义; 1.理解采样定理的意义; 2.实验前可以参考的书籍:《现代测试技术与数据处理》、《LabVIEW7.1测试技术与仪器应用》等。

{时间管理}离散系统与连续时间系统的根本差别是离散系统{图}有采样开

(时间管理)离散系统与连续时间系统的根本差别是离散系统(图)有采样开

离散系统和连续时间系统的根本差别是:离散系统(图3)有采样开关存于,而连续系统则无。连续信号经过采样开关变成离散信号(图4),采样开关起这理想脉冲发生器的作用,通过它将连续信号调制成脉冲序列。 图3离散系统方块图图4离散型时间函数 调制之后的信号中,包含和脉冲频率关联的高频频谱(图5),相邻俩频谱不相重叠的条件是: 其中: ---采样开关的采样频率 ---连续信号频谱中的最高频率 这就是采样定理,通常选择采样频率时取四倍连续信号的最大频率。实验中,信号源产生频率可调的周期性信号,计算机通过A/D板将信号采集入内存,通过软件示波器显示出来,调整采样频率,能够得到不同的采样结果,以波形图直观显示出来。由此,可考察波形失真程度。 三、实验使用的仪器设备及实验装置 1.装有LabVIEW软件和PCI-1200数据采集卡的计算机壹台 2.频率计或信号发生器壹台 3.外接端子板、数据采集板、计算机、组态软件 基于LabVIEW的信号测试系统主要包括信号发生器、DAQ数据采集卡和计算机软件三部分组成。A/D数据采集采用NI公司PCMCIA接口的PCI-1200型多功能数据采集卡;LabVIEW7.1软件。 将PCI-1200数据采集卡插到计算机主板上的壹个空闲的PCI插槽中,接好各种附件,

图7DAQ设备和DAQ节点以及VI的层次关系图 图6CB-50LP转接板的引脚定义图图8采样定理验证实验构成图 其驱动程序就是NI-DAQ。附件包括壹条50芯的数据线,壹个型号为CB-50LP的转接板,转接板直接和外部信号连接。 四、具体实验步骤 (壹)通过LabVIEW进行模拟信号的数据采集 1.安装数据采集卡,根据数据采集卡接线指示(图6)连接线路,且检查测试。 2.熟悉LabVIEW软件中和数据采集关联的控件和设置项。 3.编制DAQ程序,且调试数据采集组态。 4.应用该组态软件进行波形数据采集且存储,信号种类设置为正弦波,分别设置信 号发生器频率为50,100Hz,观察且记录波形变化。 5.设置信号种类为方波或锯齿波,重复上述实验。 (二)采样定理验证实验 1.按图8连接线路,且检查测试。

计控实验二-连续系统变换为离散系统

实验二 连续系统变换为离散系统 一、实验目的 在对连续系统进行实时计算机控制时,往往需要把连续系统转换成离散系统。 二、实验指导 为了得到连续系统的离散化数学模型,Matlab 提供了c2d()函数。c2d()函数的调用格式为: sysd=c2d(sys,Ts) 或 sysd=c2d(sys,Ts,method) 式中,输入参量sys 为连续时间模型对象;Ts 为采样周期;sysd 为带采样时间Ts 的离散时间模型。Method 用来指定离散化采用的方法: ‘zoh ’——采用零阶保持器法; ‘foh ’——采用一阶保持器法; ‘tustin ’——采用双线性变换法; ‘prewarp ’——采用改进的双线性变换法; ‘matched ’——采用零极点匹配法;缺省时,为‘zoh ’ 三、实验内容 1.已知连续系统的零极点增益模型为: 试采用零阶保持器与零极点匹配法求其离散传递函数。设采样周期。 程序及结果: >> k=10,z=-5,p=[-1 -3 -8]; sys = zpk ( z,p,k ) sys = 10 (s+5) ----------------- (s+1) (s+3) (s+8) Continuous -time zero/pole/gain model. >> Ts=0.1 Ts = 0.1000 >> sysd=c2d(sys,Ts,'zoh') ) 8)(3)(1()5(10)(++++= s s s s s G s T 1.0=

sysd = 0.040105 (z -0.6065) (z+0.7932) -------------------------------- (z -0.9048) (z -0.7408) (z -0.4493) Sample time: 0.1 seconds Discrete -time zero/pole/gain model. >> sysd=c2d(sys,Ts,'matched') sysd = 0.035957 (z -0.6065) (z+1) -------------------------------- (z -0.9048) (z -0.7408) (z -0.4493) Sample time: 0.1 seconds Discrete -time zero/pole/gain model. 2、已知系统如图1所示,被控对象 G h (s)为零阶保持器, 图1 (1) 若其控制器按模拟化设计方法设计,其系统框图如图2,得到的传递函数 为 )110(1)()()(+==s s s U s s G a θ1 110)(++=s s s D

连续传递函数离散化的方法与原理

目录

第一章 模拟化设计基础 数字控制系统的设计有两条道路,一是模拟化设计,一是直接数字设计。如果已经有成熟的模拟控制器,可以节省很多时间和部分试验费用,只要将模拟控制器离散化即可投入应用。如果模拟控制器还不存在,可以利用已有的模拟系统的设计经验,先设计出模拟控制器,再进行离散化。 将模拟控制器离散化,如果用手工进行,计算量比较大。借助数学软件MATLAB 控制工具箱,可以轻松地完成所需要的全部计算步骤。如果需要的话,还可以使用MATLAB 的SIMULINK 工具箱,进行模拟仿真。 第一节 步骤 步骤1 模拟控制器的处理 在数字控制系统中,总是有传输特性为零阶保持器的数模转换器(DAC ),因此,如果模拟控制器尚未设计,则应以下 图的方式设计模拟控制器,即在对象前面加上一个零阶保持器,形成一个新对象Ts 1e G s s ()--,然后针对这个新对象求模拟 控制器D(s)。事实上,模拟控制器一般是已经设计好的,无法或不方便更改了,离散化后的系统只好作为近似设计了。 然而,按照上述思路,可否将已有的控制器除以一个零阶保持器再离散化呢?还没有这方面的实际经验。 以下假设选定的G(s),D(s)如下图,而且不对G(s)作添加保持器的预处理。 步骤2 离散化模拟控制器 离散化模拟控制器之前,先要确定离散化算法和采样时间。离散化算法有好几种,第二章中有详细的论述,现假定采用双线性变换法。确定采样时间,需要考虑被控对象的特性,计算机的性能,以及干扰信号的影响等,初步可按采样时间T<,Tp 为被控对象时间常数,或T=~τ,为被控对象的纯滞后,初步确定后再综合平衡其它因素,当然这需要一定的经验,现在假定取秒。 假设模拟控制器为s 2 D s 8s 15 +=?+(),在MATLAB 中,用c2d 函数进行离散化,过程为: 转换结果为: 步骤3 检验数字控制器的性能 数字控制器的性能项目比较多,我们仅以直流增益,频率特性,零极点分布说明。 直流增益 dcgain(dz) 返回直流增益 频率特性 bode(ds,'r',dz,'g') 伯德图,见下页左图 零极点分布 pzmap(dz) 零极点分布图,见下页右图 步骤4 离散化控制对象 为了进行模拟仿真,需要对控制对象进行离散化,由于步骤1所说的原因,应把被控对象视为零阶保持器与原对象的串连,即应对 Ts 1e G s s ()--进行离散化,这时可在c2d 函数中使用零阶保持器(zoh)方法,如果认为不需要添加零阶保持器,即直接对G(s)离散化,则应在c2d 函数中使用冲击响应不变法(imp )。 借用零阶保持器(zoh)方法,将对象20 G s s s 2()() =+带一阶保持器离散化的过程如下: 转换结果为: 步骤5 模拟仿真 求离散系统的闭环传递函数和连续系统的闭环传递函数。 ds=zpk(-2,-15,8) %建立模拟控制器的s 传递函数 dz=c2d(ds,,'tustin') %将模拟控制器按tustin 方法转换为z 传递函数的数字控制器 ...... %模拟控制器D(s)转换为D(z)的过程见前 gs=zpk([ ],[0,-2],20) %建立对象的s 传递函数 g1z=c2d(gs,,'zoh') %借用c2d 函数进行带零阶保持器的对象的离散化

连续和离散系统分析

实验一 连续和离散系统分析 一、实验目的 学习连续系统和离散系统响应的matlab 求解方法; 二、实验主要仪器设备和材料 计算机 三、实验方法、步骤及结果测试 实验方法:编程,上机调试,分析实验结果; 步骤: 编程实现上述各实验内容 四、实验结果 1、某系统的传递函数为:) 2)(1(1 )(/)(++= s s x X s Y 试求系统的冲激响应和阶跃响应。

2、编制程序求解下列两个系统的单位冲激响应和阶跃响应,并绘出其图形。要求分别用filter、conv、impz三种函数完成。给出理论计算结果和程序计算结果并讨论。 (I) ]1 [ ] [ ]2 [ 125 .0 ]1 [ 75 .0 ] [- - = - + - +n x n x n y n y n y 理论计算结果: 程序计算结果: A:单位冲激响应 (1)用Filter函数(2)用Conv函数(3)用impz函数 单位冲激响应: n012345 h(n)1 单位阶跃响应: n012345 y(n)1

B:单位阶跃响应 (1)用Filter函数 (2)用Conv函数 (3)用Impz函数

(II )]}4[]3[]2[]1[{25.0][-+-+-+-=n x n x n x n x n y 理论计算结果: 程序计算结果: A :单位冲激响应 (1)用filter 函数 (2)用Conv 函数 (3)用Impz 函数 B :单位阶跃响应 单位冲激响应: n 0 1 2 3 4 5 h(n) 0 单位阶跃响应: N 0 1 2 3 4 5 y(n) 0 1 1

讨论连续系统和相应的离散系统的区别

讨论连续系统和相应的离散系统(分带零阶保持器和不带零阶保持器的两种情况)的阶跃响应指标[(),,%,]p s c t t σ∞,设1K T ==; ● 连续系统: 1(),1 (1)K K G s v s s =?=? =+? 22 1 ()1 K s s s K s s Φ= =++++ 11221n n ξωω?==? ? ?=? 0%16.3%3.5 3.57 0.5 3.631()lim ()1s n p s t t c s s s σξω→=?? ?===?? ? ===???∞=?Φ?=?? ● 离散系统I (不带ZOH ) 1(1)()[](1)(1)() 0.632(1)(0.368) T T K T K K e z G z Z s s z z e z z z --==-== +---= --1 2 22 32 ()(1)0.632()1()(1)0.7360.368 0.632()()1 1.736 1.1040.368 T K T T T T G z K e z z z G z z K Ke e z e z z z z C z z z z z z -==----Φ=== ++---+-+=Φ==--+-长除得单位阶跃响应序列(下页)11 1()lim()()lim ()11z z z z C z z z z →→-∞=?Φ?=Φ=- ● 离散系统II (带ZOH )

2 12()()1()[(10.3680.2640.632 K T G z K z G z z K T z z z ==Φ= =++-+= -+11 1()lim()()lim ()1 1z z z z C z z z z →→-∞=?Φ?=Φ=-2320.3680.264()()12 1.6320.632 z z z C z z z z z z +=Φ?==--+-长除1(t)响应序列 12 1()(1)[ ](1) (1)(1)0.3680.264 (1)()(1)(0.368) T T T K T T K G z z Z s s T e z e Te z K z z e z z ----==-=-+-++--+==----

连续和离散系统分析

实验一连续与离散系统分析 一、实验目得 学习连续系统与离散系统响应得matlab求解方法; 二、实验主要仪器设备与材料 计算机 三、实验方法、步骤及结果测试 实验方法:编程,上机调试,分析实验结果; 步骤: 编程实现上述各实验内容 四、实验结果 1、某系统得传递函数为: 试求系统得冲激响应与阶跃响应。 2、编制程序求解下列两个系统得单位冲激响应与阶跃响应,并绘出其图形。要求

分别用filter、conv、impz三种函数完成。给出理论计算结果与程序计算结果并讨论。 (I) 理论计算结果: 程序计算结果: A:单位冲激响应 (1)用Filter函数(2)用Conv函数 (3)用impz函数 单位冲激响应: n 0 1 2 3 4 5 h(n) 1 -1、75 1、19 -0、67 0、355 -0、18 单位阶跃响应: n 0 1 2 3 4 5 y(n) 1 -0、75 0、44 -0、234 0、12 -0、06

B:单位阶跃响应(1)用Fil ter 函数 (2)用Conv 函数 (3)用Imp z函数 (II ) 理论计算结果: 程序计算结果: A:单位冲激响应(1)用f ilter 函数 单位冲激响应: n 0 1 2 3 4 5 h(n) 0 0、25 0、25 0、25 0、25 单位阶跃响应: N 0 1 2 3 4 5 y(n) 0 0、25 0、5 0、75 1 1

(2)用Conv函数 (3)用Impz函数 B:单位阶跃响应 (1)用filter函数 (2)用Conv函数 (3)用Impz函数

连续系统与离散系统的互转(s域与z域互转)

Convert model from discrete to continuous time d2c Syntax sysc = d2c(sysd) sysc = d2c(sysd,method) sysc = d2c(sysd,opts) [sysc,G] = d2c(sysd,method,opts) Description sysc = d2c(sysd) produces a continuous-time model sysc that is equivalent to the discrete-time dynamic system model sysd using zero-order hold on the inputs. sysc = d2c(sysd,method) uses the specified conversion method method. sysc = d2c(sysd,opts) converts sysd using the option set opts, specified using the d2cOptions command. [sysc,G] = d2c(sysd,method,opts) returns a matrix G that maps the states xd[k] of the state-space model sysd to the states xc(t) of sysc. Input Arguments sysd Discrete-time dynamic system model You cannot directly use an idgrey model with FcnType='d' with d2c. Convert the model into idss form first. method String specifying a discrete-to-continuous time conversion method: ?'zoh' — Zero-order hold on the inputs. Assumes the control inputs are piecewise constant over the sampling period. ?'foh' — Linear interpolation of the inputs (modified first-order hold). Assumes the control inputs are piecewise linear over the sampling period. ?'tustin' — Bilinear (Tustin) approximation to the derivative. ?'matched' — Zero-pole matching method of [1] (for SISO systems only). Default: 'zoh' opts Discrete-to-continuous time conversion options, created using d2cOptions. Output Arguments sysc Continuous-time model of the same type as the input system sysd. When sysd is an identified (IDLTI) model, sysc: ?Includes both the measured and noise components of sysd. If the noise variance is λ in sysd, then the continuous-time model sysc has an indicated level of noise spectral density equal to Ts*λ. ?Does not include the estimated parameter covariance of sysd. If you want to translate the covariance while converting the model, use translatecov. G Matrix mapping the states xd[k] of the state-space model sysd to the states xc (t) of sysc: x c ( k T s ) =G 2 4 x d [k] u [k] 3 5.

连续系统离散化分析

1 实验一 离散系统的分析 一 实验目的 1.学习利用采样控制理论; 2.使用MATLAB 理论进行分析; 3. 学习利用z 变换与反变换分析离散控制系统; 二、实验步骤 1.开机执行程序 C :\matlab \bin \matlab.exe (或用鼠标双击图标)进人MATLAB 命令窗口; 2.运用所学自动控制理论z 变换与反变换,使用MATLAB 的基本知识分析离散控制系统的基本性质及进行控制系统的设计。 3. MATLAB 离散系统基本命令 模型转换 1)连续系统离散化 sysd=c2d(sys,T) T 为采样时间 sysd=c2d(sys,T,method) method 有四种模式: a. ‘zoh’---采用零阶保持器, b. ‘foh’---采用一阶保持器, c. ‘tustin’---采用双线性逼近(tustin )方法, d. ‘preqarp’---采用改进的(tustin )方法, 2)离散系统连续化 sys=d2c(sysd,T,method) T 为采样时间 例 设) 1(1)(+=s s s g , T=0.1s , 求G(z) 键入命令:sys=tf([1],[1 1 0]); c2d(sys,0.1) %采样时间0.1s 得到离散传递函数: 当采样时间取T=1s 时: 0.004837 z + 0.004679 G (z )= ---------------------------- z^2 - 1.905 z + 0.9048 0.3679 z + 0.2642 G (z )= ---------------------------- z^2 - 1.368 z + 0.3679

连续传递函数离散化的方法与原理

目录 第一章模拟化设计基础1第一节步骤1第二节在MATLAB中离散化3第三节延时e-Ts环节的处理5第四节控制函数分类6第二章离散化算法10摘要10比较11第一节冲击响应不变法(imp,无保持器直接z变换法) 11第二节阶跃响应不变法(zoh,零阶保持器z变换法) 11第三节斜坡响应不变法(foh,一阶保持器z变换法) 11第四节后向差分近似法12第五节前向差分近似法14第六节双线性近似法(tustin) 15第七节预畸双线性法(prevarp) 17第八节零极点匹配法(matched) 18第三章时域化算法19第一节直接算法1—双中间变量向后递推19第二节直接算法2—双中间变量向前递推20第三节直接算法3—单中间变量向后递推21第四节直接算法4—单中间变量向前递推(简约快速算法) 21第五节串联算法22第六节并联算法23第四章数字PID控制算法24第一节微分方程和差分方程25第二节不完全微分25第三节参数选择26第四节 c51框架27第五章保持器33第一节零阶保持器33第二节一阶保持器30附录两种一阶离散化方法的结果的比较31

第一章 模拟化设计基础 数字控制系统的设计有两条道路,一是模拟化设计,一是直接数字设计。如果已经有成熟的模拟控制器,可以节省很多时间和部分试验费用,只要将模拟控制器离散化即可投入应用。如果模拟控制器还不存在,可以利用已有的模拟系统的设计经验,先设计出模拟控制器,再进行离散化。 将模拟控制器离散化,如果用手工进行,计算量比较大。借助数学软件MATLAB 控制工具箱,可以轻松地完成所需要的全部计算步骤。如果需要的话,还可以使用MATLAB 的SIMULINK 工具箱,进行模拟仿真。 第一节 步骤 步骤1 模拟控制器的处理 在数字控制系统中,总是有传输特性为零阶保持器的数模转换器(DAC ),因此,如果模拟控制器尚未设计,则应以下图 的方式设计模拟控制器,即在对象前面加上一个零阶保持器,形成一个新对象Ts 1e G s s ()--,然后针对这个新对象求模拟控 制器D(s)。事实上,模拟控制器一般是已经设计好的,无法或不方便更改了,离散化后的系统只好作为近似设计了。 然而,按照上述思路,可否将已有的控制器除以一个零阶保持器再离散化呢还没有这方面的实际经验。 D(s)x u e -模拟控制器 1-e -Ts s G(s)对象 以下假设选定的G(s),D(s)如下图,而且不对G(s)作添加保持器的预处理。 x u e -D(s)=8s+2 s+15 .G(s)=20 s(s+2) 步骤2 离散化模拟控制器 离散化模拟控制器之前,先要确定离散化算法和采样时间。离散化算法有好几种,第二章中有详细的论述,现假定采用双线性变换法。确定采样时间,需要考虑被控对象的特性,计算机的性能,以及干扰信号的影响等,初步可按采样时间T<,Tp 为被控对象时间常数,或T=~τ,为被控对象的纯滞后,初步确定后再综合平衡其它因素,当然这需要一定的经验,现在假定取秒。 假设模拟控制器为s 2 D s 8s 15 +=?+(),在MATLAB 中,用c2d 函数进行离散化,过程为: 转换结果为: x u e -D(z)= 6.1091(z-0.9048) z-0.4545 D(s)=8s+2 s+15. G(s)= 20s(s+2) 步骤3 检验数字控制器的性能 数字控制器的性能项目比较多,我们仅以直流增益,频率特性,零极点分布说明。 ds=zpk(-2,-15,8) %建立模拟控制器的s 传递函数 dz=c2d(ds,,'tustin') %将模拟控制器按tustin 方法转换为z 传递函数的数字控

离散连续详解

matlab/simulink/simpowersystem中连续vs离散! 1.连续系统vs离散系统 连续系统是指系统状态的改变在时间上是连续的,从数学建模的角度来看,可以分为连续时间模型、离散时间模型、混合时间模型。其实在simpowersystem 的库中基本所有模型都属于连续系统,因为其对应的物理世界一般是电机、电源、电力电子器件等等。 离散系统是指系统状态的改变只发生在某些时间点上,而且往往是随机的,比如说某一路口一天的人流量,对离散模型的计算机仿真没有实际意义,只有统计学上的意义,所以在simpowersystem中是没有模型属于离散系统的。但是在选取模型,以及仿真算法的选择时,常常提到的discrete model、discrete solver、discrete simulate type等等中的离散到底是指什么呢?其实它是指时间上的离散,也就是指离散时间模型。 下文中提到的连续就是指时间上的连续,连续模型就是指连续时间模型。离散就是指时间上的离散,离散模型就是指离散时间模型,而在物理世界中他们都同属于连续系统。为什么要将一个连续模型离散化呢?主要是是从系统的数学模型来考虑的,前者是用微分方程来建模的,而后者是用差分方程来建模的,并且差分方程更适合计算机计算,并且前者的仿真算法(simulationsolver)用的是数值积分的方法,而后者则是采用差分方程的状态更新离散算法。 在simpowersystem库中,对某些物理器件,既给出的它的连续模型,也给出了它的离散模型,例如: 离散模型一个很重要的参数就是采样时间sampletime,如何从数学建模的角度将一个连续模型离散化,后面会有介绍。在simpowersystem中常用

连续系统离散化处理基本方法

连续系统离散化处理的基本方法 在数字计算机上对连续系统进行仿真时,首先遇到的问题就是如何解决数字计算机在数值及时间上的离散性与被仿真系统数值及时间上的连续性这一基本问题。 从根本意义上讲,数字计算机所进行的数值计算仅仅就是“数字”计算,它表示数值的精度受限于字长,这将引入舍入误差;另一方面,这种计算就是按指令一步一步进行的,因而,还必须将时间离散化,这样就只能得到离散时间点上系统性能。用数字仿真的方法对微分方程的数值积分就是通过某种数值计算方法来实现的。任何一种计算方法都只能就是原积分的一种近似。因此,连续系统仿真,从本质上就是对原连续系统从时间、数值两个方面对原系统进行离散化,并选择合适的数值计算方法来近似积分运算,由此得到的离散模型来近似原连续模型。如何保证离散模型的计算结果从原理上确能代表原系统的行为,这就是连续系统数字仿真首先必须解决的问题。 设系统模型为:),,(t u y f y =&,其中u (t )为输入变量,y (t )为系统变量;令仿真时间间隔为h ,离散化后的输入变量为)(?k t u ,系统变量为)(?k t y ,其中k t 表示t=kh 。如果)()(?k k t u t u ≈,)()(?k k t y t y ≈,即0)()(?)(≈-=k k k u t u t u t e ,0)()(?)(≈-=k k k y t y t y t e (对所有k=0,1,2,…),则可认为两模型等价,这称为相似原理(参见图2、1)。 ,随着计,也称为仿真建模关于稳定性的详细讨论将在2、4节中进行。 (2)准确性:有不同的准确性评价准则,最基本的准则就是: 绝对误差准则:δ≤-=)()(?)(k k k y t y t y t e 相对误差准则:δ≤-= )(?)()(?)(k k k k y t y t y t y t e 其中δ 规定精度的误差量。 (3)快速性:如前所述,数字仿真就是一步一步推进的,即由某一初始值)(0t y 出发,逐步计算,得到)(,),(),(21k t y t y t y Λ,每一步计算所需时间决定了仿真速度。若第k 步计算对应的系统时间间隔为,1k k k t t h -=+计算机由)(k t y 计算)(1+k t y 需要的时间为T k ,则,若T k =h k 称为实时仿真,T k h k ,对应于离线仿真。 &,已知系统变量y 的初始条件y t y ()00=,现 在要求y 随时间变化的过程y t ()。计算过 程可以这样考虑(参见图2、2):首先求出初始 点y t y ()00=的f t y ()00,,微分方程可以 )(≈k y t e 图2、1

信号与系统 实验二 连续和离散时间LTI系统的响应及卷积

实验二 连续和离散时间LTI 系统的响应及卷积 一、实验目的 掌握利用Matlab 工具箱求解连续时间系统的冲激响应、阶跃响应,离散时间系统的单位样值响应,理解卷积概念。 二、实验内容 1、连续时间系统的冲击响应、阶跃响应 a. 利用impulse 函数画出教材P44例2-15: LTI 系统 ()3()2()dy t y t x t dt +=的冲击 响应的波形。 a=[0 1 3]; >> b=[0 2]; >> impulse(b,a); b. 利用step 函数画出教材P45例2-17: LTI 系统 1 ''()3'()2()'()2()2y t y t y t x t x t ++=+的阶跃响应的波形。 a=[1 3 2]; >> b=[0.5 2]; >> step(b,a)

2、离散时间系统的单位样值响应 利用impz函数画出教材P48例2-21: --+---=的单位样值响应的图形。 []3[1]3[2][3][] y n y n y n y n x n a=[1 -3 3 -1]; >> b=[0 1]; >> impz(b,a) 3、连续时间信号卷积 画出函数f1(t)=(1+t)[u(t)-u(t-1)]和f2(t)=u(t-1)-u(t-2)的图形,并利用附在后面的sconv.m函数画出卷积积分f1(t)* f2(t)图形。 t=-1:0.01:3; f1=(1+t).*(0.5*sign(t)-0.5*sign(t-1)); f2=(0.5*sign(t-1)-0.5*sign(t-2)); subplot(2,2,1);

连续离散系统频域分析

课程实验报告 学年学期2015-2016学年第二学期 课程名称信号与系统 实验名称连续和离散系统的频域分析实验室北校区5号楼计算机房 专业年级电气141 学生宋天绍 学生学号2014011595 提交时间 成绩 任课教师吴凤娇 水利与建筑工程学院

实验二:连续和离散系统的频域分析 一:实验目的 1:学习傅里叶正变换和逆变换,理解频谱图形的物理含义 2:了解连续和离散时间系统的单位脉冲响应 3:掌握连续时间系统的频率特性 二:实验原理 1. 傅里叶正变换和逆变换公式 正变换:()()j t F f t e dt ωω∞--∞= ? 逆变换:1()()2j t f t F e d ωωωπ∞-∞=? 2. 频域分析 t j t j e d d e t e ωωωπ ωωωπ??∞∞-∞∞-E =E =)(21)(21)(将激励信号分解为无穷多个正弦分量的和。 ?∞∞-H E =ωωωπωd e t r t j zs )()(21)(,R(ω)为)(t r zs 傅里叶变换;π ωωd )(E 各频率分量的复数振幅 激励单位冲激响应时的零状态响应→ )(t δ)(t h 单位阶跃响应时的零状态响应激励→)(t u )(t g 3 各函数说明: (1)impulse 冲激响应函数:[Y,X,T]=impulse(num,den); ) 1()2()1()1()2()1()()()(11++++++++==--n a s a s a m b s b s b s A s B s H n n m m num 分子多项式系数; num=[b(1) b(2) … b(n+1)]; den 分母多项式系数; den=[a(1) a(2) … a(n+1)]; Y,X,T 分别表示输出响应,中间状态变量和时间变量; 如:3 52)(2+++=s s s s H ,等价于)(2)()(3)(5)(t e t e t r t r t r +=++ 定义den=[1 5 3];num=[1 2]; [Y,X,T]=impulse(num,den); (2)step 阶跃响应函数:[Y,X,T]=step(num,den);num 分子多项式;den 分母多项式 Y,X,T 分别表示输出响应,中间状态变量和时间变量; 如:3 52)(2+++=s s s s H ,den=[1 5 3];num=[1 2]; [Y,X,T]= step (num,den); (3)impz 数字滤波器的冲激响应 [h,t]=impz(b,a,n) b 分子多项式系数;a 分母多项式系数;n 采样样本 h 离散系统冲激响应;t 冲激时间,其中t=[0:n-1]', n=length(t)时间样本数

连续系统函数零极点与离散系统函数零点及系统特性研究

连续系统函数零极点与离散系统函数零点及系统特性研究 摘要: 通过对连续系统函数和离散系统函数零极点及冲击响应研究和稳定性的探究和matlab仿真来对比不同条件下的冲击响应和零极点的变化,已达到对离散与连续系统的特性研究。 关键词:连续系统,离散系统,冲激响应,matlab,零极点。 连续系统函数零极点与系统特性研究 连续时间系统的稳定性与系统零点无关,与系统的极点有关,而系统零点则影响系统单位冲激响应的幅度和相位。理解系统的零极点与系统的稳定性之间的关系有利于对系统的理解。 如果给定系统函数H(s),或给定系统微分方程(可以求出系统函数),通过系统函数可以零极点图判断系统的稳定性。 (1)可用Matlab函数pzmap来画出系统的零极点图。函数pzmap的调用形式为 [p,z] = pzmap(sys) 其中调用变量sys为系统函数,而sys生成可以利用sys=tf(num,den),num 表示N(s),den表示D(s)。返回变量p存放系统H(s)的极点,返回变量z存放系统H(s)的零点。 (2)可用Matlab函数impulse来画出系统的单位冲激响应h(t)。函数impulse的调用形式为 h=impulse(num,den,t); 其中调用变量num表示N(s),den表示D(s)。返回变量h存放系统的单位冲激响应h(t)。从h(t)的图形可以基本判断系统稳定性和零极点的关系。 以系统为例进行研究: 画出系统的零极点,并画出系统单位冲激响应h(t)的波形图。 并与理论图形相比较 理论分析: 由H(s)可知道原系统方程为y’’(t)-6y’(t)+5y(t)=x’(t)+x(t)则可求系统冲激响应如下: h’’(t)-6h’(t)+5h(t)=0--------r^2-6r+5=0-----------------r1=5;r2=1; h(t)=(ae^(5t)+be^(t))*u(t) 带入h’’(t)-6h’(t)+5h(t)=&’(t)+&(t)中,有左右相等解得a=5/8,b=3/8. 所以解得h(t)=(5/8*e^(5t)+3/8*e^(t))u(t); 程序如下: t=0:0.02:30; A=0.625;B=0.375;c=5;d=1; xt=A*exp(c*t)+B*exp(d*t);

相关文档
最新文档