主要内容

evalfr

计算特定频率下的系统响应

说明

evalfrfreqresp 的简化版本,用于快速计算复平面中任意点的系统响应。要计算一组频率下的系统响应,请使用 freqresp。要获取幅值和相位数据以及频率响应图,请使用 bode

frsp = evalfr(sys,x) 计算动态系统模型 syss 复平面(对于连续时间 sys)或 z 复平面(对于离散时间 sys)中的点 x 处的响应。

示例

示例

全部折叠

创建以下离散时间传递函数。

H(z)=z-1z2+z+1

H = tf([1 -1],[1 1 1],-1);

计算在 z = 1+j 处的该传递函数。

z = 1+j;
evalfr(H,z)
ans = 
0.2308 + 0.1538i

创建以下连续时间传递函数模型:

H(s)=1s2+2s+1

sys = idtf(1,[1 2 1]);

计算频率为 0.1 rad/s 时的该传递函数。

w = 0.1;
s = j*w;
evalfr(sys,s)
ans = 
0.9705 - 0.1961i

或者,使用 freqresp 命令。

freqresp(sys,w)
ans = 
0.9705 - 0.1961i

对于此示例,假设有一个立方体绕其角旋转,惯量张量为 J,阻尼力 F 大小为 0.2。系统的输入是驱动扭矩,而输出是角速度。立方体的状态空间矩阵如下:

A=-J-1F,B=J-1,C=I,D=0,where,J=[8-3-3-38-3-3-38]andF=[0.20000.20000.2]

指定 ABCD 矩阵,并创建连续时间状态空间模型。

J = [8 -3 -3; -3 8 -3; -3 -3 8];
F = 0.2*eye(3);
A = -J\F;
B = inv(J);
C = eye(3);
D = 0;
sys = ss(A,B,C,D);
size(sys)
State-space model with 3 outputs, 3 inputs, and 3 states.

计算系统频率为 0.2 rad/s 时的频率响应。由于 sys 是连续时间模型,因此需用拉普拉斯变量 s 来表示频率。

w = 0.2;
s = j*w;
frsp = evalfr(sys,s)
frsp = 3×3 complex

   0.3607 - 0.9672i   0.3197 - 0.5164i   0.3197 - 0.5164i
   0.3197 - 0.5164i   0.3607 - 0.9672i   0.3197 - 0.5164i
   0.3197 - 0.5164i   0.3197 - 0.5164i   0.3607 - 0.9672i

您也可以使用 freqresp 命令来直接根据频率的标量值计算频率响应。

H = freqresp(sys,w)
H = 3×3 complex

   0.3607 - 0.9672i   0.3197 - 0.5164i   0.3197 - 0.5164i
   0.3197 - 0.5164i   0.3607 - 0.9672i   0.3197 - 0.5164i
   0.3197 - 0.5164i   0.3197 - 0.5164i   0.3607 - 0.9672i

输入参数

全部折叠

动态系统,指定为 SISO 或 MIMO 动态系统模型或动态系统模型数组。您可以使用的动态系统包括:

  • LTI 模型,如 ss (Control System Toolbox)tf (Control System Toolbox)zpk (Control System Toolbox) 模型。

  • 稀疏状态空间模型,如 sparss (Control System Toolbox)mechss (Control System Toolbox) 模型。

  • 广义或不确定状态空间模型,如 genss (Control System Toolbox)uss (Robust Control Toolbox) 模型。(使用不确定模型需要 Robust Control Toolbox™ 软件。)

    • 对于可调控制设计模块,该函数根据模型的当前值计算频率响应。

    • 对于不确定的控制设计模块,该函数根据模型的标称值和随机样本计算频率响应。

  • 辨识的状态空间模型,如 idss 模型。

有关模型的完整列表,请参阅动态系统模型

复平面中用于计算系统响应的点,指定为复标量。对于连续时间 sys,点 x 位于连续时间拉普拉斯变量 s 的平面中。对于离散时间 sysx 位于离散时间拉普拉斯变量 z 的平面中。

要计算系统在特定频率下的响应,请用相应的拉普拉斯变量指定该频率。例如,如果您想计算系统 sys 在频率值为 w rad/s 时的频率响应,请使用:

  • x = j*w(对于连续时间 sys)。

  • z = exp(j*w*Ts)(对于离散时间 sys),其中 Ts 是采样时间。

输出参量

全部折叠

系统在点 x 处的频率响应,以复数标量(对于 SISO sys)或复数数组(对于 MIMO sys)形式返回。对于 MIMO 系统,数组维度与 sys 的 I/O 维度相对应。

版本历史记录

在 R2012a 中推出

另请参阅

| | (Control System Toolbox)