Hopp til hovedinnhold
← Alle prosjekter
FullførtLab · regulering og embedded

Maglev-modul

Fire solenoider, en Hall-sensor og en PD-regulator som holder en neodymmagnet svevende.

  • Regulering
  • Embedded
  • Lab
Se koden på GitHub →

Hold magneten svevende

Magneten er ustabil uten regulering. Juster Kp, Kd og filteret, gi den et dytt, og se hva som skal til for å holde den. Forenklet modell, ikke de fysiske parameterne.

Forenklet illustrasjon

Posisjon over tid (4 s)

Avvik
0 %
Status
Svever stabilt

Du kan også dra magneten med musen eller fingeren og slippe den.

Mål

Få en neodymmagnet til å sveve stabilt over fire solenoider ved å regulere strømmen i spolene ut fra det målte magnetfeltet.

Løsning

En Hall-sensor måler magnetfeltet fra magneten. Signalet filtreres (ALPHA = 0,2 og DALPHA = 0,3), kompenseres for feltet spolene selv lager, og går inn i en PD-regulator som styrer to spolepar i X- og Y-retning med PWM, begrenset til ±150. Å tune Kp og Kd var selve oppgaven.

Resultat

Magneten svever stabilt. Koden peker også på en kjent utfordring: sensoren mister av og til kommunikasjonen når spolene aktiveres, sannsynligvis på grunn av støy, og systemet er laget for å oppdage og gjenopprette dette.

Det jeg tok med meg

  • Tuning: mer Kd demper oscillasjon, men for mye gir ustabilitet.
  • Filtrering av sensor og derivert er en avveining mellom støy og hastighet.
  • Støy fra spolene kan forstyrre en I²C-sensor, og må håndteres i kode og krets.

Reguleringssløyfen

  1. Hall-sensor

    TLV493D måler magnetfeltet fra magneten i tre akser.

  2. Filter og kompensasjon

    Glatter signalet (ALPHA, DALPHA) og trekker fra feltet spolene selv lager.

  3. PD-regulator

    Kp gir stivhet og Kd demper oscillasjon. Pådraget begrenses til ±150.

  4. Neodymmagnet

    Det som skal sveve. Posisjonen avleses igjen av Hall-sensoren.

  5. Solenoider

    Fire spoler (±X og ±Y) som trekker og skyver magneten tilbake mot midten.

  6. Motordrivere

    Omsetter pådraget til PWM for hvert av de fire spolene.

↑↓ for å velge · Enter for å åpne · Esc for å lukke