Function Display As Is
4 views (last 30 days)
Show older comments
Hi all,
I wish to display a transfer function in the form that is shown below.

I am having trouble with the 5*(s+15) term, as MATLAB is by default distributing the 5 into the function and displaying 5*(s+75).
I wrote a MATLAB function which prompts the user for input polynomials and displays the output as the ratio of factors and as the ratio of polynomials once the factors are expanded.
function [factors,polynomials] = test(numpoly,denpoly)
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
syms s
numpoly = input('Please enter numerator polynomial as a function of s: ')
denpoly = input('Please enter denominator polynomial as a function of s: ')
factors = (numpoly/denpoly)
polynomials = expand(numpoly)/expand(denpoly)
pretty(factors)
pretty(polynomials)
end
%And the Outputs:
% (5 s + 75) (s + 26) (s + 72)
% ----------------------------
% 2 2
% s (s + 56) (s + 5 s + 30)
%
% 3 2
% 5 s + 565 s + 16710 s + 140400
% ------------------------------------------
% 5 4 3 2
% s + 117 s + 3726 s + 19040 s + 94080 s
1 Comment
Christopher Chock
on 15 Sep 2022
This should help!
https://www.mathworks.com/help/control/ug/transfer-functions.html
Answers (1)
Image Analyst
on 27 Apr 2019
Maybe try this:
s = linspace(0.1, 10, 1000);
numerator = 5 * (s + 15) .* (s + 26) .* (s + 72);
denominator = s .* (s + 56).^2 .* (s.^2 + 5 * s + 30);
H = numerator ./ denominator;
plot(s, H, 'b.-');
grid on;
xlabel('s', 'FontSize', 20);
ylabel('H', 'FontSize', 20);

See Also
Categories
Find more on Polynomials in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!