@@ -57,67 +57,35 @@ function pidplots(P::LTISystem, args...; kps=0, kis=0, kds=0, time=false, series
57
57
pz_ = in (:pz ,args)
58
58
nichols_ = in (:nichols ,args)
59
59
60
-
61
- if nyquist_
62
- nq = Plots. plot ()
63
- end
64
- if gof_
65
- bd = Plots. subplot (n= 4 ,nc= 2 )
66
- end
67
- if pz_
68
- pz = Plots. plot ()
69
- end
70
- if controller_
71
- cplot = plot ()
72
- end
73
-
60
+ Cs = LTISystem[]
61
+ PCs = LTISystem[]
62
+ Ts = LTISystem[]
63
+ labels = Array {String,2} (1 ,length (kps))
64
+ colors = Array {Colors.RGB{Float64},2} (1 , length (kps))
74
65
for (i,kp) = enumerate (kps)
75
66
ki = kis[i]
76
67
kd = kds[i]
77
68
label = " \$ k_p = $(round (kp,3 )) , \\ quad k_i = $(round (ki,3 )) , \\ quad k_d = $(round (kd,3 )) \$ "
78
69
79
70
C = pid (kp= kp,ki= ki,kd= kd,time= time,series= series)
80
71
S,D,N,T = gangoffour (P,C)
81
-
82
- if nyquist_
83
- NQ = nyquist (P* C,ω)
84
- redata = NQ[1 ][:]
85
- imdata = NQ[2 ][:]
86
- ylim = (max (- 20 ,minimum (imdata)), min (20 ,maximum (imdata)))
87
- xlim = (max (- 20 ,minimum (redata)), min (20 ,maximum (redata)))
88
- Plots. plot! (nq,redata,imdata, ylims= ylim, xlims= xlim, lab= label, c= getColorSys (i))
89
- end
90
- if gof_
91
- BD = bode (S,ω)
92
- Plots. plot! (bd[1 ,1 ],BD[3 ][:],BD[1 ][:], lab= label, c= getColorSys (i))
93
- BD = bode (D,ω)
94
- Plots. plot! (bd[1 ,2 ],BD[3 ][:],BD[1 ][:], lab= label, c= getColorSys (i))
95
- BD = bode (N,ω)
96
- Plots. plot! (bd[2 ,1 ],BD[3 ][:],BD[1 ][:], lab= label, c= getColorSys (i))
97
- BD = bode (T,ω)
98
- Plots. plot! (bd[2 ,2 ],BD[3 ][:],BD[1 ][:], lab= label, c= getColorSys (i))
99
- end
100
- if pz_
101
- pzmap! (pz,T)
102
- end
103
- if controller_
104
- BD = bode (C,ω)
105
- Plots. plot! (cplot,BD[3 ][:],BD[1 ][:], lab= label, c= getColorSys (i))
106
- end
72
+ push! (Cs, C)
73
+ push! (PCs, P* C)
74
+ push! (Ts, T)
75
+ labels[i] = label
107
76
end
108
77
109
- nyquist_ && Plots. plot! (nq,legend= true , title= " Nyquist curves" )
78
+ if nyquist_
79
+ nq = nyquistplot (PCs, ω, lab= labels, title= " Nyquist curves" )
80
+ end
110
81
if gof_
111
- Plots. plot! (bd[1 ,1 ],legend= true , title= " S" , xscale= :log10 , yscale= :log10 )
112
- Plots. plot! (bd[1 ,2 ],legend= true , title= " D" , xscale= :log10 , yscale= :log10 )
113
- Plots. plot! (bd[2 ,1 ],legend= true , title= " N" , xscale= :log10 , yscale= :log10 )
114
- Plots. plot! (bd[2 ,2 ],legend= true , title= " T" , xscale= :log10 , yscale= :log10 )
82
+ bd = gangoffourplot (P, Cs, ω, lab= labels)
115
83
end
116
84
if pz_
117
- Plots . plot! (pz, title= " Pole-zero map" )
85
+ pzmap (Ts, title= " Pole-zero map" )
118
86
end
119
87
if controller_
120
- Plots . plot! ( cplot, title= " Controller bode plot" ,legend = true , xscale = :log10 , yscale = :log10 )
88
+ cplot = bodeplot (Cs, ω, lab = labels, title= " Controller bode plot" )
121
89
end
122
90
123
91
0 commit comments