Have you checked the sleep settings? If it is set to sleep when on battery power that would cause this.
Also, just because it says the battery is at 100% doesn't actually mean it really is. A battery, over time, will hold less and less of a charge. So while it will say it is full, it could be only using lets say 40% of its capacity. So you are only getting access to that 40%, which will get lower and lower over time. I would consider a new battery.