Beispiel #1
0
    // Start is called before the first frame update
    void Start()
    {
        m_State = new FuzzyMembership();

        m_State.Add(0f, 0f);
        m_State.Add(150f, 0.4f);
        m_State.Add(350f, 0.6f);
        m_State.Add(425f, 1f);
    }
        public FuzzyNavCtrl()
        {
            // membership funcs for Cross-Track Error Et (meters)
            // leftOfCourse, ZeroCourse, rightOfCourse
            leftOfCourse  = new FuzzyTriLeft(-2000, 0);
            rightOfCourse = new FuzzyTriRight(0, 2000);
            zeroCourse    = new FuzzyTrap(-2000, -1, 1, 2000);

            // membership funcs for Cross-Track Velocity Vt (meters/sec)
            // leftToRight, rightToLeft, and parallel
            rightToLeft = new FuzzyTriLeft(-50, 0);
            leftToRight = new FuzzyTriRight(0, 50);
            parallel    = new FuzzyTrap(-50, 0, 0, 50);

            // membership funcs for output turn rate in degrees/second
            // standard rate turn is 3 degrees per second
            turnHardLeft    = new FuzzyResultTri(-9, -6, -3);
            turnLeft        = new FuzzyResultTri(-5, -3, -1);
            turnSlightLeft  = new FuzzyResultTri(-3, -0.25f, 0);
            turnNone        = new FuzzyResultTri(-0.5f, 0, 0.5f);
            turnSlightRight = new FuzzyResultTri(0, 0.25f, 3);
            turnRight       = new FuzzyResultTri(1, 3, 5);
            turnHardRight   = new FuzzyResultTri(3, 6, 9);
        }
Beispiel #3
0
        public FuzzyNavCtrl()
        {
            // membership funcs for Cross-Track Error Et (meters)
            // leftOfCourse, ZeroCourse, rightOfCourse
            leftOfCourse = new FuzzyTriLeft(-2000, 0);
            rightOfCourse = new FuzzyTriRight(0, 2000);
            zeroCourse = new FuzzyTrap(-2000, -1, 1, 2000);

            // membership funcs for Cross-Track Velocity Vt (meters/sec)
            // leftToRight, rightToLeft, and parallel
            rightToLeft = new FuzzyTriLeft(-50, 0);
            leftToRight = new FuzzyTriRight(0, 50);
            parallel = new FuzzyTrap(-50, 0, 0, 50);

            // membership funcs for output turn rate in degrees/second
            // standard rate turn is 3 degrees per second
            turnHardLeft = new FuzzyResultTri(-9, -6, -3);
            turnLeft = new FuzzyResultTri(-5, -3, -1);
            turnSlightLeft = new FuzzyResultTri(-3, -0.25f, 0);
            turnNone = new FuzzyResultTri(-0.5f, 0, 0.5f);
            turnSlightRight = new FuzzyResultTri(0, 0.25f, 3);
            turnRight = new FuzzyResultTri(1, 3, 5);
            turnHardRight = new FuzzyResultTri(3, 6, 9);
        }