Bode/Nyquist plot.....
05-13-2015, 11:03 AM
Post: #1
 toshk Member Posts: 195 Joined: Feb 2015
Bode/Nyquist plot.....
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.

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;
05-13-2015, 11:13 AM (This post was last modified: 05-13-2015 11:24 AM by salvomic.)
Post: #2
 salvomic Senior Member Posts: 1,396 Joined: Jan 2015
RE: Bode/Nyquist plot.....
(05-13-2015 11:03 AM)toshk Wrote:  program is based on (Statistics 1Var)...
...

hi, thank you, but, please, check the code included...
I get this error (copy and pasting):
error in line 7 -> SetSample(H1,D1);
I don't think that the error is really there, perhaps elsewhere...

Thank you,
Salvo

EDIT:
here there was previous data on Statistic 1var, so there there was an error with H1 and so on...
Also with some programs of mine this happens...

please, advice what data put in Statistic 1var for your example above, so I'll be able to test...

∫aL√0mic (IT9CLU) :: HP Prime 50g 41CX 71b 42s 39s 35s 12C 15C - DM42, DM41X - WP34s Prime Soft. Lib
05-13-2015, 04:04 PM (This post was last modified: 05-13-2015 04:17 PM by toshk.)
Post: #3
 toshk Member Posts: 195 Joined: Feb 2015
RE: Bode/Nyquist plot.....
(05-13-2015 11:13 AM)salvomic Wrote:
(05-13-2015 11:03 AM)toshk Wrote:  program is based on (Statistics 1Var)...
...

hi, thank you, but, please, check the code included...
I get this error (copy and pasting):
error in line 7 -> SetSample(H1,D1);
I don't think that the error is really there, perhaps elsewhere...

Thank you,
Salvo

EDIT:
here there was previous data on Statistic 1var, so there there was an error with H1 and so on...
Also with some programs of mine this happens...

please, advice what data put in Statistic 1var for your example above, so I'll be able to test...
G(s) =

1
---------------
s^2 + 0.2 s + 1

Continuous-time transfer function. for frequencies(rad/s) between .01 and 10 shd be entered:

BODE(-1,1,[1],[1 0.2 1])>>enter.
use VIEW >>Start (if you think to empty D1 and D2)
use VIEW >>Magnitude. (to load freq. vs dB magnitude)
soft Menu>>Zoom>>Auotscale (to see how off the plot is)
05-13-2015, 04:37 PM
Post: #4
 salvomic Senior Member Posts: 1,396 Joined: Jan 2015
RE: Bode/Nyquist plot.....
(05-13-2015 04:04 PM)toshk Wrote:  Continuous-time transfer function. for frequencies(rad/s) between .01 and 10 shd be entered:

BODE(-1,1,[1],[1 0.2 1])>>enter.
use VIEW >>Start (if you think to empty D1 and D2)
use VIEW >>Magnitude. (to load freq. vs dB magnitude)
soft Menu>>Zoom>>Auotscale (to see how off the plot is)

ok, I mean: I have already D1 and D2 empty...
In View I can see only 1. "Split screen Plot Detail" 2. Autoscale...
Am I wrong?

Salvo

∫aL√0mic (IT9CLU) :: HP Prime 50g 41CX 71b 42s 39s 35s 12C 15C - DM42, DM41X - WP34s Prime Soft. Lib
05-13-2015, 05:01 PM
Post: #5
 toshk Member Posts: 195 Joined: Feb 2015
RE: Bode/Nyquist plot.....
recompile under the copy of (Statistics 1Var)..then you shd see mine VIEW

Attached File(s) Thumbnail(s)

05-13-2015, 05:13 PM
Post: #6
 salvomic Senior Member Posts: 1,396 Joined: Jan 2015
RE: Bode/Nyquist plot.....
(05-13-2015 05:01 PM)toshk Wrote:  recompile under the copy of (Statistics 1Var)..then you shd see mine VIEW

ok, but... I don't remember how, please, help

∫aL√0mic (IT9CLU) :: HP Prime 50g 41CX 71b 42s 39s 35s 12C 15C - DM42, DM41X - WP34s Prime Soft. Lib
05-13-2015, 05:14 PM
Post: #7
 Tim Wessman Senior Member Posts: 2,293 Joined: Dec 2013
RE: Bode/Nyquist plot.....
(05-13-2015 05:13 PM)salvomic Wrote:  ok, but... I don't remember how, please, help

Open the app program in your program catalog (very top item), then exit and go the the app screen.

