HP Forums
Bode Magntiude Plot - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: HP Software Libraries (/forum-10.html)
+--- Forum: HP Prime Software Library (/forum-15.html)
+--- Thread: Bode Magntiude Plot (/thread-8123.html)



Bode Magntiude Plot - Eddie W. Shore - 04-06-2017 01:17 AM

For details and examples: http://edspi31415.blogspot.com/2017/04/hp-prime-magnitude-bode-plot.html

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

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

Code:
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;