"Defeat Wilhelm" is an objective in the Story Mission A Train to Catch in Borderlands 2
Wilhelm will raise from beneath the fortified Train Car and throw it at you. He is a combination of a Hyperion Engineer and a Loader.
Wilhelm is virtually immune to fire damage, his shields are still very vulnerable to shock and he is vulnerable to corrosive damage (as most of him is robotic). He has no resistance to Slag so this can be used to amp any damage you are inflicting on him. He starts standing and moving in a small area to make Surveyors. He can also construct or call Loaders in to aid him in his fight. He is more than able to grab the remaining train cars and hurl them at you as well. Watch for him lifting them over his head. Run away when he does this to avoid the incoming attack. otherwise his attacks are simple, if dangerous. He has a powerful melee attack he will use if the Vault Hunter is close enough. He can also launch himself into the air and come at the Vault Hunter spinning. This can knock the Vault Hunter off the cliff and to their death.
A mix of shock and corrosive at the start will put you in a good spot. Corrosive for both Wilhelm and the Loaders he calls in.