I have a large set of coupled non-linear first order ODEs describing the time evolution of multiple variables a[t]....z[t]. For most of these, I have fixed initial conditions. For three of these, however, say x[t], y[t] and z[t], I want the initial conditions to be parametres I can scan over. These are also the variables I am solving for.
Essentially my code looks something like this:
sol = ParametricNDSolve[{.....x'[t]==...,y'[t]==...,z'[t]==...,...x[0]==x0,
y[0]==y0, z[0]==z0}, {x, y, z}, {t, 0, 10}, {x0, y0, z0}]
Now, when I trial specific initial conditions x0, y0, z0 (using regular NDSolve) I am able to get the full solution of x, y and z evolution at any time, and able to plot them. This works fine.
To some extent I can also use ParametricNDSolve with the variable initial conditions and trial specific ones using xinstance=x[0.2,0.3,0.4] /. sol (say). However, I am having some trouble specifying a range of x0, y0, and z0 values and having ParametricNDSolve scan over that range (producing a family of solutions, which I could plot on one plot). I have tried using test[x0_,y0_,z0_]=NDSolveValue[] and scan across test values but can't seem to be able to get the plot I want. I have also tried putting the initial conditions in a table with n entries and writing sol=Table[NDSolveValue[],{i,1,n}] but am running into trouble with this method too.
Finally, I should mention that there are singularities in the functions at different t values (depending on initial conditions) where NDSolve halts and gives me errors, ideally I would avoid these by only solving/plotting x, y, z from 0 to 1.
Any help would be really appreciated.

