zpk

创建zero-pole-gain模型;转换为零极增益模型

语法

sys = zpk (Z,磷、钾)
sys = zpk (Z, p、k、t)
sys = zpk (M)
sys = zpk (Z, p、k ltisys)
s = zpk(“s”)
z = zpk (' z ' Ts)
zsys=zpk(sys)
zsys=zpk(系统‘测量’)
Zsys = zpk(sys, 'noise')
Zsys = zpk(sys, 'augmented')

描述

使用zpk创建零极点增益模型的步骤(zpk模型对象),或将动态系统转换为零极增益形式。

零极增益模型的创建

sys = zpk (Z,磷、钾)创建具有零的连续时间零极增益模型Z,波兰P,并获得K.输出sys是一个zpk存储模型数据的模型对象。

在SISO案例中,ZP是实数或复数值零和极点的向量,以及K是实值或复数标量增益:

h 年代 k 年代 z 1 年代 z 2 ... 年代 z 年代 p 1 年代 p 2 ... 年代 p n

Zp[]对于没有零或极点的系统。这两个向量的长度不需要相等,模型也不需要是合适的(也就是说,有多余的极点)。

要创建MIMO零极增益模型,请指定该模型的每个SISO项的零、极和增益。在这种情况下:

  • ZP向量的单元格数组是否与输出的行数相同,与输入的列数相同K是一个和输出一样多的行和输入一样多的列的矩阵。

  • 向量Z {i, j}P{i,j}指定输入传递函数的零和极点j输出

  • K(i,j)指定输入传递函数的(标量)增益j输出

参见下面的MIMO示例。

sys = zpk (Z, p、k、t)建立了一个带采样时间的离散时间零极增益模型Ts(以秒为单位)。集Ts=-1Ts = []未指定采样时间。输入参数ZPK和连续时间的情况一样。

sys = zpk (M)指定静态增益

sys = zpk (Z, p、k ltisys)使用继承自LTI模型的属性创建零极增益模型ltisys(包括采样时间)。

创建。的数组zpk模型对象,使用循环,或使用多维单元格数组ZP的多维数组K

前面的任何语法都可以后跟属性名/属性值对。

“PropertyName”,PropertyValue

每一对都指定模型的特定属性,例如,输入名称或输入延迟时间。的属性的更多信息zpk模型对象,请参见属性.请注意,

sys = zpk (Z, P、K Property1, Value1,…,“PropertyN”,家)

是以下命令序列的快捷方式。

sys = zpk(Z,P,K) set(sys,'Property1',Value1,…,'PropertyN',ValueN)

在s或z中的有理表达式的零极增益模型

您还可以使用rational表达式来创建ZPK模型。要执行此操作,请首先键入:

  • s = zpk(“s”)使用拉普拉斯变量中的有理函数来指定ZPK模型,年代

  • z = zpk (' z ' Ts)以指定带有示例时间的ZPK模型Ts在离散时间变量中使用有理函数,z

一旦您指定了这些变量中的任何一个,您就可以直接将ZPK模型指定为变量中的理性表达式年代z将传递函数作为有理表达式输入年代z

转换为零极增益形式

zsys=zpk(sys)转换任意的LTI模型syszero-pole-gain形式。输出zsys是一个ZPK对象。默认情况下,zpk使用从状态空间转换为零极增益时计算零。另外,

zsys = zpk (sys,“发票”)

使用状态空间模型的反演公式来计算零。该算法对于高阶低增益模型速度较快,但精度较低年代= 0。

识别模型的转换

已识别的模型由以下形式的输入输出方程表示y(t) = Gu(t) + He(t),在那里u (t)是否测量输入通道和e (t)表示噪波通道。如果Λ=我'表示噪声的协方差e (t),这个方程也可以写成y(t)=Gu(t)+HLv(t),在那里浸(v (t)) =我

zsys=zpk(sys),或zsys=zpk(系统‘测量’)将已识别线性模型的测量组件转换为ZPK形式。sys是类型的模型吗中的难点idprocidtfidpoly,或idgreyzsys表示uy

Zsys = zpk(sys, 'noise')将已识别线性模型的噪声分量转换为ZPK形式。它表示了噪声输入,v (t)产量,,y_noise = HL v(t).噪声输入通道属于InputGroup“噪音”.噪声输入通道的名称为v@yname,在那里yname对应输出通道的名称。zsys输入和输出一样多。

