How do I calculate the ensemble-average net charge of an amino acid at given pH?
The Henderson-Hasselbalch relationship describing each ionizable group is:

$$\mathrm{pH} = \mathrm{p}K_\mathrm{a} + \log \frac{\ce{[A-]}}{\ce{[AH]}}$$

We can solve for the ratio:

$$10^{(\mathrm{pH} - \mathrm{p}K_\mathrm{a})}=  \frac{\ce{[A-]}}{\ce{[AH]}}$$

However, we really want the fraction of protonated among the total (not the ratio of deprotonated to protonated).

$$10^{(\mathrm{pH} - \mathrm{p}K_\mathrm{a})} =  \frac{[\mathrm{total}] - \ce{[AH]}}{\ce{[AH]}} = \frac{[\mathrm{total}]}{\ce{[AH]}} - 1$$ 

Add one to both sides:
$$10^{(\mathrm{pH} - \mathrm{p}K_\mathrm{a})} + 1 = \frac{[\mathrm{total}]}{\ce{[AH]}}$$

Take the reciprocal:
$$\frac{\ce{[AH]}}{[\mathrm{total}]} = \frac{1}{10^{(\mathrm{pH} - \mathrm{p}K_\mathrm{a})} + 1}\tag{1}$$

This is still general for any acid/base group. For example, we could use it to calculate the charge of ammonia/ammonium ($\ce{NH3(aq) + H+(aq) &lt;=&gt; NH4+(aq)}$). At very basic pH, the charge would be zero, at very acidic pH, +1. To get the average charge at any pH, we take the charge at very basic pH and add the result of equation [1] using the $\mathrm{p}K_\mathrm{a}$ value of ammonium.

For any amino acid (or any other molecule with ionizable groups with $i$ different $\mathrm{p}K_\mathrm{a}$ values), you take the charge of the species at very basic pH (all groups deprotonated), plus the following:

$$\sum_i \frac{1}{10^{(\mathrm{pH} - \mathrm{p}K_\mathrm{a,i})} + 1}\tag{2}$$

This is only an approximation because there might be some cross talk between ionizable groups (i.e. if one group becomes negatively charged, it becomes more "difficult" for the neighboring group to become negatively charged). It also becomes more complicated for polyprotic groups, but all the groups in amino acids are monoprotic with water as a solvent.