不确定的状态空间模型
用我们
模型对象代表不确定的动态系统。
两种主导的模型不确定性形式是:
底层微分方程模型参数的不确定性(不确定的状态空间矩阵)
频域不确定性,其通过描述频率响应中的绝对或相对不确定性(不确定或未拼接的线性动态)来频率域不确定性
我们
模型对象可以代表具有或两种形式的不确定性的动态系统。您可以使用我们
进行稳健的稳定性和性能分析,并测试控制器设计的稳健性。
有几种方法可以创造一个我们
模型对象,包括:
用TF.
具有一个或多个不确定的真实参数(尿尿
)。例如:
p =尿尿('P',1);usys = tf(p,[1 p]);
另一个例子,看具有不确定系数的传递函数。
用SS.
具有不确定的状态空间矩阵(umat
)。例如:
p =尿尿('P',1);a = [0 3 * p;-p p ^ 2];b = [0;P];c = ins(2);d =零(2,1);usys = ss(a,b,c,d);
另一个例子,看不确定的状态空间模型。
将数字LTI模型与不确定的元素组合使用型号互连命令,例如连接
那系列
, 或者平行
,或模型算术运算符,例如*,+或 - 。例如:
sys = tf(1,[1 1]);p =尿尿('P',1);d = ultidyn('三角洲',[1 1]);usys = p * sys *(1 + 0.1 * d);
另一个例子,看具有不确定动态的系统。
将双数组或数字LTI模型转换为我们
形式使用Usys = USS(SYS)
。在这种情况下,结果我们
模型对象没有不确定的元素。例如:
m = tf(1,[1 1 1]);usys = USS(M);
用Ucover.
创建一个我们
可能频率响应范围的模型包括数字LTI模型阵列中的所有响应。得到的模型表达了动态不确定性的行为范围(ultidyn.
)。
名称值
-不确定模型的标称价值SS.
模型对象不确定模型的标称值,指定为状态空间(SS.
)模型对象。通过将不确定模型的所有不确定控制设计块设置为其标称值来获得状态空间模型。
不确定
-不确定的元素模型的不确定元素,指定为字段是不确定块的名称的结构,其值是控制设计块本身。因此,存储在结构中的值可以是尿尿
那umat
那ultidyn.
或其他不确定的控制设计块。例如,以下命令创建不确定的模型usys.
有两个不确定的参数,P1
和P2.
。
p1 =尿尿('p1',1);p2 =尿尿('p2',3);a = [0 3 * p1;-p1 p1 ^ 2];b = [0;P2];c = ins(2);d =零(2,1);usys = ss(a,b,c,d);
这不确定
财产usys.
是一个有两个字段的结构,P1
和P2.
,其值是相应的尿尿
不确定的参数。
usys.unctainty.
ANS =带有字段的结构:P1:[1×1尿液] P2:[1×1尿液]
您可以单独访问或检查每个不确定参数。例如:
GET(USYS.unctAitey.p1)
名称值:1模式:'PLUSMINUS'范围:[0] PLUSMINUS:[-1 1]百分比:[-100 100]自动缩小:'基本'名称:'p1'
A,B,C,D,E
-状态空间矩阵此属性是只读的。
状态空间矩阵,指定为数字矩阵或不确定矩阵(umat
)。通过修复所有动态的不确定性块来评估状态空间矩阵(乌丁
那ultidyn.
)到他们的标称价值观。
一种
- 州矩阵一种,指定为方形矩阵或umat
有多个行和列,因为有系统状态。
B.
- 输入到状态矩阵B.,指定为矩阵或umat
由于有多行,因为有系统状态,并且有许多列,因为有系统输入。
C
- 状态为输出矩阵C,指定为矩阵或umat
由于有多行,因为有系统输出和有多个列,因为有系统状态。
D.
- 馈通矩阵D.,指定为矩阵或umat
随着系统输出和有多个列的行,在有系统输出和有系统输入时。
E.
-E.隐式(描述符)状态空间模型的矩阵,指定为矩阵或umat
尺寸相同一种
。默认e = []
,意味着状态等式明确。指定隐式状态方程E.DX./DT.=斧头+BU.,将此属性设置为相同尺寸的平方矩阵一种
。看DSS.
有关描述符状态空间模型的详细信息。
attnename.
-州名称{''}
(默认)|字符向量|字符向量的单元格阵列状态名称,指定为其中一个值:
字符矢量 - 用于一阶型号
字符向量的单元格阵列 - 用于具有两个或多个状态的模型
''
- 对于未命名的国家
您可以指定attnename.
使用字符串,如“速度”
,但状态名称作为字符向量存储,'速度'
。
例子:'速度'
例子:{'x1','x2'}
组织
-国家单位{''}
(默认)|字符向量|字符向量的单元格阵列状态单位,指定为以下值之一:
字符矢量 - 用于一阶型号
字符向量的单元格阵列 - 用于具有两个或多个状态的模型
''
- 对于没有指定单位的国家
用组织
为了跟踪每个状态的单位。组织
对系统行为没有影响。
您可以指定组织
使用字符串,如“MPH”
,但状态单位作为字符向量存储,“MPH”
。
例子:“MPH”
例子:{'rpm','rad / s'}
内部
-内部延误内部延迟,指定为标量或向量。对于连续时间模型,内部延迟在由此指定的时间单位中表示时髦
模型对象的属性。对于离散时间模型,内部延迟表示为采样时间的整数倍数TS.
。例如,InternalDelay = 3.
意味着延迟三个采样周期。
您可以修改内部延迟的值。但是,条目的数量内部
无法改变,因为它是模型的结构属性。
例如,当在具有延迟的系统上关闭反馈循环时,或者在串联或并行连接延迟系统时,出现内部延迟。有关内部延迟的更多信息,请参阅关闭反馈循环随时间延迟。
inputdelay.
-投入延迟每个输入的延迟,指定为标量或向量。适用于系统nu.
输入,集合inputdelay.
对A.nu.
-by-1矢量。此向量的每个条目是表示相应输入通道的输入延迟的数值。对于连续时间模型,请在存储在中的时间单位中指定输入延迟时髦
模型对象的属性。对于离散时间模型,请在图案时间的整数倍数中指定输入延迟TS.
。例如,InputDelay = 3.
意味着延迟三个样本时间。
放inputdelay.
对标量值对所有通道应用相同的延迟。
outputdelay.
-延迟产出每个输出的延迟,指定为标量或向量。适用于系统纽约
输出,集合outputdelay.
对A.纽约
-by-1矢量。此传感器的每个条目是表示相应输出通道的输出延迟的数值。对于连续时间模型,请在存储在中存储的时间单位中指定输出延迟时髦
模型对象的属性。对于离散时间模型,在图案时间的整数倍数中指定输出延迟TS.
。例如,outputDelay = 3.
意味着延迟三个样本时间。
放outputdelay.
对标量值对所有通道应用相同的延迟。
时髦
-模型时间单位'秒'
(默认)|'分钟'
|'毫秒'
|......模型时间单位,指定为其中一个值:
'纳秒'
'微秒'
'毫秒'
'秒'
'分钟'
'小时'
'天'
'周'
“月”
'年'
您可以指定时髦
使用字符串,如“小时”
,但时间单位存储为字符向量,'小时'
。
模型属性,如采样时间TS.
那inputdelay.
那outputdelay.
而且其他时间延迟以指定的单位表示时髦
。更改此属性对其他属性没有影响,因此更改整体系统行为。用chgtimeUnit.
在不修改系统行为的情况下在时间单位之间转换。
InputName.
-输入通道的名称{''}
(默认)|字符向量|字符向量的单元格阵列输入通道的名称,指定为以下值之一:
字符矢量 - 用于单输入模型
字符向量单元阵列 - 用于具有两个或多个输入的模型
''
- 对于没有指定名称的输入
您可以使用自动矢量扩展来为多输入模型分配输入名称。例如,如果SYS.
是一个双输入模型,输入:
sys.inputname =.'控制';
输入名称自动展开{'控件(1)';'控件(2)'}
。
您可以使用速记表示法你
参考InputName.
财产。例如,sys.u.
相当于sys.inputname.
。
输入通道名称具有多种用途,包括:
识别模型显示和绘图上的通道
提取MIMO系统子系统
在互连模型时指定连接点
您可以指定InputName.
使用字符串,如“电压”
,但输入名称存储为字符向量,'电压'
。
InpoinUnit.
-输入信号单元{''}
(默认)|字符向量|字符向量的单元格阵列输入信号单元,指定为其中一个值:
字符矢量 - 用于单输入模型
字符向量单元阵列 - 用于具有两个或多个输入的模型
''
- 对于没有指定单位的输入
用InpoinUnit.
为了跟踪单位,每个输入信号都表示在。InpoinUnit.
对系统行为没有影响。
您可以指定InpoinUnit.
使用字符串,如“电压”
,但输入单元作为字符向量存储,'电压'
。
例子:'电压'
例子:{'电压','rpm'}
InputGroup.
-输入通道组输入通道组,指定为字段是组名的结构,并且值是属于相应组的输入通道的索引。当你使用时InputGroup.
要将MIMO系统的输入通道分配给组,您可以在需要访问它时按名称引用每个组。例如,假设您有五个输入模型SYS.
,前三个输入是控制输入,其余两个输入表示噪声。分配控制和噪声输入SYS.
分开组。
sys.inputgroup.controls = [1:3];sys.inputgroup.noise = [4 5];
使用组名称将子系统从控制输入中提取到所有输出。
SYS(:,'控制')
例子:struct('控制',[1:3],'噪声',[4 5])
outputName.
-输出通道的名称{''}
(默认)|字符向量|字符向量的单元格阵列输出通道的名称,指定为以下值之一:
字符矢量 - 用于单输出模型
字符向量单元阵列 - 用于具有两个或多个输出的模型
''
- 没有指定名称的输出
您可以使用自动矢量扩展为多输出模型分配输出名称。例如,如果SYS.
是一个双输出模型,输入:
sys.outputname =.'测量';
输出名称自动展开{'测量(1)';'测量(2)'}
。
您可以使用速记表示法y
参考outputName.
财产。例如,sys.y.
相当于sys.outputname.
。
输出通道名称有几种用途,包括:
识别模型显示和绘图上的通道
提取MIMO系统子系统
在互连模型时指定连接点
您可以指定outputName.
使用字符串,如“rpm”
,但输出名称被存储为字符向量,'rpm'
。
OutputUnit.
-输出信号{''}
(默认)|字符向量|字符向量的单元格阵列输出信号单元,指定为其中一个值:
字符矢量 - 用于单输出模型
字符向量单元阵列 - 用于具有两个或多个输出的模型
''
- 没有指定单位的输出
用OutputUnit.
要跟踪单位,每个输出信号都表示在。OutputUnit.
对系统行为没有影响。
您可以指定OutputUnit.
使用字符串,如“电压”
,但输出单元被存储为字符向量,'电压'
。
例子:'电压'
例子:{'电压','rpm'}
产量组
-输出通道组输出通道组指定为字段是组名的结构,并且值是属于相应组的输出通道的索引。当你使用时产量组
要将MIMO系统的输出通道分配给组,您可以在需要访问它时按名称引用每个组。例如,假设您有一个四输出模型SYS.
,第二输出是温度,其余的是状态测量。将这些输出分配给单独的组。
sys.outputgroup.temperature = [2];sys.inputgroup.measurement = [1 3 4];
使用组名称从所有输入中提取子系统到测量输出。
SYS('测量',:)
例子:结构('温度',[2],'测量',[1 3 4])
笔记
-关于模型的文本注意事项[0×1字符串]
(默认)|细绳|字符向量的细胞阵列关于模型的文本注释,存储为字符串或字符向量的单元格数组。属性存储您提供的这两种数据类型的任何一个。例如,假设SYS1.
和SYS2.
是动态系统模型,并设置了他们的笔记
分别为字符串和字符向量的属性。
sys1.notes =.“sys1有一个字符串。”;sys2.notes ='sys2有一个字符矢量。';sys1.notes sys2.notes.
ans =“sys1有一个字符串。”ans ='sys2有一个字符矢量。
用户数据
-与模型相关的数据[]
(默认)|任何数据类型您要与模型关联和存储的任何类型的数据,指定为任何MATLAB®数据类型。
名称
-型号名称''
(默认)|字符向量模型名称,存储为字符向量。您可以指定名称
使用字符串,如“dcmotor”
,但输出单元被存储为字符向量,'dcmotor'
。
例子:'system_1'
SamplingGrid.
-用于模型阵列的采样网格用于模型阵列的采样网格,指定为结构。对于通过采样一个或多个独立变量导出的模型阵列,该属性会跟踪与数组中的每个模型关联的变量值。显示或绘制模型阵列时出现此信息。使用此信息将跟踪结果追溯到独立变量。
将数据结构的字段名称设置为采样变量的名称。将字段值设置为与数组中的每个模型关联的采样变量值。所有采样变量都应为数字和标量值,并且所有采样值阵列应匹配模型阵列的尺寸。
例如,假设您创建一个11×1数组的线性模型,SYSARR.
,通过在时间拍摄线性时变系统的快照t = 0:10
。以下代码使用线性模型存储时间样本。
sysarr.samplinggrid = struct('时间',0:10)
同样,假设您创建了一个6×9的型号数组,m
,通过独立抽样两个变量,Zeta.
和W.
。以下代码附加(Zeta,W)
价值观m
。
[zeta,w] = ndgrid(的<6值>,<9值的w>)m.amplinggrid = struct('Zeta',Zeta,'W',w)
当你展示时m
,阵列中的每个条目都包括相应的Zeta.
和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 ...
用于通过线性化模拟链接生成的模型阵列万博1manbetx®软件填充多个参数值或操作点的模型SamplingGrid.
自动使用与数组中的每个条目对应的变量值。例如,万博1manbetxSimulink Control Design™命令线性化
(万博1manbetxSimulink Control Design)和SLINESERIZER.
(万博1manbetxSimulink Control Design)填充SamplingGrid.
这样。
大多数工作在数字LTI模型上的功能也适用于我们
楷模。这些包括诸如的模型互连功能连接
和反馈
,以及线性分析功能,如b
和steiinfo.
。一些生成图的功能,例如b
和步
,绘制不确定模型的随机样本,为您提供一种不确定动态的分布感。但是,当您使用这些命令返回数据时,它们仅在系统的标称值上运行。
此外,您还可以使用诸如此类的功能罗斯塔布
和Wcgain.
对所代表的不确定系统进行鲁棒性和最坏情况分析我们
楷模。您还可以使用调整功能,如Systune.
用于强大的控制器调整。
以下列表包含您可以使用的功能的代表子集我们
楷模。
步 |
动态系统的步骤响应图;步骤响应数据 |
b |
频率响应或幅度和相位数据的Bode图 |
Sigma. |
动态系统的奇异值图 |
利润 |
获得裕度,相位保证金和交叉频率 |
diskmargin. |
基于磁盘的反馈循环稳定性边缘 |
usample. |
生成不确定或广义模型的随机样本 |
罗斯塔布 |
不确定系统的稳定稳定性 |
抢劫 |
不确定系统的鲁棒性能 |
Wcgain. |
不确定系统的最坏情况 |
wcsigmaplot. |
绘制不确定系统的最坏情况 |
使用不确定的自然频率和阻尼系数创建二阶传递函数。
W0 =尿尿('w0',10);Zeta =尿尿('Zeta',0.7,'范围',[0.6,0.8]);USYS = TF(W0 ^ 2,[1 2 * Zeta * W0 W0 ^ 2])
USYS =不确定的连续时间 - 空间模型,具有1个输出,1个输入,2个状态。模型不确定性由以下块组成:W0:不确定的真实,标称= 10,可变性= [-1,1],5出现Zeta:不确定的真实,标称= 0.7,范围= [0.6,0.8],1次出现“usys.nominalvalue“看名义值,”get(usys)“查看所有属性,以及”usys.unctia绘图“与不确定元素互动。
usys.
是一个不确定的状态空间(我们
)具有两个控制设计块的模型。不确定的真实参数W0.
在传递函数中发生五次,在分子中两次,在分母中三次。要减少出现的次数,可以通过划分数值和分母来重写传输功能W0 ^ 2.
。
USYS = TF(1,[1 / W0 ^ 2 2 * Zeta / W0 1])
USYS =不确定的连续时间 - 空间模型,具有1个输出,1个输入,2个状态。模型不确定性由以下块组成:W0:不确定的真实,标称= 10,可变性= [-1,1],3个出现Zeta:不确定的真实,标称= 0.7,范围= [0.6,0.8],1个出现类型“usys.nominalvalue“看名义值,”get(usys)“查看所有属性,以及”usys.unctia绘图“与不确定元素互动。
在新的配方中,只有三个不确定参数出现W0.
。减少模型中控制设计块的出现次数可以提高涉及模型的计算的性能。
检查系统的步骤响应,以获得不确定性所代表的响应范围的感觉。
步(usys)
当您使用线性分析命令时步
和b
要创建不确定系统的响应句,它们会自动绘制系统的随机样本。虽然这些样本给您一种落在不确定性内的响应范围的感觉,但它们不一定包括最坏情况的反应。分析不确定系统的最坏情况响应,使用Wcgain.
或者wcsigmaplot.
。
要创建不确定的状态空间模型,请先使用控制设计块来创建不确定的元素。然后,使用元素指定系统的状态空间矩阵。
例如,创建三个不确定的真实参数并从中构建状态空间矩阵。
p1 =尿尿('p1'10,'百分比',50);p2 =尿尿('p2',3,'正负',[ - 。5 1.2]);p3 =尿尿('p3',0);a = [-p1 p2;0 -p1];b = [-p2;P2 + P3];c = [1 0;1 1-p3];d = [0;0];
具有不确定参数的矩阵,一种
那B.
, 和C
,是不确定的矩阵(umat
)对象。用它们作为输入SS.
导致2输出,1输入,2状态不确定系统。
sys = ss(a,b,c,d)
SYS =具有2个输出的不确定连续时间状态空间模型,1个输入,2个状态。模型不确定性由以下块组成:P1:不确定的真实,标称= 10,可变性= [-50,50]%,2个出现p2:不确定的真实,标称= 3,变化= [-0.5,1.2],2个出现p3:不确定的真实,标称= 0,变异性= [-1,1],2次出现“sys.nominalvalue”看标称值,“get(sys)”查看所有属性,以及“sys.uncteraintay”到与不确定的元素互动。
显示屏表明系统包括三个不确定参数。
创建一个不确定的系统,包括具有频率相关的不确定性的标称模型。您可以使用此类不确定性ultidyn.
以及代表不确定性的频率分布的加权函数。假设在低频下,低于3 rad / s,模型可以从其标称值变化高达40%。大约3 rad / s,百分比变异开始增加。不确定性在15 rad / s的15%上穿过100%,达到约1000 rad / s的2000%。使用适当的频率配置文件创建传输函数,Wind.
那用作加权函数,可通过频率调制不确定性的量。
wenc = makeweight(0.40,15,3);Bodemag(Wenc)
接下来,创建表示系统标称值的传递函数。对于此示例,请使用具有单个杆的传递函数S.= -60 rad / s。然后,创建一个ultidyn.
模型表示1输入,1输出不确定动态,并将加权不确定性添加到标称传递函数。
sysnom = tf(1,[1/60 1]);Unc = Ultidyn('UNC',[1 1],'samplestationim',3);%不确定动态的样本有三个州usys = sysnom *(1 + wur * Unc);%SETS USYS的属性usys.InputName =.'U';usys.outputname =.'fs';
检查USYS的随机样本,看看不确定动态的效果。
BODE(USYS,USYS.NOMINAL)
我们
模型,如所有模型对象,包括存储动态和模型元数据的属性。查看不确定的状态空间模型的属性。
p1 =尿尿('p1'10,'百分比',50);p2 =尿尿('p2',3,'正负',[ - 。5 1.2]);p3 =尿尿('p3',0);a = [-p1 p2;0 -p1];b = [-p2;P2 + P3];c = [1 0;1 1-p3];d = [0;0];sys = ss(a,b,c,d);%创建USS模型得到(SYS)
名称值:[2x1 ss]不确定性:[1x1 struct] a:[2x1 umat] c:[2x2 umat] d:[2x1 double] e:[] statename:{2x1 cell} stateUnit:{2x1单元格:[0x1 double]输入:{2x1 Cell} OutputGroup:[1x1 struct]注意:[0x1字符串] userdata:[]名称:''samplinggrid:[1x1 struct]
大多数属性都表现得类似于他们的行为SS.
模型对象。这名称值
属性本身就是SS.
模型对象。因此,您可以根据任何状态空间模型分析标称值。例如,计算标称系统的磁极和步进响应。
杆(sys.nominalvalue)
ans =.2×1-10-10
步骤(sys.nominalvalue)
与不确定的矩阵一样(umat
), 这不确定
属性是一个包含不确定元素的结构。您可以使用此属性直接访问不确定的元素。例如,检查范围
不确定的元素命名P2.
之内SYS.
。
sys.uncertainty.p2.range.
ans =.1×22.5000 4.2000
改变不确定性范围P2.
之内SYS.
。
sys.uncterainty.p2.range = [2 4];
此命令仅更改名为的参数范围P2.
在SYS.
。它不会改变变量P2.
在Matlab工作区。
p2.range.
ans =.1×22.5000 4.2000
您单击了与此MATLAB命令对应的链接:
在MATLAB命令窗口中输入它来运行命令。Web浏览器不支持MATLAB命令。万博1manbetx
您还可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。