//////////////////////////////////////////////////////////////// // // PURPOSE: This contains ServoModule parameters for Tethys. // // NOTES: All values (except "strings") must be followed by // a unit abbreviation (or one of the unit-like // abbreviations: n/a, bool, enum, count). // //////////////////////////////////////////////////////////////// // General control surface limits mtrLimitHi = 16369 count; // High physical limit for motor controllers mtrLimitLo = 0 count; // Low physical limit for motor controllers BuoyancyServo_enable = 1 bool; BuoyancyServo_useHardware = 0 bool; buoyancyCurrLimit = 100 %; // Percent of current allowed buoyancyOvrloadTmout = 10000 ms; // ms until an overload is reported buoyancyPIDw = 1500 count; buoyancyPIDx = 0 count; buoyancyPIDy = 3000 count; buoyancyVelocity = 800 n/a; buoyancyAccel = 800 n/a; buoyancyCountsPerCC = 7.446016 count/cc;// counts on the A/D per ml of fluid pumped buoyancyLimitHi = 8200 count; // High physical limit for motor controllers buoyancyLimitLo = 475 count; // Low physical limit for motor controller buoyancyDeviation = 10.0 cc; // Number of ml deviation allowed between expected and actual buoyancyCheckingTimeout = 5.0 min; // If the buoyancy is idling, this is how often to check for actual position. If there's a leak. This is when we'll find it. ElevatorServo_enable = 1 bool; ElevatorServo_useHardware = 0 bool; ElevatorServo_offset = 0 degree; // Elevator motor controller values elevCountsPerDeg = 454.666 count/arcdeg; //195; //motor "ticks" per degree of control surface motion elevMtrCenter = 8184 count; //0 degrees "centered" control surface elevPIDw = 1500 count; // Proportional gain elevPIDx = 100 count; // Integral gain elevPIDy = 400 count; // Differential gain elevCurrLimit = 10 %; // Percent of current allowed elevDeviation = .05 arcdeg; // Number of degrees deviation allowed between expected and actual MassServo_enable = 1 bool; MassServo_useHardware = 0 bool; // Mass shift motor controller values massCurrLimit = 100 %; // Percent of current allowed massOvrloadTmout = 1000 ms; // ms until an overload is reported massTks = 250015 count; // Total encoder ticks for full mass shift travel massTksPerMm = 2465.8859 count/mm;// Number of ticks for one rotation (1 mm of travel) massAccel = 20000 n/a; // Encoder ticks / 32.768 per second squared massVelocity = 60000 n/a; // Encoder ticks / 32.768 per scond massDeviation = 0.05 mm; // Deviation allowed between expected and actual massLimitHi = 144180 count; // High physical limit for mass motor controller massLimitLo = -157965 count; // Low physical limit for mass motor controller RudderServo_enable = 1 bool; RudderServo_useHardware = 0 bool; RudderServo_offset = 0 degree; // Rudder motor controller values ruddCountsPerDeg = 454.666 count/arcdeg; //130; 65; // motor "ticks" per degree of control surface motion ruddMtrCenter = 8184 count; // 0 degrees "centered" control surface ruddPIDw = 500 count; // Proportional gain ruddPIDx = 100 count; // Integral gain ruddPIDy = 400 count; // Differential gain ruddCurrLimit = 10 %; // Percent of current allowed ruddDeviation = .25 arcdeg; // Number of degrees deviation allowed between expected and actual // NOTE: For rudder/elevator velocity can currently be set as high as 2000000 with acceleration at 4000. 08/11/209 - Kieft ThrusterServo_enable = 1 bool; ThrusterServo_useHardware = 0 bool; // Thruster motor controller values thrustCurrLimit = 50 %; // Percent of current allowed thrustPIDw = 8000 count; thrustPIDx = 100 count; thrustPIDy = 60000 count; thrustTimeout = 1000 ms; // Timeout in ms to wait before throwing overload error thrustAccel = 1 n/a; // Encoder ticks / 32.768 per second squared thrustEncoderTks = 32.768 count/s; // encoder tick/second multiplier tksPerRev = 32 count/rev; // encoder ticks/revolution as seen by the controller // when feeding back HALL A&B to the encoder inputs thrustDeviation = 25 count; // Number of encoder ticks deviation allowed between expected and actual allowableBadVelocity = 5 count; // Number of bad "getVelocity" readings allowed before throwing a fault. // NOTE: 10" prop = .187706 m per revolution in wake // 300 rpm == 1m/sec and 150 rpm == .5m/sec. See propPitch