Putting transfer function expression in the title of a bode plot

4 vues (au cours des 30 derniers jours)
Thomas Gahan
Thomas Gahan le 24 Juil 2019
Commenté : Thomas Gahan le 3 Sep 2019
Hi
I am trying to put a transfer function expression in the title of a bode plot.
This code worked in 2010b.
I am now using R2019a so this is the version my question applies to.
the code:
num=[1 2];
den=[1 7 49];
trans=tf(num,den);
syms s
n = sym(num);
d = sym(den);
ns = poly2sym(n,s);
ds = poly2sym(d,s);
tfsym = ns/ds;
tftitle = latex(tfsym);
figure(1)
bode(trans)
title(sprintf('Bode plot of: $$ %s $$', tftitle), 'Interpreter','latex')
It works but gives the following warnings:
String scalar or character vector must have valid interpreter syntax:
Bode plot of: $$ \frac{1}{s^2+2\,s+1} $$
> In defaulterrorcallback (line 12)
In ctrluis.axesgrid/labelpos (line 26)
In ctrluis.axesgrid/setlabels (line 83)
In ctrluis.axesgroup/addbypass>localTitle (line 24)
In mwbypass (line 17)
In title (line 49)
In bode (line 22)
Anyone any ideas?
Thank you
tgahan

Réponse acceptée

Subhadeep Koley
Subhadeep Koley le 2 Août 2019
MATLAB provides bodeoptions to add various parameters to your bode plot.
The following code may help you.
tfsym = ns/ds;
tftitle = latex(tfsym);
figure(1)
opts=bodeoptions;
opts.Title.Interpreter = 'latex';
opts.Title.FontSize = 12;
opts.XLabel.FontSize = 12;
opts.YLabel.FontSize = 12;
opts.Title.String = sprintf('Bode plot of: $$ %s $$', tftitle);
bodeplot(trans,opts);
  1 commentaire
Thomas Gahan
Thomas Gahan le 3 Sep 2019
Apologies for the late reply, was on vacation.
Thank you very much for your expert assistance.
This worked perfect.
Kind regards
tgahan

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Get Started with Control System Toolbox dans Help Center et File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by