On all the 5800/5700 series cards, hash rate should be roughly linear w.r.t. core clock speed and number of stream processors.
Certainly that's what I've found with my sample of 7 cards - not statistically significant, I know...
5770 has 800 SP, and running at 900 MHz core will give me normally ~ 206 MH/s. Running any of my 5850s at 900 MHz core gives around 370 MH/s. This fits with the theory. That said, I can run one of my 5770s at 1000 MHz and that gives 228 MH/s - the closest comparison is my old Sapphire 5850 at 999 MHz which pulled 408 MH/s - this is almost exact proof of my theory (5770 has 800 SPs, 5850 has 1440, so the 5850 has 1.8 times the number of SPs, and they're running at approximately the same core clock... 228 x 1.8 = 410.4 which is very close).
I'm using all the same software - Ubuntu 11.04, AMD 2.4 SDK, phoenix 1.50, phatk OpenCL kernel (20110717 version). The important thing here is to use the new modified phatk kernel and the BFI_INT instruction... also I run ALL cards at 300 MHz memory clock to keep temps down.
From this theory, with 5830s having 1120 SPs, IIRC, running the card at 900 MHz core clock (sounds feasible from the reports here) ought to result in an average MH/s of (1120 / 800) * 206 = 288.4. This isn't a massive improvement on a 5770 so unless the 5830 is cheap, or can be clocked MUCH higher, it's not as great a card as the 5850...
I have found some cheap 5830s though so will be testing them out
If they overclock to 1000 MHz happily, then I predict 319 MH/s. That's good enough for me.
So yeah, your 311.4 MH/s sounds pretty decent to me!