TW

Although I work for HP, the views and opinions I post here are my own.
05-13-2015, 05:20 PM
Post: #8
 toshk Member Posts: 195 Joined: Feb 2015
RE: Bode/Nyquist plot.....
select the copy of (Statistics 1Var) with the code.
Apps>>Statistics 1Var copy>>Enter
Shift>>Program>>Statistics 1Var copy>>Enter>>Check (for bugs).
05-13-2015, 05:29 PM (This post was last modified: 05-13-2015 05:47 PM by salvomic.)
Post: #9
 salvomic Senior Member Posts: 1,396 Joined: Jan 2015
RE: Bode/Nyquist plot.....
(05-13-2015 05:14 PM)Tim Wessman Wrote:
(05-13-2015 05:13 PM)salvomic Wrote:  ok, but... I don't remember how, please, help

Open the app program in your program catalog (very top item), then exit and go the the app screen.

(05-13-2015 05:20 PM)toshk Wrote:  select the copy of (Statistics 1Var) with the code.
Apps>>Statistics 1Var copy>>Enter
Shift>>Program>>Statistics 1Var copy>>Enter>>Check (for bugs).

thanks to both of you

I created a Statistic 1var copy, followed both tips, but in View I can see always the standard items. I'm trying again

EDIT:
I put your code in a program (here called bode-nyquist). Must I put it in Statistic 1var copy also? Sorry, but for now I'm a bit confused...

∫aL√0mic (IT9CLU) :: HP Prime 50g 41CX 71b 42s 39s 35s 12C 15C - DM42, DM41X - WP34s Prime Soft. Lib
05-13-2015, 06:00 PM (This post was last modified: 05-13-2015 06:09 PM by toshk.)
Post: #10
 toshk Member Posts: 195 Joined: Feb 2015
RE: Bode/Nyquist plot.....
the code must be in Statistics 1Var copy.
yes...
the code is based on Statistics 1Var, putting the code in mere program would not help.
05-13-2015, 07:30 PM
Post: #11
 Tim Wessman Senior Member Posts: 2,293 Joined: Dec 2013
RE: Bode/Nyquist plot.....
Can you please define what you mean by "tempermental"? I got it running here and it seems to be working fine - however I am not certain what I should be looking for.

TW

Although I work for HP, the views and opinions I post here are my own.
05-13-2015, 08:43 PM
Post: #12
 toshk Member Posts: 195 Joined: Feb 2015
RE: Bode/Nyquist plot.....
BODE(-1,1,[1],[1 0.2 1])
shd look like attached pix. are you getting the same? without having to hit VIEW or Plot and Zoom multiplies of times? the numerical values in D1 and D2 changes with each VIEW pressed but not the graph (Plot).
thanks

Attached File(s) Thumbnail(s)

05-13-2015, 09:35 PM
Post: #13
 salvomic Senior Member Posts: 1,396 Joined: Jan 2015
RE: Bode/Nyquist plot.....
I'm trying with the new firmware, and I get this (apparent) error in the line

H1Type=4;

...

Salvo

∫aL√0mic (IT9CLU) :: HP Prime 50g 41CX 71b 42s 39s 35s 12C 15C - DM42, DM41X - WP34s Prime Soft. Lib
05-13-2015, 10:25 PM
Post: #14
 toshk Member Posts: 195 Joined: Feb 2015
RE: Bode/Nyquist plot.....
with the new firmware, edit them out.
H1Type=4;
H1Type=4; and compile without error.
use Symb to set it up.
choose Dot under Plot1:
05-13-2015, 10:34 PM
Post: #15
 salvomic Senior Member Posts: 1,396 Joined: Jan 2015
RE: Bode/Nyquist plot.....
(05-13-2015 10:25 PM)toshk Wrote:  with the new firmware, edit them out.
H1Type=4;
H1Type=4; and compile without error.
use Symb to set it up.
choose Dot under Plot1:

ok, I set Dot, but I don't understand:
H1Type=4;
H1Type=4;
?
The error cursor is set first than the "H" of "H1Type", still...

ok, I'll try tomorrow

∫aL√0mic (IT9CLU) :: HP Prime 50g 41CX 71b 42s 39s 35s 12C 15C - DM42, DM41X - WP34s Prime Soft. Lib
05-13-2015, 10:37 PM (This post was last modified: 05-13-2015 11:55 PM by Tim Wessman.)
Post: #16
 Tim Wessman Senior Member Posts: 2,293 Joined: Dec 2013
