主要内容

tfdata

访问传递函数数据

    说明

    [num,den] = tfdata(sys) 返回 tfsszpk 模型对象或由 sys 表示的模型对象数组的传递函数的分子和分母系数。

    如果 sys 包含单个 LTI 模型,则输出 numden 是二维元胞数组。如果 sys 是一个模型数组,numden 以多维元胞数组形式返回。

    示例

    [num,den,ts] = tfdata(sys) 还返回采样时间 ts

    示例

    [num,den,ts,sdnum,sdden] = tfdata(sys) 还返回辨识系统 sys 的分子和分母系数中的不确定度。sdnum{i,j}(k) 是值 num{i,j}(k) 的 1 个标准差不确定度,sdden{i,j}(k) 是值 den{i,j}(k) 的 1 个标准差不确定度。如果 sys 不包含不确定度信息,则 sdnumsdden 为空 []

    示例

    ___ = tfdata(sys,J1,...,JN) 提取模型数组 sysJ1,...,JN 条目的数据。

    示例

    [num,den] = tfdata(sys,'v') 针对由 sys 表示的 SISO 传递函数,以行向量而非元胞数组的形式返回分子和分母系数。

    示例

    示例

    全部折叠

    对于此示例,假设有一个 tfData.mat 文件,它包含一个连续时间 SISO 传递函数 sys1

    加载数据并使用 tfdata 提取分子和分母系数。

    load('tfData.mat','sys1');
    [num,den] = tfdata(sys1);

    numden 以元胞数组形式返回。要显示数据,请使用 celldisp

    celldisp(num)
     
    num{1} =
     
         0     1     5     2
    
     
    
    celldisp(den)
     
    den{1} =
     
         7     4     2     1
    
     
    

    您还可以使用以下语法将分子和分母系数提取为行向量。

    [num,den] = tfdata(sys1,'v');

    对于此示例,假设有包含离散时间 SISO 传递函数 sys2tfData.mat

    加载数据并使用 tfdata 提取分子和分母系数以及采样时间。

    load('tfData.mat','sys2');
    [num,den,ts] = tfdata(sys2)
    num = 1×1 cell array
        {[0 0 2 0]}
    
    
    den = 1×1 cell array
        {[4 0 3 -1]}
    
    
    ts = 
    0.1000
    

    numden 以元胞数组形式返回。要显示数据,请使用 celldisp

    celldisp(num)
     
    num{1} =
     
         0     0     2     0
    
     
    
    celldisp(den)
     
    den{1} =
     
         4     0     3    -1
    
     
    

    对于此示例,根据 iddata7.mat 中包含的辨识数据,估计一个具有 2 个极点和 1 个零点并指定输入延迟值的传递函数。

    加载辨识数据并估计传递函数。

    load('iddata7.mat');
    sys = tfest(z7,2,1,'InputDelay',[1 0]);

    提取这个 2 输入、1 输出的辨识传递函数的分子、分母及其标准差。

    [num,den,~,sdnum,sdden] = tfdata(sys)
    num=1×2 cell array
        {[0 -0.5212 1.1886]}    {[0 0.0552 -0.0013]}
    
    
    den=1×2 cell array
        {[1 0.3390 0.2353]}    {[1 0.0360 0.0314]}
    
    
    sdnum=1×2 cell array
        {[0 0.1311 0.0494]}    {[0 0.0246 0.0033]}
    
    
    sdden=1×2 cell array
        {[0 0.0183 0.0085]}    {[0 0.0278 0.0048]}
    
    

    对于此示例,提取 3×1 连续时间传递函数数组 sys 中包含的特定传递函数的分子和分母系数。

    加载数据并提取该数组中第二个模型的分子和分母系数。

    load('tfArray.mat','sys');
    [num,den] = tfdata(sys,2);

    使用 celldisp 可视化元胞数组中的数据 numden

    celldisp(num)
     
    num{1} =
     
         0     0     2
    
     
    
    celldisp(den)
     
    den{1} =
     
         1     1     2
    
     
    

    输入参数

    全部折叠

    动态系统,指定为 SISO 或 MIMO 动态系统模型或者 SISO 或 MIMO 动态系统模型数组。您可以使用的动态系统包括连续时间或离散时间数值 LTI 模型,如 tfsszpk 模型。

    如果 sys 是状态空间模型或零极点增益模型,则会先使用 tf 将其转换为传递函数形式。有关传递函数模型数据格式的详细信息,请参阅 tf 参考页。

    对于 SISO 传递函数,使用以下语法直接以行向量而非元胞数组的形式返回分子和分母系数:

    [num,den] = tfdata(sys,'v')
    

    数组中要访问其数据的模型的索引,指定为正整数。您可以提供与 sys 中的数组维度数一样多的索引。例如,如果 sys 是一个 4×5 的传递函数数组,则以下命令将访问该数组中条目 (2,3) 的数据。

    [num,den] = tfdata(sys,2,3);

    输出参量

    全部折叠

    传递函数的分子系数,以元胞数组或行向量形式返回。

    sys 包含单个 LTI 模型时,输出 num 以元胞数组形式返回,并具有以下特征:

    • num 的行数与 sys 的输出数相同,列数与其输入数相同。

    • num{i,j} 中的 (i,j) 条目是行向量,指定从输入 j 到输出 i 的传递函数的分子系数。tfdatasz幂顺序排列这些系数。

    sys 包含 LTI 模型数组时,num 以与 sys 大小相同的多维元胞数组形式返回。

    传递函数的分母系数,以元胞数组或行向量形式返回。

    sys 包含单个 LTI 模型时,输出 den 以元胞数组形式返回,并具有以下特征:

    • den 的行数与 sys 的输出数相同,列数与其输入数相同。

    • den{i,j} 中的 (i,j) 条目是行向量,指定从输入 j 到输出 i 的传递函数的分母系数。tfdatasz幂顺序排列这些系数。

    sys 包含 LTI 模型数组时,den 以与 sys 大小相同的多维元胞数组形式返回。

    采样时间,以非负标量形式返回。

    辨识系统 sys 的分子系数的标准差不确定度,以与 num 大小相同的元胞数组形式返回。sdnum{i,j}(k) 是值 num{i,j}(k) 的 1 个标准差不确定度。如果 sys 不包含不确定度信息,则 sdnum 为空 []

    辨识系统 sys 的分母系数的标准差不确定度,以与 den 大小相同的元胞数组形式返回。sdden{i,j}(k) 是值 den{i,j}(k) 的 1 个标准差不确定度。如果 sys 不包含不确定度信息,则 sdden 为空 []

    版本历史记录

    在 R2006a 之前推出

    另请参阅

    | | | | |