예제 #1
0
        public Params Calculate(double c11, double c12, double c22, double l11, double l12, double l22)
        {
            _currentParams     = new Params();
            _currentParams.C11 = c11 * Math.Pow(10, -12);
            _currentParams.C12 = c12 * Math.Pow(10, -12);
            _currentParams.C22 = c22 * Math.Pow(10, -12);

            _currentParams.L11 = l11 * Math.Pow(10, -6);
            _currentParams.L12 = l12 * Math.Pow(10, -6);
            _currentParams.L22 = l22 * Math.Pow(10, -6);

            _currentParams.Z1 = _calculator.Z1OrZ2(_currentParams.L11, _currentParams.C11);
            _currentParams.Z2 = _calculator.Z1OrZ2(_currentParams.L22, _currentParams.C22);

            _currentParams.kl  = _calculator.Kl(_currentParams.L12, _currentParams.L11, _currentParams.L22);
            _currentParams.kc  = _calculator.Kc(_currentParams.C12, _currentParams.C11, _currentParams.C22);
            _currentParams.klc = _calculator.Klc(_currentParams.kl, _currentParams.kc);

            _currentParams.Q11 = _calculator.Q11(_currentParams.L11, _currentParams.C11, _currentParams.L12, _currentParams.C12);
            _currentParams.Q12 = _calculator.Q12(_currentParams.L11, _currentParams.C22, _currentParams.L12, _currentParams.C12);
            _currentParams.Q21 = _calculator.Q21(_currentParams.L22, _currentParams.C11, _currentParams.L12, _currentParams.C12);
            _currentParams.Q22 = _calculator.Q22(_currentParams.L12, _currentParams.C12, _currentParams.L22, _currentParams.C22);
            _currentParams.D   = _calculator.D(_currentParams.Q11, _currentParams.Q12, _currentParams.Q22, _currentParams.Q21);

            #region Rp_Rc_Erc_Erp_Calculate

            _currentParams.Rp = _calculator.Rp(_currentParams.Q11, _currentParams.Q22, _currentParams.D, _currentParams.Q12);
            _currentParams.Rc = _calculator.Rc(_currentParams.Q11, _currentParams.Q22, _currentParams.D, _currentParams.Q12);
            _currentParams.RpRcCheck();
            _currentParams.Erc = _calculator.Erc(_currentParams.Q11, _currentParams.Q22, _currentParams.D);
            _currentParams.Erp = _calculator.Erp(_currentParams.Q11, _currentParams.Q22, _currentParams.D);

            #endregion

            _currentParams.Zc1 = _calculator.Zc1OrZp1(_currentParams.C11, _currentParams.C12, _currentParams.Erc, _currentParams.Rc);
            _currentParams.Zp1 = _calculator.Zc1OrZp1(_currentParams.C11, _currentParams.C12, _currentParams.Erp, _currentParams.Rp);
            _currentParams.Zp2 = _calculator.Zc2OrZp2(_currentParams.Rc, _currentParams.Rp, _currentParams.Zp1);
            _currentParams.Zc2 = _calculator.Zc2OrZp2(_currentParams.Rc, _currentParams.Rp, _currentParams.Zc1);
            _currentParams.Z0  = _calculator.Z0(_currentParams.Zc2, _currentParams.Zp1);

            //#region NewFormulsUse

            //_currentParams.N = _calculator.N(_currentParams.Rc, _currentParams.Rp, _currentParams.k);

            //_currentParams.Rz = _calculator.Rz(_currentParams.Z12, _currentParams.Z22, _currentParams.Z11,
            //    _currentParams.Rc, _currentParams.Rp);

            //_currentParams.k = _calculator.K(_currentParams.Rz, _currentParams.N);

            //_currentParams.Zok = _calculator.Zok(_currentParams.Z0, _currentParams.k);

            //_currentParams.Z11 = _calculator.Z11(_currentParams.Zok, _currentParams.N);

            //_currentParams.Z12 = _calculator.Z12(_currentParams.Zok, _currentParams.k);

            //_currentParams.Z22 = _calculator.Z22(_currentParams.Zok, _currentParams.N);


            //_currentParams.Zp1 = _calculator.Zp1(_currentParams.Z11, _currentParams.Z12, _currentParams.Rc);

            //_currentParams.Zc1 = _calculator.Zc1(_currentParams.Z11, _currentParams.Z12, _currentParams.Rp);

            //#endregion

            _currentParams.Z11 = _calculator.Z11(_currentParams.Rc, _currentParams.Rp, _currentParams.Zc1, _currentParams.Zp1,
                                                 _calculator.DForImpedance(_currentParams.Rc, _currentParams.Rp));
            _currentParams.Z12 = _calculator.Z12(_currentParams.Rc, _currentParams.Rp, _currentParams.Zc1, _currentParams.Zp1,
                                                 _calculator.DForImpedance(_currentParams.Rc, _currentParams.Rp));
            _currentParams.Z22 = _calculator.Z22(_currentParams.Rc, _currentParams.Rp, _currentParams.Zc1, _currentParams.Zp1,
                                                 _calculator.DForImpedance(_currentParams.Rc, _currentParams.Rp));
            _currentParams.k = _calculator.K(_currentParams.Z12, _currentParams.Z11, _currentParams.Z22);

            //_currentParams.N = _calculator.N(_currentParams.Rc, _currentParams.Rp, _currentParams.k, _currentParams.RzNegativeStatus);
            _currentParams.N = _calculator.N(_currentParams.Z11, _currentParams.Z22);

            _currentParams.kl  = _calculator.Kl(_currentParams.L12, _currentParams.L11, _currentParams.L22);
            _currentParams.kc  = _calculator.Kc(_currentParams.C12, _currentParams.C11, _currentParams.C22);
            _currentParams.klc = _calculator.Klc(_currentParams.kl, _currentParams.kc);
            _currentParams.kv  = _calculator.Kv(_currentParams.Erc, _currentParams.Erp);
            _currentParams.ke  = _calculator.Ke(_currentParams.Erc, _currentParams.Erp);
            _currentParams.m   = _calculator.M(_currentParams.Erc, _currentParams.Erp);
            //_currentParams.m = Math.Sqrt(_currentParams.Erp) / Math.Sqrt(_currentParams.Erc);
            _currentParams.Zm = _calculator.Zm(_currentParams.Z12, _currentParams.Z0);

            _currentParams.Z01 = _calculator.Z01(_currentParams.Rc, _currentParams.Zp1, _currentParams.Rp, _currentParams.Zc1);
            _currentParams.Z02 = _calculator.Z02(_currentParams.Z0, _currentParams.Z01);

            _currentParams.Zc = _calculator.Zc(_currentParams.Z12, _currentParams.Z11, _currentParams.Z22);
            _currentParams.Zp = _calculator.Zp(_currentParams.Z12, _currentParams.Z11, _currentParams.Z22);

            _currentParams.Z2p = _calculator.Z2p(_currentParams.Zc2, _currentParams.Rc, _currentParams.Zp2, _currentParams.Rp);
            _currentParams.Z1p = _calculator.Z1p(_currentParams.Zc2, _currentParams.Rc, _currentParams.Zp2, _currentParams.Rp);
            _currentParams.Rz  = _calculator.Rz(_currentParams.Z2p, _currentParams.Z1p);
            _currentParams.Z2c = _calculator.Z2с(_currentParams.Z1p, _currentParams.Z0);
            _currentParams.Z1c = _calculator.Z1с(_currentParams.Z2p, _currentParams.Z0);

            _currentParams.EEE = _calculator.EEE(_currentParams.Erp, _currentParams.Erc);

            _currentParams.S21 = _calculator.S21(_currentParams.k);

            _currentParams.C11 = c11;
            _currentParams.C12 = c12;
            _currentParams.C22 = c22;

            _currentParams.L11 = l11;
            _currentParams.L12 = l12;
            _currentParams.L22 = l22;

            _currentParams.Emax = _calculator.Mmax(_currentParams.Rc, _currentParams.Rp, _currentParams.Erc,
                                                   _currentParams.Erp, _currentParams.Zc1, _currentParams.Zp1);

            return(_currentParams);
        }