Zsys = zpk(sys, 'augmented')将测量和噪声动力学转换为ZPK模型。zsys纽约+ν输入使第一个怒族输入表示通道u (t)而其余的by通道代表噪声通道v (t)zsys。InputGroup包含2个输入组,“测量”“噪音”zsys.InputGroup.Measured被设置为1:nu虽然zsys.InputGroup.Noise被设置为ν+ 1:ν+纽约。zsys代表了方程y(t) = [G HL] [u;v)

提示

已识别的非线性模型不能转换为ZPK系统。使用线性近似函数,例如线性化linapp

变量的选择

对于传递函数,您可以指定在零极点增益模型的显示中使用哪个变量。可用的选择包括年代(默认)和p对于连续时间模型,和z(默认),z-1-1(相当于z-1),或(相当于z)对于离散时间模型。重新分配“变量”属性以重写默认值。改变变量只影响零极增益模型的显示。

属性

zpk对象具有以下属性:

Z

系统零。

Z属性存储传递函数零(分子根)。对于SISO型号,Z是一个包含0的向量。对于MIMO模型纽约输出和ν输入,Z是一个纽约——- - - - - -ν每个输入/输出对的零向量单元格数组。

P

系统极点。

P属性存储传递函数极点(分母根)。对于SISO型号,P是一个包含极点的向量。对于具有纽约输出和ν输入,P是一个纽约——- - - - - -ν每个输入/输出对的极向量单元阵列。

K

系统收益。

K属性存储传递函数增益。对于输出模型,K为标量值。对于MIMO模型纽约输出和ν输入,K是一个纽约——- - - - - -ν存储每个输入/输出对增益的矩阵。

DisplayFormat

指定为显示目的如何分解分子和分母多项式。

分子多项式和分母多项式都显示为一阶和二阶因子的乘积。DisplayFormat控制这些因素的显示。DisplayFormat可以取以下值:

  • “根”(默认)-根据多项式根的位置显示因子。

  • “频率”-根据根固有频率显示因子ω0阻尼比ζ

    “频率”显示格式不适用于具有变量价值‘z^-1’“问^ 1”

  • 的时间常数-根据根时间常数显示因子τ阻尼比ζ

    的时间常数显示格式不适用于具有变量价值‘z^-1’“问^ 1”

对于连续时间模型,下表显示了多项式因子如何在每种显示格式中被写入。

DisplayName价值 一阶因子(实根)R 二阶因子(复根对R一个±jb
“根” 年代- - - - - -R 年代2- - - - - -α年代+β),α= 2一个β一个2+b2
“频率” (1 -年代/ω0),ω0R 1 – 2ζ年代/ω0) + (年代/ω02,在那里ω02一个2+b2ζ一个/ω0
的时间常数 (1 -τs),τ= 1/R 1 – 2ζτs) + (τs2,在那里τ= 1/ω0ζ一个τ

对于离散时间模型,多项式因子记为连续时间,变量代换如下:

年代 w z 1 T 年代 R R 1 T 年代

在哪里T年代为采样时间。在离散时间,τω0紧密匹配的时间常数和固有频率的等效连续时间根,提供|z1 |≪T年代ω0π/T年代奈奎斯特频率)。

默认值:“根”

变量

传递函数显示变量,指定为如下之一:

  • “年代”—默认为连续时间模型

  • “z”—默认为离散时间模型

  • “p”——相当于“年代”

  • “问”——相当于“z”

  • ‘z^-1’——逆“z”

  • “问^ 1”——相当于‘z^-1’

价值变量只影响显示zpk模型。

默认值:“年代”

IODelay

运输延误。IODelay为每个输入/输出对指定单独传输延迟的数字数组。

对于连续时间系统,以存储在中的时间单位指定传输延迟TimeUnit财产。对于离散时间系统,以采样时间的整数倍指定传输延迟,Ts

对于具有纽约输出和ν输入,设置IODelay到一个纽约——- - - - - -ν数组。该数组的每个条目都是一个数值,表示对应输入/输出对的传输延迟。您还可以设置IODelay对标量值施加相同的延迟到所有输入/输出对。

默认值:0对于所有输入/输出对

InputDelay

每个输入通道的输入延迟,指定为标量值或数字向量。对于连续时间系统,在存储的时间单元中指定输入延迟TimeUnit财产。对于离散时间系统,以采样时间的整数倍指定输入延迟Ts. 例如InputDelay = 3表示延迟三次采样时间。

对于一个系统ν输入,设置InputDelayν1的向量。这个向量的每一项都是一个数值,表示对应输入通道的输入延迟。

你也可以设置InputDelay设置为标量值,以便对所有通道应用相同的延迟。

默认值:0

OutputDelay

