the substitution pattern is based upon what kind of substitution pattern you told the engine to use.
if you didn't touch it, then the default is coach decides, and the coach has decided that about half way through the period your starters are tired and need a rest....
basically the coach has some metric where he looks at whose on the floor and who he's got on the bench and he swaps them if who he has on the bench seems better to him than whose on the floor.
So if you have a new team.. you probably don't have a big difference between your starters and your bench players, so a bench player is better than a tired starter so the bench player comes in. The coach also doesn't just put people in for the heck of it, so they stay in until the starters get rested enough to become more effective than the bench players. If you want the coach to pay more attention to your depth chart in assigning playing time, change the subbing option to be Strict Depth chart... that will give more weight to the starters vs reserves.