MultiModel and MultiSynthesis

In this part, an experimental part of the code is presented and concerns the case of multiple zero of the function provided by the check_root method exists. In this case, multiple singular arc can occur.

First, let introduce an exemple of model where there exists multiple zero of the function.

using Filtration
using Plots

e(m,p)  = exp(-m - sin(m)^2)

ff(m,p) = 1/(m+1)
fb(m,p) = -m
ef(m,p) = e(m,p)
eb(m,p) = -e(m,p)
gf(m,p) = 1.
gb(m,p) = 1.

plt_root = check_root(ef, eb, ff, fb, [1.], :max, initial_guess = [0.5, 2, 2.5], xlim = (0, 5), linewidth = 2, label = "Real")
Example block output

As we can see, there exists multiple zero of the plotted function. An experimental code is developped to provide the synthesis associaated to this kind of model.

Warning

This code was only tested on this example, and not all case are considered. Please be carefull with the solution and don't consider that it provide the truth on another model.

ylim = (0, 5); xlim = (0, 10)
multimodel = MultiModel(ef, eb, ff, fb, [1.], :max, [0.5, 2, 2.5]);
multisynthesis = MultiSynthesis(multimodel, xlim, ylim)
plt = plot(multisynthesis, xlim = xlim, ylim = ylim, xlabel = "Time (t)", ylabel = "Mass (m)")