Uplink power control is used both on the PUSCH and on the PUCCH channels.

In both cases, a parameterized open loop combined with a closed loop mechanism is used.

Roughly explained, the open loop part is used to set a point of operation, around which the closed loop component operates. Different parameters (targets and ‘partial compensation factors’) for user and control plane are used.

**PUSCH Power Control**

For the PUSCH the UE sets the output power PUSCH according to the formula:

**Power PUSCH = min {Pmax, 10logM + P0_PUSCH + αPL + f( i )+MCS} [dBm]****(1)**

where

- Pmax is the maximum UE power,
- M is the number of scheduled resource blocks,
- PL is the estimated pathloss,
- P0_PUSCH and
- α (enabling fractional pathloss compensation) are parameters controlling the target received power,
- i is a UE specific offset or ‘closed loop correction’ (the function f may can represent either absolute or accumulative offsets), and MCS is a Modulation and Coding Scheme (MCS) specific offset.

The closed loop correction i is sent in UL grants on the PDCCH, or in special TPC_PUSCH messages on the PDCCH. For all other parameters, cell specific values are broadcast in SIB 2. For a subset of the parameters (e.g. P0), it is possible to send UE specific values via RRC.

**PUCCH Power Control**

For PUCCH, the UE sets the power according to the formula

**Power PUCCH = min {Pmax, P0_PUCCH + PL + f( j ) } [dBm] (2)**

Note that for PUCCH, full pathloss compensation is always used, and the resource allocation is always one resource block. Further, the function **f** for the PUCCH always represents accumulation. The closed loop correction **j** is sent in DL assignments on the PDCCH, or in special TPC _PUCCH messages on the PDCCH. The latter may be configured to be the same as the TPC_PDCCH_PUSCH.

For extensive details about Uplink power control. You can take a look **here**.