LimPIDTest
Test bench for a limited PID controller connected to a plant model with step input.
This test component connects a limited PID controller to a plant model and applies a step input as setpoint and a constant feedforward signal. The PID controller includes derivative, integral, and proportional actions with anti-windup and output limitations. The system response can be observed through the plant output and controller signals.
Usage
LimPIDTest()
Behavior
Source
dyad
# Test bench for a limited PID controller connected to a plant model with step input.
#
# This test component connects a limited PID controller to a plant model and applies a step input as
# setpoint and a constant feedforward signal. The PID controller includes derivative, integral, and
# proportional actions with anti-windup and output limitations. The system response can be observed
# through the plant output and controller signals.
test component LimPIDTest
# Limited PID controller with configurable parameters
pid = LimPID(Td=0.1, Ti=0.5, y_max=1, y_min=-1, wp=1, wd=0, Nd=10, Ni=0.9, k_ff=1)
# Plant model to be controlled
plant = Plant()
# Step input signal used as setpoint for the controller
signal = Step(height=1)
# Constant signal for feedforward control
signal_ff = Constant(k=1)
relations
# Initial condition for the first state of the plant
initial plant.x1 = 0
# Initial condition for the plant output
initial plant.y = 0
# Connect step signal to controller setpoint input
connect(signal.y, pid.u_s)
# Connect plant output to controller measurement input
connect(plant.y, pid.u_m)
# Connect controller output to plant input
connect(pid.y, plant.u)
# Connect feedforward signal to controller feedforward input
connect(pid.u_ff, signal_ff.y)
metadata {
"Dyad": {"tests": {"case1": {"stop": 10, "expect": {"signals": ["plant.y", "pid.y"]}}}}
}
end
Flattened Source
dyad
# Test bench for a limited PID controller connected to a plant model with step input.
#
# This test component connects a limited PID controller to a plant model and applies a step input as
# setpoint and a constant feedforward signal. The PID controller includes derivative, integral, and
# proportional actions with anti-windup and output limitations. The system response can be observed
# through the plant output and controller signals.
test component LimPIDTest
# Limited PID controller with configurable parameters
pid = LimPID(Td=0.1, Ti=0.5, y_max=1, y_min=-1, wp=1, wd=0, Nd=10, Ni=0.9, k_ff=1)
# Plant model to be controlled
plant = Plant()
# Step input signal used as setpoint for the controller
signal = Step(height=1)
# Constant signal for feedforward control
signal_ff = Constant(k=1)
relations
# Initial condition for the first state of the plant
initial plant.x1 = 0
# Initial condition for the plant output
initial plant.y = 0
# Connect step signal to controller setpoint input
connect(signal.y, pid.u_s)
# Connect plant output to controller measurement input
connect(plant.y, pid.u_m)
# Connect controller output to plant input
connect(pid.y, plant.u)
# Connect feedforward signal to controller feedforward input
connect(pid.u_ff, signal_ff.y)
metadata {
"Dyad": {"tests": {"case1": {"stop": 10, "expect": {"signals": ["plant.y", "pid.y"]}}}}
}
end
Test Cases
Test Case case1
julia
plt
julia
plt