05-13-2015, 11:03 AM

program is based on (Statistics 1Var)...the numerical values from this this code is valid but plots are temperamental. need help pls.

BODE(ƒ1,ƒ2,[num],[den])>>enter. example

BODE(-1,1,[1],[1 0.2 1])>>enter.

use VIEW key to select graphs.

BODE(ƒ1,ƒ2,[num],[den])>>enter. example

BODE(-1,1,[1],[1 0.2 1])>>enter.

use VIEW key to select graphs.

Code:

Tf();

BODE();

VIEW "Start",START()

BEGIN

D1:={};

D2:={};

SetSample(H1,D1);

SetFreq(H1,D2);

H1Type:=4;

STARTVIEW(6,1);

WAIT();

STARTVIEW(-1,1);

END;

export BODE(Xmin,Xmax,num,den)

BEGIN

local num:=poly2symb(num,"*x");

local den:=poly2symb(den,"*x");

expand(num/den)▶F1;

Xtick:=0.01;

makelist(ALOG(X),X,Xmin,Xmax,Xtick)▶L1;

L2:=Tf(L1);

L7:=20*LOG(ABS(L2));

L3:=ARG(L2)*180/pi;

L4:=IM(L2);

L5:=RE(L2);

END;

EXPORT Tf(x)

BEGIN

L2:=(F1(X)|x=L1);

END;

VIEW "Nyquist",nyquist()

BEGIN

L5▶D2;

L4▶D1;

Xmin:= FLOOR(MIN(D1)+1);

Xmax:=CEILING(MAX(D1)+1);

Ymin:= FLOOR(MIN(D2)+1);

Ymax:= CEILING(MAX(D2)+1);

STARTVIEW(1,1);

END;

VIEW "Magnitude",Magnitude()

BEGIN

D1:=L1;

D2:=L7;

Xmin:= -1;

Xmax:= 1;

Ymin:= FLOOR(MIN(D2)+1);

Ymax:= CEILING(MAX(D2)+1);

STARTVIEW(1,1);

END;

VIEW "Phase",Phase()

BEGIN

D1:=L1;

D2:=L3;

Xmin:= -1;

Xmax:= 1;

Ymin:= FLOOR(MIN(D2)+1);

Ymax:= CEILING(MAX(D2)+1);

STARTVIEW(1,1);

END;

PLOT()

BEGIN

Xmin:= -1;

Xmax:= 1;

Ymin:= FLOOR(MIN(D2)+1);

Ymax:= CEILING(MAX(D2)+1);

STARTVIEW(1,1);

END;

Symb()

BEGIN

SetSample(H1,D1);

SetFreq(H1,D2);

H1Type:=4;

STARTVIEW(0,1);

END;