输出延迟。OutputDelay为每个输出通道指定时间延迟的数字向量。对于连续时间系统,在存储的时间单元中指定输出延迟TimeUnit财产。对于离散时间系统,以采样时间的整数倍指定输出延迟Ts. 例如OutputDelay = 3表示三个采样周期的延迟。

对于一个系统纽约输出,OutputDelay纽约-by-1向量,其中每个条目都是一个数值,表示对应输出通道的输出延迟。你也可以设置OutputDelay设置为标量值,以便对所有通道应用相同的延迟。

默认值:所有输出通道为0

Ts

样品时间。对于连续时间模型,Ts=0.对于离散时间模型,Ts为表示采样周期的正标量。的指定的单元表示该值TimeUnit模型的属性。表示具有未指定样本时间的离散时间模型Ts=-1

更改此属性不会离散或重新取样模型。使用汇集d2c在连续和离散时间表示之间转换。使用d2d改变离散时间系统的采样时间。

默认值:0(持续时间)

TimeUnit

单位为时间变量,即样本时间Ts,以及模型中的任何时间延迟,指定为以下值之一:

  • “纳秒”

  • 微秒的

  • “毫秒”

  • “秒”

  • “分钟”

  • “小时”

  • “天”

  • “周”

  • “月”

  • “年”

更改此属性不会影响其他属性,因此会更改整个系统行为。使用CHGTIMEUT在不改变系统行为的情况下在时间单位之间进行转换。

默认值:“秒”

InputName

输入通道名称,指定为下列之一:

  • 字符向量-例如,对于单输入模型,“控制”

  • 字符向量单元数组-用于多输入模型。

或者,使用自动向量展开为多输入模型分配输入名称。例如,如果sys是双输入模型,请输入:

sys.InputName='controls';

输入名称自动展开为{“控制(1)”,“控制”(2)}

你可以用速记法u参考InputName财产。例如,sys.u相当于sys。InputName

输入通道名有几种用途,包括:

  • 在模型显示和图表上识别通道

  • MIMO系统的子系统提取

  • 在连接模型时指定连接点

默认值:''对于所有输入通道

输入单元

输入通道单位,指定为下列单位之一:

  • 字符向量-例如,对于单输入模型,“秒”

  • 字符向量单元数组-用于多输入模型。

使用输入单元跟踪输入信号装置。输入单元对系统行为没有影响。

默认值:''对于所有输入通道

InputGroup

输入通道组。的InputGroup属性可用于将MIMO系统的输入通道分配到组中,并按名称引用每个组。将输入组指定为结构。在此结构中,字段名称是组名称,字段值是属于每个组的输入通道。例如:

sys.InputGroup.controls=[12];sys.InputGroup.noise=[35];

创建名为控制噪音分别包括输入通道1 2和3 5。然后您可以从控制所有输出的输入使用:

sys(:,“控制”)

默认值:没有字段的结构

输出名

输出通道名称,指定为以下任意一个:

  • 字符向量-用于单输出模型。例如,“测量”

  • 字符向量的单元阵列-用于多输出模型。

或者,使用自动向量展开为多输出模型分配输出名称。例如,如果sys是一个双输出模型,输入:

sys。OutputName =“测量”;

