主要内容

一族

广义状态空间模型

描述

广义状态空间(一族)模型是状态空间模型,包括可调参数或组件。一族使用包含可调谐组件的模型(控制设计块)组合数值LTI型号时出现模型。有关Numeric LTI模型和控制设计块的更多信息,请参阅具有可调系数的模型

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

建设

构建一个一族模型:

  • 采用系列平行线融通,或连接,或算术运算符+-/, 和,将数字LTI模型与控制设计块相结合。

  • 采用特遣部队党卫军带有一个或多个输入参数,该参数是一个广义矩阵(Genmat.)而不是数字数组

  • 转换任何数字LTI模型,控制设计块,或slTuner(金宝app仿真软件控制设计)接口(需要金宝app®控制设计™),例如,sys,一族使用形式:

    gensys = genss(sys)

    sys是一个slTuner接口,gensys包含此接口中指定的所有可调块和分析点。要计算特定I/O传输函数的可调模型,调用getiotransfer(Gensys,In,Out).在这里,是有趣的分析点。(使用GetPoints(SYS)以获得分析点的完整列表。)类似地,要计算特定开环传递函数的可调模型,请使用getLoopTransfer (gensys loc).在这里,疯狂的是分析的兴趣点。

属性

包含在广义LTI模型或广义矩阵中包括的控制设计块的结构。野外名称的名字属性的每个控件设计块。

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

M.Blocks.a.Value = 1;

A, B, C, D

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

这些性质模拟了状态空间矩阵对静态控制设计块的依赖性,realp尿尿ucomplex,或ucomplexm.动态控制设计模块如tunableGain可调参数设置为当前值,内部延迟设置为零。

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

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

E

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

attnename.

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

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

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

  • -无名州。

您可以将州名分配给一族模型的所有控件设计块都是静态的。否则,在将它们互连以创建组件之前指定组件模型的状态名称一族模型。当你这样做时,一族模型跟踪分配的状态名称。例如,看到广义状态空间模型中的跟踪状态名称

默认值:对所有国家

StateUnit

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

  • 字符向量 - 对于一阶模型,例如,“米/秒”

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

  • -无名州。

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

你可以给a分配状态单位一族模型的所有控件设计块都是静态的。否则,在连接组件模型以创建一族模型。当你这样做时,一族模型跟踪指定的状态单位。例如,看到广义状态空间模型中的跟踪状态名称

默认值:对所有国家

InternalDelay

向量存储内部延迟。

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

对于连续时间模型,内部延迟用指定的时间单位表示TimeUnit模型的属性。对于离散时间模型,内部延迟被表示为样本时间的整数倍Ts.例如,InternalDelay = 3表示三个采样周期的延迟。

可以修改内部延迟的值。然而,条目的数量sys.internaldelay.不能更改,因为它是模型的结构属性。

InputDelay

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

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

你也可以设置InputDelay对标量值施加相同的延迟到所有通道。

默认值:0

OutputDelay

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

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

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

Ts

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

更改此属性不会离散或重新取样模型。

默认值:0(持续时间)

TimeUnit

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

  • '纳秒'

  • 微秒的

  • '毫秒'

  • “秒”

  • “分钟”

  • “小时”

  • “天”

  • “周”

  • “月”

  • “年”

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

默认值:“秒”

InputName

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

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

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

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

sys。InputName =“控制”;

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

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

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

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

  • MIMO系统子系统的提取

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

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

InpoinUnit.

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

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

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

采用InpoinUnit.跟踪输入信号单元。InpoinUnit.对系统行为没有影响。

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

InputGroup

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

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

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

sys(:,“控制”)

默认值:没有字段的结构

outputName.

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

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

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

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

sys。OutputName =“测量”;

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

您可以使用速记表示法y参考outputName.财产。例如,sys.y相当于sys。outputName.

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

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

  • 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。年代一个mplingGrid = struct(“时间”0:10)

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

[zeta,w] = ndgrid(<6 values of zeta>,<9 values of w>)“ζ”ζ,'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模型生成的模型阵列,软件填充金宝appSamplingGrid自动使用数组中每个条目对应的变量值。例如,金宝appSimulink控制设计命令线性化(金宝app仿真软件控制设计)SLINESERIZER.(金宝app仿真软件控制设计)填充SamplingGrid以这种方式。

默认值:[]

例子

全部收缩

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

F 一个 年代 + 一个

因为a的分子和分母系数tunableTF块是独立的,你不能使用tunableTF代表F.相反,构建F使用可调谐real parameter对象realp

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

