@@ -930,13 +930,22 @@ function open_loop(sys, ap::Union{Symbol, AnalysisPoint}; system_modifier = iden
930930 return system_modifier (sys), vars
931931end
932932
933- function linearization_function (sys:: AbstractSystem ,
933+ """
934+ sys, input_vars, output_vars = $(TYPEDSIGNATURES)
935+
936+ Apply analysis-point transformations to prepare a system for linearization.
937+
938+ Returns
939+ - `sys`: The transformed system.
940+ - `input_vars`: A vector of input variables corresponding to the input analysis points.
941+ - `output_vars`: A vector of output variables corresponding to the output analysis points.
942+ """
943+ function linearization_ap_transform (sys,
934944 inputs:: Union{Symbol, Vector{Symbol}, AnalysisPoint, Vector{AnalysisPoint}} ,
935- outputs; loop_openings = [], system_modifier = identity, kwargs ... )
945+ outputs, loop_openings )
936946 loop_openings = Set (map (nameof, canonicalize_ap (sys, loop_openings)))
937947 inputs = canonicalize_ap (sys, inputs)
938948 outputs = canonicalize_ap (sys, outputs)
939-
940949 input_vars = []
941950 for input in inputs
942951 if nameof (input) in loop_openings
@@ -958,9 +967,15 @@ function linearization_function(sys::AbstractSystem,
958967 end
959968 push! (output_vars, output_var)
960969 end
961-
962970 sys = handle_loop_openings (sys, map (AnalysisPoint, collect (loop_openings)))
971+ return sys, input_vars, output_vars
972+ end
973+
974+ function linearization_function (sys:: AbstractSystem ,
975+ inputs:: Union{Symbol, Vector{Symbol}, AnalysisPoint, Vector{AnalysisPoint}} ,
976+ outputs; loop_openings = [], system_modifier = identity, kwargs... )
963977
978+ sys, input_vars, output_vars = linearization_ap_transform (sys, inputs, outputs, loop_openings)
964979 return linearization_function (system_modifier (sys), input_vars, output_vars; kwargs... )
965980end
966981
0 commit comments