Contenuto principale

Aero.trajectory.lissajousTrajectory

R2026b

Generate reference signals for Lissajous trajectory

Since R2026b

    Description

    refSignals = Aero.trajectory.lissajousTrajectory(Name=Value) generates reference signals for a Lissajous trajectory. Lissajous curves are smooth, continuous patterns obtained from the superposition of orthogonal oscillations. Use name-value arguments to define the search pattern.

    example

    Examples

    collapse all

    This example shows how to generate reference signals for a Lissajous trajectory starting at [0,0] meters with a 90-degree initial heading, and ending at [50,50] meters.

    refSignals = Aero.trajectory.lissajousTrajectory( ...
        TrajectoryType="Simple", ...
        InitialPosition=[0, 0], ...
        InitialHeading=pi/2, ...
        FieldCenter=[50, 50], ...
        Speed=10, ...
        Altitude=100)
    refSignals = struct with fields:
                     xNorth: [1×1 timeseries]
                      yEast: [1×1 timeseries]
                      Speed: [1×1 timeseries]
                   Altitude: [1×1 timeseries]
                    Heading: [1×1 timeseries]
            FlightPathAngle: [1×1 timeseries]
              WaypointIndex: [1×1 timeseries]
        LateralAcceleration: [1×1 timeseries]
    
    

    Name-Value Arguments

    collapse all

    Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

    Example: TrajectoryType = "Simple"

    Type of Lissajous curve, specified as Simple, Rectilinear, Circular, or Star.

    • Simple — Lissajous curve obtained from superposition of two orthogonal simple harmonic oscillations. The FrequencyRatio argument determines the shape of the pattern. This curve type sweeps through rectangular regions.

    • Rectilinear — Lissajous curve-like pattern obtained from sawtooth oscillations instead of simple harmonic oscillations. This argument results in straight-line coverage paths with uniform coverage. This curve type sweeps through rectangular regions.

    • Circular — Polar variation of Lissajous curve with orthogonal oscillations along radial and tangential directions. This curve type sweeps through circular sector-like regions.

    • Star — Polar variation of Lissajous curve where the radial coordinate varies along the boundary of an N-pointed star. This curve type sweeps through star-shaped regions.

    Example: TrajectoryType = "Circular"

    Length of the rectangular field the curve covers, specified as a positive scalar.

    Example: FieldLength = 20

    Dependencies

    To enable this name-value argument, set TrajectoryType to "Simple" or "Rectilinear".

    Data Types: double

    Width of the rectangular field the curve covers, specified as a positive scalar.

    Example: FieldWidth = 20

    Dependencies

    To enable this name-value argument, set TrajectoryType to "Simple" or "Rectilinear".

    Data Types: double

    Tilt of the field to form a parallelopiped, specified as a scalar in radians in the range [0, 2*pi].

    Example: Tilt = 20*pi/180

    Dependencies

    To enable this name-value argument, set TrajectoryType to "Simple" or "Rectilinear".

    Data Types: double

    Lower and upper bounds on the radius of the circular sector, specified as a 2-element vector.

    Example: RadiusRange = [5,20]

    Dependencies

    To enable this name-value argument, set TrajectoryType to "Circular".

    Data Types: double

    Lower and upper bounds on the angular width of the circular sector, specified as a 2-element vector in radians.

    Example: AngularRange = [0,pi]

    Dependencies

    To enable this name-value argument, set TrajectoryType to "Circular".

    Data Types: double

    Radius of the circle circumscribing the star-shaped region, specified as a positive scalar.

    Example: FieldSize = 50

    Dependencies

    To enable this name-value argument, set TrajectoryType to "Star".

    Data Types: double

    Number of lobes of the star-shaped region, specified as an integer greater than or equal to 2.

    Example: NumberOfLobes = 5

    Dependencies

    To enable this name-value argument, set TrajectoryType to "Star".

    Data Types: double

    Shape factor that determines the shape of the star, specified as a scalar in the range [0, 1]. When Sharpness is 0, the star converges on the circumscribing circle. When Sharpness is 1, the lobes of the star are fully distinct.

    Example: Sharpness = 0.8

    Dependencies

    To enable this name-value argument, set TrajectoryType to "Star".

    Data Types: double

    Ratio of the oscillation frequencies, specified as a positive scalar. This frequency determines the shape of the Lissajous pattern.

    Example: FrequencyRatio = 11/9

    Data Types: double

    Field center, specified as a 1-by-2 or 2-by-1 vector of finite real doubles in the units specified in Units.

    Data Types: double

    Bearing, specified as a finite real scalar double between 0 and 2*pi.

    Example: Bearing = pi/4

    Data Types: double

    Starting point of the coverage path within the field, specified as a 2-element vector in radians in the range [0, 2*pi].

    Example: InitialPhase = [pi/4,pi/2]

    Dependencies

    To enable this name-value argument, set TrajectoryType to Simple or Circular.

    Data Types: double

    Number of cycles for which the Lissajous curve is generated, specified as a positive scalar.

    Example: Cycles = 2

    Data Types: double

    Number of samples in the output signals, specified as a scalar greater than or equal to 2.

    Example: NumberOfSamples = 10

    Data Types: double

    Initial position of trajectory, specified as a 1-by-2 or 2-by-1 vector in the units specified in Units.

    Example: InitialPosition = [0,0]

    Data Types: double

    Speed of trajectory, specified as a finite real double scalar in the units specified in Units.

    Example: Speed = 10

    Data Types: double

    Initial altitude of trajectory, specified as a scalar in the units specified in Units.

    Example: InitialAltitude = 10

    Data Types: double

    Initial heading of trajectory, specified as a real scalar between 0 and 2*pi, in radians. Specify at least one or both InitialHeading and FinalHeading.

    Example: InitialHeading = pi

    Data Types: double

    Type of reference signal, specified as None, lateral-acceleration, or turnrate.

    Example: ReferenceSignalType = "turnrate"

    Output format of reference signals data, specified as a timeseries or timetable object.

    Example: OutputFormat = timeseries

    Input and output units, specified as one of these values.

    Units

    Position

    Altitude

    Speed

    Metric (MKS)

    Meters

    Meters

    Meters per second

    English (Velocity in ft/s)

    Feet

    Feet

    Feet per second

    English (Velocity in kts)

    Nautical miles

    Feet

    Knots

    Example: Units = 'Metric (MKS)'

    Initial time of trajectory operation, specified as a datetime object.

    Example: StartTime = datetime('now')

    Prior trajectory tracking data, specified as a timeseries or timetable object. These objects must contain these fields:

    • Altitude

    • Heading

    • Speed

    • WaypointIndex

    • xNorth

    • yEast

    • LateralAcceleraion/Turnrate

    Output Arguments

    collapse all

    Trajectory reference signals, returned as a timeseries struct or timetable object.

    Version History

    Introduced in R2026b