I am trying to fit parameters in a ModelingToolkit model using DiffEqParamEstim. This works well when fitting all parameters contained in the model, but I would like to keep some of them fixed. For example, in the following example I would like to fit `b`

but keep `a`

fixed. I was hoping to achieve this via `defaults`

, but it seems that all parameters in `sys`

are passed into the fit. Does anyone know how this could be done? The idea is to be able to change which parameters are fitted without redefining the model itself.

```
using ModelingToolkit
using DifferentialEquations
using DiffEqParamEstim
using BlackBoxOptim
@variables t x[1:3](t)
@parameters a b
Dt = Differential(t)
x = Symbolics.scalarize(x)
eqs = Dt.(x) .~ a .* x .- b .* (x .^ 2)
@named sys = ODESystem(eqs, defaults=[a=>0.5])
u0 = vcat(x .=> [1.0, 5.0, 10.0])
time = collect(0:0.1:10)
prob = ODEProblem(sys, u0, (0.0,10.0), [b=>0.2], saveat=time)
sol = solve(prob)
# use these time traces for fit
expt = transpose(hcat(sol.u...))
bounds = [(0,10),(0,10)]
function lossfunc(sol)
sim = transpose(hcat(sol.u...))
sum(abs2, sim .- expt)
end
costfunc = build_loss_objective(prob,Tsit5(),lossfunc)
resultBBO = bboptimize(costfunc; SearchRange = bounds, MaxTime=10)
2-element Vector{Float64}:
0.2
0.5
```