PIND多余物检测技术的挑战与问题分析

需积分: 45 5 下载量 188 浏览量 更新于2024-08-24 收藏 3.16MB PPT 举报
"PIND多余物检测技术存在的主要问题-电子元器件可靠性系统工程" 本文讨论的是电子元器件可靠性中的一个重要环节——PIND(Physical Interference Not Detected,物理干扰未检测)多余物检测技术存在的问题。PIND技术主要用于检测元器件内部的多余物,这些多余物可能对元器件的性能和可靠性造成影响。以下是对这些问题的详细说明: 1. 人工判别依赖性:PIND测试依赖于人工判断,其准确率不超过80%。由于缺乏统一的判别标准,结果易受个人主观因素影响,可能导致误判和漏判。检测人员之间的差异也可能导致对同一检测结果的不同解读,增加了不确定性。 2. 单一的试验频率段:PIND试验通常仅使用固定的三个频率段,这可能无法确保所有类型继电器内的多余物都能被振出。对于某些特定类型的多余物,其他未测试的频率段可能同样会导致问题,但现有技术无法评估这一点。 3. 多余物粒子危害度分析不足:目前的技术忽视了不同质量、尺寸和形状的多余物粒子对不同功率继电器的实际危害程度。没有充分分析这些因素,可能会低估某些多余物的影响。 4. 铁磁性和非金属粒子检测无效:PIND测试对于铁磁性粒子和非金属粒子的效果不佳,这意味着某些类型的多余物可能无法被有效检测到,从而增加潜在失效的风险。 5. 缺乏通用的提取和分类方法:当前技术缺乏对继电器中不同种类多余物粒子的通用提取和分类手段,使得自动检测和识别多余物粒子变得困难。 6. 没有实际指导意义的PIND理论模型:现有的PIND检测方法没有建立一个能够指导实践的理论模型,这限制了该技术的进一步发展和优化。 电子元器件的可靠性是整机系统可靠性的关键,包括固有可靠性和使用可靠性两方面。固有可靠性是指元器件自身的质量保证,而使用可靠性则涉及到元器件在实际应用中的表现,它与元器件的选择、控制和使用密切相关。为了提高整机系统的可靠性,必须从设计阶段就开始对元器件进行严格的筛选和控制。 现代质量观念强调产品或服务满足需求的能力,包括显性需求和隐性需求。质量管理和质量保证标准对此进行了规定,要求在元器件选择与控制过程中,需考虑其在整个系统中的性能表现和长期稳定性。因此,改进PIND技术以提升多余物检测的准确性和全面性,对于提高电子设备的可靠性至关重要。

解释以下代码ISR(PCINT2_vect) { uint8_t mask; uint8_t pin; uint16_t cTime,dTime; static uint16_t edgeTime[8]; static uint8_t PCintLast; pin = PIND; mask = pin ^ PCintLast; // doing a ^ between the current interruption and the last one indicates wich pin changed sei(); // re enable other interrupts at this point, the rest of this interrupt is not so time critical and can be interrupted safely PCintLast = pin; // we memorize the current state of all PINs [D0-D7] cTime = micros(); // micros() return a uint32_t, but it is not usefull to keep the whole bits => we keep only 16 bits if (mask & 1<<2) { //indicates the bit 2 of the arduino port [D0-D7], that is to say digital pin 2, if 1 => this pin has just changed if (!(pin & 1<<2)) { //indicates if the bit 2 of the arduino port [D0-D7] is not at a high state (so that we match here only descending PPM pulse) dTime = cTime-edgeTime[2]; if (900<dTime && dTime<2200) rcValue[2] = dTime; // just a verification: the value must be in the range [1000;2000] + some margin } else edgeTime[2] = cTime; // if the bit 2 of the arduino port [D0-D7] is at a high state (ascending PPM pulse), we memorize the time } if (mask & 1<<4) { //same principle for other channels // avoiding a for() is more than twice faster, and it's important to minimize execution time in ISR if (!(pin & 1<<4)) { dTime = cTime-edgeTime[4]; if (900<dTime && dTime<2200) rcValue[4] = dTime; } else edgeTime[4] = cTime; } if (mask & 1<<5) { if (!(pin & 1<<5)) { dTime = cTime-edgeTime[5]; if (900<dTime && dTime<2200) rcValue[5] = dTime;//map(dTime,1016,2020,-128,128); } else edgeTime[5] = cTime; } if (mask & 1<<6) { if (!(pin & 1<<6)) { dTime = cTime-edgeTime[6]; if (900<dTime && dTime<2200) rcValue[6] = dTime;//map(dTime,1016,2020,-128,128); } else edgeTime[6] = cTime; } }

2023-07-17 上传