41 lines
1.4 KiB
Python
Executable File
41 lines
1.4 KiB
Python
Executable File
from typing import List
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
from .config import MAX_COEFFICIENTS
|
|
|
|
|
|
class DesignParams(BaseModel):
|
|
filter_type: str
|
|
fs: float = Field(gt=0)
|
|
lp_fc: float = Field(default=1000.0, gt=0)
|
|
lp_order: int = Field(default=1, ge=1, le=8)
|
|
hp_fc: float = Field(default=1000.0, gt=0)
|
|
hp_order: int = Field(default=1, ge=1, le=8)
|
|
bp_f_low: float = Field(default=500.0, gt=0)
|
|
bp_f_high: float = Field(default=2000.0, gt=0)
|
|
bp_order: int = Field(default=1, ge=1, le=8)
|
|
notch_f0: float = Field(default=120.0, gt=0)
|
|
notch_q: float = Field(default=1.0, gt=0)
|
|
opoz_fz: float = Field(default=15000.0, gt=0)
|
|
opoz_fp: float = Field(default=10.0, gt=0)
|
|
tp1z_fz: float = Field(default=200.0, gt=0)
|
|
tp1z_fp1: float = Field(default=10.0, gt=0)
|
|
tp1z_fp2: float = Field(default=5000.0, gt=0)
|
|
tptz_fz1: float = Field(default=200.0, gt=0)
|
|
tptz_fz2: float = Field(default=25000.0, gt=0)
|
|
tptz_fp1: float = Field(default=10.0, gt=0)
|
|
tptz_fp2: float = Field(default=5000.0, gt=0)
|
|
pid_kp: float = 0.003
|
|
pid_ki: float = 10.0
|
|
pid_kd: float = 0.000016
|
|
sogi_f0: float = Field(default=60.0, gt=0)
|
|
sogi_k: float = Field(default=1.414, gt=0)
|
|
|
|
|
|
class BodeParams(BaseModel):
|
|
b: List[float] = Field(min_length=1, max_length=MAX_COEFFICIENTS)
|
|
a: List[float] = Field(min_length=1, max_length=MAX_COEFFICIENTS)
|
|
fs: float = Field(gt=0)
|
|
|