API Reference¶
Application Layer¶
Service/API Layer¶
- class frequency_response.plotTool.apis.PlotRequest(bode: 'bool' = False, nyquist: 'bool' = False, nichols: 'bool' = False, nichols_grid: 'bool' = False, nichols_closedloop: 'bool' = False, plotly: 'bool' = False, nyq_markers: 'bool' = False, nyq_samples: 'int' = 0, wmin: 'float | None' = None, wmax: 'float | None' = None, npts: 'int' = 400, wmarks: 'Optional[List[float]]' = None, nichols_range: 'Optional[Tuple[float, float, float, float]]' = None, nichols_Mdb: 'Optional[Sequence[float]]' = None, nichols_Ndeg: 'Optional[Sequence[float]]' = None, nichols_no_grid_labels: 'bool' = False, save_png_dir: 'Optional[str]' = None, save_html_base: 'Optional[str]' = None, save_json_path: 'Optional[str]' = None, title: 'str' = 'Frequency Response')[source]¶
Bases:
object- Parameters:
bode (bool)
nyquist (bool)
nichols (bool)
nichols_grid (bool)
nichols_closedloop (bool)
plotly (bool)
nyq_markers (bool)
nyq_samples (int)
wmin (float | None)
wmax (float | None)
npts (int)
wmarks (List[float] | None)
nichols_range (Tuple[float, float, float, float] | None)
nichols_Mdb (Sequence[float] | None)
nichols_Ndeg (Sequence[float] | None)
nichols_no_grid_labels (bool)
save_png_dir (str | None)
save_html_base (str | None)
save_json_path (str | None)
title (str)
- bode: bool¶
- nichols: bool¶
- nichols_Mdb: Sequence[float] | None¶
- nichols_Ndeg: Sequence[float] | None¶
- nichols_closedloop: bool¶
- nichols_grid: bool¶
- nichols_no_grid_labels: bool¶
- nichols_range: Tuple[float, float, float, float] | None¶
- npts: int¶
- nyq_markers: bool¶
- nyq_samples: int¶
- nyquist: bool¶
- plotly: bool¶
- save_html_base: str | None¶
- save_json_path: str | None¶
- save_png_dir: str | None¶
- title: str¶
- wmarks: List[float] | None¶
- wmax: float | None¶
- wmin: float | None¶
- class frequency_response.plotTool.apis.PlotService(app)[source]¶
Bases:
object- Parameters:
app (PlotToolApp)
- run(args, req_like)[source]¶
Build plants, run channels, and (optionally) write JSON.
- Parameters:
req_like (Any)
- Return type:
Dict[str, Any]
- run_channel(idx, total, args_any, L, w, name, req)[source]¶
- Parameters:
idx (int)
total (int)
args_any (Any)
L (TransferFunction)
w (ndarray)
name (str)
req (PlotRequest)
Core Logic¶
- class frequency_response.plotTool.core.CLMetrics(Mr_db: 'float', wr: 'float', wb: 'float', L_wr_phi: 'float', L_wr_db: 'float', L_wb_phi: 'float', L_wb_db: 'float')[source]¶
Bases:
object- Parameters:
Mr_db (float)
wr (float)
wb (float)
L_wr_phi (float)
L_wr_db (float)
L_wb_phi (float)
L_wb_db (float)
- L_wb_db: float¶
- L_wb_phi: float¶
- L_wr_db: float¶
- L_wr_phi: float¶
- Mr_db: float¶
- wb: float¶
- wr: float¶
- class frequency_response.plotTool.core.Margins(gm: 'float', gm_db: 'float', pm: 'float', wgc: 'float', wpc: 'float')[source]¶
Bases:
object- Parameters:
gm (float)
gm_db (float)
pm (float)
wgc (float)
wpc (float)
- gm: float¶
- gm_db: float¶
- pm: float¶
- wgc: float¶
- wpc: float¶
- frequency_response.plotTool.core.bode_data(G, w)[source]¶
- Parameters:
G (TransferFunction)
w (ndarray)
- frequency_response.plotTool.core.closedloop_metrics(L, w)[source]¶
- Parameters:
L (TransferFunction)
w (ndarray)
- Return type:
- frequency_response.plotTool.core.compute_margins(L, w)[source]¶
- Parameters:
L (TransferFunction)
w (ndarray)
- Return type:
- frequency_response.plotTool.core.make_grid(G, wmin, wmax, npts)[source]¶
- Parameters:
G (TransferFunction)
wmin (float | None)
wmax (float | None)
npts (int)
- Return type:
ndarray
- frequency_response.plotTool.core.nichols_M_grid(xphase_deg, levels_db, y_limits)[source]¶
- Parameters:
xphase_deg (ndarray)
levels_db (Sequence[float])
y_limits (Tuple[float, float])
- frequency_response.plotTool.core.nichols_N_grid(xphase_deg, alphas_deg, y_limits)[source]¶
- Parameters:
xphase_deg (ndarray)
alphas_deg (Sequence[float])
y_limits (Tuple[float, float])
Input/Output¶
Utilities¶
- frequency_response.plotTool.utils.build_logger(name='plotTool', level=20)[source]¶
Create/get a logger. If PLOTTOOL_DEBUG is truthy, force DEBUG.
- Parameters:
name (str)
level (int | None)
- Return type:
Logger
- frequency_response.plotTool.utils.db(x, eps=1e-16)[source]¶
- Parameters:
x (ndarray)
eps (float)
- Return type:
ndarray
- frequency_response.plotTool.utils.parse_csv_vals(s)[source]¶
Robust CSV -> floats; accepts None, quoted strings, semicolons/commas.
- Parameters:
s (str | None)
- Return type:
List[float] | None
- frequency_response.plotTool.utils.parse_factors(spec, Kval=1.0)[source]¶
- Parameters:
spec (str | None)
Kval (float)
- Return type:
ndarray