状态空间模型
状态空间模型是物理系统作为一阶微分方程相关的输入、输出和状态变量的集合的数学表示。状态变量定义输出变量的值。的SS.
模型对象可以表示连续时间或离散时间下的SISO或MIMO状态空间模型。
在连续时间下,状态空间模型为:
在这里,x
,u
和y
分别表示状态输入和输出,而一个
,B
,C
和D
是状态空间矩阵。的SS.
对象表示MATLAB中的状态空间模型®储存一个
,B
,C
和D
以及其他信息,如样本时间、名称和特定于输入和输出的延迟。
您可以通过直接指定状态、输入和输出矩阵,或者通过转换另一种类型的模型(例如传递函数模型)来创建状态空间模型对象TF.
)变为状态空间形式。有关更多信息,请参见状态空间模型.你可以用SS.
模型对象:
进行线性分析
表示一个线性时不变(LTI)模型来执行控制设计
与其他LTI模型结合,表示更复杂的系统
一个
- - - - - -状态矩阵Nx
——- - - - - -Nx
矩阵状态矩阵,指定为Nx
——- - - - - -Nx
矩阵,Nx
是状态数。此输入设置属性的值一个.
B
- - - - - -Input-to-state矩阵Nx
——- - - - - -ν
矩阵输入状态矩阵,指定为Nx
——- - - - - -ν
矩阵,Nx
状态数是和吗ν
是输入的数量。此输入设置属性的值B.
C
- - - - - -状态为输出矩阵纽约
——- - - - - -Nx
矩阵状态-输出矩阵,指定为纽约
——- - - - - -Nx
矩阵,Nx
状态数是和吗纽约
是输出的数量。此输入设置属性的值C.
D
- - - - - -直通的矩阵纽约
——- - - - - -ν
矩阵馈通矩阵,指定为纽约
——- - - - - -ν
矩阵,纽约
输出的数量是和吗ν
是输入的数量。此输入设置属性的值D.
TS.
- - - - - -采样时间样本时间,指定为标量。有关更多信息,请参见Ts财产。
LTISYS.
- - - - - -将动态系统转换为状态空间形式动态系统转换为状态空间形式,指定为SISO或MIMO动态系统模型或一系列动态系统模型。你可以转换的动态系统包括:
组件
- - - - - -被识别模型的组成部分“测量”
(默认)|“噪音”
|“增强”
要转换的已标识模型的组件,指定为以下组件之一:
“测量”
-转换的测量分量SYS.
.
“噪音”
-转换图像的噪波分量SYS.
“增强”
-转换的测量和噪声成分SYS.
.
组件
只适用于什么时候SYS.
是已识别的LTI模型。
有关已识别的LTI模型及其测量和噪声成分的更多信息,请参见确定了LTI模型.
ssSys
- - - - - -将动态系统模型转换为最小实现或显式形式SS.
模型对象要转换为最小实现或显式形式的动态系统模型,指定为SS.
模型对象。
SYS.
-输出系统模型SS.
模型对象|一族
模型对象|号航空母舰
模型对象输出系统模型,返回为:
一个整数(SS.
)模型对象,当输入一个
,B
,C
和D
是数值矩阵,或者从另一个模型对象类型转换时。
广义状态空间模型(一族
对象,当一个或多个矩阵时一个
,B
,C
和D
包括可调参数,例如realp
参数或广义矩阵(根马
)。有关示例,请参阅创建带有固定和可调参数的状态空间模型.
不确定状态空间模型(号航空母舰
)对象,当一个或多个输入时一个
,B
,C
和D
包括不确定的矩阵。使用不确定的模型需要强大的控制工具箱软件。
一个
- - - - - -状态矩阵Nx
——- - - - - -Nx
矩阵状态矩阵,指定为Nx
——- - - - - -Nx
矩阵在哪里Nx
是状态数。根据所需的状态空间模型实现,可以在许多方面表示状态矩阵,例如:
模型规范形式
同伴规范形式
可观察到的规范形式
可控标准型
有关更多信息,请参见状态空间实现规范化.
B
- - - - - -Input-to-state矩阵Nx
——- - - - - -ν
矩阵输入状态矩阵,指定为Nx
——- - - - - -ν
矩阵在哪里Nx
状态数是和吗ν
是输入的数量。
C
- - - - - -状态为输出矩阵纽约
——- - - - - -Nx
矩阵状态-输出矩阵,指定为纽约
——- - - - - -Nx
矩阵在哪里Nx
状态数是和吗纽约
是输出的数量。
D
- - - - - -直通的矩阵纽约
——- - - - - -ν
矩阵馈通矩阵,指定为纽约
——- - - - - -ν
矩阵在哪里纽约
输出的数量是和吗ν
是输入的数量。D
也称为静态增益矩阵,表示稳态条件下输出与输入的比值。
E
- - - - - -隐式状态空间模型的矩阵Nx
——- - - - - -Nx
矩阵用于隐式或描述状态空间模型的矩阵,指定为Nx
——- - - - - -Nx
矩阵。E
默认为空,表示状态方程是显式的。指定一个隐式状态方程Edx/dt=斧头+部,将此属性设置为与之大小相同的方阵一个
.看到DSS.
有关创建描述符状态空间模型的更多信息。
按比例缩小的
- - - - - -指示是否启用或禁用伸缩的逻辑值0
(默认)|1
指示是否启用或禁用缩放的逻辑值,指定为0
或者1
.
当按比例缩小的
被设置为0
(禁用),然后大多数数值算法作用于状态空间模型SYS.
自动缩放状态向量,以提高数值精度。你可以通过设置来阻止这种自动缩放按比例缩小的
到1
(使)。
有关缩放的更多信息,请参见预分频
.
州名
- - - - - -州名称''
(默认)|特征向量|字符向量的单元格数组州名,指定为下列之一:
字符向量——例如,对于一阶模型,“速度”
.
字符向量的单元格阵列 - 用于具有两个或多个状态的模型
州名
是空的''
默认为所有状态。
StateUnit
- - - - - -国家单位''
(默认)|特征向量|字符向量的单元格数组国家单位,指定为下列单位之一:
字符向量——例如,对于一阶模型,'多发性硬化症'
字符向量的单元格阵列 - 用于具有两个或多个状态的模型
使用StateUnit
来记录每个状态的单位。StateUnit
对系统行为没有影响。StateUnit
是空的''
默认为所有状态。
InternalDelay
- - - - - -模型中的内部延迟模型中的内部延迟,指定为向量。例如,当关闭带有延迟的系统的反馈回路时,或串联或并联延迟的系统时,会出现内部延迟。有关内部延迟的更多信息,请参见带时滞的闭环反馈.
对于连续时间模型,内部延迟用指定的时间单位表示时髦
模型的属性。对于离散时间模型,内部延迟被表示为样本时间的整数倍Ts
.例如,InternalDelay = 3
表示三个采样周期的延迟。
可以使用属性修改内部延迟的值InternalDelay
.然而,条目的数量sys。我ntern一个lDelay
无法改变,因为它是模型的结构属性。
InputDelay
- - - - - -输入延迟0
(默认)|标量子|ν
1的向量每个输入通道的输入延迟,指定为如下之一:
标量 - 指定SISO系统的输入延迟或多输入系统所有输入的相同延迟。
ν
-by-1向量-为多输入系统的输入指定单独的输入延迟ν
是输入的数量。
对于连续时间系统,指定所指定的时间单位的输入延迟时髦
财产。对于离散时间系统,指定输入延迟为采样时间的整数倍,Ts
.
有关更多信息,请参见线性系统的时滞.
OutputDelay
- - - - - -输出延迟0
(默认)|标量子|纽约
1的向量每个输出通道的输出延迟,指定为下列之一:
标量-指定SISO系统的输出延迟或多输出系统的所有输出的相同延迟。
纽约
-by-1向量-为多输出系统的输出指定单独的输出延迟,其中纽约
是输出的数量。
对于连续时间系统,请在指定的时间单位中指定输出延迟时髦
财产。对于离散时间系统,以采样时间的整数倍指定输出延迟,Ts
.
有关更多信息,请参见线性系统的时滞.
时髦
- - - - - -时间变量的单位“秒”
(默认)|“纳秒”
|微秒的
|“毫秒”
|'分钟'
|'小时'
|“天”
|“周”
|“月”
|“年”
|...时间变量单位,指定为以下之一:
“纳秒”
微秒的
“毫秒”
“秒”
'分钟'
'小时'
“天”
“周”
“月”
“年”
改变时髦
对其他属性没有影响,但是改变了整个系统的行为。使用chgTimeUnit
在不改变系统行为的情况下在时间单位之间进行转换。
InputName
- - - - - -输入通道名称''
(默认)|特征向量|字符向量的单元格数组输入通道名称,指定为下列之一:
字符向量,用于单输入模型。
字符向量的单元数组,用于多输入模型。
''
,没有为任何输入通道指定名称。
或者,您可以使用自动矢量扩展为多输入模型分配输入名称。例如,如果SYS.
是一个双输入模型,输入:
sys。我nputName =“控制”;
输入名称自动展开为{“控制(1)”,“控制”(2)}
.
你可以用速记法u
参考InputName
财产。例如,sys.u
相当于sys。我nputName
.
使用InputName
致:
在模型显示和绘图中识别通道。
提取MIMO系统的子系统。
在连接模型时指定连接点。
InputUnit
- - - - - -输入通道单元''
(默认)|特征向量|字符向量的单元格数组输入通道单位,指定为下列单位之一:
字符向量,用于单输入模型。
字符向量的单元数组,用于多输入模型。
''
,没有为任何输入通道指定单位。
使用InputUnit
指定输入信号单位。InputUnit
对系统行为没有影响。
InputGroup
- - - - - -输入通道组输入通道组,指定为结构。使用InputGroup
将MIMO系统的输入通道分组,并按名称引用每一组。的字段名InputGroup
是组名,字段值是每个组的输入通道。例如:
sys.InputGroup.controls = [1 2];sys.InputGroup.noise = [3 5];
创建名为的输入组控制
和噪音
包括输入通道1
和2
,3.
和5
,分别。然后,您可以从中提取子系统控制
使用以下输出的输入:
sys (:,“控制”)
默认情况下,InputGroup
是一个没有字段的结构。
输出名
- - - - - -输出通道名称''
(默认)|特征向量|字符向量的单元格数组输出通道名称,指定为以下任意一个:
字符向量,用于单输出模型。
字符向量的单元数组,用于多输出模型。
''
,没有为任何输出通道指定名称。
或者,您可以使用自动向量展开为多输出模型分配输出名称。例如,如果SYS.
是一个双输出模型,输入:
sys。OutputName =“测量”;
输出名称自动展开为{'measurements(1)';'measurements(2)}
.
您也可以使用速记符号y
参考输出名
财产。例如,sys.y
相当于sys。输出名
.
使用输出名
致:
在模型显示和绘图中识别通道。
提取MIMO系统的子系统。
在连接模型时指定连接点。
OutputUnit
- - - - - -输出通道单元''
(默认)|特征向量|字符向量的单元格数组输出通道单位,指定为以下之一:
字符向量,用于单输出模型。
字符向量的单元数组,用于多输出模型。
''
,没有为任何输出通道指定单位。
使用OutputUnit
指定输出信号单元。OutputUnit
对系统行为没有影响。
OutputGroup
- - - - - -输出通道组输出通道组,指定为结构。使用OutputGroup
要将MIMO Systems的输出通道分配成组,请按名称引用每个组。的字段名OutputGroup
是组名,字段值是每个组的输出通道。例如:
sys.OutputGroup.temperature = [1];sys.InputGroup.measurement = [3 5];
创建名为的输出组温度
和测量
包括输出通道1
,3.
和5
,分别。然后可以从所有的输入中提取子系统测量
输出使用:
系统(“测量”:)
默认情况下,OutputGroup
是一个没有字段的结构。
姓名
- - - - - -系统名称''
(默认)|特征向量系统名,指定为字符向量。例如,“system_1”
.
笔记
- - - - - -用户指定的文本{}
(默认)|特征向量|字符向量的单元格数组要与系统关联的用户指定的文本,指定为字符向量或字符向量的单元格数组。例如,系统分配的
.
用户数据
- - - - - -用户指定的数据[]
(默认)|任何MATLAB数据类型要与系统关联的用户指定的数据,指定为任何MATLAB数据类型。
SamplingGrid.
- - - - - -模型阵列的采样网格模型阵列的采样网格,指定为结构阵列。
使用SamplingGrid.
跟踪与模型数组中每个模型相关联的变量值,包括已识别的线性时不变(IDLTI)模型数组。
将结构的字段名设置为抽样变量的名称。将字段值设置为与数组中每个模型相关联的采样变量值。所有抽样变量必须是数值标量,所有抽样值的数组必须与模型数组的维数相匹配。
例如,您可以创建一个11×1阵列的线性模型,sysarr
,通过不时拍摄线性时变系统的快照t = 0:10
.下面的代码使用线性模型存储时间样本。
sysarr。SamplingGrid =结构('时间'0:10)
类似地,你可以创建一个6乘9的模型数组,米
,通过对两个变量独立抽样,Zeta.
和w
. 下面的代码映射了(ζ,w)
值米
.
[zeta,w]=ndgrid(<6个zeta>值,<9个w>值)M.SamplingGrid=struct('Zeta',Zeta,“w”w)
当您显示米
,数组中的每个条目都包含相应的Zeta.
和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中线性化生成的模型阵列金宝app®模型在多个参数值或操作点,软件填充SamplingGrid.
自动使用数组中每个条目对应的变量值。例如,金宝app仿真软件控制设计™命令线性化
和SLINESERIZER.
居住于SamplingGrid.
自动。
默认情况下,SamplingGrid.
是一个没有字段的结构。
创建由以下状态空间矩阵定义的SISO状态空间模型:
指定A, B, C和D矩阵,并创建状态空间模型。
一个= [-1.5,2;1,0];B = (0.5; 0);C = [0, 1];D = 0;sys = ss (A, B, C, D)
(1) C (2) y (1) 0 (1) D (1) y (1) 0 (1)
创建采样时间为0.25秒的状态空间模型和以下状态空间矩阵:
指定状态空间矩阵。
A = [0 1;- 1];B = [0; 3);C = [0 1];D = 0;
指定示例时间。
TS = 0.25;
创建状态空间模型。
sys = ss (A, B, C, D, Ts);
对于这个例子,考虑用惯性张量旋转的立方体J
还有一个阻尼力F
0.2级。系统的输入是驱动力矩,而角速度是输出。立方体的状态空间矩阵为:
指定一个
,B
,C
和D
矩阵,建立连续时间状态空间模型。
J = [8 -3 -3;-3 8 -3;-3 -3 8];f = 0.2 *眼睛(3);a = -j \ f;b = inv(j);c =眼睛(3);D = 0;sys = ss (A, B, C, D)
sys = = (x1, x2) x3 x1 x2 -0.04545 -0.02727 -0.02727 -0.02727 -0.04545 -0.02727 x3 -0.02727 -0.02727 -0.04545 B = u1, u2 u3 x1 x2 0.2273 0.1364 0.1364 0.1364 0.2273 0.1364 x3 0.1364 0.1364 0.2273 C = (x1, x2) x3 y1 1 0 0 y2 0 1 0 y3 0 0 1 D = u1, u2 u3 y1 0 0 0 y2 0 0 0 0 0 0 3日元连续时间状态空间模型。
SYS.
是MIMO,因为系统包含3个输入和3个输出,从矩阵观察C
和D
.有关MIMO状态空间模型的更多信息,请参见天线系统状态空间模型.
使用以下离散时间,多输入多输出状态矩阵创建状态空间模型,其中采样时间ts=0.2
秒:
指定状态空间矩阵并创建离散时间MIMO状态空间模型。
A=[-7,0;0,-10];B=[5,0;0,2];C=[1,-4;-4,0.5];D=[0,-2;2,0];ts=0.2;sys=ss(A、B、C、D、ts)
C = x1 x2 y1 1 -4 y2 -4 0.5 D = u1 u2 y1 0 -2 y2 2 0采样时间:0.2秒
创建状态空间矩阵并指定采样时间。
A = [0 1;- 1];B = [0; 3);C = [0 1];D = 0;t = 0.05;
创建状态空间模型,使用名称-值对指定状态和输入名称。
sys = ss (A, B, C, D, Ts,“StateName”,{“位置”“速度”},...“InputName”,“武力”);
状态和输入名称的数量必须与的维度一致一个
,B
,C
,D
.
在处理MIMO系统的响应图时,为输入和输出命名可能很有用。
步骤(系统)
注意输入名力量
在阶跃响应图的标题中。
对于本例,使用从另一个状态空间模型继承的相同时间和输入单元属性创建状态空间模型。考虑以下状态空间模型:
首先,创建一个状态空间模型sys1
与之时髦
和InputUnit
属性设置为'分钟
'.
A1 = [-1.5, 2; 1,0];B1 = (0.5; 0);C1 = [0, 1];D1 = 5;sys1 = ss (A1, B1, C1, D1,“TimeUnit”,'分钟',“InputUnit”,'分钟');
验证时间和输入单元属性sys1
设置为'分钟
'.
propValues1 = [sys1.TimeUnit sys1.InputUnit]
propValues1 =1x2电池{“分钟”}{“分钟”}
使用继承的属性创建第二个状态空间模型sys1
.
A2 = [7,-1; 0.2];b2 = [0.85; 2];C2 = [10,14];d2 = 2;SYS2 = SS(A2,B2,C2,D2,SYS1);
验证时间和输入单位sys2
遗传自sys1
.
propvalues2 = [sys2.timeUnit,sys2.inputunit]
propValues2 =1x2电池{“分钟”}{“分钟”}
在本例中,您将创建一个静态增益MIMO状态空间模型。
考虑以下两输入,双输出静态增益矩阵米
:
指定增益矩阵并创建静态增益状态空间模型。
D =[2、4;3、5];sys1 = ss (D)
sys1 = D = u1 u2 y1 2 4 y2 3 5静态增益。
计算以下传递函数的状态空间模型:
创建传递函数模型。
H = [tf([1 1],[1 3 3 2]);Tf ([1 0 3],[1 1 1])];
将此模型转换为状态空间模型。
sys = ss (H);
检查状态空间模型的大小。
大小(系统)
状态空间模型,有2个输出,1个输入,5个状态。
状态数等于中SISO条目的累积顺序H(年代).
获得最小的实现H(年代), 进入
sys = ss (H,“最低”);大小(系统)
状态空间模型,有2个输出,1个输入,3个状态。
生成的模型有三个顺序,这是需要表示的状态的最小数量H(年代).要查看这些状态的数量,请重构H(年代)为一阶系统和二阶系统的乘积。
对于该示例,将识别的多项式模型的测量和噪声分量提取为两个单独的状态空间模型。
加载Box-Jenkins多项式模型LTISYS.
在identifiedModel.mat
.
加载(“已识别的模型mat”,“ltiSys”);
LTISYS.
是形式的识别的离散时间模型:
,在那里
表示测量的组件和
噪声组件。
提取测量和噪声分量作为状态空间模型。
sysMeas = ss (ltiSys,“测量”)
sysMeas = A = x1 x2 x1 1.575 -0.6115 x2 1 0 B = u1 x1 x1 0.5 x2 0 C = x1 x2 y1 -0.2851 0.3916 D = u1 y1 0输入延迟(采样周期):2采样时间:0.04秒
sysnoise = ss(ltisys,“噪音”)
结合sysNoise = = (x1, x2) x3 x1 1.026 -0.26 0.3899 1 x2 0 0 x3 0.5 0 0 B = 0.25 v@y1 x1 x2 0 x3 0 x1 C = x3日元0.319 -0.04738 0.07106 0.04556 D = v@y1 y1输入组:名字通道噪声1样品时间:0.04秒离散时间状态空间模型。
被测分量可以作为被测对象的模型,而噪声分量可以作为控制系统设计的扰动模型。
创建描述符状态空间模型(E≠我).
A = [2 -4;4 2];b = [1;0.5);C = [-0.5, -2];d = [1];E = [10 0;3 0.5);sysd = dss (a, b, c, d, e);
计算系统的显式实现(E=我).
syse=ss(sysd,'显式')
syse=A=x1x2x12-4x220-20b=u1x1-1x2-5c=x1x2y1-0.5-2d=u1y1-1连续时间状态空间模型。
确认描述符和显式实现具有等效动力学。
bodeplot (sysd syse,“g——”)
这个例子展示了如何创建状态空间一族
模型具有固定和可调参数。
在哪里一个和b是可调参数,其初始值是-1
和3.
,分别。
使用realp
.
一个= realp ('一种',-1);b = REAMP('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;
使用SS.
以创建状态空间模型。
sys = ss (A, B, C, D)
sys=具有1个输出、1个输入、2个状态和以下块的广义连续时间-状态-空间模型:a:标量参数,2次出现。b:标量参数,出现2次。键入“ss(sys)”查看当前值,键入“get(sys)”查看所有属性,键入“sys.Blocks”与块交互。
SYS.
为广义LTI模型(一族
)和可调参数一个
和b
.
对于此示例,请考虑由以下状态空间矩阵定义的SISO状态空间模型:
考虑到0.5秒的输入延迟和2.5秒的输出延迟,创建状态空间模型对象以表示A,B,C和D矩阵。
一个= [-1.5,2;1,0];B = (0.5; 0);C = [0, 1];D = 0;sys = ss (A, B, C, D,'inputdelay',0.5,“OutputDelay”, 2.5)
sys = A = x1 x2 x1 -1.5 -2 x2 1 0 B = u1 x1 x1 0.5 x2 0 C = x1 x2 y1 0 1 D = u1 y1 0输入延迟(秒):0.5输出延迟(秒):2.5连续时间状态空间模型。
你也可以用the得到
命令显示MATLAB对象的所有属性。
(系统)
[2 x2双]B: [2 x1双]C: [0 1] D: 0 E:[]扩展:0 StateName: {2 x1细胞}StateUnit: {2 x1细胞}InternalDelay: [0 x1双]InputDelay: 0.5000 OutputDelay: 2.5000 Ts: 0 TimeUnit:“秒”InputName: {"} InputUnit: {"} InputGroup: [1 x1 struct] OutputName: {"} OutputUnit: {"} OutputGroup: [1 x1 struct]指出:[0 x1字符串]用户数据:[]名称:“SamplingGrid: [1x1 struct]”
有关为LTI模型指定时间延迟的详细信息,请参见指定时间延迟.
对于这个例子,考虑一个状态空间系统对象,它表示以下状态矩阵:
创建一个状态空间对象SYS.
使用SS.
命令。
A=[-1.2,-1.6,0;1,0,0;0,1,0];B=[1;0;0];C=[0,0.5,1.3];D=0;sys=ss(A,B,C,D);
然后,计算一个单位负增益的闭环状态空间模型,求出闭环状态空间系统对象的极点sysfeedback.
.
sysFeedback =反馈(sys, 1);P =杆(sysFeedback)
P =3×1复杂-0.2305 - 1.3062i -0.7389 + 0.00000 i
单位增益的反馈回路是稳定的,因为所有极点都有负的实部。检查闭环极点提供了稳定性的二元评估。在实践中,了解稳定性的健壮性(或脆弱性)更有用。鲁棒性的一个指标是在失去稳定性之前环路增益可以改变多少。您可以使用根轨迹图来估计的范围k
环路稳定的值。
rlocus(系统)
环路增益的变化只是鲁棒稳定性的一个方面。一般来说,不完善的对象建模意味着增益和相位都不准确。由于建模误差在增益交叉频率(开环增益为0dB的频率)附近具有最有害的影响,因此在此频率下可容忍的相位变化量也很重要。
您可以如下方式在波德图上显示增益和相位裕度。
BODE(SYS)网格
有关更详细的示例,请参见评估增益和相位裕度.
对于此示例,为由以下矩阵表示的系统表示的2-DOF PID控制器,其目标带宽为0.75 rad / s:
创建一个状态空间对象SYS.
使用SS.
命令。
一个= (-0.5,-0.1,1,0);B = (1, 0);C = [0, 1];D = 0;sys = ss (A, B, C, D)
(1) C (1) y (1) 0 (1) D (1) y (1) 0 (1)
使用目标带宽,使用皮顿
生成一个二自由度控制器。
wc = 0.75;C2 = pidtune (sys,“PID2”wc)
C2 = 1 u = Kp (b*r-y) + Ki——(r-y) + Kd*s (c*r-y) s,具有Kp = 0.513, Ki = 0.0975, Kd = 0.577, b = 0.344, c = 0并联形式的连续二自由度PID控制器。
使用类型“PID2”
原因皮顿
要生成2-DOF控制器,表示为apid2
对象。显示器证实了这个结果。显示屏上也显示了这一点皮顿
调优所有控制器系数,包括设定值权重b
和c
,平衡性能和鲁棒性。
有关实时编辑器中的交互式PID调优,请参阅调整PID控制器实时编辑任务。此任务允许您交互方式设计PID控制器,并自动生成Live脚本的MATLAB代码。
对于独立应用程序中的交互式PID调整,使用PID调谐器.看到用于快速参考跟踪的PID控制器设计以使用应用程序设计控制器为例。
考虑一个状态空间工厂G
有五个输入,四个输出和一个状态空间反馈控制器K
有三个输入和两个输出。1, 3,和4的产量G
必须连接控制器K
输入,控制器输出到设备的输入4和2。
对于这个例子,考虑两个连续时间状态空间模型。G
和K
由以下一组矩阵表示:
AG) = [3, 0.4, 0.3, -0.5, -2.8, -0.8, 0.2, 0.8, 3];BG = [0.4, 0, 0.3, 0.2, 0; -0.2,, 0.1, -0.9, -0.5, 0.6, 0.9, 0.5, 0.2, 0];CG =[0、-0.1、1;0,-0.2,1.6,-0.7,1.5,1.2,-1.4,-0.2,0];DG = [0, 0, 0, 0, 1, 0, 0.4, -0.7, 0, 0.9, 0, 0.3, 0, 0, 0, 0.2, 0, 0, 0, 0);sysG = ss (AG)、BG、CG DG)
3.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 3 3 3 3 3 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 0.2 0 0 0连续时间状态空间模型。
AK = [-0.2,2.1,0.7; -2.2,-0.1,-2.2; -0.4,2.3,-0.2];BK = [-0.1,-2.1,-0.3; -0.1,0,0.6; 1,0,0.8];ck = [-1,0,0; -0.4,-0.2,0.3];DK = [0,0,0; 0,0,-1.2];sysk = ss(ak,bk,ck,dk)
sysK = = (x1, x2) x3 x1 x2 -0.2 2.1 0.7 -2.2 -0.1 -2.2 x3 -0.4 2.3 -0.2 B = u1, u2 u3 x1 0.6 -0.1 -0.1 -2.1 -0.3 x2 0 x3 1 0 x1 0.8 C = x3 y1 1 0 0 y2 -0.4 -0.2 0.3 D = u1, u2 u3 y1 0 0 0 y2 0 0 -1.2连续时间状态空间模型。
定义馈出
和feedin
基于输入和输出连接在反馈回路中的向量。
Feedin = [4 2];Feedout = [1 3 4];sys =反馈(sysG sysK、feedin feedout, 1)
sys = = (x1, x2) x3 x4 x5 x6 x1 3 0 0 x2 1.18 -2.56 -0.8 0.4 0.3 0.2 -1.3 -1.312 - 0.584 -0.2 - 0.3 x3 3 x4 -0.27 0.56 - 0.18 2.948 -2.929 -2.42 -2.2 -0.84 -0.11 0.1 -2.2 -0.1 -0.452 1.974 0.889 x5 x6 1 -1.12 -0.26 -0.4 2.3 -0.2 B = u1, u2 u3 u4 u5 x1 0.4 0 1 0.1 -0.9 -0.5 -0.44 0.3 - 0.2 0 x2 x3 0.816 0.9 0.5 0.2 0 x4 -0.2112 - -0.63 0 0 0.1 x5 0.12 0 0 00.1x60.16000 -1 C = x1 x2 x3 x4 x5 x6 y1 0 -0.1 -1 0 0 0 y2 -0.672 -0.296 1.6 0.16 0.08 -0.12 y3 -1.204 1.428 1.2 0.12 0.06 -0.09 y4 -1.4 -0.2 0 0 0 0 D = u1 u2 u3 u4 u5 y1 0 0 0 0 -1 y2 0.096 0.4 -0.7 0 0.9 y3 0.072 0.3 0 0 0 y4 0.2 0 0 0 0 Continuous-time state-space model.
大小(系统)
具有4个输出,5个输入和6个状态的状态空间模型。
SYS.
是通过连接指定的输入和输出得到的闭环状态空间模型G
和K
.
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
您还可以从以下列表中选择网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。