Achieving 30 rps

I am using this simulation setup to achieve 30 rps

setUp(
loadTestScenarioBuilder.inject(constantUsersPerSec(100) during (4 minutes))).throttle(
reachRps(30) in (10 seconds),
holdFor(5 minute))
.assertions(global.failedRequests.count.lt(1))
.protocols(makeProtocolBuilder())
}

How does this work? Can someone explain? I have two http requests in my scenario and the gatling summary says mean requests/sec is 29.535. I know I have got the rps I need but I want to understand the working behind this

Can someone help me with how this mean rps is calculated?