แม่เหล็กแบบกำหนดเอง