August 28, 2013

Vincoli di controllo

Una volta definito il controllo o la regolazione è necessario vincolare gli ingressi di velocità della piattaforma mobile, in modo tale da evitare di saturare gli attuatori. Si vincolano quindi le azioni di controllo nel caso della configurazione ad uniciclo con “differential drive” si tramutano, nota la Omega massima imponibile

\left| v\left(t\right) \right| \le \Omega\cdot r \qquad \left| \omega\left(t\right) \right| \le \frac{2\Omega\cdot r}{d} \qquad \forall t

 

modellirobot_0

Inoltre va verificato che durante l’azione di regolazione, sia imposto un limite nella precisione della convergenza al punto di arrivo, dovuto alla precisione dello strumento di misura che nel caso dell’encoder è dovuto alla minima distanza misurabile, è possibile quindi ottenere:

\Delta s_{min} = \theta_c \cdot r = \frac{2\pi\cdot r}{4\cdot n_c} \approx 1.2741\cdot 10^{-3}cm

Si ottengono quindi le velocità minima e massima imponibili dal sistema di controllo, costituite rispettivamente dalla frequenza minima imponibile dal PWM e dalla massima risoluzione che il microcontrollore può imporre, riprendendo la eq. precedente si ottiene:

v_{min} = f_m\cdot\Delta s_{min} \qquad v_{max}=v_{min}\left(2^N -1 \right)

Dove f_m= \frac{1}{T_c} del PWM e N è la risoluzione del PWM.

Per prevenire possibili problemi relativi a slittamenti delle ruote o velocità eccessive per i vincoli di controllo imposti si impongono delle velocità ancora più conservative:

\left| v(t) \right|\le v_{max} \qquad \left| \omega\left(t\right) \right| \le \omega_{max} \qquad \forall t

Con queste saturazioni è necessario eseguire una scalatura della velocità adattandola in modo tale da presevervare il raggio di curvatura corrispondente alla velocità nominale v e \omega. Verranno quindi generati gli effettivi riferimenti di controllo v_c e \omega_c definendo:

\sigma = \max \{\frac{\left| v(t) \right|}{v_{max}}, \frac{\left| \omega (t) \right|}{\omega_{max}}, 1 \}

lasciando v_c = v e \omega_c = \omega se \sigma = 1, mentre:

  • Se \sigma = \frac{\left| v\left(t\right) \right|}{v_{max}} allora v_c = sign (v)\cdot v_{max} e \omega_c = \frac{\omega}{\sigma}
  • Altrimenti v_c = \frac{v}{\sigma} e \omega_c = sign (\omega )\cdot \omega_{max}

Caso pianificatori

Nel caso di pianificazione di traiettorie basterà rallentare la legge oraria mediante una scalatura uniforme. Definito quindi il cammino \mathbf{q}\left( s \right), s in \begin{bmatrix} s_i & s_f \end{bmatrix}^T rispettivamente s_i la posizione di partenza e s_f la posizione di arrivo, è possibile scegliere la leggere oraria s = \left( t\right) con cui percorrerlo. A questo scopo, conviene riscrivere la legge oraria sostituendo a t la variabile temporale normalizzata \tau = \frac{t}{T} con T = t_f - t_i, ottenendo:

v(t) = \tilde{v}(s)\frac{ds}{dt}\frac{d\tau}{dt} =\tilde{v}(s)\frac{ds}{dt}\frac{1}{T} \\ \omega(t) =\tilde{\omega}(s)\frac{ds}{dt}\frac{d\tau}{dt} =\tilde{\omega}(s)\frac{ds}{dt}\frac{1}{T}

Bibliografia

L. . V. L. . O. G. Siciliano, B. & Sciavicco, Robotics, Modelling, Planning and Control. Milano: Springer, 2009.

Copyright © 2013. All Rights Reserved.

Leave a Reply