主要内容

氏族

广义状态空间模型

描述

广义状态空间(氏族)模型是包含可调参数或组件的状态空间模型。氏族当您将数值型LTI模型与包含可调组件(控制设计块)的模型相结合时,就会产生模型。有关数字LTI模型和控件设计块的更多信息,请参见带可调系数的模型

可以使用广义状态空间模型来表示混合了固定组件和可调组件的控制系统。将广义状态空间模型用于控制设计任务,如参数研究和参数调优命令,如系统loopune.

建造

构建一个氏族模型:

  • 使用系列,平行线,l, 或者连接,或算术运算符+,-,*,/,\,^,将数字LTI模型组合使用控制设计块。

  • 使用TF.或者SS.具有一个或多个输入参数,该参数是广义矩阵(genmat)而不是数字数组

  • 转换任何数字LTI模型,控制设计块,或单反调谐器(万博1manbetxSimulink控制设计)界面(需要万博1manbetx®控制设计™), 例如,sys,氏族表格使用:

    gensys =一族(系统)

    sys是一个单反调谐器界面,gensys包含此接口中指定的所有可调块和分析点。计算特定I / O传输函数的可调模型,调用getIOTransfer (gensys,).在这里,是有趣的分析点。(使用getPoints(系统)要获取分析点的完整列表。)类似地,计算特定开环传输功能的可调模型,使用getLoopTransfer (gensys loc).在这里,疯狂的是分析的重点。

特性

包含广义LTI模型或广义矩阵中包含的控制设计块的结构。的字段名姓名属性的每个控件设计块。

您可以使用点表示法更改这些控制设计块的某些属性。例如,如果广义LTI模型或广义矩阵M包含A.雷普可调参数A.,您可以更改的当前值A.使用:

M.a.Value=-1;

A B C D

状态空间矩阵对可调和不确定参数的依赖关系,存储为广义矩阵(genmat),不确定矩阵(umat),或双数组。

这些属性模型状态空间矩阵对静态控制设计块的依赖性,雷普,尿素的,ucomplex, 或者UComplexM..动态控制设计模块如可调增益或者可调参数设置为当前值,内部延迟设置为零。

当相应的状态空间矩阵不依赖于任何静态控制设计块时,这些属性将评估为双矩阵。

例如,请参见状态空间矩阵对参数的依赖性

E

E矩阵,当广义状态空间方程是隐式时,存储为双矩阵。的值e = []意味着广义状态空间方程是显式的。有关隐式状态空间模型的更多信息,请参见状态空间模型

StateName

州名,存储为以下形式之一:

  • 字符向量——例如,对于一阶模型,“速度”

  • 字符向量的单元格数组——例如,对于有两个或更多状态的模型,{“位置”,“速度”}

  • ''-无名州。

您可以将州名分配给氏族模型的所有控件设计块都是静态的。否则,在连接组件模型以创建氏族模型。当你这样做时,氏族模型跟踪分配的状态名称。例如,请参见广义状态空间模型中的轨迹状态名

违约:''对所有国家

组织

状态单元标签,存储为下列之一:

  • 字符向量——例如,对于一阶模型,'多发性硬化症'

  • 字符向量的单元格数组——例如,对于有两个或更多状态的模型,{“m”;“米/秒”}

  • ''-无名州。

组织为方便起见,标记每个状态的单位,并且对系统行为没有影响。

您可以将状态单位分配给a氏族仅当其所有控制设计块均为静态时建模。否则,请在将构件模型互连以创建构件之前,指定构件模型的状态单位氏族模型。当你这样做时,氏族模型跟踪分配的状态单元。例如,请参见广义状态空间模型中的轨迹状态名

违约:''对所有国家

内部

矢量存储内部延迟。

例如,当关闭带有延迟的系统的反馈回路时,或串联或并联延迟的系统时,会出现内部延迟。有关内部延迟的更多信息,请参见带时滞的闭环反馈

对于连续时间模型,内部延迟以时髦模型的属性。对于离散时间模型,内部延迟表示为采样时间的整数倍TS..例如,内部延迟=3指三个采样周期的延迟。

您可以修改内部延迟的值。但是,中的条目数sys.internaldelay.无法改变,因为它是模型的结构属性。

输入延迟

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

对于具有nu.输入,集合输入延迟到一个nu.-by-1向量。该向量的每个条目都是一个数值,表示对应输入通道的输入延迟。

你也可以设置输入延迟对标量值对所有通道应用相同的延迟。

违约:0

输出延迟

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

对于具有纽约输出,设置输出延迟到一个纽约-by-1矢量,其中每个条目都是一个数值,表示对应输出通道的输出延迟。您还可以设置输出延迟对标量值对所有通道应用相同的延迟。

违约:0对于所有输出通道

TS.

采样时间。对于连续时间模型,t = 0.对于离散时间模型,TS.为表示采样周期的正标量。的指定的单元表示该值时髦模型的财产。表示具有未指定采样时间的离散时间模型,设置Ts = 1