输出名称自动展开为{'measurements(1)';'measurements(2)}

你可以用速记法y参考输出名财产。例如,sys.y相当于sys。输出名

输出通道名称有多种用途,包括:

  • 在模型显示和图表上识别通道

  • MIMO系统的子系统提取

  • 在连接模型时指定连接点

默认值:''对于所有输出通道

OutputUnit

输出通道单位,指定为以下之一:

  • 字符向量-用于单输出模型。例如,“秒”

  • 字符向量的单元阵列-用于多输出模型。

使用OutputUnit跟踪输出信号装置。OutputUnit对系统行为没有影响。

默认值:''对于所有输出通道

输出组

输出通道组。的输出组属性允许您将MIMO系统的输出通道分配到组中,并按名称引用每个组。将输出组指定为结构。在这个结构中,字段名是组名,字段值是属于每个组的输出通道。例如:

sys.OutputGroup.temperature = [1];sys.InputGroup.measurement = [3 5];

创建名为的输出组温度测量分别包括输出通道1、3、5。然后可以从所有的输入中提取子系统测量输出使用:

系统(“测量”,:)

默认值:没有字段的结构

的名字

系统名,指定为字符向量。例如,“system_1”

默认值:''

笔记

希望与系统关联的任何文本,存储为字符串或字符向量单元格数组。该属性存储您提供的任何数据类型。例如,如果sys1sys2是动态系统模型,您可以设置它们的笔记属性如下:

sys1。笔记="sys1有一个字符串。";sys2。笔记=sys2有一个字符向量。;sys1。笔记sys2。笔记
Ans = ' sys1 has a string. ' Ans = 'sys2 has a character vector.'

默认值:(0×1的字符串)

用户数据

您想要与系统关联的任何类型的数据,指定为任何MATLAB®数据类型。

默认值:[]

SamplingGrid

为模型数组采样网格,指定为数据结构。

对于通过抽样一个或多个独立变量而派生的模型数组,此属性跟踪与数组中每个模型相关联的变量值。当您显示或绘制模型数组时,将显示此信息。使用此信息将结果追踪到独立变量。

将数据结构的字段名设置为抽样变量的名称。将字段值设置为与数组中每个模型相关联的采样变量值。所有抽样变量都应该是数值和标量值,所有抽样值的数组都应该与模型数组的维数相匹配。

例如,假设您创建了一个11乘1的线性模型数组,sysarr,通过不时拍摄线性时变系统的快照t = 0:10.下面的代码使用线性模型存储时间样本。

sysarr。SamplingGrid =结构(“时间”0:10)

类似地,假设你创建了一个6乘9的模型数组,,通过独立抽样两个变量,ζw.下面的代码附加了(ζ,w)

[zeta,w]=ndgrid(<6个zeta>值,<9个w>值)M.SamplingGrid=struct(“ζ”ζ,“w”w)

当您显示,数组中的每个条目都包含相应的ζw值。

(:: 1, - 1)(ζ= 0.3 w = 5) = 25  -------------- s ^ 2 + 3 s + 25米(:,:,2,1)[ζ= 0.35 w = 5] = 25  ---------------- s ^ 2 + 3.5 s + 25…

用于在Simulink中线性化生成的模型阵列万博1manbetx®模型在多个参数值或操作点,软件填充SamplingGrid自动使用数组中每个条目对应的变量值。例如,万博1manbetx仿真软件控制设计™命令线性化单反线性化器居住于SamplingGrid以这种方式。

默认值:[]

例子

例1

创建连续时间的SISO传递函数:

h 年代 2 年代 年代 1 + j 年代 1 j 年代 2

创造h年代)作为zpk对象使用:

H = zpk(0, [1-i 1+i 2], -2);

例2

指定以下一输入二输出零极增益模型:

H z 1 z 0.3 2 z + 0.5 z 0.1 + j z 0.1 j

要做到这一点,输入:

Z = {[];-0.5};P = {0.3;(0.1 + i 0.1 - i)};K = [1;2);H = zpk (Z, P、K 1);未指定采样时间%

例3

转换传递函数

H = tf([-10 20 0],[1 7 20 28 19 5]);

到零极点增益形式,使用:

zpk (h)

这个命令返回结果:

零/极/增益:-10秒(s-2)-------------------------(s+1)^3(s^2+4s+5)

例4

从变量中的合理表达式创建一个离散时间ZPK模型z

z = zpk(“z”,0.1);H = (z + 1) * (z + 2) / (z ^ 2 + 6 * z + .09点)

该命令返回以下结果:

0 /钢管/增益:(z + 0.1) (z + 0.2 ) --------------- ( z + 0.3) ^ 2样品时间:0.1

例5

创建一个天线zpk模型使用单元阵列的零点和极点。

创建双输入双输出零极增益模型

H 年代 1 年代 3. 年代 + 5 年代 + 1 2 2 年代 2 2 年代 + 2 年代 1 年代 2 年代 3. 0

通过输入:

[1-i 1+i] []};P = {0,[-1 -1];[1 2 3],[]}K = [-1 3;2 0];H = zpk (Z,磷、钾);

使用[]作为一个占位符ZP当对应的条目H年代)没有零或极点。

例6

将一个多项式模型的测量分量和噪声分量提取为两个独立的ZPK模型。前者(被测元件)可以作为被测对象模型,而后者可以作为控制系统设计的扰动模型。

加载icEngine z = iddata(y,u,0.04);nb = 2;nf = 2;数控= 1;nd = 3;nk = 3;Sys = bj(z, [nb nc nd nf nk]);

sys是一个模型的形式,y(t)=B/F u(t)+C/D e(t),在那里B/F表示测量的组件和报关单噪声组件。

sysMeas=zpk(sys,‘测量’)

或者,使用可以简单地使用zpk(系统)提取被测分量。

sysNoise = zpk(sys, 'noise')

算法

zpk使用MATLAB函数转换传递函数和函数转换状态空间模型。

在R2006a之前引入