public override void GetInstance(List <PIDConstant> constants, SimpleDynamicObject dynObj, double baseInterval, List <double> cumulativeErrRanges) { //if (dynObj != null) //{ // //参数匹配检测 // if (dynObj.Interval != baseInterval) // { // string msg = InnerArgumentException.GenInfo(nameof(dynObj.Interval), dynObj, nameof(baseInterval), baseInterval); // throw new InnerArgumentException(msg); // } //} this.DynamicObject = dynObj; if (constants != null && constants.Count >= 2 && dynObj != null) { this.BaseInterval = baseInterval; this.ConstantIn = constants[0]; this.ConstantOut = constants[1]; if (constants.Count > 2) { this.AuxiliaryConstants = constants.GetRange(2, constants.Count - 2); } this.ComplexRadioCollection = new ComplexRadioCollection(this.ConstantIn, this.ConstantOut, this.AuxiliaryConstants, dynObj.UpdateFrequency, dynObj.WriteTimes, dynObj.FetchType, dynObj.Difference, cumulativeErrRanges, this.BaseInterval); this.ComplexRadioCollection.Maximum = this.Maximun; this.StrategySwitch = true; } }
public override void GetInstance(PIDConstant constant, SimpleDynamicObject dynObj, double baseInterval) { //if (dynObj != null) //{ // //参数匹配检测 // if (dynObj.Interval != baseInterval) // { // string msg = InnerArgumentException.GenInfo(nameof(dynObj.Interval), dynObj, nameof(baseInterval), baseInterval); // throw new InnerArgumentException(msg); // } //} this.DynamicObject = dynObj; if (constant != null && dynObj != null) { this.BaseInterval = baseInterval; this.RadioConstant = constant; this.RadioCollection = new RadioCollection(this.RadioConstant, dynObj.UpdateFrequency, dynObj.WriteTimes, dynObj.FetchType, dynObj.Difference, this.BaseInterval); this.RadioCollection.Maximum = this.Maximun; this.StrategySwitch = true; } }
/// <summary> /// 用于复杂比例控制器 /// </summary> /// <param name="constants">PID回路参数列表</param> /// <param name="dynObj">基础动态修正对象</param> /// <param name="baseInterval">执行间隔</param> /// <param name="cumulativeErrRange">累计误差范围列表</param> public virtual void GetInstance(List <PIDConstant> constants, SimpleDynamicObject dynObj, double baseInterval, List <double> cumulativeErrRange) { }
/// <summary> /// 用于比例控制器 /// </summary> /// <param name="constant">PID回路参数</param> /// <param name="dynObj">基础动态修正对象</param> /// <param name="baseInterval">执行间隔</param> public virtual void GetInstance(PIDConstant constant, SimpleDynamicObject dynObj, double baseInterval) { }