model Boost Real iC,vC,iD,vD,iL,vL,iS,vS,vF,iF,iR,vR; discrete Real s,tnext(start=5e-5); parameter Real C=1e-3,L=1e-3,R=10,U=12,Ron=1e-6,Roff=1e6; equation C*der(vC)-iC=0; L*der(iL)-vL=0; R*iR-vR=0; iD=if vD>0 then vD/Ron else vD/Roff; iS=if s>0.5 then vS/Ron else vS/Roff; vF-U=0; iL-iF=0; iL-iS-iD=0; iD-iC-iR=0; vF-vL-vS=0; vS-vD-vC=0; vC-vR=0; algorithm when time>tnext then s:=1-s; tnext:=tnext+5e-5; end when; end Boost;