更改此属性不会对模型进行离散化或重新采样。

违约:0(连续时间)

时髦

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

  • “纳秒”

  • 微秒的

  • 的毫秒

  • “秒”

  • '分钟'

  • “小时”

  • “天”

  • “周”

  • “月”

  • '年'

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

违约:“秒”

输入名称

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

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

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

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

sys.InputName ='控件';

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

你可以使用速记符号U参考输入名称财产。例如sys.u相当于sys。输入名称

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

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

  • 提取MIMO系统子系统

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

违约:''对于所有输入通道

InputUnit

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

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

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

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

违约:''对于所有输入通道

输入组

输入通道组。这个输入组属性允许您将MIMO Systems的输入通道分配成组,然后通过名称引用每个组。将输入组指定为结构。在此结构中,字段名称是组名,字段值是属于每个组的输入通道。例如:

sys.InputGroup.controls = [1 2];sys.InputGroup.noise = [3 5];

创建名为的输入组控制噪音包括输入通道1,2和3,5。然后,您可以从中提取子系统控制使用以下输出的输入:

sys(:,'controls')

违约:没有字段的结构体

OutputName

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

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

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

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

sys.OutputName=‘测量’;

输出名称自动展开为{“测量(1)”,“测量”(2)}

你可以使用速记符号Y参考OutputName财产。例如sys.y相当于sys.outputname.

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

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

  • 提取MIMO系统子系统

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

违约:''对于所有输出通道

输出单元

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

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

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

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

违约:''对于所有输出通道

OutputGroup

输出通道组。这个OutputGroup属性允许您将MIMO Systems的输出通道分配成组,然后通过名称引用每个组。将输出组指定为结构。在此结构中,字段名称是组名,字段值是属于每个组的输出通道。例如:

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

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

SYS('测量',:)

违约:没有字段的结构体

姓名

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

违约:''

笔记

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

sys1.notes =“sys1有一个字符串。”;sys2.notes ='sys2有一个字符矢量。';sys1。笔记sys2.笔记
ans=“sys1有一个字符串。”ans=“sys2有一个字符向量。”

违约:[0×1字符串]

用户数据

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

违约:[]

SamplingGrid.

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

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

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

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

sysarr.samplinggrid = struct('时间'0:10)

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

[zeta,w] = ndgrid(的<6值>,<9值的w>)m.amplinggrid = struct('Zeta',Zeta,' w 'w)

当你展示时M,数组中的每一项都包含相应的ζW价值观。

M
m(:,:,1,1)[zeta = 0.3,w = 5] = 25 ------------- S ^ 2 + 3 s + 25 m(:, :,:2,1)[Zeta = 0.35,w = 5] = 25 --------------- S ^ 2 + 3.5 s + 25 ...

对于通过在多个参数值或操作点来实现的模拟模型生成的模型阵列,软件填充万博1manbetxSamplingGrid.自动使用与数组中的每个条目对应的变量值。例如,万博1manbetx仿真软件控制设计命令线性化(万博1manbetxSimulink控制设计)slLinearizer(万博1manbetxSimulink控制设计)填充SamplingGrid.就这样。

违约:[]

例子

全部折叠

在本例中,您将创建一个带有一个可调参数的低通滤波器A.:

F = A. s + A.

由于分子和分母系数tunableTF块是独立的,不能使用tunableTF代表F.相反,构造F使用可调谐real parameter对象雷普

创建一个实际的可调参数,初始值为10.

a = REAMP('一种',10)
取值范围:10最小值:-Inf最大值:Inf Free: 1实标量参数。

使用TF.创建可调低通滤波器的步骤F

分子= a;分母= [1,a];f = TF(分子,分母)
F =广义连续时间状态空间模型,具有1个输出、1个输入、1个状态和以下块:a:标量参数,2次出现。输入“ss(F)”查看当前值,输入“get(F)”查看所有属性,输入“F. blocks”与块进行交互。

F是一个氏族对象,该对象具有可调参数A.在它财产。你可以连接F与其他可调或数值模型,以创建更复杂的控制系统模型。例如,请参见控制系统与可调组件

此示例演示如何创建状态空间氏族具有固定和可调参数的模型。

A. = [ 1. A. + B 0 A. B ] , B = [ - 3. 0 1. 5. ] , C = [ 0 3. 0 ] , D = 0 ,

在哪里A.B是可调参数,其初始值为-13.分别地

使用雷普

a = REAMP('一种',-1);b = REAMP('B'3);

使用代数表达式定义广义矩阵A.B

A = [1 A +b;0 A *b];

A.是一个广义矩阵,其属性包含A.B.初始价值A.[1 2;0 -3],从A.B

创建固定值的状态空间矩阵。

B = [-3.0, 1.5];C = [0.3 0];D = 0;

使用SS.创建状态空间模型。

