non avevo considerato l'aspetto cinematico che metti in luce dei percorsi circolari (mentre mi è assai chiaro che le variazioni repentine di traiettoria rettilinea siano assimilabili ad archi con curvatura infinita).
Questo dimostra che il confronto è sempre utile, a prescindere dal fatto che esso muti le opinioni di chi vi partecipa.
Però le tue osservazioni mi suscitano altre domande.
Supponiamo che il nostro percorso utensile sia una circonferenza di raggio r e centro nell'origine del piano XY.
La geometria analitica ci insegna che la relazione fra ascisse e ordinate di tutti i punti appartenenti a questa circonferenza è
x²+y²=r²
Dal fondo della mia ruggine emerge anche la reminiscenza che quest'equazione può avere anche una formulazione "parametrica", che, detto t il parametro, è la seguente.
x=r*cos(t) (1)
y=r*sin(t)
Ora, chi si occupa come te di software di controllo, non faticherà ad identificare il parametro t col tempo misurato in impulsi ad una data frequenza.
t[s]=N/f[Hz]
dove N è il numero di impulsi inviati, alla frequenza f, corrispondente al tempo t .
Se deriviamo le (1) rispetto a t otterremo
dx/dt=vX=-r*sin(t) (2)
dy/dt=vY=r*cos(t)
Le (2) rappresentano le velocità istantanee in direzione X e Y che il punto comandato del nostro utensile dovrà possedere per percorrere la traiettoria circolare desiderata.
Immagino queste siano le relazioni fondamentali che impieghi nella scrittura delle istruzioni di pilotaggio assi dei tuoi software.
Cioè, assegnata una legge di variazione della velocità per uno dei due assi, diciamo X, la corrispondente velocità dell'altro (Y) è obbligata ad obbedire alla seconda delle (2), ogni scostamento traducendosi in un errore della traiettoria.
Tu scrivi, correttamente, che, ad ogni cambio quadrante di questa circonferenza, quelli che chiami poli, una delle due velocità si annulla (è intrinseco delle funzioni seno e coseno).
Ma questo accade qualunque sia la frequenza di lavoro minima cui il tuo controller ti consente di scendere.
Che sia 125 o 12.5Hz, vi saranno zone della traiettoria in cui la frequenza necessaria a pilotare uno degli assi sarebbe più bassa del limite tecnico, al limite 0.
Se in quelle zone l'asse "impazzisce" come sembra fare colibrì, con aumento esorbitante della velocità, tu avrai dei movimenti inconsulti ma certo assai lontani dalla traiettoria desiderata.
Ebbene, io ho invece sperimentato che con valori F lontani da quelli che impongono al controller di scendere al suo limite inferiore di frequenza (diciamo F50), l'esecuzione di traiettorie circolari (fori per interpolazione con frese a candela) non sembra meno precisa di quella affidata ad una ortodossa barenatura che non sconta tutti questi problemi, essendo una lavorazione con coordinate XY fisse.
Mi è capitato di ricavare sedi per cuscinetti, notoriamente lavorazioni con tolleranze di diametro e cilindricità piuttosto stringenti, del tutto soddisfacenti ed idonee allo scopo.
Di qui la mia curiosità.
Se come dici tu non c'è verso, per quanto piccoli, ci sono tratti non circolari ai poli del cerchio (e nel caso di colibrì che si imbizzarrisce dovrebbero essere roba da rischiare la fresa) allora come fa il software a pilotare con tanta precisione zone in cui "il controller perde il controllo"?
Può essere che la fase di frenata e accelerazione in prossimità dei poli sia gestita dal software "alla cieca", cioè senza ricercare un impossibile controllo istantaneo, ma in qualche modo programmando l'effetto dell'inerzia (nota) degli assi? Però questa decelerazione "a motore spento" non potrebbe che essere lineare e non sinusoidale come necessario per una circonferenza.
A meno che non si utilizzi il principio del pendolo in cui si assume che per le piccole oscillazioni (<5°) il seno possa approssimarsi col suo argomento e quindi sin(t) quasi uguale t e incrociare le dita, riprendendo successivamente a inviare impulsi con legge sinusoidale in zone della traiettoria in cui la velocità torni compatibile con la frequenza limite inferiore.
Michele