Skip to content

feat(v0.3): frequency-domain tools — margin(), rlocus(), pole_placement() #71

Description

@Oseiasdfarias

Overview

Add the missing frequency-domain and pole-placement tools to complete the MATLAB-compatible API surface.

Functions

Function Description
margin(sys) Gain margin, phase margin, crossover frequencies
rlocus(sys) Root locus plot as gain K varies
pole_placement(A, B, poles) Ackermann / place() — state feedback gain for desired poles
pade(delay, n) Padé approximation of pure time delay

API

from synapsys.api import margin, rlocus, pole_placement

gm, pm, wgc, wpc = margin(G)
K = pole_placement(A, B, desired_poles=[-2, -2+1j, -2-1j, -5])

Acceptance Criteria

  • All functions pass mypy strict
  • 100% test coverage
  • Results match scipy.signal and MATLAB reference values (within 1e-6)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestv0.3Planned for v0.3

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions