Main Content

evalfr

Evaluate system response at specific frequency

Description

evalfr is a simplified version of freqresp meant for quick evaluation of the system response at the Laplace variable value of s or z for a single, specific frequency. Use freqresp to evaluate the system response over a set of frequencies. To obtain the magnitude and phase data as well as plots of the frequency response, use bode instead.

example

frsp = evalfr(sys,f) evaluates the continuous-time or discrete-time model sys at the specified frequency f.

Examples

collapse all

Create the following discrete-time transfer function.

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

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

Evaluate the transfer function at z = 1+j.

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

Create the following continuous-time transfer function model:

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

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

Evaluate the transfer function at frequency 0.1 rad/second.

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

Alternatively, use the freqresp command.

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

For this example, consider a cube rotating about its corner with inertia tensor J and a damping force F of 0.2 magnitude. The input to the system is the driving torque while the angular velocities are the outputs. The state-space matrices for the cube are:

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

Specify the A, B, C and D matrices, and create the continuous-time state-space model.

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.

Compute the frequency response of the system at 0.2 rad/second. Since sys is a continuous-time model, express the frequency in terms of the Laplace variable 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

Alternatively, you can use the freqresp command to evaluate the frequency response using the scalar value of the frequency directly.

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

Input Arguments

collapse all

Dynamic system, specified as a SISO or MIMO dynamic system model or array of dynamic system models. Dynamic systems that you can use include:

  • LTI models such as ss, tf, and zpk models.

  • Sparse state-space models, such as sparss or mechss models.

  • Generalized or uncertain state-space models such as genss or uss (Robust Control Toolbox) models. (Using uncertain models requires Robust Control Toolbox™ software.)

    • For tunable control design blocks, the function evaluates the model at its current value to evaluate the frequency response.

    • For uncertain control design blocks, the function evaluates the frequency response at the nominal value and random samples of the model.

  • Identified state-space models, such as idss (System Identification Toolbox) models. (Using identified models requires System Identification Toolbox™ software.)

For a complete list of models, see Dynamic System Models.

Frequency at which to evaluate system response, expressed as the Laplace variable s or z, specified as a complex scalar. Specify the frequency in terms of the Laplace variable s or z based on whether sys is a continuous-time or discrete-time model, respectively. For instance, if you want to evaluate the frequency response of a system sys at a frequency value of w rad/s, then specify f in terms of

  • s = jw, if sys is in continuous-time.

  • z = ejwT, if sys is in discrete-time. Here, T is the sample time.

Output Arguments

collapse all

Frequency response of the system at f, returned as a complex scalar.

Version History

Introduced before R2006a

See Also

| |