"""Tuning methods for :mod:`pidtune`. Every tuner implements the :class:`~pidtune.tuners.base.Tuner` interface: it consumes a :class:`~pidtune.models.ProcessModel` (or, for relay autotuning, a live plant interface) and produces a :class:`~pidtune.tuners.base.TuningResult` containing :class:`~pidtune.controllers.PIDGains` plus method-specific diagnostics. Available tuners (see ``docs/design/03_tuning_methods.md`` for the method survey, applicability matrix, and references): * :class:`~pidtune.tuners.ziegler_nichols.ZieglerNicholsTuner` — classical open-loop (process reaction curve) and closed-loop (ultimate cycle) ZN rules. * :class:`~pidtune.tuners.cohen_coon.CohenCoonTuner` — Cohen-Coon rules for FOPDT processes with appreciable dead time. * :class:`~pidtune.tuners.amigo.AMIGOTuner` — Åström-Hägglund AMIGO rules with robustness emphasis. * :class:`~pidtune.tuners.imc.IMCTuner` — IMC / lambda tuning with a user-selectable closed-loop time constant. * :class:`~pidtune.tuners.relay.RelayAutotuner` — Åström-Hägglund relay feedback experiment against a live or simulated plant. * :class:`~pidtune.tuners.optimization.OptimizationTuner` — simulation-in-the-loop optimization of IAE/ISE/ITAE-style objectives (requires the ``optim`` extra: ``pip install pidtune[optim]``). """ from __future__ import annotations from pidtune.tuners.base import Tuner, TuningResult from pidtune.tuners.ziegler_nichols import ZieglerNicholsTuner from pidtune.tuners.cohen_coon import CohenCoonTuner from pidtune.tuners.amigo import AMIGOTuner from pidtune.tuners.imc import IMCTuner from pidtune.tuners.relay import RelayAutotuner from pidtune.tuners.optimization import OptimizationTuner __all__ = [ "Tuner", "TuningResult", "ZieglerNicholsTuner", "CohenCoonTuner", "AMIGOTuner", "IMCTuner", "RelayAutotuner", "OptimizationTuner", ]