A Full Featured Plotting Example

Usage: Throw both files (*.gnuplot and Makefile) in the same folder. From this folder open a terminal. At the prompt type 'make'. That s it.

vi_characteristic.gnuplot
#!/usr/bin/env gnuplot
 
### Strom/Spannungs Charakteristik eines Varistors (Modell nach M. Reisch)
I(v) = sgn(v) * Iv * (abs(v)/Vv)**gamma
V(i) = sgn(i) * Vv * (abs(i)/Iv)**beta
 
### Parameter für EPCOS Varistor S20k115
print "\nParameters from datasheet:"
 
# Ansprechspannung (varistor voltage)
Vv = 180.0	# [V]
Iv = 0.001	# [A]
print "Varistor voltage Vv = ", Vv, "V @ Iv = ", Iv, "A"
 
# Klemmspannung (clamping voltage)
Vc = 300.0	# [V]
Ic = 100.0	# [A]
print "Clamping voltage Vc = ", Vc, "V @ Ic = ", Ic, "A"
 
print "\nComputation:"
 
# Stromindex (current index)
beta = log10(Vv/Vc)/log10(Iv/Ic)
print "Current index 'beta': ", beta
 
# Spannungsindex (voltage index)
gamma = 1/beta
print "Voltage index 'gamma': ", gamma
 
print ""
 
### Diagramm Erscheinungsbild festlegen
set title "SPICE Varistor Modell nach M. Reisch"
set grid			# Diagrammhintergrund mit Gitternetz
set style data lines		# Daten als Kurvenzug zeichnen
set style function lines
 
### x-Achse festlegen
set xlabel "Strom [A]"		# Benennung der x-Achse
set xrange [-10E3:10E3]		# Wertebereich der x-Achse
#set xtics 2000
set xtics format "%.0s%c"
 
### y-Achse festlegen
set ylabel "Spannung [V]"
 
### Ausgabe am Bildschirm
plot V(x)
call 'export.gp' figure_001 pdf
pause mouse keypress "Weiter mit Eingabe-Taste im Plot Fenster.\n"
 
### x-Achse festlegen
set xrange [0.0001:1000]	# Wertebereich der x-Achse
set logscale x
set grid mxtics			# Diagrammhintergrund mit Gitternetz
set mxtics 10
 
### y-Achse festlegen
set logscale y
set grid mytics			# Diagrammhintergrund mit Gitternetz
#set ytics add ("Vc" 300)
#set ytics add ("Vv" 180)
 
### Ausgabe am Bildschirm
plot V(x)
call 'export.gp' figure_002 pdf
pause mouse keypress "Weiter mit Eingabe-Taste im Plot Fenster.\n"
Makefile
### Source files
EXT := gnuplot
GPLT := $(wildcard *.$(EXT))
 
all: export.gp plots
 
plots: $(GPLT)
	gnuplot $<
 
new: clean all
 
clean:
	@echo "$(MAKE): Clean up workspace..."
	@rm -fv *.pdf
	@rm -fv *.png
	@rm -fv *.emf
	@rm -fv *.log
	@rm -fv export.gp
	@echo "$(MAKE): Done."
 
define EXPORT_GPLT
### Ausgabe im Datei exportieren
set terminal $$1		# Neues Ausgabemedium festlegen
set output "$$0".".$$1"	# Dateiname festlegen
replot			# Diagramm ins Ausgabemedium zeichnen
set terminal pop	# Ursprüngliches Ausgabemedium wiederherstellen
endef
 
export EXPORT_GPLT
export.gp:
	@echo "$$EXPORT_GPLT" > $@