Ja sam slicno nesto radio sa drugim kontrolerima i u sustini zbog slicnih problema (brzina MCU) sam presao na druge serije PIC-eva i druge kontrolere generalno (TI, ARM).
Ova vremena koja si naveo izgledaju prilicno dugacka, milisekunde za racun, to je bas sporo, tu nema mnogo pomoci kada se radi sa 8bitnim platformama.
Eventualno to mozes da poboljsas sa vrlo pedantnom optimizacijom CODE-a i pisanju u ASM ali to zna da bude bas muka.
Predpostavljam da za PID imas i neku floating point matematiku a to je uzasno sporo na 8bitnim MCU.
Za to bih ti preporucio neki PIC iz 16bitne DSP / DSC serije ili 32bitne piceve.
Specificno za motor kontrol aplikacije ima bas njihova serija "MC", recimo dsPIC33EP128MC502, odlican procesor, brdo memorije, veoma brz A/D, specificni PWM-ovi sa visokom resolucijom itd.
Sa druge strane imas recimo ARM resenje sa STM32F4, konkretno STM32F4Discovery low-cost (~20E) razvojna plocica. To je opako parce HW-a, taj procesor ima HW floting-point i jos svasta nesto od periferija i te taskove oko matematike radi mnogo mnogo brze nego svi ovi PIC-ovi. Recimo sa tim sam napravio trofazni
32-kanalni termperaturni kontroler sa trijacima u izlaznom stepenu i upravljanjem faznim zasekom u 1000-ti deo 50Hz poluperiode (10bit) + 3x A/D, + 3x SYNC + LCD/KB. To radi ko zmaj ...
Glavni interapt mi je na svaih 10us, ja sam u to spakovao racun za 32 kanala, nije tako slozen, relativno prosto mnozenje i deljenje uz pomoc nekih lookup tablica gde sam preracunao neke koeficijente (feed-forward), cisto orijentacija koliko to vremena trosi.
Za jedan kanal bi to kuvalo bilo kakvu matematiku samo tako ;) Komunikacioni kanal kod takvih procesora uzima extremno malo resursa jer sve radi na nivou nezavisnog HW-a unutra.
Inace ima jos jedna vrlo zanimljiva opcija za kontrolu motora, cak BEZ MEHANICKE POVRATNE VEZE tj bez enkodera, mucka se sa merenjem struje motora i onda se na osnovu toga preracunava ostali parametri. To su sad najnovije tendencije u toj tehnici, to TI koristi kod Piccolo i Delfino serije kontrolera. Dodatno su napravili veoma ozbiljne software za tu nemanu oko proracuna i upravljanja celog procesa. Caka je da se isto prakticno radi neka vrsta feed forward-a, sa "poznatim" karakteristikama motora i pretvaranjem tih karakteristika u look-up tablice je moguce raditi takve stvari na potpuno drugaciji nacin nego sto se to do sad radilo.
[Ovu poruku je menjao mikikg dana 12.09.2013. u 12:19 GMT+1]