主要内容

series

两个模型的串行连接

说明

sys = series(sys1,sys2) 通过将 sys1 的输出连接到 sys2 的输入,形成两个动态系统模型的串行互连,如图所示。

此命令等效于直接乘法 sys = sys2*sys1。对于 MIMO 系统,sys2 的输入数目必须等于 sys1 的输出数目。得到的 sys 具有输入 u 和输出 y

示例

sys = series(sys1,sys2,out1,in2) 通过将 sys1 的输出子集连接到 sys2 的输入子集形成更普遍的串行互连,如下图所示。

out1 是一个向量,指定要连接的 sys1 的输出的索引。类似地,in1 指定要连接到这些输出的 sys2 的输入的索引。得到的 sys 具有输入 u 和输出 yseries 会丢弃 sys1 的未连接输出 z1 以及 sys2 的未连接输入 v2

示例

sys = series(sys1,sys2,"name") 通过匹配模型的 OutputName 属性和 InputName 属性中定义的信号名称,将 sys1 的输出子集连接到 sys2 的输入子集。series 会丢弃 sys1 的未连接输出以及 sys2 的未连接输入。

示例

示例

全部折叠

创建两个 SISO 系统,一个是状态空间模型,另一个是传递函数。

sys1 = rss(3);
sys2 = tf(1,[1 1 1]);

将这两个系统串行连接起来。

sys = series(sys1,sys2);
size(sys)
State-space model with 1 outputs, 1 inputs, and 5 states.

将传递函数与状态空间模型连接起来会得到另一个状态空间模型。有关组合不同模型类型的结果的详细信息,请参阅Rules That Determine Model Type

串行互连等效于乘积 sys2*sys1。通过检查频率响应来验证这种等效性。

sysm = sys2*sys1;
bodeplot(sys,'-',sysm,'--')

MATLAB figure

将两个 MIMO 系统串行连接起来。当 sys1 的输出数目等于 sys2 的输入数目时,您可以将所有 sys1 输出连接到所有 sys2 输入。

sys1 = rss(3,2,3);
sys2 = rss(3,3,2);
sys = series(sys1,sys2);

得到的系统的输入数目与 sys1 相同,输出数目与 sys2 相同。

size(sys)
State-space model with 3 outputs, 3 inputs, and 6 states.

您可以通过为要连接的信号分配匹配的名称来形成串行连接。从四输出、双输入系统 sys1 和双输出、三输入系统 sys2 开始,形成图中所示的串行连接。

创建这两个系统的状态空间模型,并为输入和输出信号命名。

% sys1: 4-output, 2-input
sys1 = rss(4,4,2);
sys1.InputName = ["in1a","in1b"];
sys1.OutputName = ["out1a","out1b","out1c","out1d"];
% sys2: 2-output, 3-input
sys2 = rss(3,2,3);
sys2.InputName = ["in2a","in2b","in2c"];
sys2.OutputName = ["out2a","out2b"];

在图中所示的互连中,sys1out1aout1c 分别连接到 in2bin2c。更改信号名称,使连接信号的名称相匹配。

sys1.OutputName = ["ua","out1b","ub","out1d"];
sys2.InputName = ["in2a","ua","ub"];

通过在指定 name 标志的情况下调用 series 来形成连接。

sys = series(sys1,sys2,"name");

检查 sys 的维度、输入和输出,以确认连接与图中的连接一致。

size(sys)
State-space model with 2 outputs, 2 inputs, and 7 states.
sys.InputName
ans = 2×1 cell
    {'in1a'}
    {'in1b'}

sys.OutputName
ans = 2×1 cell
    {'out2a'}
    {'out2b'}

正如预期的那样,得到的 sys 具有两个输出和两个输入,分别对应于 sys2 的输出和 sys1 的输入。

sys 会丢弃 sys2 的未连接输入和 sys1 的未连接输出。要形成这种互连同时保留所有输入和输出,请改用 connect,指定要在得到的系统中保留的所有输入和输出。

sysc = connect(sys1,sys2,["in1a","in1b","in2a"],["out2a","out2b","out1b","out1d"]);
size(sysc)
State-space model with 4 outputs, 3 inputs, and 7 states.
sysc.InputName
ans = 3×1 cell
    {'in1a'}
    {'in1b'}
    {'in2a'}