a = REAMP(“一个”, 10)
a = name:'a'值:10最小值:-inf最大值:inf free:1实际标量参数。

采用特遣部队创建可调低通滤波器F

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

F是一个一族对象,该对象具有可调参数一个在其财产。你可以连接F使用其他可调或数字模型来创建更复杂的控制系统模型。例如,看到具有可调组件的控制系统

这个例子展示了如何创建状态空间一族模型具有固定和可调参数。

一个 1 一个 + b 0 一个 b B - 3. 0 1 5 C 0 3. 0 D 0

在哪里一个b是可调参数,其初始值是-13.,分别。

使用可调谐参数使用realp

a = REAMP(“一个”1);b = realp (“b”,3);

使用代数表达式定义广义矩阵一个b

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

一个广义矩阵是谁的属性包含一个b.的初始值一个(1 2; 0 3)的初始值一个b

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

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

采用党卫军以创建状态空间模型。

sys = ss(a,b,c,d)
SYS =具有1个输出,1个输入,2个状态的广义连续时间 - 空间模型,以及以下块:A:Scalar参数,2个出现。B:标量参数,2个出现。键入“ss(sys)”以查看当前值,“get(sys)”以查看所有属性,以及“sys.blocks”与块交互。

sys是一般化的LTI模型(一族)和可调参数一个b

此示例显示如何创建具有固定工厂和传感器动态和可调控制组件的控制系统的可调型号。

考虑下面插图中的控制系统。

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

创建代表工厂和传感器动态的模型。因为植物和传感器的动态是固定的,所以用数值LTI模型来表示它们。

g = zpk([],[ -  1,-1],1);s = tf(5,[1 4]);

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

c =调谐(“C”“PID”);

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

创建过滤器的模型 F 一个 / 年代 + 一个 使用一个可调参数。

a = REAMP(“一个”10);F = tf(a,[1 a]);

一个是一个realp初始值为10的(实可调参数)对象。使用一个作为一个系数特遣部队创建可调一族模型对象F

将模型连接起来,建立一个完整的闭环响应模型ry

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

T是一个一族模型对象。与通过连接数字LTI模型形成的聚合模型相反,T跟踪控制系统的可调元件。中的可调参数存储在财产的财产一族模型对象。的可调元素T

T.Blocks
ans =.结构与字段:C: [1x1 tunablePID] a: [1x1 realp]

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

创建一个一族标有标签的模型。为此操作,请在连接之前标记组件LTI模型的状态。例如,连接两个状态固定系数工厂模型和一个单态可调控制器。

A = [-1 -1;1 0];B = [1;0);C = [0 1];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 =.3x1细胞{'pstate1'} {'pstate2'} {'c.x1'}

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

转换时,州名也会被保留一族模型到固定系数状态空间模型。确认,转换l党卫军的形式。

lfixed = ss(l);lfixed.statename.
ans =.3x1细胞{'pstate1'} {'pstate2'} {'c.x1'}

状态单元标签,存储在StateUnit财产的财产一族模型中,同样的行为。

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

G = tf(1,[1 10]);k = realp (“k”,1);f = tf(k,[1 k]);l1 = g * f;l1.a.
ANS =具有2行,2列和以下块的通用矩阵:K:Scalar参数,2个出现。键入“Double(ANS)”以查看当前值,“get(ans)”以查看所有属性,以及“ans.blocks”以与块交互。

一个性质是一个广义矩阵,它保持了对实可调参数的依赖性k.状态空间矩阵属性一个BC, 和D只保留静态参数的依赖性。当。。。的时候一族模型具有动态控制设计块,这些块被设置为它们的当前值,以评估状态空间矩阵属性。例如,检查一个A的矩阵属性一族模型具有可调PI块。

c =调谐(“C”'pi');L2 = G * C;L2。一个
ans =.2×2-10.0000 0.0010 00

在这里,一个矩阵存储为双矩阵,其值是一个矩阵的当前值L2

L2cur = ss (L2);L2cur。一个
ans =.2×2-10.0000 0.0010 00

此外,提取状态空间矩阵ssdata将所有控件设计块设置为它们的当前值或标称值,包括静态块。因此,下列操作都返回对象的当前值一个矩阵的L1

[A,B,C,D] = SSDATA(L1);一个
一个=2×2-10 1 0 -1
双(L1.A)
ans =.2×2-10 1 0 -1
L1cur = ss (L1);L1cur。一个
ans =.2×2-10 1 0 -1

提示

  • 你可以操作一族模型作为普通党卫军模型。分析命令,例如b一步通过将每个可调参数替换为其当前值来评估模型。

在R2011A介绍