Betrouwbaarheidsgericht ontwerpen
De industriële trends richting steeds meer functionaliteit, performance, miniaturisatie en minder kosten zorgen voor een grotere complexiteit en tijdsdruk in de ontwikkeling. Dit kan een negatief effect hebben op de prestaties, betrouwbaarheid en levensduur van elektronische producten. Wendy Luiten, docent bij High Tech Institute, legt uit hoe de reliability van systemen in een gestructureerd ontwikkelproces kan worden meegenomen.
Wat is betrouwbaarheid? Uit de Engelstalige referentiebronnen: ‘reliability is the probability that a system will perform its intended function under stated conditions, without failure, for a stated period of time’, ofwel ‘betrouwbaarheid is de waarschijnlijkheid dat een systeem de beoogde functie zonder falen uitvoert, onder bepaalde omstandigheden, gedurende een bepaalde tijd’. Het eerste deel van deze definitie is performancegericht: dat het systeem de beoogde functie uitvoert, zonder te falen. Het tweede deel adresseert de betrouwbaarheidsaspecten (onder welke omstandigheden). En het derde deel de tijd (hoe lang).

Performancegericht ontwerpen is een bekend veld. De meeste r&d-afdelingen zijn goed bekend met het V-model en het stappenplan dat daaruit volgt. We beginnen met het wensenlijstje van business en marketing. Daaruit destilleren we de systeemeisen, dat wil zeggen: welke functie het systeem moet uitvoeren. De systeemeisen vloeien naar beneden tot de eisen ten aanzien van subsystemen en onderdelen. En in de opgaande poot van de V wordt gecontroleerd of de functie naar behoren wordt uitgevoerd, dus zonder te falen. Dit wordt gecontroleerd in de onderdeel–, subsysteem- en systeemverificatie. Uiteindelijk volgt systeemvalidatie weer op het niveau van business en marketing.
Dan het tweede aspect, de omstandigheden. Die volgen uit usecases uit de levenscyclus van het systeem. Je kunt hierbij denken aan transport, inbedrijfsstelling, het eigenlijke gebruik en uit gebruik nemen. Het product moet niet breken ten gevolge van schokken tijdens transport bijvoorbeeld. En het mag ook niet kapotgaan als een gebruiker tijdens de inleerperiode een foutieve handeling uitvoert. In het gebruik kunnen verschillende omstandigheden optreden ten aanzien van belasting, temperatuur en vocht. En bij uit gebruik nemen willen we niet dat het product grote milieuschade veroorzaakt of niet te recyclen is. Deze usecases zijn nadrukkelijk breder dan uitsluitend het voorziene gebruik in laboratoriumomstandigheden. ‘It only worked in the lab’ is toch een uitspraak van een ontevreden gebruiker die in de praktijk het product als onbetrouwbaar ervaart.
Badkuip
Het derde deel van de definitie gaat over de verwachte tijd dat een systeem naar behoren functioneert. Als maatstaf wordt vaak de failure rate genomen, dat wil zeggen: het aantal producten van een populatie van werkende producten dat uitvalt in een bepaalde tijd. Als we uitgaan van bijvoorbeeld een constante failure rate van tien procent per tijdseenheid en we starten met honderd werkende producten, dan zijn er na één tijdseenheid nog negentig werkende producten over, na twee tijdseenheden nog 81, et cetera.
De failure rate van een groep producten verandert in de tijd. Als het een hardwareproduct betreft, volgt de failure rate de bekende badkuipcurve. De beginfase wordt gekenmerkt door de zogenaamde kinderziektes. Faalmechanismes zijn te wijten aan problemen met productie, bijvoorbeeld tolerantiekwesties, of problemen met transport, opslag, installatie of ingebruikname. Als die eerste problemen zijn opgelost, neemt de failure rate af tot een constant level – de bodem van de badkuip. Dit is het gebied van het random falen: toevallige overschrijdingen van toelaatbare grenzen voor een veelvoud aan faalmechanismes. Elk van deze mechanismes heeft een eigen kansverdeling. De combinatie van alle mechanismes toont zich als een ‘vlakke’ verdeling. Verhogen van de betrouwbaarheid in deze fase is een kwestie van adresseren van de afzonderlijke faalmechanismes.
Aan het einde van de vlakke bodem van de badkuipcurve stijgt de failure rate weer en treedt toenemende uitval op ten gevolge van slijtage. Normaliter is dit nadat de economische levensduur is verstreken. De badkuipcurve is kenmerkend voor hardwareproducten. Voor software is het verloop van de failure rate meer een oplopende zaagtandvorm, gerelateerd aan bug fixes en updates op een platform dat qua geheugen en kloksnelheid langzaam veroudert.
Organisatie
De veelheid aan faalmechanismes en usecases maakt het vrijwel onmogelijk om uitsluitend op basis van ad-hocmetingen een product te ontwikkelen en te verifiëren. Het falen doet zich vaak slechts in een beperkt aantal gevallen of omstandigheden voor, dus het achterhalen van de faalcondities is meestal omslachtig en tijdrovend. De benodigde tijd en middelen zijn hiervoor vaak niet beschikbaar. Daarbij vergt het verzamelen van de gegevens over betrouwbaarheid en falen een bedrijfsorganisatie op voldoende niveau. IEEE 1624–2008 ‘Guide for organizational reliability capability’ definieert vijf categorieën in een Reliability Capability Maturity Model voor de bedrijfsorganisatie, variërend van puur reactief tot proactief. In de matrix worden acht essentiële reliability-activiteiten benoemd, verdeeld over drie hoofdrichtingen waarvan de invulling leidt tot classificatie in de vijf CMM-levels. IEEE 1624-2008 richt zich met name op hardwarebetrouwbaarheid.

