MATLAB 帮助中心
访问传递函数数据
[num,den] = tfdata(sys)
[num,den,ts] = tfdata(sys)
[num,den,ts,sdnum,sdden] = tfdata(sys)
___ = tfdata(sys,J1,...,JN)
[num,den] = tfdata(sys,'v')
[num,den] = tfdata(sys) 返回 tf、ss 和 zpk 模型对象或由 sys 表示的模型对象数组的传递函数的分子和分母系数。
num
den
sys
tf
ss
zpk
如果 sys 包含单个 LTI 模型,则输出 num 和 den 是二维元胞数组。如果 sys 是一个模型数组,num 和 den 以多维元胞数组形式返回。
示例
[num,den,ts] = tfdata(sys) 还返回采样时间 ts。
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 不包含不确定度信息,则 sdnum 和 sdden 为空 []。
sdnum
sdden
sdnum{i,j}(k)
num{i,j}(k)
sdden{i,j}(k)
den{i,j}(k)
[]
___ = tfdata(sys,J1,...,JN) 提取模型数组 sys 中 J1,...,JN 条目的数据。
J1,...,JN
[num,den] = tfdata(sys,'v') 针对由 sys 表示的 SISO 传递函数,以行向量而非元胞数组的形式返回分子和分母系数。
全部折叠
对于此示例,假设有一个 tfData.mat 文件,它包含一个连续时间 SISO 传递函数 sys1。
tfData.mat
sys1
加载数据并使用 tfdata 提取分子和分母系数。
tfdata
load('tfData.mat','sys1'); [num,den] = tfdata(sys1);
num 和 den 以元胞数组形式返回。要显示数据,请使用 celldisp。
celldisp
celldisp(num)
num{1} = 0 1 5 2
celldisp(den)
den{1} = 7 4 2 1
您还可以使用以下语法将分子和分母系数提取为行向量。
[num,den] = tfdata(sys1,'v');
对于此示例,假设有包含离散时间 SISO 传递函数 sys2 的 tfData.mat。
sys2
加载数据并使用 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
num{1} = 0 0 2 0
den{1} = 4 0 3 -1
对于此示例,根据 iddata7.mat 中包含的辨识数据,估计一个具有 2 个极点和 1 个零点并指定输入延迟值的传递函数。
iddata7.mat
加载辨识数据并估计传递函数。
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 可视化元胞数组中的数据 num 和 den。
num{1} = 0 0 2
den{1} = 1 1 2
动态系统,指定为 SISO 或 MIMO 动态系统模型或者 SISO 或 MIMO 动态系统模型数组。您可以使用的动态系统包括连续时间或离散时间数值 LTI 模型,如 tf、ss 和 zpk 模型。
如果 sys 是状态空间模型或零极点增益模型,则会先使用 tf 将其转换为传递函数形式。有关传递函数模型数据格式的详细信息,请参阅 tf 参考页。
对于 SISO 传递函数,使用以下语法直接以行向量而非元胞数组的形式返回分子和分母系数:
数组中要访问其数据的模型的索引,指定为正整数。您可以提供与 sys 中的数组维度数一样多的索引。例如,如果 sys 是一个 4×5 的传递函数数组,则以下命令将访问该数组中条目 (2,3) 的数据。
[num,den] = tfdata(sys,2,3);
传递函数的分子系数,以元胞数组或行向量形式返回。
当 sys 包含单个 LTI 模型时,输出 num 以元胞数组形式返回,并具有以下特征:
num 的行数与 sys 的输出数相同,列数与其输入数相同。
num{i,j} 中的 (i,j) 条目是行向量,指定从输入 j 到输出 i 的传递函数的分子系数。tfdata 按 s 或 z 的降幂顺序排列这些系数。
num{i,j}
(i,j)
j
i
当 sys 包含 LTI 模型数组时,num 以与 sys 大小相同的多维元胞数组形式返回。
传递函数的分母系数,以元胞数组或行向量形式返回。
当 sys 包含单个 LTI 模型时,输出 den 以元胞数组形式返回,并具有以下特征:
den 的行数与 sys 的输出数相同,列数与其输入数相同。
den{i,j} 中的 (i,j) 条目是行向量,指定从输入 j 到输出 i 的传递函数的分母系数。tfdata 按 s 或 z 的降幂顺序排列这些系数。
den{i,j}
当 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 之前推出
tf | ss | zpk | get | ssdata | zpkdata
get
ssdata
zpkdata
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处