waypointTrajectory
Description
Le waypointTrajectory
System object™ génère des trajectoires basées sur des waypoints spécifiés. Lorsque vous créez le System object, vous pouvez choisir de spécifier l'heure d'arrivée, la vitesse ou la vitesse sol à chaque waypoint. Vous pouvez éventuellement spécifier d'autres propriétés telles que l'orientation à chaque waypoint. Voir Algorithmes pour plus de détails.
Pour générer une trajectoire à partir de waypoints :
Créez l'objet
waypointTrajectory
et définissez ses propriétés.Appelez l'objet comme s'il s'agissait d'une fonction.
Pour en savoir plus sur le fonctionnement des objets système, consultez What Are System Objects?.
Création
Syntaxe
Description
renvoie un System object, trajectory
= waypointTrajectorytrajectory
, qui génère une trajectoire basée sur des waypoints stationnaires par défaut.
précise l'heure d'arrivée à laquelle la trajectoire générée passe par chaque waypoint. Voir la propriété trajectory
= waypointTrajectory(Waypoints
,TimeOfArrival
)TimeOfArrival
pour plus de détails.
Conseil
Lorsque vous spécifiez l'argument TimeOfArrival
, vous ne devez pas spécifier ces propriétés :
JerkLimit
InitialTime
WaitTime
spécifie la vitesse sol à laquelle passe la trajectoire générée à chaque waypoint. Voir la propriété trajectory
= waypointTrajectory(Waypoints
,GroundSpeed=groundSpeed)GroundSpeed
pour plus de détails.
spécifie la vitesse à laquelle la trajectoire générée passe à chaque waypoint. Voir la propriété trajectory
= waypointTrajectory(Waypoints
,Velocities=velocities)Velocities
pour plus de détails.
définit chaque propriété en utilisant des arguments nom-valeur. Les propriétés non spécifiées ont des valeurs par défaut ou déduites. Vous pouvez utiliser cette syntaxe avec n'importe laquelle des syntaxes précédentes.trajectory
= waypointTrajectory(___,Name=Value
)
Exemple : trajectory = waypointTrajectory([10,10,0;20,20,0;20,20,10],[0,0.5,10])
crée un System object de trajectoire de point de cheminement, trajectory
, qui commence au point de cheminement [10,10,0]
, puis passe par [20,20,0]
après 0,5 seconde et [20,20,10]
après 10 secondes.
Propriétés
Utilisation
Description
[
génère une trame de données de trajectoire basée sur les arguments et propriétés de création spécifiés.position
,orientation
,velocity
,acceleration
,angularVelocity
] = trajectory()
Arguments de sortie
Fonctions d'objet
Pour utiliser une fonction objet, spécifiez le System object comme premier argument d'entrée. Par exemple, pour libérer les ressources système d'un System object nommé obj
, utilisez cette syntaxe :
release(obj)
Exemples
Algorithmes
L' System object waypointTrajectory
définit une trajectoire qui passe en douceur par des waypoints. La trajectoire relie les points de cheminement via une interpolation qui suppose que la direction de la gravité exprimée dans le référentiel de trajectoire est constante. Généralement, vous pouvez utiliser waypointTrajectory
pour modéliser les trajectoires d'une plate-forme ou d'un véhicule sur une distance de plusieurs centaines de kilomètres.
Le chemin planaire de la trajectoire (la projection x- y ) se compose de courbes Clothoïdes par morceaux. La courbure de la courbe entre deux waypoints consécutifs varie linéairement avec la longueur de la courbe qui les sépare. La direction tangente du chemin à chaque waypoint est choisie pour minimiser les discontinuités dans la courbure, sauf si le cap est spécifié explicitement via la propriété Course
ou implicitement via la propriété Velocities
. . Une fois le chemin établi, l'objet utilise l'interpolation cubique Hermite pour calculer l'emplacement du véhicule tout au long du chemin en fonction du temps et de la distance planaire parcourue. Si la propriété JerkLimit
est spécifiée, les objets produisent un profil d'accélération trapézoïdale horizontale pour tout segment situé entre deux points de cheminement. Le profil d'accélération trapézoïdale se compose de trois sous-segments :
Un sous-segment de secousse d'ampleur constante
Un sous-segment d'accélération à magnitude constante
Un sous-segment de secousse d'ampleur constante
La composante normale (z-component) de la trajectoire est ensuite choisie pour satisfaire une spline par morceaux préservant la forme (PCHIP) à moins que le taux de montée ne soit spécifié explicitement via le ClimbRate
ou la troisième colonne de la propriété Velocities
. Choisissez le signe du taux de montée en fonction du ReferenceFrame
sélectionné :
Lorsqu'un référentiel 'ENU' est sélectionné, la spécification d'un taux de montée positif entraîne une valeur croissante de z.
Lorsqu'un cadre de référence 'NED' est sélectionné, la spécification d'un taux de montée positif entraîne une valeur décroissante de z.
Vous pouvez définir l'orientation du véhicule sur le trajet de deux manières principales :
Si la propriété
Orientation
est spécifiée, l'objet utilise une spline quaternion cubique par morceaux pour calculer l'orientation le long du chemin en fonction du temps.Si la propriété
Orientation
n'est pas spécifiée, alors le lacet du véhicule est toujours aligné avec la trajectoire. Le roulis et le tangage sont alors régis par les valeurs de propriétéAutoBank
etAutoPitch
, respectivement.AutoBank
AutoPitch
Description false
false
Le véhicule est toujours de niveau (tangage et roulis nuls). Ceci est généralement utilisé pour les grands navires marins. false
true
Le tangage du véhicule est aligné avec la trajectoire et son roulis est toujours nul. Ceci est généralement utilisé pour les véhicules terrestres. true
false
Le tangage et le roulis du véhicule sont choisis de manière à ce que son axe local z soit aligné avec l'accélération nette (y compris la gravité). Ceci est généralement utilisé pour les avions à voilure tournante. true
true
Le roulis du véhicule est choisi de manière à ce que son plan transversal local s'aligne avec l'accélération nette (y compris la gravité). L'inclinaison du véhicule est alignée avec le chemin. Ceci est généralement utilisé pour les véhicules à deux roues et les avions à voilure fixe.