RE: Bode/Nyquist plot.....
You can now directly access the symb parameters in a consistent way. H1 will recall a list of parameters. H1(num):= will let you set any parameter.

So for example, you can just use this H1:={'D1','D2', 4}; to replace 3 commands.

TW

Although I work for HP, the views and opinions I post here are my own.
05-13-2015, 11:51 PM (This post was last modified: 05-13-2015 11:52 PM by alexzkter.)
Post: #17
 alexzkter Member Posts: 64 Joined: Apr 2014
RE: Bode/Nyquist plot.....
I created the Bode program with the long code, see capture:

Also created copy of Statistics 1Var named Bode:

Went into the app, shift-Program-enter on Bode program, debug (no errors) went back into the Statistics 1Var copy app then entered the code BODE(-1,1,[1],[1 0.2 1]) on the first cell but error message shows up:

What am I doing wrong?
05-14-2015, 12:16 AM
Post: #18
 Tim Wessman Senior Member Posts: 2,293 Joined: Dec 2013
RE: Bode/Nyquist plot.....
I believe the intent is for that command BODE(-1,1,[1],[1 0.2 1]) to be executed from the home screen or similar.

This is what I've done:
1. execute START from VIEW. Q: I assume this will be to show the Info screen on completion?
2. BODE(-1,1,[1],[1 0.2 1]) on the home screen. I now see 0 in D1 and 5 in D2. Is that what I should get?
3. I execute nyquest and the xmin/max and ymin/max are identical. I assume that should not be the case?

TW

Although I work for HP, the views and opinions I post here are my own.
05-14-2015, 12:21 AM (This post was last modified: 05-14-2015 12:48 AM by toshk.)
Post: #19
 toshk Member Posts: 195 Joined: Feb 2015
RE: Bode/Nyquist plot.....
the code is based on Statistics_1Var_Copy (newer firmware)
it works but buggy using Symb>>Dot....this is my code.
execute START from VIEW. Q: I assume this will be to show the Info screen on completion? Yes and also reset App.
BODE(-1,1,[1],[1 0.2 1]) on the home screen. Yes
Home screen >>VIEW>>Magnitude>>Plot (to see bode) use Zoom from soft menu
Code:
 Tf(); BODE(); Xmin=0,Xmax=0; VIEW "Start/Info",START() BEGIN D1:={}; D2:={}; SetSample(H1,D1); SetFreq(H1,D2); H1(3):=8; STARTVIEW(6,1); WAIT(); STARTVIEW(-1,1); END; export BODE(Xmin,Xmax,num,den) BEGIN Statistics_1Var_Copy.Xmin:=Xmin; Statistics_1Var_Copy.Xmax:=Xmax; 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); END; VIEW "Magnitude",Magnitude() BEGIN D1:=L1; D2:=L7; Xmin:= Statistics_1Var_Copy.Xmin; Xmax:= Statistics_1Var_Copy.Xmax; Ymin:= FLOOR(MIN(D2)+1); Ymax:= CEILING(MAX(D2)+1); END; VIEW "Phase",Phase() BEGIN D1:=L1; D2:=L3; Xmin:= Statistics_1Var_Copy.Xmin; Xmax:= Statistics_1Var_Copy.Xmax; Ymin:= FLOOR(MIN(D2)+1); Ymax:= CEILING(MAX(D2)+1); END; PLOT() BEGIN Xmin:= Statistics_1Var_Copy.Xmin; Xmax:= Statistics_1Var_Copy.Xmax; Ymin:= FLOOR(MIN(D2)+1); Ymax:= CEILING(MAX(D2)+1); STARTVIEW(1,1); END;

Attached File(s) Thumbnail(s)

05-14-2015, 08:58 AM
Post: #20
 salvomic Senior Member Posts: 1,396 Joined: Jan 2015
RE: Bode/Nyquist plot.....
(05-13-2015 10:37 PM)Tim Wessman Wrote:  You can now directly access the symb parameters in a consistent way. H1 will recall a list of parameters. H1(num):= will let you set any parameter.

So for example, you can just use this H1:={'D1','D2', 4}; to replace 3 commands.

thanks Tim, very interesting now!

Salvo

∫aL√0mic (IT9CLU) :: HP Prime 50g 41CX 71b 42s 39s 35s 12C 15C - DM42, DM41X - WP34s Prime Soft. Lib
 « Next Oldest | Next Newest »

User(s) browsing this thread: 1 Guest(s)