Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Pitch Bandwidth Criteria

ASecurity

Use when you must assess the pitch-axis flying qualities of an aircraft with the MIL-STD-1797A bandwidth and phase-delay criterion: model the pitch attitude response as a short period transfer function with a control anticipation numerator time constant and an actuator lag, evaluate the frequency response, find the bandwidth frequency omega_BW as the lower of the 45 degree phase margin frequency and the 6 dB gain margin frequency, read the -180 degree frequency, compute the phase delay tau_p ...

2 stars
0 votes
0 copies
0 views
Added 9/27/2026
ai-agentspythonrustgo

Works with

claude code

Security Analysis

A100/100

Scanned 9/27/2026

Install to Claude Code

$npx -y skills add ashfordeOU/aero-agent-skills --skill pitch-bandwidth-criteria --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Pitch Bandwidth Criteria?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Pitch Bandwidth Criteria
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ashfordeou-pitch-bandwidth-criteria/badge)](https://www.skillsdirectory.com/skills/ashfordeou-pitch-bandwidth-criteria)

More formats (shields.io, HTML) on the badges page.

Download with Pro
Files
SKILL.md
---
name: pitch-bandwidth-criteria
description: "Use when you must assess the pitch-axis flying qualities of an aircraft with the MIL-STD-1797A bandwidth and phase-delay criterion: model the pitch attitude response as a short period transfer function with a control anticipation numerator time constant and an actuator lag, evaluate the frequency response, find the bandwidth frequency omega_BW as the lower of the 45 degree phase margin frequency and the 6 dB gain margin frequency, read the -180 degree frequency, compute the phase delay tau_p from the phase at twice omega_180, and grade the Category A Level 1, 2 and 3 boundaries. Produces omega_BW, omega_180, tau_p, the flying qualities level and the limiting criterion. Trigger: pitch bandwidth criterion, phase delay tau, bandwidth frequency, phase margin 45 degrees, mil-std-1797a bandwidth, short period transfer function, actuator lag, flying qualities level."
license: Apache-2.0
compliance: STANDARDS-REF
standards:
  - id: mil-std-1797a
    reference-only: true
gated: false
domain: flight-mechanics
pack: handling-qualities
compatibility: "agentskills.io SKILL.md; any SKILL.md host (Claude Code, Hermes, OpenClaw)"
metadata:
  domain: flight-mechanics
  subdomain: handling-qualities
  tags: [pitch-bandwidth-criteria, bandwidth-frequency, phase-delay, phase-margin, mil-std-1797a-bandwidth, short-period-transfer-function, actuator-lag, flying-qualities-level]
  version: 0.1.0
  author: AeroSkills
---

# Pitch Bandwidth Criteria (flight-mechanics/handling-qualities/pitch-bandwidth-criteria)

Use when the task is assessing pitch-axis flying qualities with the
MIL-STD-1797A bandwidth and phase-delay criterion, the frequency-domain
method that grades the pitch attitude response directly from its open
loop frequency response. This leaf models the pitch attitude transfer
function as a short period mode plus a control anticipation numerator
time constant and an actuator lag, evaluates the response, extracts the
bandwidth frequency omega_BW and the phase delay tau_p, and returns the
Level 1, 2 or 3 verdict with the limiting criterion. It is the
companion to the modal level tables in the mil-std-1797a leaf: same
standard, different assessment method (frequency-domain bandwidth
instead of per-mode damping tables). Implementation is pure Python,
stdlib only, deterministic and offline.

## Domain quick reference

- Pitch attitude model (K normalized to 1.0, the criterion uses phase
  and gain ratio only): G(s) = (1 + T_th2*s) / (s * (s^2 + 2*zeta*wn*s +
  wn^2) * (1 + s/w_act)), with wn the short period natural frequency
  (rad/s), zeta the short period damping, T_th2 the control anticipation
  time constant (s) and w_act the actuator lag frequency (rad/s).
- Unwrapped phase: phase = atan(w*T_th2) - 90 - atan2(2*zeta*wn*w,
  wn^2 - w^2) - atan(w/w_act) degrees, continuous from -90 degrees at
  the origin (the lead term can lift it a fraction of a degree just
  above zero before the mode lag dominates). The module unwraps the
  principal phase numerically over a fine 0.01 rad/s grid and refines
  every crossing with a bisection root finder.
- Bandwidth definition: omega_BW is the lower of the frequency at
  which the phase margin is 45 degrees (phase equals -135 degrees,
  omega_135) and the 6 dB gain margin frequency (omega_GM6). A -6 dB
  gain crossing counts only when it sits at or beyond the -180 degree
  phase crossing, the region where gain margin actually limits the
  loop; the low frequency crossing of the normalized response (phase
  near -93 degrees) never limits bandwidth and is reported as None.
  Documented assumption of this leaf, recorded because the gain is
  normalized to unity.
- Phase delay: tau_p = -(phase(2*omega_180) + 180) / (2*omega_180) *
  (pi/180) seconds, from the unwrapped phase at twice the -180 degree
  frequency. None when omega_180 does not exist.
- Level boundaries (representative Category A pitch values from
  MIL-STD-1797A 4.5.1, class dependent in the standard; verify against
  the current revision before certifying an airframe): Level 1 needs
  omega_BW >= 3.5 rad/s and tau_p <= 0.2 s; Level 2 needs omega_BW >=
  2.5 rad/s and tau_p <= 0.2 s; otherwise Level 3. The limiting
  criterion is bandwidth, phase delay or both.
- ValueErrors: wn <= 0, zeta <= 0 or >= 1, T_th2 <= 0, w_act <= wn,
  and a non-positive evaluation frequency are rejected.

## Workflow

1. Fix the airframe response parameters: short period wn and zeta
   (from the stability leaves or a flight test short period fit), the
   control anticipation time constant T_th2 and the actuator lag
   frequency w_act. Check that w_act > wn.
2. Evaluate the criterion metrics with bandwidth(wn, zeta, T_th2,
   w_act): it returns omega_135, omega_GM6, omega_BW, omega_180 and
   tau_p. The unwrapped phase comes from phase_deg and the magnitude
   from mag_db; crossings are located by find_root_phase over the dense
   unwrapped phase table with bisection refinement.
3. Grade the result with level_verdict(omega_BW, tau_p), which returns
   the level, the limiting criterion (bandwidth, phase delay or both)
   and any metric that could not be computed. Verify the numerical
   building blocks separately when needed: transfer for the complex
   response and unwrap_phase_deg for phase series continuity.
4. State the verdict with the governing metric. When the level
   boundaries sit near the computed values, recheck the aircraft class
   and flight phase category against the current MIL-STD-1797A revision
   because the representative boundaries used here are Category A
   values and are class dependent.
5. Confirm the deterministic checks with the contract test
   scripts/test_pitch_bandwidth_criteria.py.

## Worked example

Case A: wn = 4.0 rad/s, zeta = 0.7, T_th2 = 0.5 s, w_act = 25 rad/s.

- omega_135 = 4.58 rad/s: the 45 degree phase margin crossing. The
  6 dB gain margin crossing is not reached in the stability relevant
  band (omega_GM6 is None), so omega_BW = omega_135 = 4.58 rad/s.
- omega_180 = 10.13 rad/s; the phase at twice omega_180 gives
  tau_p = 0.0247 s.
- Verdict: Level 1 (omega_BW 4.58 >= 3.5 and tau_p 0.0247 <= 0.2),
  limiting criterion bandwidth.

Case B: wn = 3.0 rad/s, zeta = 0.6, T_th2 = 0.7 s, w_act = 20 rad/s.

- omega_135 = 3.43 rad/s, omega_BW = 3.43 rad/s, omega_180 = 7.23
  rad/s, tau_p = 0.0325 s.
- Verdict: Level 2 (omega_BW 3.43 is below the Level 1 floor of 3.5
  but above 2.5; tau_p is fine), limiting criterion bandwidth.

## Verification

- bandwidth(4.0, 0.7, 0.5, 25.0) returns omega_135 4.5832 rad/s,
  omega_180 10.1290 rad/s, tau_p 0.0246 s, omega_GM6 None and omega_BW
  equal to omega_135; level_verdict gives Level 1, limiting bandwidth.
- bandwidth(3.0, 0.6, 0.7, 20.0) returns omega_135 3.4315 rad/s,
  omega_180 7.2257 rad/s, tau_p 0.0325 s and a Level 2 verdict.
- Confirm the lightly damped trend: at zeta 0.35 the phase drops faster
  and omega_135 is below the zeta 0.7 value at the same wn.
- Confirm every non-positive wn and w, zeta outside (0, 1), T_th2 <= 0
  and w_act <= wn raises ValueError.
- Run the contract test offline: python3
  scripts/test_pitch_bandwidth_criteria.py (35 tests, deterministic,
  passes in under a second).

## Pitfalls

- Treating the level boundaries as universal: the 3.5/2.5 rad/s bandwidth
  floors and 0.2 s phase-delay limit are representative Category A values
  and are class dependent in MIL-STD-1797A; recheck class and category
  against the current revision before a certification-grade verdict,
  especially when the computed metrics sit near a boundary.
- Reading omega_GM6 = None as zero: the -6 dB gain crossing counts only when
  it sits at or beyond the -180 degree crossing; the low-frequency crossing
  of the normalized response never limits bandwidth and is reported None, so
  None means 'not bandwidth limiting', not a 0 rad/s limit.
- Computing tau_p without omega_180: the phase delay is read from the
  unwrapped phase at twice the -180 degree frequency and is None when
  omega_180 does not exist; evaluating the formula at an arbitrary frequency
  gives a meaningless number.
- Ignoring the w_act > wn constraint: an actuator lag at or below the short
  period frequency is rejected (ValueError), and a marginally separated
  w_act distorts the high-frequency phase that sets omega_180 and tau_p.
- Trusting principal phase without unwrapping: crossings are located on the
  numerically unwrapped phase table with bisection refinement; wrapping
  artifacts around -180 degrees would shift omega_180 and the phase delay.

## Related leaves

- flight-mechanics/handling-qualities/mil-std-1797a: the modal level
  table companion criterion from the same standard; this leaf applies
  the frequency-domain bandwidth method instead of the per-mode tables.
- flight-mechanics/handling-qualities/pilot-induced-oscillation:
  phase-related neighbor for pilot-in-the-loop coupling risk.
- flight-mechanics/handling-qualities/cooper-harper-rating: pilot
  rating scale for the piloted evaluation that complements the level
  verdicts.
- flight-mechanics/stability-control/short-period-mode-analysis: source
  of the short period wn and zeta inputs to the model.

## Behavior contract (gate 3)

Run the deterministic contract test (stdlib unittest, offline):

    python3 scripts/test_pitch_bandwidth_criteria.py

The test covers the Case A and Case B worked examples against the spec
reference numbers within tolerance, the lightly damped and low
frequency trends, the gain margin branch (very low wn), the unwrapped
phase helper and its consistency with the branch-corrected analytic
phase, the bisection root finder on reachable and unreachable targets,
magnitude versus transfer self consistency, the Level 1/2/3 verdict
boundaries and missing metric reporting, and ValueError rejection of
non-physical parameters and frequencies.

## Compliance

- Standards referenced, not reproduced: MIL-STD-1797A section 4.5.1
  frames the bandwidth and phase-delay criterion. The level boundaries
  coded in this leaf are representative Category A values and are class
  dependent in the standard, so verify them against the current
  revision before a certification-grade assessment. The transfer model
  and relations above are standard engineering methodology,
  summary-only per standards-map.yaml.
- compliance: STANDARDS-REF, gated: false.

Attribution

ashfordeOUashfordeOU
View sourceMore from ashfordeOU →
SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Related Skills

Caveman

Ultra-compressed communication mode that cuts output tokens while keeping technical accuracy. Levels: lite, full, ultra and the wenyan variants. Use for /caveman, "caveman mode", "talk like caveman", "be brief" or "less tokens".

1074701 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

694821 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3351 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

691 votes

math-skill

A comprehensive mathematical reasoning skill for AI assistants — handles arithmetic to research-level problems with rigorous step-by-step reasoning, systematic verification, and transparent uncertainty handling

381 votes
View all in ai-agents →