sys = ss(a,b,c,d)
sys =广义连续时间状态空间模型,具有1个输出、1个输入、2个状态和以下块:a:标量参数,2次出现。b:标量参数,2次。输入“ss(sys)”查看当前值,输入“get(sys)”查看所有属性,输入“sys. sys”查看当前值。与积木互动。

sys为广义LTI模型(氏族)参数可调A.B

这个例子展示了如何创建一个控制系统的可调谐模型,该控制系统具有固定的设备和传感器动态以及可调谐的控制组件。

考虑下图的控制系统。

假设植物反应是 G ( s ) = 1. / ( s + 1. ) 2. ,传感器动力学模型为 s ( s ) = 5. / ( s + 4. ) .控制器 C 是可调PID控制器,预滤器 F = A. / ( s + A. ) 是一个具有可调参数的低通滤波器,A.

创建代表工厂和传感器动态的模型。由于植物和传感器动态是固定的,因此使用数字LTI模型表示它们。

G = zpk ([], [1], 1);S = tf(5,[1 4]);

要模拟可调组件,请使用控制设计块。创建控制器的可调表示C

C = tunablePID ('C','PID');

C是一个可调PID对象,它是具有预定义比例 - 积分 - 衍生(PID)结构的控制设计块。

创建过滤器的模型 F = A. / ( s + A. ) 使用一个可调参数。

a = REAMP('一种',10);f = tf(a,[1 a]);

A.是一个雷普初始值为10的(实可调参数)对象。使用A.作为一个系数TF.创造可调调整氏族模型对象F

互连模型以构造完整的闭环响应的模型RY

T=反馈(G*C,S)*F
T =具有1个输出,1个输入,5个状态和以下块的通用连续时间 - 空间模型:C:可调PID控制器,1个出现。答:标量参数,2个出现。键入“ss(t)”以查看当前值,“get(t)”以查看所有属性,以及“t.blocks”与块交互。

T是一个氏族模型对象。与仅连接数值型LTI模型形成的聚合模型相比,T跟踪控制系统的可调元素。可调谐元素存储在财产的财产氏族模型对象。的可调元素T

t.blocks.
ans =结构体字段:C:[1x1调谐化] A:[1x1 Realp]

当你创建氏族具有可调组件的控制系统的模型,您可以使用调整命令,例如系统调整自由参数以满足指定的设计要求。

创建一个氏族带有标记的州名的模型。为此,请在连接组件LTI模型之前标记它们的状态。例如,连接一个双状态固定系数的对象模型和一个单状态可调控制器。

A=[-1-1;1 0]; B=[1;0]; C=[01];D=0;G=ss(A,B,C,D);G.StateName={'pstate1',“Pstate2”};C =可调参数('C', 1, 1, 1);L = G * C;

这个氏族模型L保留创建它的组件的状态名称。因为您未将状态名称分配给可调谐组件C,软件会自动这么做。检查的州名L确认他们。

L.StateName
ans =3 x1细胞{'pstate1'} {'pstate2'} {'c.x1'}

自动分配用于控制设计块的状态名称允许您跟踪广义模型中的哪些状态由可调组件贡献。

当您转换A时,也会保留状态名称氏族模型为固定系数状态空间模型。确认,将LSS.形式。

Lfixed = ss(左);Lfixed。stateName
ans =3 x1细胞{'pstate1'} {'pstate2'} {'c.x1'}

状态单元标签,存储在组织财产的财产氏族模仿,表现相似。

创建一个具有可调参数的广义模型,并检查A.矩阵。要做到这一点,检查A.广义模型的性质。

G=tf(1[110]);k=realp(“k”1);F = tf(k,[1 k]);L1 = G * F;L1。A.
ans = 2行2列的广义矩阵,有以下块:k:标量参数,2次出现。输入"double(ans)"查看当前值,"get(ans)"查看所有属性,输入"ans. blocks "与块交互。

这个A.属性是一个广义矩阵,保留对真实可调参数的依赖性K.状态空间矩阵属性A.,B,C,D只保留对静态参数的依赖关系。当氏族模型具有动态控制设计块,这些块设置为其当前值,用于评估状态空间矩阵属性。例如,检查A.A的矩阵属性氏族具有可调PI块的模型。

C = tunablePID ('C','pi');l2 = g * c;L2.A.
ans =2×2-10.0000 0.0010 0 0

这里,这个A.矩阵存储为双矩阵,其值为A.当前值的矩阵L2

L2cur = ss (L2);L2cur。A.
ans =2×2-10.0000 0.0010 0 0

此外,提取状态空间矩阵ssdata将所有控制设计块设置为其当前值或标称值,包括静态块。因此,以下操作都返回A.矩阵L1

[A, B, C, D] = ssdata (L1);A.
A=2×2-10 1 0 -1
双(L1.A)
ans =2×2-10 1 0 -1
l1cur = ss(l1);l1cur.a.
ans =2×2-10 1 0 -1

提示

  • 你可以操作氏族模特为普通SS.模型。分析命令,例如波德一步通过将每个可调参数替换为其当前值来评估模型。

介绍了R2011a