[BACK]Return to multiplt.dem CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / gnuplot / demo

Annotation of OpenXM_contrib/gnuplot/demo/multiplt.dem, Revision 1.1.1.1

1.1       maekawa     1: #   GNUPLOT v3.6 beta multiplot script file
                      2: #
                      3: # Second Order System Characteristics
                      4: #
                      5: #       D**2 + 2*zeta*wn*D + (wn**2)y = (wn**2)*x
                      6: #
                      7: #   x           input variable
                      8: #   y           output variable
                      9: #   w           frequency ratio (w/wn)
                     10: #   wn          natural frequency
                     11: #   wd          damped natural frequency
                     12: #   zeta        damping ratio
                     13: #   mag(w)      amplitude response
                     14: #   phi(w)      phase response
                     15: #   wdwn        damped natural frequency ratio
                     16: #   wnt         normalized time
                     17: #
                     18: #   Plots:
                     19: #   Frequency domain    magnitude response
                     20: #                           phase response
                     21: #
                     22: #   Time domain         unit step response
                     23: #                       unit impulse response
                     24: #
                     25: #
                     26: # Created by: W. D. Kirby email: wdkirby@ix.netcom.com
                     27: # Date: 1/18/96
                     28: # Released to the public domain with no warranty of any kind
                     29: #
                     30: reset
                     31: set function style lines
                     32: set size 1.0, 1.0
                     33: set origin 0.0, 0.0
                     34: set multiplot
                     35: set size 0.5,0.5
                     36: set origin 0.0,0.5
                     37: set grid
                     38: set nokey
                     39: set angles radians
                     40: set samples 250
                     41: #  Plot Magnitude Response
                     42: set title "Second Order System Transfer Function - Magnitude"
                     43: mag(w) = -10*log10( (1-w**2)**2 + 4*(zeta*w)**2)
                     44: set dummy w
                     45: set logscale x
                     46: set xlabel "Frequency (w/wn)"
                     47: set ylabel "Magnitude (dB)" 1,0
                     48: set label 1 "Damping =.1,.2,.3,.4,.5,.707,1.0,2.0" at .14,17
                     49: set xrange [.1:10]
                     50: set yrange [-40:20]
                     51: plot \
                     52:   zeta=.1,mag(w), \
                     53:   zeta=.2,mag(w), \
                     54:   zeta=.3,mag(w), \
                     55:   zeta=.4,mag(w), \
                     56:   zeta=.5,mag(w), \
                     57:   zeta=.707,mag(w), \
                     58:   zeta=1.0,mag(w), \
                     59:   zeta=2.0,mag(w),-6
                     60: #  Plot Phase Response
                     61: set size 0.5,0.5
                     62: set origin 0.0,0.0
                     63: set title "Second Order System Transfer Function - Phase"
                     64: set label 1 ""
                     65: set ylabel "Phase (deg)" 1,0
                     66: set ytics -180, 30, 0
                     67: set yrange [-180:0]
                     68: tmp(w) = (-180/pi)*atan( 2*zeta*w/(1-w**2) )
                     69: # Fix for atan function wrap problem
                     70: tmp1(w)= w<1?tmp(w):(tmp(w)-180)
                     71: phi(w)=zeta==1?(-2*(180/pi)*atan(w)):tmp1(w)
                     72: plot \
                     73:   zeta=.1,phi(w), \
                     74:   zeta=.2,phi(w), \
                     75:   zeta=.3,phi(w), \
                     76:   zeta=.4,phi(w), \
                     77:   zeta=.5,phi(w), \
                     78:   zeta=.707,phi(w), \
                     79:   zeta=1,phi(w), \
                     80:   zeta=2.0,phi(w), \
                     81:   -90
                     82: #  Plot Step Response
                     83: set size 0.5,0.5
                     84: set origin 0.5,0.5
                     85: set dummy wnt
                     86: set nologscale x
                     87: set title "Second Order System - Unit Step Response"
                     88: set ylabel "Amplitude y(wnt)" 1,0
                     89: set xlabel "Normalized Time (wnt)"
                     90: set xrange [0:20]
                     91: set xtics 0,5,20
                     92: set yrange [0:2.0]
                     93: set ytics 0, .5, 2.0
                     94: set mytics 5
                     95: set mxtics 10
                     96: wdwn(zeta)=sqrt(1-zeta**2)
                     97: shift(zeta) = atan(wdwn(zeta)/zeta)
                     98: alpha(zeta)=zeta>1?sqrt(zeta**2-1.0):0
                     99: tau1(zeta)=1/(zeta-alpha(zeta))
                    100: tau2(zeta)=1/(zeta+alpha(zeta))
                    101: c1(zeta)=(zeta + alpha(zeta))/(2*alpha(zeta))
                    102: c2(zeta)=c1(zeta)-1
                    103: y1(wnt)=zeta==1?1 - exp(-wnt)*(wnt + 1):0
                    104: y2(wnt)=zeta<1?(1 - (exp(-zeta*wnt)/wdwn(zeta))*sin(wdwn(zeta)*wnt + shift(zeta))):y1(wnt)
                    105: y(wnt)=zeta>1?1-c1(zeta)*exp(-wnt/tau1(zeta))+c2(zeta)*exp(-wnt/tau2(zeta)):y2(wnt)
                    106: plot \
                    107:   zeta=.1,y(wnt), \
                    108:   zeta=.2,y(wnt), \
                    109:   zeta=.3,y(wnt), \
                    110:   zeta=.4,y(wnt), \
                    111:   zeta=.5,y(wnt), \
                    112:   zeta=.707,y(wnt), \
                    113:   zeta=1,y(wnt), \
                    114:   zeta=2,y(wnt)
                    115: #
                    116: #  Plot Impulse Response
                    117: set origin .5,0.
                    118: set title "Second Order System - Unit Impulse Response"
                    119: y(wnt)=exp(-zeta*wnt) * sin(wdwn(zeta)*wnt) / wdwn(zeta)
                    120: set yrange [-1. :1.]
                    121: set ytics -1,.5,1.
                    122: plot \
                    123:   zeta=.1,y(wnt), \
                    124:   zeta=.2,y(wnt), \
                    125:   zeta=.3,y(wnt), \
                    126:   zeta=.4,y(wnt), \
                    127:   zeta=.5,y(wnt), \
                    128:   zeta=.707,y(wnt), \
                    129:   zeta=1,y(wnt), \
                    130:   zeta=2,y(wnt)
                    131: set nomultiplot
                    132: #
                    133: #  Clean up: reset parameter defaults
                    134: #
                    135: reset

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>