namespace MultiWheelC.TrajectoryPlanning.EMPlanner;
///
/// LS 横向优化的离散、收敛、曲率和边界限制配置。
///
public sealed class LateralConfiguration
{
///
/// 相邻外层迭代横向解之间允许的最大偏移量;单位 m,默认值 0.05,必须为正有限值。
///
public double MaximumLateralStepPerIterationMeters { get; set; }
///
/// 横向偏移对弧长的一阶导数上限;无量纲,默认值 0.50,必须为正有限值。
///
public double MaximumLateralSlope { get; set; }
///
/// 横向偏移对弧长的二阶导数上限;单位 1/m,默认值 1,必须为正有限值。
///
public double MaximumLateralSecondDerivativePerMeter { get; set; }
///
/// 横向偏移对弧长的三阶导数上限;单位 1/m²,默认值 2,必须为正有限值。
///
public double MaximumLateralThirdDerivativePerSquareMeter { get; set; }
///
/// 横向 QP 目标函数的权重集合;无直接单位,必须非空且其每项为非负有限值,默认值为新的 对象。
///
public LateralWeights Weights { get; set; }
///
/// 复制当前横向配置;输入为当前标量和权重引用,输出为不共享非空权重对象的可修改快照,权重为 null 时保持为空且不产生失败状态。
///
internal LateralConfiguration Copy()
{
return new LateralConfiguration
{
MaximumLateralStepPerIterationMeters = MaximumLateralStepPerIterationMeters,
MaximumLateralSlope = MaximumLateralSlope,
MaximumLateralSecondDerivativePerMeter = MaximumLateralSecondDerivativePerMeter,
MaximumLateralThirdDerivativePerSquareMeter = MaximumLateralThirdDerivativePerSquareMeter,
Weights = Weights == null ? null : Weights.Copy(),
};
}
}