I am trying to run the example usage code provided in the README.md
file of the ControlSystems.jl repository, but with the recent changes, it seems impossible to produce exactly the same stepplot()
results with plot(step())
as the recent changes note suggests.
As another specific use example, how would one use the new replacement for stepplot()
in the following?
using ControlSystems
using Plots
pyplot()
M = 7
K = 2.8
fv = [1.5 5 20]
wn = sqrt(K/M)
zetas = fv ./ (M * 2 * wn)
G = [ tf([wn^2], [1, 2*zeta*wn, wn^2]) for zeta in zetas ]
t = 0:0.01:40
stepplot(G, t, lw=3, label=[L"F_v="*"$(fv[1])" L"F_v="*"$(fv[2])" L"F_v="*"$(fv[3])"])
Thanks.
1 Like
Hey and welcome to the community! Thanks for pointing out the problem in the readme, I’ll fix it.
There are no plot recipes for vectors of SimResult
at the moment, but such recipes should perhaps be added.
Your example would currently look like this
M = 7
K = 2.8
fv = [1.5, 5, 20]
wn = sqrt(K/M)
zetas = fv ./ (M * 2 * wn)
G = [ tf([wn^2], [1, 2*zeta*wn, wn^2]) for zeta in zetas ]
t = 0:0.01:40
plot()
for (G, lab) in zip(G, ["F_v="*"$(fv[1])" "F_v="*"$(fv[2])" "F_v="*"$(fv[3])"])
plot!(step(G, t); lw=3, lab)
end
display(current())
2 Likes
https://github.com/JuliaControl/ControlSystems.jl/pull/594
you’ll soon be able to plot a vector of SimResult
rather than writing a loop, then your example will be
plot(step.(G, Ref(t)); lw=3, label=["F_v="*"$(fv[1])" "F_v="*"$(fv[2])" "F_v="*"$(fv[3])"])
4 Likes