sysc.OutputName
ans = 4×1 cell
    {'out2a'}
    {'out2b'}
    {'out1b'}
    {'out1d'}

您可以通过指定要连接的信号的索引,使用模型输入和输出的子集来形成串行互连。从四输出、双输入系统 sys1 和双输出、三输入系统 sys2 开始,形成图中所示的串行连接。

创建这两个系统的状态空间模型。

% sys1: 4-output, 2-input
sys1 = rss(4,4,2);
% sys2: 2-output, 3-input
sys2 = rss(3,2,3);

要形成串行连接,请创建向量来指定要连接的 sys1 的输出和 sys2 的相应输入。在上图中,sys1 的第一个和第三个输出分别连接到 sys2 的第二个和第三个输入。因此,请按如下方式指定索引。

out1 = [1 3]; % out1a and out1c
in2 = [2 3];  % in2b and in2c

形成连接并检查输出的大小。

sys = series(sys1,sys2,out1,in2);
size(sys)
State-space model with 2 outputs, 2 inputs, and 7 states.

正如预期的那样,得到的 sys 具有两个输出和两个输入,分别对应于 sys2 的输出和 sys1 的输入。sys 会丢弃 sys2 的未连接输入和 sys1 的未连接输出。要形成这种互连同时保留所有输入和输出,请使用 connect

输入参数

全部折叠

要连接的系统,指定为 SISO 或 MIMO 动态系统模型、控制设计模块或动态系统模型数组。可以连接的模型和模块包括:

  • 任何数值 LTI 模型对象,如 tfzpkssfrdpid 模型对象。

  • 广义或不确定的 LTI 模型,如 genssgenfrduss (Robust Control Toolbox)ufrd (Robust Control Toolbox) 模型。

  • 表示可调或不确定的模块图元素的控制设计模块,如 tunablePIDtunableSStunableGaintunableTFtunableSurfaceultidyn (Robust Control Toolbox)umargin (Robust Control Toolbox) 模块。

  • 表示模块图中您想提取系统响应的位置的 AnalysisPoint 模块。

  • 使用 sumblk 创建的求和结点。

  • 辨识的 LTI 模型,如 idtf (System Identification Toolbox)idss (System Identification Toolbox)idproc (System Identification Toolbox) 模型。

  • 稀疏模型,由 sparssmechss 模型对象表示。

  • 时变模型或参数变化模型,由 ltvsslpvss 模型对象表示。

sys1sys2 必须都是连续时间系统或者都是离散时间系统,且采样时间相同。

要连接的 sys1 的输出,指定为索引向量。例如,如果您想将 sys1 的第二个、第四个和第五个输出连接到 sys2 的三个输入,请设置 out1 = [2,4,5]

要连接的 sys2 的输入,指定为索引向量。例如,如果您想将 sys1 的三个输出连接到 sys2 的第一个、第三个和第四个输入,请设置 in2 = [1,3,4]

输出参量

全部折叠

互连系统,以动态系统模型形式返回,互连系统的输入为 sys1 的输入,互连系统的输出为 sys2 的输出。动态系统模型的类型取决于所连接的系统 sys1sys2 的类型。例如,

  • 如果所连接的系统中的一个系统是 ss 模型,而另一个是除 frd 模型之外的数值 LTI 模型,则 sysss 模型。

  • 如果所连接的系统中的一个系统是 frd 模型,而另一个是数值 LTI 模型,则 sysfrd 模型。如果两个系统都是 frd 模型,则频率向量必须匹配。

  • 如果所连接的系统中的一个系统是辨识的 LTI 模型,则 sys 也是辨识模型。

  • 如果所连接的系统中的一个系统是广义 LTI 模型,如 genssuss 模型,则 sys 也是广义 LTI 模型。

  • 如果所连接的系统中的一个系统是稀疏模型,则 sys 也是稀疏模型。

如果 sys1sys2 是模型数组,则 sys 是相同大小的模型数组。sys 中的每个条目都是通过连接输入数组的相应条目所形成的模型。

版本历史记录

在 R2006a 之前推出

另请参阅

| | |