hsPID-0.1: PID control loop

Safe HaskellNone
LanguageHaskell2010

Control.PID

Synopsis

Documentation

data Settings a Source #

PID control loop settings

Constructors

Settings 

Fields

Instances
Eq a => Eq (Settings a) Source # 
Instance details

Defined in Control.PID

Methods

(==) :: Settings a -> Settings a -> Bool #

(/=) :: Settings a -> Settings a -> Bool #

Show a => Show (Settings a) Source # 
Instance details

Defined in Control.PID

Methods

showsPrec :: Int -> Settings a -> ShowS #

show :: Settings a -> String #

showList :: [Settings a] -> ShowS #

data Status a Source #

PID status

Constructors

Status 

Fields

Instances
Eq a => Eq (Status a) Source # 
Instance details

Defined in Control.PID

Methods

(==) :: Status a -> Status a -> Bool #

(/=) :: Status a -> Status a -> Bool #

Show a => Show (Status a) Source # 
Instance details

Defined in Control.PID

Methods

showsPrec :: Int -> Status a -> ShowS #

show :: Status a -> String #

showList :: [Status a] -> ShowS #

setpoint :: forall a. Lens' (Settings a) a Source #

pFactor :: forall a. Lens' (Settings a) a Source #

iFactor :: forall a. Lens' (Settings a) a Source #

dFactor :: forall a. Lens' (Settings a) a Source #

bias :: forall a. Lens' (Settings a) a Source #

maxOutput :: forall a. Lens' (Settings a) a Source #

settings :: forall a. Lens' (Status a) (Settings a) Source #

lastError :: forall a. Lens' (Status a) a Source #

lastIntegral :: forall a. Lens' (Status a) a Source #

newSettings :: Fractional a => Settings a Source #

the default PID settings These will probably need tuning.

newStatus :: Fractional a => Status a Source #

an inital PID state with the default PID settings

run Source #

Arguments

:: (Ord n, Fractional n) 
=> n

the amount of time elapsed since the PID loop was last run

-> n

the current input value

-> Status n

the current PID status

-> (n, Status n)

the output and updated PID status

runs the PID loop

resetIntegral Source #

Arguments

:: Num n 
=> Status n

the PID status being reset

-> Status n

the updated PID status

resets the integral of a PID loop