Skip to content
Snippets Groups Projects
Verified Commit d9eafa60 authored by Michiel Cottaar's avatar Michiel Cottaar
Browse files

Add sensible constraints to ADC

parent 51055231
No related branches found
No related tags found
No related merge requests found
module ADCs module ADCs
import JuMP: @constraint
import ...Variables: variables, dwell_time, duration, effective_time, get_free_variable, VariableType import ...Variables: variables, dwell_time, duration, effective_time, get_free_variable, VariableType
import ...BuildingBlocks: BuildingBlock, apply_simple_constraint!, set_simple_constraints! import ...BuildingBlocks: BuildingBlock, apply_simple_constraint!, set_simple_constraints!
import ...BuildSequences: global_model
""" """
ADC(nsamples; dwell_time=nothing, duration=nothing, time_to_center=duration/2) ADC(nsamples; dwell_time=nothing, duration=nothing, time_to_center=duration/2)
...@@ -27,7 +29,11 @@ function ADC(nsamples; dwell_time=nothing, time_to_center=nothing, kwargs...) ...@@ -27,7 +29,11 @@ function ADC(nsamples; dwell_time=nothing, time_to_center=nothing, kwargs...)
get_free_variable(dwell_time), get_free_variable(dwell_time),
time_to_center isa VariableType ? time_to_center : nothing time_to_center isa VariableType ? time_to_center : nothing
) )
if !(time_to_center isa VariableType) @constraint global_model() res.dwell_time >= 0
if time_to_center isa VariableType
@constraint global_model() time_to_center >= 0
@constraint global_model() time_to_center <= duration(res)
else
apply_simple_constraint!(effective_time(res), time_to_center) apply_simple_constraint!(effective_time(res), time_to_center)
end end
set_simple_constraints!(res, kwargs) set_simple_constraints!(res, kwargs)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment