Sciences industrielles
CCINPMP2026
**Session 2026 — MP7SI**
**Épreuve mutualisée avec E3A-Polytech**
**Épreuve spécifique — filière MP**
# Sciences industrielles
**Durée : 4 heures**
*N.B. : le candidat attachera la plus grande importance à la clarté, à la précision et à la concision de la rédaction. Si un candidat est amené à repérer ce qui peut lui sembler être une erreur d'énoncé, il le signalera sur sa copie et devra poursuivre sa composition en expliquant les raisons des initiatives qu'il a été amené à prendre.*
**Rappel des consignes**
- Utiliser uniquement un stylo noir ou bleu foncé non effaçable pour la rédaction de votre composition ; d'autres couleurs, excepté le vert, bleu clair ou turquoise, peuvent être utilisées, mais exclusivement pour les schémas et la mise en évidence des résultats.
- Ne pas utiliser de correcteur.
- Écrire le mot FIN à la fin de votre composition.
**Les calculatrices sont interdites.**
Le sujet est composé de cinq parties, toutes indépendantes.
Le sujet est composé de 16 pages : page 1 à page 16.
Le Document Réponse est composé de 16 pages.
Seul le Document Réponse doit être rendu dans son intégralité (le QR Code doit être collé sur la première page de ce Document Réponse). Les réponses doivent rentrer dans les cadres prévus, faire une version préalable au brouillon si nécessaire.
# Bering, le robot de marquage intelligent
## Présentation
La société française Conscience Robotics est spécialisée dans le développement d'un moteur d'intelligence artificielle universelle pouvant être intégré à tout type de robot. Elle développe donc également des robots utilisant ce moteur dont le Bering fait partie.
Bering (**figure 1**) est un robot de traçage autonome pour les travaux publics, le sport et de nombreux autres domaines. Grâce à ses trois modules de peinture interchangeables (**figure 3**), Bering est capable de tracer sur de nombreux sols. Connecté à l'application Conscience Connect (**figure 2**), il est capable de tracer tout type de motifs.
**Figure 1 — Robot Bering en situation**
**Figure 2 — Interface de programmation des tracés de peinture et de gestion du robot**
**Figure 3 — Robot Bering équipé de chacun des systèmes de projection de peinture**
- (a) Système de pré-marquage
- (b) Système aérosol
- (c) Système haute pression
### Structure du robot
Le robot Bering est constitué d'un châssis permettant la mise en place d'un module de peinture. Il est équipé d'une ou deux roues folles à l'avant et de deux roues motrices à l'arrière, toutes deux étant actionnées par un servomoteur permettant leur asservissement en vitesse de rotation.
Il est également équipé d'une antenne GPS associée à un système de correction lui permettant d'avoir une précision centimétrique dans son positionnement. Enfin, une centrale d'inertie est installée sur le robot afin d'assurer un asservissement du mouvement.
### Description de l'étude
L'étude porte sur la validation de certaines des exigences référencées dans l'extrait du diagramme des exigences du robot Bering donné **figure 18**. Les parties indépendantes de ce sujet portent ainsi sur l'étude des consignes de vitesse à imposer aux roues motrices, l'étude de la dynamique du robot en virage, la régulation en lacet du robot, l'étude du tracé d'un coin et, enfin, l'étude du choix du parcours.
## Partie I — Étude du déplacement de Bering
**Objectifs :** déterminer les consignes de vitesse à imposer aux moteurs pour un déplacement du robot suivant des trajectoires particulières.
### I.1 — Modélisation
**Paramétrage**
La **figure 4** présente le paramétrage retenu pour l'étude.
**Figure 4 — Paramétrage du Bering en mouvement**
Repères imprimés, schéma de gauche : \(O\), \(\vec{x_0}\), \(\vec{y_0}\), \(\odot\vec{z_0}\), \(\theta_{10}\), roue 2, roue 3, \(C_d\), \(C_g\), \(P\), châssis 1, \(\vec{x_1}\), \(\vec{y_1}\).
Repères imprimés, schéma de droite : \(\vec{z_1}\), \(\vec{z_2}\), \(\theta_{21}\), \(\omega_{21}\), \(\vec{x_1}\), \(\vec{x_2}\), \(\otimes\vec{y_1}\), \(C_d\), \(I_d\), \(I_a\).
Le repère \(\mathcal{R}_0 = (O, \mathcal{B}_0)\) de base \(\mathcal{B}_0 = (\vec{x_0}, \vec{y_0}, \vec{z_0})\) est associé au sol et considéré comme étant le référentiel terrestre galiléen.
Le repère \(\mathcal{R}_1 = (P, \mathcal{B}_1)\) de base \(\mathcal{B}_1 = (\vec{x_1}, \vec{y_1}, \vec{z_0})\) est associé au châssis 1. Le point \(P\) correspond à la position du centre du jet de peinture tel que \(\overrightarrow{OP} = R\vec{y_1}\) où \(R\) est le rayon du virage. Les points \(C_g\) et \(C_d\) sont respectivement les centres de roues gauche et droite tels que \(\overrightarrow{PC_g} = a\vec{y_1}\) et \(\overrightarrow{PC_d} = -a\vec{y_1}\) avec \(a\) la demi-voie[^1] du robot Bering. Le châssis 1 se déplace à une vitesse \(V\) par rapport au sol telle que \(\overrightarrow{V_{P \in 1/0}} = V\vec{x_1}\). On note \(\overrightarrow{\Omega_{10}} = \omega_{10}\vec{z_0} = \dot{\theta}_{10}\vec{z_0}\) le vecteur taux de rotation du châssis 1 par rapport au sol 0 avec \(\theta_{10} = (\vec{x_0}, \vec{x_1}) = (\vec{y_0}, \vec{y_1})\).
Les repères \(\mathcal{R}_2 = (C_d, \mathcal{B}_2)\) et \(\mathcal{R}_3 = (C_g, \mathcal{B}_3)\) sont associés respectivement aux roues 2 (droite) et 3 (gauche) de bases respectives \(\mathcal{B}_2 = (\vec{x_2}, \vec{y_1}, \vec{z_2})\) et \(\mathcal{B}_3 = (\vec{x_3}, \vec{y_1}, \vec{z_3})\). Chacune des roues est en liaison pivot d'axe \((P, \vec{y_1})\) avec le châssis 1 et de paramètres angulaires respectifs \(\theta_{21} = (\vec{z_1}, \vec{z_2}) = (\vec{x_1}, \vec{x_2})\) et \(\theta_{31} = (\vec{z_1}, \vec{z_3}) = (\vec{x_1}, \vec{x_3})\). On notera \(\omega_{21} = \dot{\theta}_{21}\) et \(\omega_{31} = \dot{\theta}_{31}\) les vitesses de rotation de chacune des roues. \(I_d\) et \(I_g\) sont les points de contact entre le sol et les roues respectives 2 et 3 tels que \(\overrightarrow{I_d C_d} = \overrightarrow{I_g C_g} = r\vec{z_1}\) où \(r\) est le rayon des roues.
**Notations**
On note
\[
\{\mathcal{V}_{i/j}\} = \begin{Bmatrix} \overrightarrow{\Omega_{i/j}} \\ \overrightarrow{V_{M \in i/j}} \end{Bmatrix}_M
\]
le torseur cinématique du mouvement du solide \(i\) par rapport au solide \(j\) au point \(M\). Ainsi,
\[
\{\mathcal{V}_{1/0}\} = \begin{Bmatrix} \omega_{10}\vec{z_0} \\ V\vec{x_1} \end{Bmatrix}_P.
\]
[^1]: La voie d'un véhicule est la distance entre roues gauche et droite d'un même essieu.
**Hypothèses**
On considère que les roues 2 et 3 roulent sans glisser sur le sol 0 aux points de contact respectifs \(I_d\) et \(I_g\).
### I.2 — Consigne de vitesse des moteurs
**Q1.** Préciser l'expression des torseurs cinématiques du mouvement des roues 2 et 3 par rapport au châssis 1 aux points respectifs \(C_d\) et \(C_g\).
**Q2.** En déduire l'expression littérale du vecteur vitesse \(\overrightarrow{V_{I_d \in 2/0}}\) en fonction de \(\omega_{10}\), \(\omega_{21}\), \(V\), \(a\) et de \(r\).
**Q3.** D'après les conditions d'étude, justifier la valeur à retenir pour \(\overrightarrow{V_{I_d \in 2/0}}\) et en déduire la relation
\[
\omega_{21} = \frac{V + a\omega_{10}}{r}.
\]
**Q4.** De manière analogue, déterminer l'expression de \(\omega_{31}\) en fonction de \(V\), \(\omega_{10}\), \(a\) et de \(r\).
### I.3 — Trajectoires particulières
Dans l'application de tracés de terrains sportifs ou de tracés de signalisation au sol des routes, les trajectoires à suivre par le robot sont généralement des lignes droites ou des arcs de cercle.
**Tracés en ligne droite**
**Q5.** Quel est le mouvement suivi par le robot dans le cas d'un tracé de peinture en ligne droite ? Que devient alors le torseur cinématique \(\{\mathcal{V}_{1/0}\}\) ?
**Q6.** En déduire l'expression des consignes de vitesse à imposer aux roues, \(\omega_{21}\) et \(\omega_{31}\), en fonction, entre autres, de la vitesse \(V\) imposée au robot.
**Tracés en arc de cercle**
Soit la trajectoire définie sur la **figure 4** par les traits en pointillés. Celle-ci a pour paramètres le centre du virage, le point \(O\) et le rayon du virage \(R\) tel que \(\overrightarrow{OP} = R\vec{y_1}\).
**Q7.** Déterminer la relation entre \(V\) et \(\omega_{10}\).
**Q8.** À partir du résultat des questions **Q3.** et **Q4.**, déterminer les consignes de vitesse à imposer aux roues, \(\omega_{21}\) et \(\omega_{31}\), en fonction de la vitesse imposée au robot \(V\), du rayon de virage \(R\) et du rayon des roues \(r\) et de la demi-voie \(a\).
**Cas particulier d'un changement de direction, rotation autour du point \(P\)**
Durant son parcours, le robot sera amené à changer de direction sans changer de place, c'est-à-dire, sans modification de la position du point \(P\), centre du jet de peinture.
**Q9.** Dans ces conditions, déterminer les consignes de vitesse \(\omega_{21}\) et \(\omega_{31}\) à imposer aux roues en fonction de \(\omega_{10}\) et en déduire le rapport \(\dfrac{\omega_{21}}{\omega_{31}}\).
## Partie II — Étude du basculement du robot dans un virage
**Objectifs :** écrire un modèle dynamique du robot dans un virage afin de vérifier l'exigence 1.1.1 pour un robot équipé d'une ou deux roues folles.
### II.1 — Modélisation des caractéristiques inertielles du robot
Afin de modéliser le comportement dynamique du robot, un modèle des caractéristiques inertielles du robot est nécessaire. Un modèle simplifié est proposé sur la **figure 5**.
**Figure 5 — Modélisation géométrique et inertielle du robot**
Vue de derrière. Repères et cotes imprimés : \(\vec{y_1}\), \(\vec{x_1}\) (vers l'arrière de la feuille), \(c_R\), \(R\), \(b_R\), \(c_C\), \(C\), \(b_C\), M1, \(d_M\), \(\times P\), M2, \(h_M\), roue gauche, roue avant, roue droite.
Vue de côté. Repères et cotes imprimés : \(\vec{z_1}\), \(\vec{x_1}\), \(\vec{y_1}\) (vers l'observateur), \(c_R\), \(R\), \(a_R\), \(c_C\), \(C\), \(a_C\), \(\times P\), \(d_M\), M1, roue avant, roue arrière.
**Notations et hypothèses**
Les seules inerties prises en compte dans ce modèle sont celles des stators des moteurs (notés M1 et M2), du châssis (noté C) et du réservoir (noté R). Les inerties des autres pièces du robot (notamment des roues) seront négligées. Les stators sont modélisés comme des cylindres homogènes d'axe \((P, \vec{y_1})\), symétriques par rapport au plan \((P, \vec{x_1}, \vec{z_1})\), de diamètre \(d_M\), de hauteur \(h_M\) et de masse \(m_M\). Le châssis est modélisé comme un parallélépipède homogène, symétrique par rapport au plan \((P, \vec{x_1}, \vec{z_1})\), de côtés \(a_C \times b_C \times c_C\) et de masse \(m_C\). Comme indiqué sur la **figure 5**, les plans du châssis de normale \(\vec{y_1}\) sont les mêmes que les sections extrêmes des stators. De plus, le châssis est « posé » sur les stators. Le réservoir est modélisé comme un parallélépipède homogène, symétrique par rapport au plan \((P, \vec{x_1}, \vec{z_1})\), de côtés \(a_R \times b_R \times c_R\) et de masse \(m_R\). Comme indiqué sur la **figure 5**, on considère que le réservoir est simplement posé sur le châssis.
On note \(G\) le centre d'inertie du robot, tel que \(\overrightarrow{PG} = x_G\vec{x_1} + y_G\vec{y_1} + z_G\vec{z_1}\).
**Q10.** Expliquer pourquoi \(y_G = 0\).
**Q11.** Déterminer \(x_G\) et \(z_G\) en fonction des données.
Ci-après, on donne la matrice d'inertie en son centre d'inertie \(G_{cyl}\) d'un cylindre homogène d'axe \((G_{cyl}, \vec{z})\) de rayon \(R\), de hauteur \(h\) et de masse \(m\) :
\[
I(G_{cyl}, cylindre) = \begin{pmatrix}
m\left(\dfrac{R^2}{4} + \dfrac{h^2}{12}\right) & 0 & 0 \\
0 & m\left(\dfrac{R^2}{4} + \dfrac{h^2}{12}\right) & 0 \\
0 & 0 & m\dfrac{R^2}{2}
\end{pmatrix}_{(\vec{x}, \vec{y}, \vec{z})}
\]
Le schéma associé porte les repères \(\vec{x}\), \(\vec{y}\), \(\vec{z}\), \(G_{cyl}\), \(R\) et \(h\).
**Q12.** Donner la matrice d'inertie du stator M1 en son centre d'inertie noté \(G_{M1}\) en fonction de \(m_M\), \(d_M\) et de \(h_M\) dans la base \(\mathcal{B}_1\).
**Q13.** Exprimer le vecteur \(\overrightarrow{GG_{M1}}\) en fonction de \(x_G\), \(z_G\), \(b_C\) et de \(h_M\) dans la base \(\mathcal{B}_1\).
**Q14.** Déduire, des deux questions précédentes, le moment d'inertie \(I_{G x_1}\) suivant l'axe \((G, \vec{x_1})\) du stator M1.
### II.2 — Modélisation du comportement dynamique du robot en virage
**Torseur dynamique**
On suppose que le torseur dynamique du robot ne dépend pas du nombre de roues folles.
Le modèle et les notations proposés sur la **figure 4** seront utilisés pour cette partie.
**Notations et hypothèses supplémentaires**
Comme l'inertie des roues du robot est négligée, l'ensemble du robot est assimilé au châssis 1 pour son comportement dynamique. Sa matrice d'inertie est :
\[
I(G, robot) = I(G, 1) = \begin{pmatrix}
A & 0 & -E \\
0 & B & 0 \\
-E & 0 & C
\end{pmatrix}_{(\vec{x_1}, \vec{y_1}, \vec{z_1})}.
\]
On note le torseur dynamique du robot 1 par rapport au sol 0 au point \(G\) :
\[
\{\mathcal{D}_{1/0}\} = \begin{Bmatrix} \vec{R}_d(1/0) \\ \vec{\delta}(G, 1/0) \end{Bmatrix}_G.
\]
On note \(m_1\) la masse du robot et on suppose que la vitesse de rotation de 1 par rapport à 0, \(\omega_{10}\), et le rayon du virage, \(R\), sont constants.
**Q15.** Exprimer, dans la base \(\mathcal{B}_1\), la résultante dynamique du robot par rapport au sol 0, \(\vec{R}_d(1/0)\), en fonction de \(R\), \(x_G\), \(\omega_{10}\) et de \(m_1\).
**Q16.** Exprimer, dans la base \(\mathcal{B}_1\), le moment dynamique du robot en \(G\) par rapport au sol 0, \(\vec{\delta}(G, 1/0)\), en fonction de \(E\) et de \(\omega_{10}\).
**Robot avec une roue folle**
Le paramétrage du robot Bering avec une roue folle est donné sur la **figure 6**.
**Figure 6 — Paramétrage du Bering avec une roue folle**
Repères imprimés, schéma de gauche : \(O\), \(\vec{x_0}\), \(\vec{y_0}\), \(\odot\vec{z_0}\), \(\theta_{10}\), roue 2, roue 3, \(C_d\), \(C_g\), \(P\), châssis 1, \(\vec{x_1}\), \(\vec{y_1}\).
Repères imprimés, schéma de droite : \(\vec{z_1}\), \(\otimes\vec{y_1}\), \(C_d\), \(I_d\), roue 4, \(C_a\), \(I_a\), \(\vec{x_1}\).
**Notations et hypothèses**
On note \(\overrightarrow{C_d C_g} = 2a\vec{y_1}\) et \(\overrightarrow{I_d I_a} = a\vec{y_1} + b\vec{x_1}\).
On note l'accélération de pesanteur \(\vec{g} = -g\vec{z_1}\).
Les torseurs des actions mécaniques du sol sur les différentes roues sont :
\[
\{\mathcal{T}_{0 \to 2}\} = \begin{Bmatrix} X_2\vec{x_1} + Y_2\vec{y_1} + Z_2\vec{z_1} \\ \vec{0} \end{Bmatrix}_{I_d}
\qquad
\{\mathcal{T}_{0 \to 3}\} = \begin{Bmatrix} X_3\vec{x_1} + Y_3\vec{y_1} + Z_3\vec{z_1} \\ \vec{0} \end{Bmatrix}_{I_g}
\qquad
\{\mathcal{T}_{0 \to 4}\} = \begin{Bmatrix} X_4\vec{x_1} + Y_4\vec{y_1} + Z_4\vec{z_1} \\ \vec{0} \end{Bmatrix}_{I_a}
\]
**Q17.** Écrire, dans la base \(\mathcal{B}_1\), les trois équations scalaires du théorème de la résultante dynamique appliqué au robot.
En résolvant le système des 6 équations du principe fondamental de la dynamique appliqué au robot, il est possible de déterminer les expressions de \(Z_2\), \(Z_3\) et de \(Z_4\) :
\[
\begin{cases}
Z_2 = \dfrac{-m_1\omega_{10}^2(z_G + r)(x_G a + Rb) + am_1 g(b - x_G) - aE\omega_{10}^2}{2ab} \\[1em]
Z_3 = \dfrac{-m_1\omega_{10}^2(z_G + r)(x_G a - Rb) + am_1 g(b - x_G) - aE\omega_{10}^2}{2ab} \\[1em]
Z_4 = \dfrac{E\omega_{10}^2 + x_G m_1 g + m_1\omega_{10}^2 x_G(z_G + r)}{b}
\end{cases}
\]
On donne : \(|V| = R\,|\omega_{10}|\).
**Q18.** Lorsque le robot atteindra la vitesse limite de basculement (exigence 1.1.1), quelle roue (roue 2, roue 3 ou roue 4) ne touchera plus le sol ? En déduire la valeur de \(Z_i\) (\(i = 2\), \(3\) ou \(4\)) qui permettrait de déterminer cette vitesse limite.
**Robot avec deux roues folles**
Le robot Bering avec deux roues folles est présenté sur la **figure 7**.
Pour simplifier les calculs, on suppose que la voie des roues avant et arrière est la même.
Les torseurs des actions mécaniques du sol sur les différentes roues sont :
\[
\{\mathcal{T}_{0 \to 2}\} = \begin{Bmatrix} X_2\vec{x_1} + Y_2\vec{y_1} + Z_2\vec{z_1} \\ \vec{0} \end{Bmatrix}_{I_d}
\]
\[
\{\mathcal{T}_{0 \to 3}\} = \begin{Bmatrix} X_3\vec{x_1} + Y_3\vec{y_1} + Z_3\vec{z_1} \\ \vec{0} \end{Bmatrix}_{I_g}
\]
\[
\{\mathcal{T}_{0 \to 4}\} = \begin{Bmatrix} X_4\vec{x_1} + Y_4\vec{y_1} + Z_4\vec{z_1} \\ \vec{0} \end{Bmatrix}_{I_a}
\]
\[
\{\mathcal{T}_{0 \to 5}\} = \begin{Bmatrix} X_5\vec{x_1} + Y_5\vec{y_1} + Z_5\vec{z_1} \\ \vec{0} \end{Bmatrix}_{I_b}
\]
**Figure 7 — Paramétrage du Bering avec deux roues folles**
Repères imprimés : roue 2, roue 3, roue 4, roue 5.
Pour déterminer la vitesse maximale que peut avoir le robot avec deux roues folles avant basculement, on applique le principe fondamental de la dynamique au robot et on suppose que deux roues décollent en même temps lors du basculement.
**Q19.** Indiquer si une augmentation des paramètres géométriques suivants va augmenter ou diminuer la vitesse maximale que peut avoir le robot avec deux roues folles avant basculement : \(R\) rayon du virage et \(a\) demi-voie du robot.
**Validation du cahier des charges**
Lorsque le réservoir de peinture est plein ou vide, la coordonnée verticale du centre de gravité du robot \(z_G\) change. Le constructeur aimerait connaître quelles valeurs de \(z_G\) permettent d'éviter le basculement du robot dans les conditions définies dans le cahier des charges. La **figure 8** donne la vitesse maximale avant basculement pour une ou deux roues folles dans un virage de rayon \(0{,}5\,\mathrm{m}\).
**Figure 8 — Vitesse maximale avant basculement pour une ou deux roues folles**
Axe vertical : \(V_{max}\) \((\mathrm{m/s})\), gradué de \(0\) à \(6\).
Axe horizontal : \(z_G\) \((\mathrm{m})\), gradué de \(0\) à \(1\) par pas de \(0{,}1\).
Légende imprimée : trait plein « une roue folle » ; trait interrompu « deux roues folles ».
**Q20.** Donner les valeurs de \(z_G\) qui permettent d'éviter le basculement du robot avec une ou deux roues folles.
## Partie III — Étude de l'asservissement du déplacement
**Objectifs :** définir les paramètres du correcteur de la chaîne d'asservissement en lacet permettant au robot Bering de respecter les exigences dérivées de l'exigence 1.1.3.2.
**Notations — Hypothèses**
Pour toute grandeur physique \(g(t)\), on notera \(G(p) = \mathcal{L}[g(t)]\) sa transformée de Laplace. Dans cette partie, les conditions de Heaviside sont supposées réunies.
### III.1 — Présentation de la structure de commande
La **partie I** a permis de mettre en relation les paramètres cinématiques d'entrée (vitesses à imposer aux roues) aux paramètres cinématiques de sortie (vitesse du robot Bering et trajectoire à suivre).
Dans la commande du robot, la vitesse d'avance \(V\) est fixée constante et la trajectoire à suivre est discrétisée en une série de \(n\) points équidistants \(P_i\) (**figure 9**), chaque point à atteindre étant défini par une direction à suivre, l'angle de lacet \(\beta_c\), tel que \(\beta_c = (\vec{x_0}, \vec{x_i})\) (**figure 10**). L'angle de lacet du robot est, quant à lui, défini par l'angle \(\beta = (\vec{x_0}, \vec{x_1})\). Afin de garantir le suivi de la trajectoire imposée par le tracé, l'angle de lacet et la vitesse de rotation des roues sont asservis.
**Figure 9 — Définition de la trajectoire à suivre par le robot**
Repères imprimés : \(P\), \(\vec{x_1}\), \(\vec{y_1}\), \(P_i\), \(P_{i+1}\), \(P_{i+2}\).
**Figure 10 — Définition des angles de lacet**
Repères imprimés : \(P\), \(\beta_c\), \(\beta\), \(P_{i+1}\), \(\vec{x_0}\), \(\vec{x_1}\), \(\vec{x_i}\).
**Asservissement en lacet**
La **figure 11** présente le schéma-bloc fonctionnel simplifié de l'asservissement de l'angle de lacet \(\beta\) à l'angle de lacet de consigne \(\beta_c\), imposé par la trajectoire à suivre (par exemple, pour une ligne droite, \(\beta_c = 0\)).
**Figure 11 — Schéma-bloc fonctionnel simplifié de l'asservissement en lacet**
Blocs et grandeurs imprimés, de la consigne vers la sortie : comparateur (\(\beta_c\), retour \(\beta\)) \(\to \varepsilon_\beta \to\) Corr. \(\to\) Adap. \(\to \Delta\omega_c\).
Voie haute : sommateur recevant \(\omega_c\) et \(\Delta\omega_c\), sortie \(\omega_{cg}\), puis MG, \(\omega_{mg}\), TG, \(d_g\).
Voie basse : sommateur, sortie \(\omega_{cd}\), puis MD, \(\omega_{md}\), TD, \(d_d\).
Sommateur de \(d_g\) et \(d_d\) (signe \(-\) imprimé sur une entrée), puis bloc \(\dfrac{1}{b}\), sortie \(\beta\), rebouclée sur le comparateur d'entrée.
Pour cela, \(\beta_c\) est comparé à \(\beta\), mesuré par une centrale d'inertie. L'écart résultant, \(\varepsilon_\beta\), est alors corrigé par un correcteur de fonction de transfert \(C(p)\) et adapté avec un gain \(k_a\) pour fournir une petite variation de vitesse de rotation de consigne \(\Delta\omega_c\) à imposer à chacun des moteurs gauche et droit noté MG et MD. Chaque moteur tourne aux vitesses respectives \(\omega_{mg}\) et \(\omega_{md}\) qui sont respectivement asservies aux vitesses de consignes \(\omega_{cg}\) et \(\omega_{cd}\) (voir **figure 12**) calculées à partir de la vitesse de consigne \(\omega_c\), commune aux deux moteurs, permettant au robot Bering de se déplacer à la vitesse \(V\) en ligne droite. La différence de vitesse entre les moteurs gauche et droit entraîne, via les transmissions gauche et droite, notée TG et TD, une distance parcourue \(d_g\) et \(d_d\) différentes pour les points \(I_g\) et \(I_d\) (voir **figure 4**), impliquant un angle de lacet \(\beta\) du robot.
**Asservissement en vitesse du moteur**
La **figure 12** présente l'asservissement en vitesse de rotation du moteur gauche. Celui du moteur droit est rigoureusement le même.
La vitesse de consigne \(\Omega_{cg}\) (resp. \(\Omega_{cd}\)) est comparée à la vitesse de rotation réelle du moteur \(\Omega_{mg}\) (resp. \(\Omega_{md}\)) pour former l'écart de vitesse de rotation \(\varepsilon_\Omega\). Cet écart est alors corrigé par un correcteur de fonction de transfert \(C_\Omega(p)\) afin d'établir une tension de consigne \(U_c\) imposée au variateur de gain \(K_v\). La tension en sortie du variateur \(U_m\) alimente le moteur de fonction de transfert \(H_m(p)\) qui tourne alors à la vitesse \(\Omega_{mg}\).
**Figure 12 — Schéma-bloc de la modélisation de l'asservissement en vitesse de la roue gauche**
Chaîne directe imprimée : \(\Omega_{cg}(p)\), comparateur (signe \(+\) sur la consigne, signe \(-\) sur le retour), \(\varepsilon_\Omega(p)\), \(C_\Omega(p)\), \(U_c(p)\), \(K_v\), \(U_m(p)\), sommateur, \(H_m(p)\), \(\Omega_{mg}(p)\), rebouclé sur le comparateur.
Entrée de perturbation imprimée : \(C_r(p)\) puis \(H_{pert}(p)\), sommée (signe \(+\)) avec \(U_m(p)\) en amont de \(H_m(p)\).
### III.2 — Modélisation du comportement du moteur
Le fonctionnement des moteurs utilisés sur le robot Bering peut être modélisé par les équations suivantes :
- équation électrique : \(u_m(t) = Ri_m(t) + L\dfrac{\mathrm{d}i_m(t)}{\mathrm{d}t} + e(t)\)
- équation mécanique : \(J_e\dfrac{\mathrm{d}\omega_m(t)}{\mathrm{d}t} = c_m(t) + c_r(t)\)
- équations de couplage : \(e(t) = k_e\omega_m(t)\) et \(c_m(t) = k_c i_m(t)\)
où \(i_m(t)\) est le courant qui traverse le moteur, \(e(t)\) la force contre-électro-motrice, \(c_m(t)\) le couple délivré par le moteur et \(c_r(t)\) le couple résistant. \(R\), \(L\), \(J_e\), \(k_e\) et \(k_c\) sont respectivement la résistance électrique du moteur, l'inductance du moteur, l'inertie équivalente ramenée sur l'arbre moteur, la constante électrique et la constante de couple du moteur.
**Q21.** Déterminer la transformée de Laplace des 4 équations et compléter le schéma-bloc du moteur en précisant les fonctions de transfert et les entrées et sorties de chaque bloc.
**Q22.** Déterminer les expressions littérales de la forme canonique des fonctions de transfert du moteur \(H_m(p)\) et \(H_{pert}(p)\) définies **figure 12**. En déduire les paramètres caractéristiques de la fonction de transfert \(H_m(p)\).
On note \(J_r = 5\cdot 10^{-3}\,\mathrm{kg\cdot m^2}\) le moment d'inertie d'une roue arrière autour de son axe de rotation et \(J_m = 6{,}4\cdot 10^{-6}\,\mathrm{kg\cdot m^2}\) celui d'un arbre du moteur autour de son axe de rotation. La masse totale \(m\) du robot avec son chargement ne peut pas dépasser \(7{,}7\,\mathrm{kg}\). Cette masse est atteinte lorsque le robot est équipé du module de peinture haute pression et de son réservoir de peinture de \(5\,\mathrm{L}\) rempli. De plus, la transmission, identique à gauche et à droite, est modélisée par la fonction de transfert \(T(p) = \dfrac{r}{p}\) avec \(r = 0{,}19\,\mathrm{m}\) le rayon d'une roue arrière.
**Q23.** Déterminer l'expression de l'inertie équivalente du robot ramenée sur l'arbre d'un seul moteur \(J_e\) dans le cas où \(\omega_{mg} = \omega_{md}\) et en déduire un encadrement approché de sa valeur.
**Q24.** Quelle sera l'influence de la quantité de peinture dans le réservoir sur le comportement du moteur ?
### III.3 — Modélisation du comportement en lacet
Pour la suite, la fonction de transfert du moteur, sans perturbations, sera telle que \(H_m(p) = \dfrac{K_m}{1 + \tau_m p}\).
On s'intéresse ici à l'asservissement en lacet du robot défini par le schéma-bloc de la **figure 11** pour lequel le correcteur a une fonction de transfert \(C(p)\). L'adaptateur est modélisé par un gain pur \(k_a\).
**Q25.** Compléter le tableau en renseignant le signe de l'écart \(\varepsilon_\beta\) et de \(\Delta\Omega_c\) et l'évolution (\(\searrow\) ou \(\nearrow\)) à imposer aux vitesses des roues \(\Omega_{mg}\) et \(\Omega_{md}\) en fonction du signe de l'angle de lacet mesuré pour une consigne en lacet nulle \(\beta_c = 0\).
**Q26.** Déterminer l'expression de la fonction de transfert \(H_1(p) = \dfrac{\beta(p)}{\Delta\Omega_c(p)}\) en fonction de \(H_m(p)\), \(T(p)\) et de \(b\).
**Q27.** En déduire l'expression littérale de la fonction de transfert en boucle ouverte \(H_{BO}(p)\) de l'asservissement en lacet en fonction des paramètres de l'étude.
Le document réponse présente la réponse temporelle en lacet du Bering asservi non corrigé (\(C(p) = 1\)) pour un échelon de consigne en lacet unitaire (\(\beta_c = 1^\circ\) pour \(t > 0\)).
**Q28.** Confronter les performances du système non corrigé aux exigences associées à l'asservissement en réponse temporelle.
### III.4 — Choix du correcteur
Quelque soit le résultat trouvé précédemment, on retient pour la suite \(H_{BO}(p) = \dfrac{5}{p\,(1 + 0{,}05\,p)}\). L'asservissement est maintenant corrigé par un correcteur à avance de phase de fonction de transfert
\[
C(p) = K_p\dfrac{1 + a\tau p}{1 + \tau p}.
\]
**Q29.** Justifier le choix de ce type de correcteur en vous appuyant sur la **Q28**.
On souhaite une action asymptotique du correcteur sur une décade à partir de la pulsation de cassure de la fonction de transfert en boucle ouverte \(H_{BO}\).
**Q30.** Déterminer les valeurs des coefficients \(a\) et \(\tau\) pour cette correction.
**Q31.** Réaliser les tracés asymptotiques et réels des diagrammes de Bode de gain et de phase du correcteur pour \(K_p = 1\) en annotant les tracés des valeurs remarquables.
Les diagrammes de Bode de gain et de phase de \(H_{BO}\) corrigée sont donnés sur le document réponse pour une valeur de \(K_p = 1\).
**Q32.** Déterminer l'ensemble des valeurs de \(K_p\) permettant de respecter l'exigence de stabilité et de rapidité (bande passante). On attend ici des valeurs exprimées sous la forme \(10^{p/q}\).
La figure du document réponse présente la réponse indicielle de l'asservissement pour une valeur de \(K_p\) dans l'encadrement précédemment trouvé.
**Q33.** Conclure sur le respect des exigences 1.1.3.2 de l'asservissement en lacet.
## Partie IV — Étude de l'élaboration d'un coin
**Objectifs :** définir le comportement du robot dans le cas du tracé d'un coin sans recouvrement de peinture conformément aux normes (exigence 1.2.2).
Un cas d'utilisation complexe du robot Bering est le tracé de terrains sportifs (**figure 13**). Ces tracés présentent des singularités comme des angles droits, des recouvrements de peinture, etc.
**Figure 13 — Exemples de tracés de terrains sportifs**
- (a) terrain de tennis
- (b) terrain de foot
Pour réaliser des tracés sur un terrain de sport, c'est le module haute-pression (**figures 3c et 14**) qui équipe le robot Bering. La buse envoie, sur demande, de la peinture sur le sol au niveau du point \(P\) (voir **figure 4**) sous la forme d'une ligne de largeur \(L\) (délimitée par la présence des deux flasques) qui peut être ajustée en fonction des exigences imposées par les normes des fédérations sportives.
Lors de son parcours, le robot devra réaliser plusieurs fonctions : se déplacer en ligne droite, se déplacer en arc de cercle ou changer de direction (voir **partie I**) avec ou sans dépose de peinture.
**Figure 14 — Module de peinture haute-pression**
Repères imprimés : Réservoir, Buse, Flasques.
### IV.1 — Réalisation du tracé d'un coin
La réalisation du tracé d'un coin peut présenter des problèmes de recouvrement de peinture. Plusieurs algorithmes de changement de trajectoire ont été réalisés ; le résultat de ceux-ci est présenté sur la **figure 15**, où le niveau de gris est représentatif du nombre de couches de peinture.
Légende imprimée : gris clair, 1 couche ; gris moyen, 2 couches ; gris foncé, 3 couches.
**Figure 15 — Traces de peinture lors du tracé d'un coin**
Quatre configurations (a), (b), (c) et (d). Repères imprimés sur chaque schéma : \(P_i\), \(P_{i+1}\), \(P_{i-1}\), et la largeur \(L\) sur le schéma (a).
Pour représenter ces différents algorithmes, les diagrammes d'états sont utilisés :
- les mouvements de Bering correspondent à des états *Avancer*, *Tourner de 90°*, *Reculer* ayant pour action respective *Avancer le robot*, *Tourner le robot*, *Reculer le robot* ;
- le dépôt de peinture est décrit par l'action *Ouvrir la buse* ; l'arrêt du dépôt de peinture par l'action *Fermer la buse* ;
- les conditions de garde permettant le passage d'un état à un autre peuvent correspondre à l'évènement du point \(P\) qui atteint un point particulier. Dans cette étude, on ne s'intéresse pas à la façon dont la position du point \(P\) est déterminée.
Le diagramme d'états de l'état composite permettant le tracé du coin (a) au niveau du point \(P_i\) est donné partiellement sur le document réponse. Cet état composite débute lorsque la position du robot, identifiée par le point \(P\) (**figure 9**), est au niveau du point \(P_{i-1}\) et se termine lorsque celui-ci se trouve au point \(P_{i+1}\).
**Q34.** Compléter les conditions de garde ① et ② permettant de sortir de l'état *Avancer* et les actions ③ et ④ de l'état *Tourner* permettant la réalisation du coin (a) ou du coin (b). Une cellule du tableau vide sera marquée du signe \(\times\).
Afin de réaliser le coin (c), on propose d'établir un nouveau point \(P_B\) dont la position dépend de la largeur \(l\) du tracé. Le diagramme d'états de l'état composite permettant le tracé du coin (c) est donné par la **figure 16**.
**Figure 16 — Diagramme d'états permettant la réalisation du tracé du coin (c)**
- État initial (pastille pleine) vers l'état **Avancer** :
- Entry / Ouvrir la buse
- Do / Avancer le robot
- Exit / Fermer la buse
- Transition `when (P = P_{i+1})` vers l'état final.
- Transition `when (P = P_i)` vers l'état **Tourner de 90°** : Do / Tourner le robot de 90°, puis transition vers **Reculer**.
- État **Reculer** : Do / Reculer le robot.
- Transition `when (P = P_B)` de **Reculer** vers **Avancer**.
**Q35.** Placer rigoureusement le point \(P_B\) sur la figure du coin (c) et le reporter sur celle du coin (d).
Pour réaliser le coin (d), le document réponse propose une adaptation du diagramme d'état précédent avec l'introduction d'un nouveau point \(P_A\).
**Q36.** Placer le point \(P_A\) sur la figure du coin (d) et compléter le diagramme d'état qui permet la réalisation du coin (d).
## Partie V — Optimisation du parcours de marquage
### Partie ITC
**Objectifs :** trier les lignes à tracer afin de respecter l'exigence 1.2.3.
Afin d'optimiser le parcours (exigence énergétique), on se propose de réaliser un programme qui minimise les trajets entre deux lignes successives.
Quelques syntaxes de manipulation de fichier sont données dans le tableau situé à la fin du document réponse page 16/16.
### V.1 — Création d'un dictionnaire contenant les lignes à tracer
On considère que l'ensemble de lignes à tracer pour une opération de marquage est extrait d'une base de données sous forme d'un fichier texte d'extension `txt` qui ne contient que les coordonnées (en m) des extrémités de chaque ligne à tracer. Les variables sont séparées par des tabulations.
Les lignes à tracer sont stockées dans un dictionnaire tel que :
- les clés sont de type entier représentant le numéro de la ligne à tracer par ordre de lecture du fichier `txt` ;
- les valeurs associées sont les coordonnées (type float) des extrémités contenues dans un tableau (type list) de 2-uplets \((x_i, y_i)\).
**Exemple**
Le tracé d'un carré de \(1\,\mathrm{m}\) de côté divisé en 4 carrés identiques emploie le fichier `carre.txt` comme l'illustre la **figure 17**.
```
xp1 yp1 xp2 yp2
0. 0. 1. 0.
0. 0. 0. 1.
1. 1. 0. 1.
1. 1. 1. 0.
0.5 0. 0.5 1.
0. 0.5 1. 0.5
```
**Figure 17 — Fichier `carre.txt` (à gauche) et résultat du tracé en gras (à droite)**
Repères imprimés sur le tracé : \((0,0)\), \((1,0)\), ligne 1, ligne 2, ligne 3, ligne 4, ligne 5, ligne 6.
Le dictionnaire associé, pour les seules valeurs de clé 0 et 1, correspond à :
```
{0: [(0.0, 0.0), (1.0, 0.0)], 1: [(0.0, 0.0),(0.0, 1.0)]}
```
Le script python du document réponse **Q38.** permet de créer le dictionnaire défini précédemment à partir d'un fichier `txt`.
**Q37.** Préciser le rôle de la variable `k` et expliquer les raisons de la structure conditionnelle sur sa valeur.
**Q38.** Proposer les deux lignes de code manquantes et la valeur de la clé du dictionnaire `traces` permettant de construire le dictionnaire comme défini précédemment.
### V.2 — Recherche de l'extrémité de la ligne à tracer la plus proche
Pour garantir un tracé le plus précis possible, une ligne doit être tracée en une seule fois. Par contre, aucun sens de tracé n'est imposé : le robot peut débuter la ligne par n'importe quelle extrémité. Ainsi, afin d'optimiser la distance parcourue par le robot pour réaliser le tracé d'un terrain complet, on cherche à minimiser, pour chaque fin de ligne tracée, la distance, au sens de la distance euclidienne, entre le point d'arrivée de la ligne tracée et le point de départ de la ligne suivante.
**Q39.** En utilisant la fonction `sqrt` du module `math` qui renvoie la racine carrée d'un nombre passé en argument (les commandes nécessaires à sa bonne utilisation seront précisées), donner la fonction `distance` de signature et spécification suivante :
```python
def distance(A:(float , float),B:(float , float))->float :
"""
Renvoie la distance euclidienne entre les deux points A et B
"""
```
Le document réponse **Q41.** présente le script python de la fonction `PPE`, plus proche extrémité.
**Q40.** Donner la signature et la spécification de la fonction `PPE`.
**Q41.** Commenter chacune des lignes du code de la fonction `PPE`.
### V.3 — Recherche du parcours le plus court
On se propose maintenant de définir la fonction `trajet` permettant de définir le parcours optimal pour le tracé d'un marquage.
**Q42.** Compléter le script de la fonction `trajet` qui prend en argument une position initiale sous la forme d'un 2-uplet de type float et un dictionnaire tel que défini au début de la partie et qui renvoie une liste des points du parcours dans l'ordre, représentée par une liste de 2-uplets indiquant la clé de la ligne à tracer et l'indice de l'extrémité de début de ligne dans le dictionnaire initial.
L'appel de la fonction `trajet` est réalisé à partir du point \((0,0)\) et du dictionnaire `traces`.
**Q43.** Justifier s'il est encore possible d'utiliser le dictionnaire `traces` une fois l'appel de la fonction `trajet` terminée.
**Q44.** La commande `traces1=copy(traces)` placée juste après la commande `fichier.close()` du code de création du dictionnaire (voir début de la partie) peut-elle résoudre le problème ?
### V.4 — Retour sur l'exemple du tracé du carré
Dans le cas de l'exemple du carré à tracer (**figure 17**), le document réponse propose deux possibilités pour la condition d'affectation de la variable `dmin` dans la fonction `PPE`.
**Q45.** Quelle sera la conséquence sur le choix de l'extrémité la plus proche dans chacun des cas ?
**Q46.** Compléter la figure en considérant l'appel de fonction `trajet((0,0),traces)` où le dictionnaire `traces` a été créé à partir du fichier `carre.txt` (**figure 17**). Pour cela, vous indiquerez :
- l'ordre de tracé des lignes par un numéro sur la ligne ;
- le sens de parcours de la ligne par une flèche sur la ligne ;
- les trajets « sans peinture » par un trait en pointillé numéroté et fléché.
**Figure 18 — Extrait du diagramme des exigences du robot Bering**
Les blocs portent le stéréotype `<<exigence>>`. Ils sont disposés en trois colonnes et reliés par des flèches étiquetées `<<derive>>`. On relève une chaîne verticale centrale, flèches vers le haut : Stabilité, Asservissement du lacet, Suivre une trajectoire, Déplacement sur le sol, Réaliser les tracés. À droite, Respecter les normes et Optimiser le tracé sont reliés à Peindre le sol. Les exigences de la colonne de gauche portent des flèches `<<derive>>` vers la colonne centrale.
Colonne de gauche, de haut en bas :
- **Charge maximale.** Text = "Le système embarque une charge maximale de 4,6 kg." Id = "1.3"
- **Non basculement.** Text = "Le système ne bascule pas lors de la prise de virage de rayon 0,5 m pour une vitesse de 1,5 m/s." Id = "1.1.1"
- **Vitesse de déplacement.** Text = "Le système se déplace sur le sol à une vitesse maximale de 2,8 km/h." Id = "1.1.2"
- **Parcours le plus rapide.** Text = "Le système choisit le parcours le plus rapide." Id = "1.1.3.1"
- **Erreur statique.** Text = "L'erreur statique est nulle." Id = "1.1.3.2.1"
- **Rapidité.** Text = "Le temps de réponse à 5 % est inférieur à 0,01 s. La bande passante à 0 dB doit être supérieure à 100 rad/s." Id = "1.1.3.2.2"
Colonne centrale, de haut en bas :
- **S'adapter au type de peinture.** Text = "Le système dispose de différents sous-systèmes de peinture." Id = "1.2.1"
- **Réaliser les tracés.** Text = "Le système se déplace sur le sol en déposant ou non de la peinture." Id = "1"
- **Déplacement sur le sol.** Text = "Le système se déplace sur le sol." Id = "1.1"
- **Suivre une trajectoire.** Text = "Le système se déplace en suivant une trajectoire imposée." Id = "1.1.3"
- **Asservissement du lacet.** Text = "Le lacet du système est asservi afin de suivre la direction de la trajectoire." Id = "1.1.3.2"
- **Stabilité.** Text = "La marge de phase \(M_\varphi\) est supérieure à 45° et la marge de gain \(M_G\) supérieure à 10 dB." Id = "1.1.3.2.3"
Colonne de droite, de haut en bas :
- **Respecter les normes.** Text = "Le système doit respecter les normes de tracés imposées par les fédérations." Id = "1.2.2"
- **Peindre le sol.** Text = "Le système doit peindre le sol en respectant le type de peinture." Id = "1.2"
- **Optimiser le tracé.** Text = "Le système doit minimiser les distances à parcourir lors d'un tracé." Id = "1.2.3"
- **Asservissement de la position.** Text = "La position du système est asservie afin de respecter le tracé des lignes de peinture." Id = "1.1.3.3"
- **Dépassement.** Text = "Le dépassement maximal est inférieur à 10 %." Id = "1.1.3.2.4"
**FIN**
Aide sur une question
Connectez-vous pour demander une explication.