module steam_governor
using ReachabilityAnalysis
@taylorize function steam_governor!(du, u, p, t)
local ϵ = 3.0
local α = 1.0
local β = 1.0
du[1] = u[2]
du[2] = u[3]^2 * sin(u[1]) * cos(u[1]) - sin(u[1]) - ϵ * u[2]
du[3] = α * (cos(u[1]) - β)
return du
end
function model(X0)
S = @system(x' = steam_governor!(x), dim:3)
return IVP(S, X0)
end
end # module
Main.steam_governor