Passivity-based cooperative control of multi-agent systems