Linak actuator

Hej

Jeg har en lille stort problem med en linak actuator en 8051 og PWM...

alt hardwaren er i orden med en uC med inbygget PWM og en Hbro og diverse potmetere..

problemet består i at få den fandens motor til at køre jævt og blædt under opstart og "nedlukning" så ikke der kommer store strømspikes... det er en

24V version jeg kører med ca 3Khz PWM

Jeg vil gerne have motoren til at køre så lang som muligt ned i spænding i tilfælde af at 24V batterierne/lader går døde.. dertil har jeg også added

24V til en ADC

Er der nogle der har lavet nogle stumper code man kan se, helst i C ?

jeg har det til at køre rimeligt, men det sker den lige kører for langt og står og pendler, og så syntes jeg ikke måden jeg har lavet det på er så smart... jeg har prøvet på flere måder... bla og prøve at justere det efter dens hastighed... måle differencen på et stykke tid og så bruge det...

selve mit program er bygget om omkring en timer der interupter 128 gange i sekundet lidt i stil med et RTOS... bare kun sekventielt)

Gode ideer modtages med kyshånd :)

Kasper

Reply to
Repzak
Loading thread data ...

Du må undskylde, at jeg ikke kan svare på dit spørgsmål men skriver alligevel.

Jeg er også interesseret i at bruge en Linak-aktuator til at åbne/lukke vinduer. Det er vel ikke tilfældigvis det samme, du har gang i?

Jeg har på nuværende tidspunkt en "vinduesåbner", der er hjemmebygget af en motor med gear fra en gammel videobåndoptager. En af tandhjulene i gearet passer tilfældigvis til en tandstang, jeg også havde liggende. Det virker fint - og kan styres fra min WAP-side. Jeg bruger dog ikke noget fancy PWM styring - motoreren kobles ind/ud og strømmen vendes med to relæer styret af en Atmel attiny15.

Jeg kunne godt tænke mig at bruge en Linak i stedet, da ovenstående ikke kan repareres, hvis det går i stykker.

Det lyder som om du har en Linak med potentiometer. Hvor godt fungerer det?

mvh Nils Emil

-- My reply-address is valid.

formatting link
Min svar-adresse er gyldig. Redning af døde BIOS'er

Reply to
Nils Emil P. Larsen

Nopes :)

skulle vel ikke være noget problem, de er stærke nok

ganske fint, bortset fra at en lille arm knækkede inde i potmeteret den anden dag og jeg måtte lodde den på derine indtil jeg kan få fat i noget andet...

Kasper

Reply to
Repzak

Det er faktisk ikke noget helt trivielt problem. Så vidt jeg kan se ønsker du følgende: A) Et servo system, dvs du sætter en værdi og aktuatoren kører til den posistion. B) Din PWM har en mode til hver vej (i modsæting til 50% PWM for stop) C) Du ændre ikke dit sætpunkt imens actuatoren kører. D) Normalt skal aktuatoren køre helt op i hastighed, for så at stoppe når den rigtige position nåes. Ved mindre afstande køres langsomt. E) Aktuatoren skal ikke bremses med kortslutning eller omvendt polaritet når den skal stoppe. F) Der er en nogenlunde konstant belastning på aktuatoren.

Man kan godt lave et servosystem liniært (som f.eks hastighed=mål-nuværende). Men der nogle uliniære ting i dit system som gør det vanskelig:

-Du ønsker at nå den maksimale hastighed.

-Ved lav spænding kører moteren slet ikke.

Desuden kan det være vanskelig helt at undgå overshoot, dvs at køre for langt.

Jeg vil foreslå at du istedet laver en algoritme i retning a følgende: if (lille fejl) { øg langsomt PWM indtil motor begynder at køre sænk PWM hvis motor begynder at køre for hurtigt stop ved position } else if (stor fejl) { start motor med rampe til 100% i passende afstand før mål stop vent til motor er stoppet undersøg om mål er nået og 'lær af det' } else // fejl så lille at den ikke behøver at blive korrigeret { }

Som du kan se skal er der to værdier (stor/lille fejl og afstand før mål) som skal findes og helst automatisk rettes til. Hver værdi kan også gøres afhængig af andre kendte faktorer. Du kan have en stopafstand for max forsyningsspænding og en for min forsyningsspænding og så interpolere mellem dem.

MVH Bjarne

Reply to
Bjarne Laursen

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.