Skip to content

Linear Analysis

The Linear Analysis computes the linearized dynamics of a model and provides a suite of frequency- and time-domain analysis tools. This is useful for understanding the small-signal behavior of a system, including stability, resonance, and transient response.

Method Overview

Linear analysis is performed by linearizing the provided model around an operating point. The resulting linear system can be analyzed using classical control theory tools, including:

Example Definition

dyad
analysis DCMotorLinearAnalysis
  extends DyadControlSystems.LinearAnalysis(
    outputs = ["y"],
    inputs = ["r"],
    duration = 2.0
  )
  model = DyadExampleComponents.TestDCMotorLoadControlled()
end
@example
using Main.var"##build/.dyad/analyses/linearDyadHygiene#448".LinearExample # hide
using DyadInterface: artifacts
asol = DCMotorLinearAnalysis()
artifacts(asol, :StepInfoPlot)
julia
artifacts(asol, :BodePlot)

julia
artifacts(asol, :DampReport)
0×5 DataFrame
RowPoleDampingRatioFrequency_rad_sFrequency_HzTimeConstant_s
Complex…Float64Float64Float64Float64

Analysis Arguments

The following arguments define a LinearAnalysis:

Required Arguments

  • model: The model to be analyzed.

  • inputs::Vector{String}: Names of the input analysis points

  • outputs::Vector{String}: Names of the output analysis points

Optional Arguments

  • wl::Real = -1: Lower frequency bound for Bode plot (set to -1 for automatic selection).

  • wu::Real = -1: Upper frequency bound for Bode plot (set to -1 for automatic selection).

  • num_frequencies::Int = 3000: Number of frequency points.

  • duration::Real = -1: Duration for the step response plot (set to -1 for automatic selection).

Artifacts

A LinearAnalysis returns the following artifacts:

Standard Plots

Tables

Further Reading