public function calculateLam(DiodeRF $diode, $pcbID) { $sEnv = $diode->getEnvironment(); $piE = $this->systemService->getPiE(62, $sEnv); $pcb = $this->pcbService->getItem($pcbID); $system = $this->systemService->getItem($pcb->getSystemID()); $temp = $diode->getTempPassive() + $diode->getTempDissipation() + $system->getTemp(); $diode->setTemp($temp); $diodeType = $diode->getDiodeType(); $base = $this->getDiodeTypeValue($diodeType); $piQ = $this->getQualityValue($diode->getQuality(), $diodeType); $power = $diode->getPowerRated(); if ($diodeType == "PIN") { if ($power <= 0) { $piR = 2.4; } else { if ($power <= 10) { $piR = 0.5; } else { $piR = 0.326 * log($power) - 0.25; } } } else { $piR = 1; } if ($diodeType == "IMPATT") { $piT = exp(-5260 * (1 / ($temp + 273) - 1 / 298)); } else { $piT = exp(-2100 * (1 / ($temp + 273) - 1 / 298)); } $piA = $this->getApplicationValue($diode->getApplication()); $lambda = $base * $piT * $piA * $piR * $piQ * $piE * pow(10, -6); //$lambda = $piQ; return $lambda; }