This is a simple SIR model, modified to include a quarantine.

This MAA model served as the starting point:
https://www.maa.org/press/periodicals/loci/joma/the-sir-model-for-spread-of-disease-the-differential-equation-model

Andy Long
Spring, 2020

I introduced the Curve-Flattening while writing a lab with an InsightMaker component. This should allow me to verify that the InsightMaker model is behaving correctly:
http://ceadserv1.nku.edu/longa//classes/mat375/days/labs/labSIR2.html

Starting parameters from the MAA project lead to the following graphic:

Clear["Global`*"]

deathFunction[deathrate_,infected_]:=deathrate*(1+3* infected/(5/100+ infected))
(* deathFunction[deathrate_,infected_]:=deathrate *)
quarantineFunction[t_,quarantinerate_,qstart_,qduration_]:=If[t<qstart || t>qstart+qduration,1,quarantinerate]

Plot[deathFunction[.003,inf],{inf,0,1}]

Manipulate[
lv=
NDSolve[
{
(*  susceptible: *)
sus'[t]==-  quarantineFunction[t,QuarantineFraction,DayOfQuarantine,QuarantineDuration] InfectionRate sus[t] inf[t]/(1-dead[t]),

(* infected: *)
inf'[t]==quarantineFunction[t,QuarantineFraction,DayOfQuarantine,QuarantineDuration] InfectionRate sus[t] inf[t]/(1-dead[t])-(RecoveryRate+deathFunction[DeathRate,inf[t]] ) inf[t],

(* recovered: *)
rec'[t]==RecoveryRate inf[t],

(* dead: *)
dead'[t]==deathFunction[DeathRate,inf[t]]  inf[t],
sus[0]==1-infected,
inf[0]==infected,
rec[0]==0,
dead[0]==0
},
{sus[t],inf[t],rec[t],dead[t]},
{t,0,DaysEnd}];
GraphicsGrid[
{
{
Plot[Evaluate[{sus[t],inf[t],rec[t],dead[t]}/.lv],{t,0,DaysEnd},
PlotRange->All,
AxesOrigin->{0,0},PlotStyle->{{Blue,Thick},{Red,Thick},{Yellow,Thick},{Black,Thick}},
PlotLabel->"SIR Model Population Densities",
AxesLabel->{"Days","Density"},
PlotLegends->{"s(t)","i(t)","r(t)","d(t)"}
],
Plot[Evaluate[{inf[t]}/.lv],{t,0,DaysEnd},
PlotRange->All,
AxesOrigin->{0,0},PlotStyle->{{Red,Thick}},
PlotLabel->"Infections",
AxesLabel->{"Days","Density"}
]
},
{
Plot[Evaluate[{dead[t]}/.lv],{t,0,DaysEnd},
PlotRange->All,
AxesOrigin->{0,0},PlotStyle->{{Black,Thick}},
PlotLabel->"Deaths",
AxesLabel->{"Days","Density"}
],
Plot[Evaluate[{rec[t]}/.lv],{t,0,DaysEnd},
PlotRange->All,
AxesOrigin->{0,0},PlotStyle->{{Yellow,Thick}},
PlotLabel->"Recovereds",
AxesLabel->{"Days","Density"}
]
}
}
],
{{lv,{}},None},
{{DaysEnd,150},50,500,1},
{{DayOfQuarantine,45},0,DaysEnd,1},
{{QuarantineDuration,30},0,DaysEnd-DayOfQuarantine,1},
{{infected,.00001},0,1,.000001},
{{RecoveryRate,.02},0.0,.7,.01},
{{DeathRate,.0005},0.0,.1,.001},
{{QuarantineFraction,.5},0,1,.001},
{{InfectionRate,0.25},0,1,.001}
]

ConfirmIM.png:
{{DaysEnd,150},2,200,10},
{{DayOfQuarantine,30},0,200,10},
{{QuarantineDuration,80},0,100,1},
{{infected,.00001},0,1,.000001},
{{RecoveryRate,.02},0.0,.7,.01},
{{DeathRate,.005},0.0,.1,.001},
{{QuarantineFraction,2.0/3.0},0,1,.001},
{{InfectionRate,0.45},0,1,.001}