Vanaf CMM level 2 worden computersimulaties en modellering ingezet bij de productontwikkeling. Op lagere levels is dit zuiver performancegedreven: kan het product ook in alle usecases de functie zonder falen uitvoeren? Op hogere levels wordt ook de verdeling van de performance berekend om uiteindelijk een statistische capability te bepalen. Dat is een maatstaf voor hoeveel uitval er statistisch te verwachten is – veel gebruikt hiervoor zijn de Cp- en Cpk-capability-indices. De combinatie van computersimulaties en statistische methodes is hierin zeer krachtig gebleken. Zo kan bijvoorbeeld tijdens de ontwikkeling een design of experiments-scenario met simulaties worden doorgerekend om de invloed van de verschillende designinputs te kwantificeren en een zogeheten transferfunctie op te stellen. Dat is een functie die een gewenste designoutput, bijvoorbeeld een kritieke temperatuur, relateert aan de inputs. Deze transferfunctie kan worden gebruikt om de inputs zodanig te kiezen dat de output optimaal presteert.
Als ook de variabele factoren en de verstoringen uit de usecases zijn meegenomen als inputs in het design of experiments en in de transferfunctie, en de statistische verdeling hiervan bekend is, kunnen montecarlosimulaties worden uitgevoerd. Voor elke input en ruisfactor wordt een groot aantal (bijvoorbeeld vijfduizend) random trekkingen uit de betreffende verdeling gedaan. Hiermee wordt evenveel malen de transferfunctie uitgerekend. Dit resulteert in vijfduizend voorspellingen voor de waarde van de output, waarvan vervolgens de verdeling en de statistische capability kan worden bepaald.

Op deze manier kan al in de ontwerpfase rekening worden gehouden met de betrouwbaarheid. En kan de gewenste betrouwbaarheid worden gerelateerd aan eisen voor de inputs, niet alleen qua gemiddelde (nominaal) maar ook qua spreiding (tolerantie) en verdeling. Deze eisen kunnen in processing en toeleverketen worden meegenomen om uiteindelijk de betrouwbaarheid van het product te kunnen borgen.