HP Prime: Magnitude Bode Plot
How BODEPLOT Works
The program
BODEPLOT for the HP Prime plots a handmade Bode Plot for any of the following
forms:
(I) H(s) = K *
(s/A + 1)/(s/B + 1)
(II) H(s) = K *
(s/A + 1)
(III) H(s) = K
* 1/(s/B + 1)
with K =
constant, -A = real root, -B = real pole
The input
screen:
For type (II),
enter 0 for B. For type (III), enter 0
for A. K must be nonzero, and it is
assumed that K is positive. The plot is
made of a composition of two or three basic plots.
One thing to
know: the program simulates semi-log
plot. The X axis represents values of
10^x. Hence, X = 0 represents 1, X = 1
represents 10, X = 2 represents 100, and so on.
Hence, each X represents a decade (instead of the customary unit).
HP Prime Program BODEPLOT
EXPORT BODEPLOT()
BEGIN
// Bode Magnitude Plot
// K*(s/A+1)/(s/B+1)
// 2017-04-05 EWS
INPUT({K,A,B},
"Mag.: K*(s/A+1)/(s/B+1)",
{"Const (K): ","Zero
(−A): ",
"Pole (−B): "},
{"Constant","Zero","Plot"});
F1:="20*LOG(K)";
F2:="PIECEWISE(X≤LOG(A),0,
X>LOG(A),20X-20LOG(A))";
F3:="PIECEWISE(X≤LOG(B),0,
X>LOG(B),−20X+20LOG(B))";
F4:="F1(X)+F2(X)+F3(X)";
// dark red color
F4(COLOR):=#800000h;
IF A==0 THEN
F2:="0";
END;
IF B==0 THEN
F3:="0";
END;
STARTAPP("Function");
CHECK(4);
UNCHECK(1);
UNCHECK(2);
UNCHECK(3);
// Autoscale
STARTVIEW(10,1);
END;
Examples
Example 1: K = 1.02,
A = 100, B = 250 (root = -100, pole =
-250)
Example 2: K = 1.02,
A = 100 (no pole, B = 0)
Example 3: K = 1.02,
B = 250 (no root, A = 0)
Since the plots are first generated in Autoscale, I executed
a Zoom Out (2 x 2) after program execution.
Sources:
“Bode Plot”
Wikipedia. Last edited February
7, 2017. https://en.wikipedia.org/wiki/Bode_plot Retrieved March 6, 2017
Cheever, Eric. “Bode
Plot: Examples” Swarthmore College. 2015.
Link: http://lpsa.swarthmore.edu/Bode/BodeExamples.html Retrieved March 6, 2017
This blog is
property of Edward Shore, 2017.