namespace MultiWheelC.TrajectoryPlanning.EMPlanner; /// /// LS/ST QP 求解器的迭代预算、收敛容差和运行选项。 /// public sealed class SolverConfiguration { /// /// 外层顺序凸化最大迭代次数;默认值 5,必须为正整数。 /// public int MaximumOuterIterations { get; set; } /// /// 单次 OSQP 求解的最大迭代次数;默认值 4000,必须为正整数。 /// public int MaximumOsqpIterations { get; set; } /// /// 求解器绝对残差容差;默认值 1e-5,必须为正有限值。 /// public double AbsoluteTolerance { get; set; } /// /// 求解器相对残差容差;默认值 1e-5,必须为正有限值。 /// public double RelativeTolerance { get; set; } /// /// 发布前接受解的严格残差容差;默认值 1e-5,必须为正有限值。 /// public double StrictResidualTolerance { get; set; } /// /// 是否将上一轮可用解作为初值;无单位,默认值 true,仅接受布尔值。 /// public bool WarmStart { get; set; } /// /// 是否请求 OSQP 进行结果修正;无单位,默认值 true,仅接受布尔值。 /// public bool Polish { get; set; } /// /// 是否启用原生求解器诊断输出;无单位,默认值 false,仅接受布尔值。 /// public bool NativeVerbose { get; set; } /// /// 复制当前求解器配置;输入为当前迭代预算、容差和布尔选项,输出为无共享可变状态的标量快照,不对数值作校验且不产生失败状态。 /// internal SolverConfiguration Copy() { return new SolverConfiguration { MaximumOuterIterations = MaximumOuterIterations, MaximumOsqpIterations = MaximumOsqpIterations, AbsoluteTolerance = AbsoluteTolerance, RelativeTolerance = RelativeTolerance, StrictResidualTolerance = StrictResidualTolerance, WarmStart = WarmStart, Polish = Polish, NativeVerbose = NativeVerbose, }; } }