In MATLAB, transfer functions are a fundamental concept for modeling and analyzing linear time-invariant (LTI) systems. You can represent transfer functions using various methods provided by MATLAB. Here are a few common ways to create and manipulate transfer functions:
tf Function:The tf function creates a transfer function model from the numerator and denominator coefficients.
% Define numerator and denominator coefficients
numerator = [1 3]; % Coefficients of the numerator polynomial
denominator = [1 5 6]; % Coefficients of the denominator polynomial
% Create transfer function
sys = tf(numerator, denominator);
% Display transfer function
disp('Transfer Function:');
disp(sys);
s Variable:The tf function can also be used with symbolic variables for a more readable representation.
% Define the transfer function using 's' variable
s = tf('s');
sys = (s + 3) / (s^2 + 5*s + 6);
% Display transfer function
disp('Transfer Function:');
disp(sys);
zpk Function:The zpk function creates a transfer function model in zero-pole-gain form.
% Define zeros, poles, and gain
zeros = [-3];
poles = [-2 -3];
gain = 1;
% Create transfer function in zero-pole-gain form
sys = zpk(zeros, poles, gain);
% Display transfer function
disp('Zero-Pole-Gain Form:');
disp(sys);
ss Function:The ss function creates a transfer function model in state-space form, which can then be converted to a transfer function.
% Define state-space matrices
A = [0 1; -6 -5];
B = [0; 1];
C = [1 0];
D = 0;
% Create state-space model
sys_ss = ss(A, B, C, D);
% Convert state-space model to transfer function
sys_tf = tf(sys_ss);
% Display transfer function
disp('Transfer Function from State-Space:');
disp(sys_tf);
You can analyze the transfer function by plotting its response using functions like bode, step, and impulse.
% Define transfer function
numerator = [1 3];
denominator = [1 5 6];
sys = tf(numerator, denominator);
% Plot Bode plot
figure;
bode(sys);
title('Bode Plot');
% Plot Step response
figure;
step(sys);
title('Step Response');
% Plot Impulse response
figure;
impulse(sys);
title('Impulse Response');