Band Structure

Time expressed in units of (1/(4 (Subscript[ω, r]))). p0 represented as 2*j*ℏ*k.

Clear[Ω];
Clear[j];
bandTerms=10;

bandMatrix=Table[If[n==m,1,0]*(((j+n))^2)+(If[n-1==m,1,0]+If[n+1==m,1,0])*((Ω/2)),{n,-bandTerms,bandTerms},{m,-bandTerms,bandTerms}];

bandMatrix//MatrixForm

nState[n_,omega_,p0_]:=(
eigensystem=Eigensystem[bandMatrix/.{Ω->(omega//N),j->(p0//N)}];
sortedeigensystem=Sort[Table[{eigensystem[[1]][[i]],eigensystem[[2]][[i]]},{i,1,Length[eigensystem[[1]]]}],#1[[1]]<#2[[1]]&];
sortedeigensystem[[n]][[2]]
)

nEigenvalue[n_,omega_,p0_]:=Sort[Eigenvalues[bandMatrix/.{Ω->(omega//N),j->(p0//N)}],Less][[n]]

Ω=0*(Subscript[ω, r]), looks like a set of parabolas, free particles will tunnel between different bands where the bands cross

Plot[Table[nEigenvalue[k,0,j],{k,1,4}],{j,-2,2}]

just look at the first band

Plot[Table[nEigenvalue[k,0,j],{k,1,1}],{j,-2,2}]

Ω=0.2*(Subscript[ω, r]), as Ω gets bigger, gaps between the bands start to emerge

Plot[Table[nEigenvalue[k,0.2,j],{k,1,4}],{j,-2,2}]

Ω=1*(Subscript[ω, r])

Plot[Table[nEigenvalue[k,1,j],{k,1,4}],{j,-2,2}]

Ω=2*(Subscript[ω, r]), with deeper lattice, lower bands start to flatten

Plot[Table[nEigenvalue[k,2,j],{k,1,4}],{j,-2,2}]

We can also look at the eigenstates for different values of Ω and p0

ground state for Ω = 0, j = 0 (all population in central momentum state, n =0)

ListPlot[(((nState[1,0,0]//Abs))^2),Joined->True,PlotRange->{0,1}]

ground state for Ω = 2, j = 0 (population spreads out over multiple momentum states)

ListPlot[(((nState[1,2,0]//Abs))^2),Joined->True,PlotRange->{0,1}]

ground state for Ω = 2, j = 0.25 (for nonzero j, population distribution among momentum states becomes asymmetric)

ListPlot[(((nState[1,2,0.25]//Abs))^2),Joined->True,PlotRange->{0,1}]

Bloch Oscillations and Lattice Acceleration

Spline Code

•Degree-j Polynomial Ramps

j=3;
p=(∑_(n = 0)^j) (Subscript[b, n])*(x^n); polycoefs=Table[(Subscript[b, n]),{n,0,j}];
eqs=Join[{(D[p,x]/.x->(Subscript[x, initial]))==(Subscript[m, 1]),(D[p,x]/.x->(Subscript[x, final]))==(Subscript[m, 2])},Table[(p/.x->((Subscript[x, initial])+(((Subscript[x, final])-(Subscript[x, initial]))/(j-2))*(i-1)))==(Subscript[y, i]),{i,1,j-1}]];
polysol=Solve[eqs,polycoefs];
PolySpline[Join[{X1_,X2_,M1_,M2_},Table[(Overscript[P, i])_,{i,1,j-1}]],X_]:=p/.polysol/.Join[{(Subscript[x, initial])->X1,(Subscript[x, final])->X2,(Subscript[m, 1])->M1,(Subscript[m, 2])->M2,x->X},Table[(Subscript[y, i])->(Overscript[P, i]),{i,1,j-1}]]

spline3=PolySpline[{τ0,τ0+(Subscript[T, accel]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_},t]/.{(Overscript[P, 1])->0,(Overscript[P, 2])->α*(Subscript[T, accel])}//Simplify

Plot[Evaluate[spline3/.{τ0->0,(Subscript[T, accel])->10,α->2}],{t,0,10}]

spline3b1=PolySpline[{τ0,τ0+τ1,0,0,(Overscript[P, 1])_,(Overscript[P, 2])_},t]/.{(Overscript[P, 1])->0,(Overscript[P, 2])->α*τ1}//Simplify

spline3b2=PolySpline[{τ0+τ1,τ0+(Subscript[T, accel]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_},t]/.{(Overscript[P, 1])->α*τ1,(Overscript[P, 2])->α*(Subscript[T, accel])}//Simplify

spline3b=(Piecewise[{{PolySpline[{τ0,τ0+τ1,0,0,(Overscript[P, 1])_,(Overscript[P, 2])_},t]/.{(Overscript[P, 1])->0,(Overscript[P, 2])->α*τ1}//Simplify, t≤τ0+τ1}, {PolySpline[{τ0+τ1,τ0+(Subscript[T, accel]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_},t]/.{(Overscript[P, 1])->α*τ1,(Overscript[P, 2])->α*(Subscript[T, accel])}//Simplify, τ0+τ1<t}}])

Plot[Evaluate[spline3b/.{τ0->0,(Subscript[T, accel])->10,α->2,τ1->8}],{t,0,10}]

j=4;
p=(∑_(n = 0)^j) (Subscript[b, n])*(x^n); polycoefs=Table[(Subscript[b, n]),{n,0,j}];
eqs=Join[{(D[p,x]/.x->(Subscript[x, initial]))==(Subscript[m, 1]),(D[p,x]/.x->(Subscript[x, final]))==(Subscript[m, 2])},Table[(p/.x->((Subscript[x, initial])+(((Subscript[x, final])-(Subscript[x, initial]))/(j-2))*(i-1)))==(Subscript[y, i]),{i,1,j-1}]];
polysol=Solve[eqs,polycoefs];
PolySpline[Join[{X1_,X2_,M1_,M2_},Table[(Overscript[P, i])_,{i,1,j-1}]],X_]:=p/.polysol/.Join[{(Subscript[x, initial])->X1,(Subscript[x, final])->X2,(Subscript[m, 1])->M1,(Subscript[m, 2])->M2,x->X},Table[(Subscript[y, i])->(Overscript[P, i]),{i,1,j-1}]]

Here I have generated a quartic spline.

spline4=PolySpline[{τ0,τ0+(Subscript[T, accel]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_},t]/.{(Overscript[P, 1])->0,(Overscript[P, 2])->-(1/5)*α*(Subscript[T, accel]),(Overscript[P, 3])->α*(Subscript[T, accel])}//Simplify

Plot[Evaluate[spline4/.{τ0->0,(Subscript[T, accel])->10,α->2}],{t,0,10}]

j=5;
p=(∑_(n = 0)^j) (Subscript[b, n])*(x^n); polycoefs=Table[(Subscript[b, n]),{n,0,j}];
eqs=Join[{(D[p,x]/.x->(Subscript[x, initial]))==(Subscript[m, 1]),(D[p,x]/.x->(Subscript[x, final]))==(Subscript[m, 2])},Table[(p/.x->((Subscript[x, initial])+(((Subscript[x, final])-(Subscript[x, initial]))/(j-2))*(i-1)))==(Subscript[y, i]),{i,1,j-1}]];
polysol=Solve[eqs,polycoefs];
PolySpline[Join[{X1_,X2_,M1_,M2_},Table[(Overscript[P, i])_,{i,1,j-1}]],X_]:=p/.polysol/.Join[{(Subscript[x, initial])->X1,(Subscript[x, final])->X2,(Subscript[m, 1])->M1,(Subscript[m, 2])->M2,x->X},Table[(Subscript[y, i])->(Overscript[P, i]),{i,1,j-1}]]

spline5=PolySpline[{τ0,τ0+(Subscript[T, accel]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_},t]/.{(Overscript[P, 1])->0,(Overscript[P, 2])->((-1)/5)α*(Subscript[T, accel]),(Overscript[P, 3])->2*α*(Subscript[T, accel]),(Overscript[P, 4])->α*(Subscript[T, accel])}//Simplify

Plot[Evaluate[spline5/.{τ0->0,(Subscript[T, accel])->10,α->2}],{t,0,10}]

spline5b=PolySpline[{τ0,τ0+(Subscript[T, accel]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_},t]/.{(Overscript[P, 1])->0,(Overscript[P, 2])->-α*(Subscript[T, accel]),(Overscript[P, 3])->(3/2)*α*(Subscript[T, accel]),(Overscript[P, 4])->α*(Subscript[T, accel])}//Simplify

Plot[Evaluate[spline5b/.{τ0->0,(Subscript[T, accel])->10,α->2}],{t,0,10}]

j=6;
p=(∑_(n = 0)^j) (Subscript[b, n])*(x^n); polycoefs=Table[(Subscript[b, n]),{n,0,j}];
eqs=Join[{(D[p,x]/.x->(Subscript[x, initial]))==(Subscript[m, 1]),(D[p,x]/.x->(Subscript[x, final]))==(Subscript[m, 2])},Table[(p/.x->((Subscript[x, initial])+(((Subscript[x, final])-(Subscript[x, initial]))/(j-2))*(i-1)))==(Subscript[y, i]),{i,1,j-1}]];
polysol=Solve[eqs,polycoefs];
PolySpline[Join[{X1_,X2_,M1_,M2_},Table[(Overscript[P, i])_,{i,1,j-1}]],X_]:=p/.polysol/.Join[{(Subscript[x, initial])->X1,(Subscript[x, final])->X2,(Subscript[m, 1])->M1,(Subscript[m, 2])->M2,x->X},Table[(Subscript[y, i])->(Overscript[P, i]),{i,1,j-1}]]

spline6=PolySpline[{τ0,τ0+(Subscript[T, accel]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_,(Overscript[P, 5])_},t]/.{(Overscript[P, 1])->0,(Overscript[P, 2])->(1/2)*α*(Subscript[T, accel]),(Overscript[P, 3])->-(1/6)*α*(Subscript[T, accel]),(Overscript[P, 4])->(5/4)*α*(Subscript[T, accel]),(Overscript[P, 5])->α*(Subscript[T, accel])}//Simplify

Plot[Evaluate[spline6/.{τ0->0,(Subscript[T, accel])->10,α->2}],{t,0,10}]

spline6b=PolySpline[{τ0,τ0+(Subscript[T, accel]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_,(Overscript[P, 5])_},t]/.{(Overscript[P, 1])->0,(Overscript[P, 2])->(1/2)*α*(Subscript[T, accel]),(Overscript[P, 3])->-(1/5)*α*(Subscript[T, accel]),(Overscript[P, 4])->(5/4)*α*(Subscript[T, accel]),(Overscript[P, 5])->α*(Subscript[T, accel])}//Simplify

Plot[Evaluate[spline6b/.{τ0->0,(Subscript[T, accel])->10,α->2}],{t,0,10}]

•Lattice Acceleration Ramps

ϕ2[τ_]:=(Piecewise[{{0, τ<τ0}, {(1/2)*α*(((τ-τ0))^2), τ0≤τ≤(τ0+(Subscript[T, accel]))}, {α*(Subscript[T, accel])*(τ-(τ0+(Subscript[T, accel])))+(1/2)*α*((Subscript[T, accel])^2), (τ0+(Subscript[T, accel]))<τ}}])

g2=ϕ2[τ]
f2=D[ϕ2[τ],τ]

PhaseSpline3=Integrate[spline3,{t,τ0,τ}]

phase3=Evaluate[PhaseSpline3[[1]]/.{τ->(τ0+(Subscript[T, accel]))}]

ϕ3[τ_]:=(Piecewise[{{0, τ<τ0}, {PhaseSpline3[[1]], τ0≤τ≤(τ0+(Subscript[T, accel]))}, {α*(Subscript[T, accel])*(τ-(τ0+(Subscript[T, accel])))+phase3, (τ0+(Subscript[T, accel]))<τ}}])

g3=ϕ3[τ]//Simplify
f3=D[ϕ3[τ],τ]//Simplify

f3

PhaseSpline3b1=Integrate[spline3b1,{t,τ0,τ}]

phase3b1=Evaluate[PhaseSpline3b1/.{τ->(τ0+τ1)}]

PhaseSpline3b2=Integrate[spline3b2,{t,τ0+τ1,τ}]+phase3b1

PhaseSpline3b=(Piecewise[{{PhaseSpline3b1, τ≤τ0+τ1}, {PhaseSpline3b2, τ0+τ1<τ}}]);
phase3b=Evaluate[PhaseSpline3b2/.{τ->(τ0+(Subscript[T, accel]))}];
ϕ3b[τ_]:=(Piecewise[{{0, τ<τ0}, {PhaseSpline3b, τ0≤τ≤(τ0+(Subscript[T, accel]))}, {α*(Subscript[T, accel])*(τ-(τ0+(Subscript[T, accel])))+phase3b, (τ0+(Subscript[T, accel]))<τ}}])
g3b=ϕ3b[τ]//Simplify
f3b=D[ϕ3b[τ],τ]//Simplify
Null

PhaseSpline4=Integrate[spline4,{t,τ0,τ}]//Simplify

phase4=Evaluate[PhaseSpline4/.{τ->(τ0+(Subscript[T, accel]))}]

ϕ4[τ_]:=(Piecewise[{{0, τ<τ0}, {PhaseSpline4, τ0≤τ≤(τ0+(Subscript[T, accel]))}, {α*(Subscript[T, accel])*(τ-(τ0+(Subscript[T, accel])))+phase4, (τ0+(Subscript[T, accel]))<τ}}])

ϕ4[τ]//Simplify
D[ϕ4[τ],τ]//Simplify

PhaseSpline5=Integrate[spline5,{t,τ0,τ}]//Simplify;
phase5=Evaluate[PhaseSpline5/.{τ->(τ0+(Subscript[T, accel]))}];
ϕ5[τ_]:=(Piecewise[{{0, τ<τ0}, {PhaseSpline5, τ0≤τ≤(τ0+(Subscript[T, accel]))}, {α*(Subscript[T, accel])*(τ-(τ0+(Subscript[T, accel])))+phase5, (τ0+(Subscript[T, accel]))<τ}}])

PhaseSpline5b=Integrate[spline5b,{t,τ0,τ}]//Simplify;
phase5b=Evaluate[PhaseSpline5b/.{τ->(τ0+(Subscript[T, accel]))}];
ϕ5b[τ_]:=(Piecewise[{{0, τ<τ0}, {PhaseSpline5b, τ0≤τ≤(τ0+(Subscript[T, accel]))}, {α*(Subscript[T, accel])*(τ-(τ0+(Subscript[T, accel])))+phase5b, (τ0+(Subscript[T, accel]))<τ}}])

PhaseSpline6=Integrate[spline6,{t,τ0,τ}]//Simplify

phase6=Evaluate[PhaseSpline6/.{τ->(τ0+(Subscript[T, accel]))}]

ϕ6[τ_]:=(Piecewise[{{0, τ<τ0}, {PhaseSpline6, τ0≤τ≤(τ0+(Subscript[T, accel]))}, {α*(Subscript[T, accel])*(τ-(τ0+(Subscript[T, accel])))+phase6, (τ0+(Subscript[T, accel]))<τ}}])

g6=ϕ6[τ]//Simplify
f6=D[ϕ6[τ],τ]//Simplify

PhaseSpline6b=Integrate[spline6b,{t,τ0,τ}]//Simplify;
phase6b=Evaluate[PhaseSpline6b/.{τ->(τ0+(Subscript[T, accel]))}];
ϕ6b[τ_]:=(Piecewise[{{0, τ<τ0}, {PhaseSpline6b, τ0≤τ≤(τ0+(Subscript[T, accel]))}, {α*(Subscript[T, accel])*(τ-(τ0+(Subscript[T, accel])))+phase6b, (τ0+(Subscript[T, accel]))<τ}}])

g6b=ϕ6b[τ]//Simplify
f6b=D[ϕ6b[τ],τ]//Simplify

Plot[Evaluate[ϕ2[τ]/.{τ0->0,(Subscript[T, accel])->10,α->2}],{τ,0,15}]

Plot[Evaluate[D[ϕ2[τ],τ]/.{τ0->0,(Subscript[T, accel])->10,α->2}],{τ,0,15}]

Plot[Evaluate[ϕ3[τ]/.{τ0->0,(Subscript[T, accel])->10,α->2}],{τ,0,15}]

Plot[Evaluate[D[ϕ3[τ],τ]/.{τ0->0,(Subscript[T, accel])->10,α->2}],{τ,0,15}]

Plot[Evaluate[ϕ3b[τ]/.{τ0->3,(Subscript[T, accel])->10,α->2,τ1->8}],{τ,0,15}]

Plot[Evaluate[D[ϕ3b[τ],τ]/.{τ0->3,(Subscript[T, accel])->10,α->2,τ1->8}],{τ,0,15}]

Plot[Evaluate[ϕ4[τ]/.{τ0->0,(Subscript[T, accel])->10,α->2}],{τ,0,15}]

Plot[Evaluate[D[ϕ4[τ],τ]/.{τ0->0,(Subscript[T, accel])->10,α->2}],{τ,0,15}]

Plot[Evaluate[ϕ5[τ]/.{τ0->0,(Subscript[T, accel])->10,α->2}],{τ,0,15}]

Plot[Evaluate[D[ϕ5[τ],τ]/.{τ0->0,(Subscript[T, accel])->10,α->2}],{τ,0,15}]

Plot[Evaluate[ϕ5b[τ]/.{τ0->0,(Subscript[T, accel])->10,α->2}],{τ,0,15}]

Plot[Evaluate[D[ϕ5b[τ],τ]/.{τ0->0,(Subscript[T, accel])->10,α->2}],{τ,0,15}]

Plot[Evaluate[ϕ6[τ]/.{τ0->0,(Subscript[T, accel])->10,α->2}],{τ,0,15}]

Plot[Evaluate[D[ϕ6[τ],τ]/.{τ0->0,(Subscript[T, accel])->10,α->2}],{τ,0,15}]

Plot[Evaluate[ϕ6b[τ]/.{τ0->0,(Subscript[T, accel])->10,α->2}],{τ,0,15}]

Plot[Evaluate[D[ϕ6b[τ],τ]/.{τ0->0,(Subscript[T, accel])->10,α->2}],{τ,0,15}]

•Lattice Depth Ramps

DepthIncreaseSpline3=PolySpline[{0,(Subscript[T, ramp]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_},τ]/.{(Overscript[P, 1])->0,(Overscript[P, 2])->Ω}//Simplify;
DepthDecreaseSpline3=PolySpline[{(Subscript[T, ramp])+(Subscript[T, accel]),2
*(Subscript[T, ramp])+(Subscript[T, accel]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_},τ]/.{(Overscript[P, 1])->Ω,(Overscript[P, 2])->0}//Simplify;
Ωramp3=(Piecewise[{{DepthIncreaseSpline3[[1]], τ≤(Subscript[T, ramp])}, {Ω, (Subscript[T, ramp])≤τ≤((Subscript[T, ramp])+(Subscript[T, accel]))}, {DepthDecreaseSpline3[[1]], ((Subscript[T, ramp])+(Subscript[T, accel]))≤τ}}])

Plot[Evaluate[Ωramp3/.{Ω->20,(Subscript[T, ramp])->30,(Subscript[T, accel])->4}],{τ,0,64}]

DepthIncreaseSpline3cp=PolySpline[{0,(Subscript[T, ramp]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_},τ]/.{(Overscript[P, 1])->0,(Overscript[P, 2])->Ω}//Simplify;
DepthDecreaseSpline3cp=PolySpline[{2*τ0+(Subscript[T, accel])-(Subscript[T, ramp]),2
*τ0+(Subscript[T, accel]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_},τ]/.{(Overscript[P, 1])->Ω,(Overscript[P, 2])->0}//Simplify;
Ωramp3cp[τ_]:=(Piecewise[{{DepthIncreaseSpline3cp, τ≤(Subscript[T, ramp])}, {Ω, (Subscript[T, ramp])≤τ≤(2*τ0+(Subscript[T, accel])-(Subscript[T, ramp]))}, {DepthDecreaseSpline3cp, (2*τ0+(Subscript[T, accel])-(Subscript[T, ramp]))≤τ}}])

Plot[Evaluate[Ωramp3cp[τ]/.{Ω->20,(Subscript[T, ramp])->30,(Subscript[T, accel])->100,τ0->20}],{τ,0,140}]

DepthIncreaseSpline3=PolySpline[{0,(Subscript[T, ramp]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_},τ]/.{(Overscript[P, 1])->0,(Overscript[P, 2])->Ω}//Simplify;
DepthDecreaseSpline3=PolySpline[{(Subscript[T, ramp])+(Subscript[T, accel]),2
*(Subscript[T, ramp])+(Subscript[T, accel]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_},τ]/.{(Overscript[P, 1])->Ω,(Overscript[P, 2])->0}//Simplify;
Ωramp3const[τ_]:=(Piecewise[{{DepthIncreaseSpline3, τ≤(Subscript[T, ramp])}, {{Ω}, (Subscript[T, ramp])≤τ≤((Subscript[T, ramp])+(Subscript[T, accel]))}, {{Ω}, ((Subscript[T, ramp])+(Subscript[T, accel]))≤τ}}])

Plot[Evaluate[Ωramp3const[τ]/.{Ω->20,(Subscript[T, ramp])->30,(Subscript[T, accel])->4}],{τ,0,64}]

DepthIncreaseSpline3rev=PolySpline[{0,(Subscript[T, ramp]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_},τ]/.{(Overscript[P, 1])->0,(Overscript[P, 2])->Ω}//Simplify;
DepthDecreaseSpline3rev=PolySpline[{(Subscript[T, ramp])+4*(Subscript[T, accel]),2
*(Subscript[T, ramp])+4*(Subscript[T, accel]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_},τ]/.{(Overscript[P, 1])->Ω,(Overscript[P, 2])->0}//Simplify;
Ωramp3rev[τ_]:=(Piecewise[{{DepthIncreaseSpline3rev, τ≤(Subscript[T, ramp])}, {Ω, (Subscript[T, ramp])≤τ≤((Subscript[T, ramp])+4*(Subscript[T, accel]))}, {DepthDecreaseSpline3rev, ((Subscript[T, ramp])+4*(Subscript[T, accel]))≤τ}}])

Plot[Evaluate[Ωramp3rev[τ]/.{Ω->20,(Subscript[T, ramp])->30,(Subscript[T, accel])->4}],{τ,0,76}]

DepthIncreaseSpline4=PolySpline[{0,(Subscript[T, ramp]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_},τ]/.{(Overscript[P, 1])->0,(Overscript[P, 2])->-(1/5)*Ω,(Overscript[P, 3])->Ω}//Simplify;
DepthDecreaseSpline4=PolySpline[{(Subscript[T, ramp])+(Subscript[T, accel]),2*(Subscript[T, ramp])+(Subscript[T, accel]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_},τ]/.{(Overscript[P, 1])->Ω,(Overscript[P, 2])->-(1/5)*Ω,(Overscript[P, 3])->0}//Simplify;
Ωramp4[τ_]:=(Piecewise[{{DepthIncreaseSpline4, τ≤(Subscript[T, ramp])}, {Ω, (Subscript[T, ramp])≤τ≤((Subscript[T, ramp])+(Subscript[T, accel]))}, {DepthDecreaseSpline4, ((Subscript[T, ramp])+(Subscript[T, accel]))≤τ}}])

Plot[Evaluate[Ωramp4[τ]/.{Ω->20,(Subscript[T, ramp])->30,(Subscript[T, accel])->4}],{τ,0,64}]

DepthIncreaseSpline4cp=PolySpline[{0,(Subscript[T, ramp]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_},τ]/.{(Overscript[P, 1])->0,(Overscript[P, 2])->(1/5)*Ω,(Overscript[P, 3])->Ω}//Simplify;
DepthDecreaseSpline4cp=PolySpline[{2*τ0+(Subscript[T, accel])-(Subscript[T, ramp]),2
*τ0+(Subscript[T, accel]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_},τ]/.{(Overscript[P, 1])->Ω,(Overscript[P, 2])->(1/5)*Ω,(Overscript[P, 3])->0}//Simplify;
Ωramp4cp[τ_]:=(Piecewise[{{DepthIncreaseSpline4cp, τ≤(Subscript[T, ramp])}, {Ω, (Subscript[T, ramp])≤τ≤(2*τ0+(Subscript[T, accel])-(Subscript[T, ramp]))}, {DepthDecreaseSpline4cp, (2*τ0+(Subscript[T, accel])-(Subscript[T, ramp]))≤τ}}])

Plot[Evaluate[Ωramp4cp[τ]/.{Ω->20,(Subscript[T, ramp])->30,(Subscript[T, accel])->100,τ0->20}],{τ,0,140}]

DepthIncreaseSpline5=PolySpline[{0,(Subscript[T, ramp]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_},τ]/.{(Overscript[P, 1])->0,(Overscript[P, 2])->(3/5)*Ω,(Overscript[P, 3])->(1/4)*Ω,(Overscript[P, 4])->Ω}//Simplify;
DepthDecreaseSpline5=PolySpline[{(Subscript[T, ramp])+(Subscript[T, accel]),2*(Subscript[T, ramp])+(Subscript[T, accel]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_},τ]/.{(Overscript[P, 1])->Ω,(Overscript[P, 2])->(1/4)*Ω,(Overscript[P, 3])->(3/5)*Ω,(Overscript[P, 4])->0}//Simplify;
Ωramp5[τ_]:=(Piecewise[{{DepthIncreaseSpline5, τ≤(Subscript[T, ramp])}, {Ω, (Subscript[T, ramp])≤τ≤((Subscript[T, ramp])+(Subscript[T, accel]))}, {DepthDecreaseSpline5, ((Subscript[T, ramp])+(Subscript[T, accel]))≤τ}}])

Plot[Evaluate[Ωramp5[τ]/.{Ω->20,(Subscript[T, ramp])->30,(Subscript[T, accel])->4}],{τ,0,64}]

DepthIncreaseSpline5cp=PolySpline[{0,(Subscript[T, ramp]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_},τ]/.{(Overscript[P, 1])->0,(Overscript[P, 2])->(1/7)*Ω,(Overscript[P, 3])->(2/5)*Ω,(Overscript[P, 4])->Ω}//Simplify;
DepthDecreaseSpline5cp=PolySpline[{2*τ0+(Subscript[T, accel])-(Subscript[T, ramp]),2
*τ0+(Subscript[T, accel]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_},τ]/.{(Overscript[P, 1])->Ω,(Overscript[P, 2])->(2/5)*Ω,(Overscript[P, 3])->(1/7)*Ω,(Overscript[P, 4])->0}//Simplify;
Ωramp5cp[τ_]:=(Piecewise[{{DepthIncreaseSpline5cp, τ≤(Subscript[T, ramp])}, {Ω, (Subscript[T, ramp])≤τ≤(2*τ0+(Subscript[T, accel])-(Subscript[T, ramp]))}, {DepthDecreaseSpline5cp, (2*τ0+(Subscript[T, accel])-(Subscript[T, ramp]))≤τ}}])

Plot[Evaluate[Ωramp5cp[τ]/.{Ω->20,(Subscript[T, ramp])->30,(Subscript[T, accel])->100,τ0->20}],{τ,0,140}]

DepthIncreaseSpline5cprev=PolySpline[{0,(Subscript[T, ramp]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_},τ]/.{(Overscript[P, 1])->0,(Overscript[P, 2])->(1/7)*Ω,(Overscript[P, 3])->(2/5)*Ω,(Overscript[P, 4])->Ω}//Simplify;
DepthDecreaseSpline5cprev=PolySpline[{2*τ0+4*(Subscript[T, accel])-(Subscript[T, ramp]),2
*τ0+4*(Subscript[T, accel]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_},τ]/.{(Overscript[P, 1])->Ω,(Overscript[P, 2])->(2/5)*Ω,(Overscript[P, 3])->(1/7)*Ω,(Overscript[P, 4])->0}//Simplify;
Ωramp5cprev[τ_]:=(Piecewise[{{DepthIncreaseSpline5cprev, τ≤(Subscript[T, ramp])}, {Ω, (Subscript[T, ramp])≤τ≤(2*τ0+4*(Subscript[T, accel])-(Subscript[T, ramp]))}, {DepthDecreaseSpline5cprev, (2*τ0+4*(Subscript[T, accel])-(Subscript[T, ramp]))≤τ}}])

Plot[Evaluate[Ωramp5cprev[τ]/.{Ω->20,(Subscript[T, ramp])->30,(Subscript[T, accel])->100,τ0->20}],{τ,0,440}]

DepthIncreaseSpline5cprevb=PolySpline[{0,(Subscript[T, ramp]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_},τ]/.{(Overscript[P, 1])->0,(Overscript[P, 2])->(1/7)*Ω,(Overscript[P, 3])->(2/5)*Ω,(Overscript[P, 4])->Ω}//Simplify;
DepthDecreaseSpline5cprevb=PolySpline[{2*τ0+4*(Subscript[T, accel])-(Subscript[T, ramp]),2
*τ0+4*(Subscript[T, accel]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_},τ]/.{(Overscript[P, 1])->Ω,(Overscript[P, 2])->(2/5)*Ω,(Overscript[P, 3])->(1/7)*Ω,(Overscript[P, 4])->0}//Simplify;
DepthDecreaseSpline5cprevb2=PolySpline[{2*τ0+2*(Subscript[T, accel])-(Subscript[T, ramp]),
2*τ0+2*(Subscript[T, accel]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_},τ]/.{(Overscript[P, 1])->Ω,(Overscript[P, 2])->(2/5)*Ω,(Overscript[P, 3])->(1/7)*Ω,(Overscript[P, 4])->0}//Simplify;
DepthIncreaseSpline5cprevb2=PolySpline[{2*(Subscript[T, accel]),2*(Subscript[T, accel])+(Subscript[T, ramp]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_},τ]/.{(Overscript[P, 1])->0,(Overscript[P, 2])->(1/7)*Ω,(Overscript[P, 3])->(2/5)*Ω,(Overscript[P, 4])->Ω}//Simplify;
Ωramp5cprevb[τ_]:=(Piecewise[{{DepthIncreaseSpline5cprevb, τ≤(Subscript[T, ramp])}, {Ω, (Subscript[T, ramp])≤τ≤(2*τ0+2*(Subscript[T, accel])-(Subscript[T, ramp]))}, {DepthDecreaseSpline5cprevb2, (2*τ0+2*(Subscript[T, accel])-(Subscript[T, ramp]))≤τ≤(τ0+2*(Subscript[T, accel]))}, {DepthIncreaseSpline5cprevb2, (τ0+2*(Subscript[T, accel]))≤τ≤(2*(Subscript[T, accel])+(Subscript[T, ramp]))}, {Ω, (2*(Subscript[T, accel])+(Subscript[T, ramp]))≤τ≤(2*τ0+4*(Subscript[T, accel])-(Subscript[T, ramp]))}, {DepthDecreaseSpline5cprevb, (2*τ0+4*(Subscript[T, accel])-(Subscript[T, ramp]))≤τ}}])

Plot[Evaluate[Ωramp5cprevb[τ]/.{Ω->20,(Subscript[T, ramp])->50,(Subscript[T, accel])->100,τ0->20}],{τ,0,440}]

DepthIncreaseSpline5cprevc=PolySpline[{0,(Subscript[T, ramp]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_},τ]/.{(Overscript[P, 1])->0,(Overscript[P, 2])->(1/7)*Ω,(Overscript[P, 3])->(2/5)*Ω,(Overscript[P, 4])->Ω}//Simplify;
DepthDecreaseSpline5cprevc=PolySpline[{2*τ0+4*(Subscript[T, accel])-(Subscript[T, ramp]),2
*τ0+4*(Subscript[T, accel]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_},τ]/.{(Overscript[P, 1])->Ω,(Overscript[P, 2])->(2/5)*Ω,(Overscript[P, 3])->(1/7)*Ω,(Overscript[P, 4])->0}//Simplify;
DepthDecreaseSpline5cprevc2=PolySpline[{2*τ0+2*(Subscript[T, accel])-(Subscript[T, ramp]),
2*τ0+2*(Subscript[T, accel]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_},τ]/.{(Overscript[P, 1])->Ω,(Overscript[P, 2])->(2/5)*Ω,(Overscript[P, 3])->(1/7)*Ω,(Overscript[P, 4])->0}//Simplify;
DepthIncreaseSpline5cprevc2=PolySpline[{2*(Subscript[T, accel]),2*(Subscript[T, accel])+(Subscript[T, ramp]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_},τ]/.{(Overscript[P, 1])->0,(Overscript[P, 2])->(1/7)*Ω,(Overscript[P, 3])->(2/5)*Ω,(Overscript[P, 4])->Ω}//Simplify;
DepthIncreaseSpline5cprevc3=PolySpline[{4*(Subscript[T, accel]),4*(Subscript[T, accel])+(Subscript[T, ramp]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_},τ]/.{(Overscript[P, 1])->0,(Overscript[P, 2])->(1/7)*Ω,(Overscript[P, 3])->(2/5)*Ω,(Overscript[P, 4])->Ω}//Simplify;
DepthDecreaseSpline5cprevc3=PolySpline[{(τ0+(4+(2/5))*(Subscript[T, accel])),
(τ0+(4+(2/5))*(Subscript[T, accel]))+(Subscript[T, ramp]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_},τ]/.{(Overscript[P, 1])->Ω,(Overscript[P, 2])->(2/5)*Ω,(Overscript[P, 3])->(1/7)*Ω,(Overscript[P, 4])->0}//Simplify;
Ωramp5cprevc[τ_]:=(Piecewise[{{DepthIncreaseSpline5cprevc, τ≤(Subscript[T, ramp])}, {Ω, (Subscript[T, ramp])≤τ≤(2*τ0+2*(Subscript[T, accel])-(Subscript[T, ramp]))}, {DepthDecreaseSpline5cprevc2, (2*τ0+2*(Subscript[T, accel])-(Subscript[T, ramp]))≤τ≤(τ0+2*(Subscript[T, accel]))}, {DepthIncreaseSpline5cprevc2, (τ0+2*(Subscript[T, accel]))≤τ≤(2*(Subscript[T, accel])+(Subscript[T, ramp]))}, {Ω, (2*(Subscript[T, accel])+(Subscript[T, ramp]))≤τ≤(2*τ0+4*(Subscript[T, accel])-(Subscript[T, ramp]))}, {DepthDecreaseSpline5cprevc, (2*τ0+4*(Subscript[T, accel])-(Subscript[T, ramp]))≤τ≤(τ0+4*(Subscript[T, accel]))}, {DepthIncreaseSpline5cprevc3, (τ0+4*(Subscript[T, accel]))≤τ≤((Subscript[T, ramp])+4*(Subscript[T, accel]))}, {Ω, ((Subscript[T, ramp])+4*(Subscript[T, accel]))≤τ≤(τ0+(4+(2/5))*(Subscript[T, accel]))}, {DepthDecreaseSpline5cprevc3, (τ0+(4+(2/5))*(Subscript[T, accel]))≤τ}}])

Plot[Evaluate[Ωramp5cprevc[τ]/.{Ω->20,(Subscript[T, ramp])->50,(Subscript[T, accel])->100,τ0->20}],{τ,0,510}]

DepthIncreaseSpline5cprevd=PolySpline[{0,(Subscript[T, ramp]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_},τ]/.{(Overscript[P, 1])->0,(Overscript[P, 2])->(1/7)*Ω,(Overscript[P, 3])->(2/5)*Ω,(Overscript[P, 4])->Ω}//Simplify;
DepthDecreaseSpline5cprevd=PolySpline[{2*τ0+4*(Subscript[T, accel])-(Subscript[T, ramp])+(Subscript[T, hang]),2
*τ0+4*(Subscript[T, accel])+(Subscript[T, hang]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_},τ]/.{(Overscript[P, 1])->Ω,(Overscript[P, 2])->(2/5)*Ω,(Overscript[P, 3])->(1/7)*Ω,(Overscript[P, 4])->0}//Simplify;
DepthDecreaseSpline5cprevd2=PolySpline[{2*τ0+2*(Subscript[T, accel])-(Subscript[T, ramp]),
2*τ0+2*(Subscript[T, accel]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_},τ]/.{(Overscript[P, 1])->Ω,(Overscript[P, 2])->(2/5)*Ω,(Overscript[P, 3])->(1/7)*Ω,(Overscript[P, 4])->0}//Simplify;
DepthIncreaseSpline5cprevd2=PolySpline[{2*(Subscript[T, accel])+(Subscript[T, hang]),2*(Subscript[T, accel])+(Subscript[T, ramp])+(Subscript[T, hang]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_},τ]/.{(Overscript[P, 1])->0,(Overscript[P, 2])->(1/7)*Ω,(Overscript[P, 3])->(2/5)*Ω,(Overscript[P, 4])->Ω}//Simplify;
DepthIncreaseSpline5cprevd3=PolySpline[{4*(Subscript[T, accel])+(Subscript[T, hang]),4*(Subscript[T, accel])+(Subscript[T, ramp])+(Subscript[T, hang]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_},τ]/.{(Overscript[P, 1])->0,(Overscript[P, 2])->(1/7)*Ω,(Overscript[P, 3])->(2/5)*Ω,(Overscript[P, 4])->Ω}//Simplify;
DepthDecreaseSpline5cprevd3=PolySpline[{(τ0+(4+(2/5))*(Subscript[T, accel]))+(Subscript[T, hang]),
(τ0+(4+(2/5))*(Subscript[T, accel]))+(Subscript[T, ramp])+(Subscript[T, hang]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_},τ]/.{(Overscript[P, 1])->Ω,(Overscript[P, 2])->(2/5)*Ω,(Overscript[P, 3])->(1/7)*Ω,(Overscript[P, 4])->0}//Simplify;
Ωhang=DepthDecreaseSpline5cprevd2/.{τ->(τ0+2*(Subscript[T, accel]))};
Ωramp5cprevd[τ_]:=(Piecewise[{{DepthIncreaseSpline5cprevd, τ≤(Subscript[T, ramp])}, {{Ω}, (Subscript[T, ramp])≤τ≤(2*τ0+2*(Subscript[T, accel])-(Subscript[T, ramp]))}, {DepthDecreaseSpline5cprevd2, (2*τ0+2*(Subscript[T, accel])-(Subscript[T, ramp]))≤τ≤(τ0+2*(Subscript[T, accel]))}, {Ωhang, (τ0+2*(Subscript[T, accel]))≤τ≤(τ0+2*(Subscript[T, accel])+(Subscript[T, hang]))}, {DepthIncreaseSpline5cprevd2, (τ0+2*(Subscript[T, accel])+(Subscript[T, hang]))≤τ≤(2*(Subscript[T, accel])+(Subscript[T, ramp])+(Subscript[T, hang]))}, {{Ω}, (2*(Subscript[T, accel])+(Subscript[T, ramp])+(Subscript[T, hang]))≤τ≤(2*τ0+4*(Subscript[T, accel])-(Subscript[T, ramp])+(Subscript[T, hang]))}, {DepthDecreaseSpline5cprevd, (2*τ0+4*(Subscript[T, accel])-(Subscript[T, ramp])+(Subscript[T, hang]))≤τ≤(τ0+4*(Subscript[T, accel])+(Subscript[T, hang]))}, {DepthIncreaseSpline5cprevd3, (τ0+4*(Subscript[T, accel])+(Subscript[T, hang]))≤τ≤((Subscript[T, ramp])+4*(Subscript[T, accel])+(Subscript[T, hang]))}, {{Ω}, ((Subscript[T, ramp])+4*(Subscript[T, accel])+(Subscript[T, hang]))≤τ≤(τ0+(4+(2/5))*(Subscript[T, accel])+(Subscript[T, hang]))}, {DepthDecreaseSpline5cprevd3, (τ0+(4+(2/5))*(Subscript[T, accel])+(Subscript[T, hang]))≤τ}}])

Plot[Evaluate[Ωramp5cprevd[τ]/.{Ω->20,(Subscript[T, ramp])->50,(Subscript[T, accel])->100,τ0->20,(Subscript[T, hang])->100}],{τ,0,610}]

DepthIncreaseSpline6=PolySpline[{0,(Subscript[T, ramp]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_,(Overscript[P, 5])_},τ]/.{(Overscript[P, 1])->0,(Overscript[P, 2])->(5/4)*Ω,(Overscript[P, 3])->-(1/4)*Ω,(Overscript[P, 4])->-(1/3)*Ω,(Overscript[P, 5])->Ω}//Simplify;
DepthDecreaseSpline6=PolySpline[{(Subscript[T, ramp])+(Subscript[T, accel]),2*(Subscript[T, ramp])+(Subscript[T, accel]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_,(Overscript[P, 5])_},τ]/.{(Overscript[P, 1])->Ω,(Overscript[P, 2])->-(1/3)*Ω,(Overscript[P, 3])->-(1/4)*Ω,(Overscript[P, 4])->(5/4)*Ω,(Overscript[P, 5])->0}//Simplify;
Ωramp6[τ_]:=(Piecewise[{{DepthIncreaseSpline6, τ≤(Subscript[T, ramp])}, {Ω, (Subscript[T, ramp])≤τ≤((Subscript[T, ramp])+(Subscript[T, accel]))}, {DepthDecreaseSpline6, ((Subscript[T, ramp])+(Subscript[T, accel]))≤τ}}])

Plot[Evaluate[Ωramp6[τ]/.{Ω->20,(Subscript[T, ramp])->30,(Subscript[T, accel])->4}],{τ,0,64}]

DepthIncreaseSpline6b=PolySpline[{0,(Subscript[T, ramp]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_,(Overscript[P, 5])_},τ]/.{(Overscript[P, 1])->0,(Overscript[P, 2])->(3/2)*Ω,(Overscript[P, 3])->-(1/3)*Ω,(Overscript[P, 4])->-(1/3)*Ω,(Overscript[P, 5])->Ω}//Simplify;
DepthDecreaseSpline6b=PolySpline[{(Subscript[T, ramp])+(Subscript[T, accel]),2*(Subscript[T, ramp])+(Subscript[T, accel]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_,(Overscript[P, 5])_},τ]/.{(Overscript[P, 1])->Ω,(Overscript[P, 2])->(4/5)*Ω,(Overscript[P, 3])->(3/7)*Ω,(Overscript[P, 4])->(1/6)*Ω,(Overscript[P, 5])->0}//Simplify;
Ωramp6b[τ_]:=(Piecewise[{{DepthIncreaseSpline6b, τ≤(Subscript[T, ramp])}, {Ω, (Subscript[T, ramp])≤τ≤((Subscript[T, ramp])+(Subscript[T, accel]))}, {DepthDecreaseSpline6b, ((Subscript[T, ramp])+(Subscript[T, accel]))≤τ}}])

Plot[Evaluate[Ωramp6b[τ]/.{Ω->20,(Subscript[T, ramp])->30,(Subscript[T, accel])->4}],{τ,0,64}]

DepthIncreaseSpline6cp=PolySpline[{0,(Subscript[T, ramp]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_,(Overscript[P, 5])_},τ]/.{(Overscript[P, 1])->0,(Overscript[P, 2])->(5/4)*Ω,(Overscript[P, 3])->-(1/4)*Ω,(Overscript[P, 4])->-(1/3)*Ω,(Overscript[P, 5])->Ω}//Simplify;
DepthDecreaseSpline6cp=PolySpline[{2*τ0+(Subscript[T, accel])-(Subscript[T, ramp]),2
*τ0+(Subscript[T, accel]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_,(Overscript[P, 5])_},τ]/.{(Overscript[P, 1])->Ω,(Overscript[P, 2])->-(1/3)*Ω,(Overscript[P, 3])->-(1/4)*Ω,(Overscript[P, 4])->(5/4)*Ω,(Overscript[P, 5])->0}//Simplify;
Ωramp6cp[τ_]:=(Piecewise[{{DepthIncreaseSpline6cp, τ≤(Subscript[T, ramp])}, {Ω, (Subscript[T, ramp])≤τ≤(2*τ0+(Subscript[T, accel])-(Subscript[T, ramp]))}, {DepthDecreaseSpline6cp, (2*τ0+(Subscript[T, accel])-(Subscript[T, ramp]))≤τ}}])

Plot[Evaluate[Ωramp6cp[τ]/.{Ω->20,(Subscript[T, ramp])->30,(Subscript[T, accel])->100,τ0->20}],{τ,0,140}]

DepthIncreaseSpline6bcp=PolySpline[{0,(Subscript[T, ramp]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_,(Overscript[P, 5])_},τ]/.{(Overscript[P, 1])->0,(Overscript[P, 2])->(3/2)*Ω,(Overscript[P, 3])->-(1/3)*Ω,(Overscript[P, 4])->-(1/3)*Ω,(Overscript[P, 5])->Ω}//Simplify;
DepthDecreaseSpline6bcp=PolySpline[{2*τ0+(Subscript[T, accel])-(Subscript[T, ramp]),2
*τ0+(Subscript[T, accel]),0,0,(Overscript[P, 1])_,(Overscript[P, 2])_,(Overscript[P, 3])_,(Overscript[P, 4])_,(Overscript[P, 5])_},τ]/.{(Overscript[P, 1])->Ω,(Overscript[P, 2])->(4/5)*Ω,(Overscript[P, 3])->(3/7)*Ω,(Overscript[P, 4])->(1/6)*Ω,(Overscript[P, 5])->0}//Simplify;
Ωramp6bcp[τ_]:=(Piecewise[{{DepthIncreaseSpline6bcp, τ≤(Subscript[T, ramp])}, {Ω, (Subscript[T, ramp])≤τ≤(2*τ0+(Subscript[T, accel])-(Subscript[T, ramp]))}, {DepthDecreaseSpline6bcp, (2*τ0+(Subscript[T, accel])-(Subscript[T, ramp]))≤τ}}])

Plot[Evaluate[Ωramp6bcp[τ]/.{Ω->20,(Subscript[T, ramp])->30,(Subscript[T, accel])->100,τ0->20}],{τ,0,140}]

Simulations with Spline

f3

Clear[τ0]
Clear[α]
Clear[Taccel]
Clear[Ω]

f3=({{\[Piecewise], ({{0, τ<τ0}, {-((α (((τ-τ0))^2) (2 τ-2 τ0-3 Taccel))/(Taccel^2)), τ≥τ0&&τ≤τ0+Taccel}, {α Taccel, True}})}})

Ωramp3

Ωramp3=({{\[Piecewise], ({{(((τ^2) Ω (-2 τ+3 Tramp))/(Tramp^3)), τ≤Tramp}, {Ω, Tramp≤τ≤Taccel+Tramp}, {((Ω (2 τ-2 Taccel-Tramp) (((-τ+Taccel+2 Tramp))^2))/(Tramp^3)), Taccel+Tramp≤τ}, {0, True}})}})

f2=({{\[Piecewise], ({{0, τ-τ0<0}, {α (τ-τ0), τ-τ0≥0&&τ-τ0-Taccel≤0}, {α Taccel, True}})}})

Plot[Ωramp3/.{Ω->1,Taccel->100,Tramp->100},{τ,0,300}]

Plot[{f3,f2}/.{α->1,Taccel->100,τ0->100},{τ,0,300}]

Example 1

ramp up lattice at beginning and ramp down at end to maintain adiabatic dynamics, accelerate slowly enough to minimize nonadiabatic tunneling to higher bands

Ω=(15/4);
PosMomentumStates=15;
NegMomentumStates=5;
τbloch=3.2;
α=(2/(τbloch));
Tramp=50;
τ0=Tramp;
NTransitions=5;
Taccel=τbloch*NTransitions;
T=2*Tramp+Taccel;
ϕ=Integrate[f3/.τ->t,{t,0,τ},Assumptions->τ≥0];

Plot[{Ωramp3,f3},{τ,0,T}]

coefs=Table[(Subscript[g, n])[τ],{n,-(NegMomentumStates+1),PosMomentumStates+1}];
dq=Table[(Subscript[g, n])'[τ]==-I*((Ωramp3)/2)*(Exp[I*ϕ])*(Subscript[g, n+1])[τ]-I*((Ωramp3)/2)*(Exp[-I*ϕ])*(Subscript[g, n-1])[τ]-I*((n^2))*(Subscript[g, n])[τ],{n,-NegMomentumStates,PosMomentumStates}];
initial=Join[{(Subscript[g, -(NegMomentumStates+1)])'[τ]==0,(Subscript[g, -(NegMomentumStates+1)])[0]==0, (Subscript[g, (PosMomentumStates+1)])'[τ]==0, (Subscript[g, (PosMomentumStates+1)])[0]==0}, Table[(Subscript[g, n])[0]==If[n==0,1,0],{n,-NegMomentumStates,PosMomentumStates}]];
eqs=Join[dq,initial];
dqsol=NDSolve[eqs,coefs,{τ,0,T},MaxSteps->22000000];

plot1=Plot[((((coefs/.dqsol[[1]])//Abs))^2)//Evaluate,{τ,0,T},PlotRange->{0,1.025},Frame->True,PlotStyle->Table[{Hue[((17*n)/(Length[coefs]))],Thickness[0.004]},{n,1,Length[coefs]}]]

((Abs[(coefs/.dqsol[[1]])[[NegMomentumStates+5+2]]/.τ->T])^2)

mean velocity in units of ℏ*k/m vs time (closely follows lattice velocity)

Plot[Sum[((Abs[(coefs/.dqsol[[1]])[[NegMomentumStates+n+2]]])^2)*2*n,{n,-NegMomentumStates,PosMomentumStates}],{τ,0,T}]

Example 2, shallower lattice

ramp up lattice at beginning and ramp down at end to maintain adiabatic dynamics, accelerate slowly enough to minimize nonadiabatic tunneling to higher bands

Ω=(4/4);
PosMomentumStates=15;
NegMomentumStates=5;
τbloch=20;
α=(2/(τbloch));
Tramp=50;
τ0=Tramp;
NTransitions=5;
Taccel=τbloch*NTransitions;
T=2*Tramp+Taccel;
ϕ=Integrate[f3/.τ->t,{t,0,τ},Assumptions->τ≥0];

Plot[{Ωramp3,f3},{τ,0,T}]

coefs=Table[(Subscript[g, n])[τ],{n,-(NegMomentumStates+1),PosMomentumStates+1}];
dq=Table[(Subscript[g, n])'[τ]==-I*((Ωramp3)/2)*(Exp[I*ϕ])*(Subscript[g, n+1])[τ]-I*((Ωramp3)/2)*(Exp[-I*ϕ])*(Subscript[g, n-1])[τ]-I*((n^2))*(Subscript[g, n])[τ],{n,-NegMomentumStates,PosMomentumStates}];
initial=Join[{(Subscript[g, -(NegMomentumStates+1)])'[τ]==0,(Subscript[g, -(NegMomentumStates+1)])[0]==0, (Subscript[g, (PosMomentumStates+1)])'[τ]==0, (Subscript[g, (PosMomentumStates+1)])[0]==0}, Table[(Subscript[g, n])[0]==If[n==0,1,0],{n,-NegMomentumStates,PosMomentumStates}]];
eqs=Join[dq,initial];
dqsol=NDSolve[eqs,coefs,{τ,0,T},MaxSteps->22000000];

plot1=Plot[((((coefs/.dqsol[[1]])//Abs))^2)//Evaluate,{τ,0,T},PlotRange->{0,1.025},Frame->True,PlotStyle->Table[{Hue[((17*n)/(Length[coefs]))],Thickness[0.004]},{n,1,Length[coefs]}]]

((Abs[(coefs/.dqsol[[1]])[[NegMomentumStates+5+2]]/.τ->T])^2)

mean velocity in units of ℏ*k/m vs time, Bloch oscillations now visible

Plot[Sum[((Abs[(coefs/.dqsol[[1]])[[NegMomentumStates+n+2]]])^2)*2*n,{n,-NegMomentumStates,PosMomentumStates}],{τ,0,T}]

mean velocity in units of ℏ*k/m vs time, subtract off lattice velocity

Plot[Sum[((Abs[(coefs/.dqsol[[1]])[[NegMomentumStates+n+2]]])^2)*2*n,{n,-NegMomentumStates,PosMomentumStates}]-f3,{τ,0,T}]

Example 3, even shallower lattice, Bloch oscillations more pronounced for shallower lattices because ground bound less flat

ramp up lattice at beginning and ramp down at end to maintain adiabatic dynamics, accelerate slowly enough to minimize nonadiabatic tunneling to higher bands

Ω=(1/4);
PosMomentumStates=15;
NegMomentumStates=5;
τbloch=200;
α=(2/(τbloch));
Tramp=50;
τ0=Tramp;
NTransitions=5;
Taccel=τbloch*NTransitions;
T=2*Tramp+Taccel;
ϕ=Integrate[f3/.τ->t,{t,0,τ},Assumptions->τ≥0];

Plot[{Ωramp3,f3},{τ,0,T}]

coefs=Table[(Subscript[g, n])[τ],{n,-(NegMomentumStates+1),PosMomentumStates+1}];
dq=Table[(Subscript[g, n])'[τ]==-I*((Ωramp3)/2)*(Exp[I*ϕ])*(Subscript[g, n+1])[τ]-I*((Ωramp3)/2)*(Exp[-I*ϕ])*(Subscript[g, n-1])[τ]-I*((n^2))*(Subscript[g, n])[τ],{n,-NegMomentumStates,PosMomentumStates}];
initial=Join[{(Subscript[g, -(NegMomentumStates+1)])'[τ]==0,(Subscript[g, -(NegMomentumStates+1)])[0]==0, (Subscript[g, (PosMomentumStates+1)])'[τ]==0, (Subscript[g, (PosMomentumStates+1)])[0]==0}, Table[(Subscript[g, n])[0]==If[n==0,1,0],{n,-NegMomentumStates,PosMomentumStates}]];
eqs=Join[dq,initial];
dqsol=NDSolve[eqs,coefs,{τ,0,T},MaxSteps->22000000];

plot1=Plot[((((coefs/.dqsol[[1]])//Abs))^2)//Evaluate,{τ,0,T},PlotRange->{0,1.025},Frame->True,PlotStyle->Table[{Hue[((17*n)/(Length[coefs]))],Thickness[0.004]},{n,1,Length[coefs]}]]

((Abs[(coefs/.dqsol[[1]])[[NegMomentumStates+5+2]]/.τ->T])^2)

mean velocity in units of ℏ*k/m vs time, Bloch oscillations even more visible

Plot[Sum[((Abs[(coefs/.dqsol[[1]])[[NegMomentumStates+n+2]]])^2)*2*n,{n,-NegMomentumStates,PosMomentumStates}],{τ,0,T}]

mean velocity in units of ℏ*k/m vs time, subtract off lattice velocity

Plot[Sum[((Abs[(coefs/.dqsol[[1]])[[NegMomentumStates+n+2]]])^2)*2*n,{n,-NegMomentumStates,PosMomentumStates}]-f3,{τ,0,T}]