Fråga:
Vad är skillnaden mellan ett feltolerans och robusthet?
WalyKu
2015-05-13 13:59:46 UTC
view on stackexchange narkive permalink

Jag försöker förstå skillnaden i definitionen av "feltolerans" och "robusthet" när det gäller systemdesign.

Till exempel, vad skulle vara de viktigaste designhänsynen eller vad som skulle vara definitionen av termerna när man tittar på tekniska problem? I synnerhet, hur gäller dessa termer för mekanisk eller elkraftteknik?

Jag hittade några definitioner men de var inriktade på beräkningsteknik. Dokumentet gav inte mycket inblick i hur man definierar dessa termer i andra tekniska discipliner.

Robusthet: Förmågan att klara okända fel under körning och tillhandahålla systemtjänsterna på samma sätt.

Feltolerans: Möjligheten att tolerera en viss uppsättning fel definierade under utvecklingen av ett system.

Källa

Vad skulle det vara skillnaden mellan en feltolerant och robust design?
Kan man göra en svår skillnad?

Vilka tekniker eller designprinciper är tillämpas för att säkerställa en feltolerant design och vilka används för att säkerställa en robust design?

[FMEA] (http://en.wikipedia.org/wiki/Failure_mode_and_effects_analysis) används ofta under designprocessen för att säkerställa att designen är feltolerant.
Tänk på att bygga ett fort. Gör väggarna höga och starka för att hantera allt som de kan kasta på oss = robusta. Gör väggarna brandsäkra = feltoleranta.
Tre svar:
Air
2015-05-13 23:58:23 UTC
view on stackexchange narkive permalink

Vad skulle det vara skillnaden mellan en feltolerant och robust design?

Den viktigaste skillnaden är att robusthet tar hänsyn till externa faktorer. Ett mer robust system kommer att fungera trots vissa förhållanden som skulle försämra den normala funktionen hos ett mindre robust system. Mer robusta system kan kallas robusta, tunga, kanske till och med överbyggda; mindre robusta system kan kallas känsliga eller finjusterade.

Till exempel äger jag en antik klocka. Det fungerar mycket bra under normala driftsförhållanden men dess delar är något känsliga. Om jag tappar det på marken är det troligt att glaset och / eller några interna komponenter på klockan går sönder (baserat på erfarenhet är jag rädd). Om jag lägger det genom tvättmaskinen är det mycket troligt att tvålvattnet rostar och korroderar vissa inre komponenter. Jag kunde bulka eller skrapa metallväskan utan mycket ansträngning; även om detta förmodligen inte skulle påverka klockans mekaniska funktion, skulle det verkligen försämra dess estetiska funktion.

Som jämförelse skulle de flesta moderna klockor inte sluta fungera om du tappade dem från handleden eller fickan. Deras fönster kan vara akryl, mineral kristall eller safir, varav något är tåligare än glaset i min fickur. Deras fodral kan använda en hårdare metall eller polymer som tål bucklor och repor bättre än min fickur. De kan utformas för att vara vattentäta. De kan använda kvartsrörelser.

Allt detta är kvaliteter som gör en klocka mer robust men inte mer feltolerant . Inget av de fel som jag beskrivit ovan är egentligen klockans eller dess komponenter fel. de orsakas helt av användarfel. Till skillnad från robusthet handlar feltolerans om fel som förväntas inträffa, särskilt inom systemets komponenter.

En jordfelsbrytare (GFCI) är ett utmärkt exempel på feltolerant design. Ett jordfel uppstår när strömmen i en krets får strömma direkt till marken. Det klassiska exemplet handlar om att använda en hårtork i badkaret, men det finns många sätt att markfel kan uppstå som inte medför användarfel. * Ett bostadselektriskt system är vanligtvis på plats i årtionden; vi förväntar oss att markfel vid något tillfälle förväntas inträffa, och förutom i fall av användarfel, ** uppstår de inom systemets komponenter.

Om kretsen går direkt från en huvudledning , kan ett jordfel allvarligt hota liv och egendom. Om en jordfel orsakar att strömmen i kretsen överskrider någon övre gräns (överbelastning), brinner säkringen ut och strömmen stannar innan något viktigt smälter eller tar eld. Strömbrytare gör samma sak men till skillnad från säkringar behöver de inte bytas ut när de utlöses; de kan återställas på elpanelen, vilket kan innebära mindre stillestånd och kostnader. GFCI-brytare skyddar dessutom mot läckage, vilket innebär mindre strömmar som fortfarande kan vara farliga även om de inte skulle smälta en ledare eller starta en brand. Dessa tekniker gör systemet i allt högre grad mer feltolerant .

Vilka tekniker eller designprinciper används för att säkerställa en feltolerant design och vilka tillämpas på säkerställa en robust design?

Båda dessa egenskaper finns i ett spektrum. Om någon pekar på en design och säger "Det är en robust design", vad de menar är att den är relativt robust jämfört med någon referenspunkt som de Tänka på. Olika människor har olika referenspunkter, så jag tycker att det är bättre att vara tydlig om vilken jämförelse du gör. Observera att i den första delen av detta svar sa jag inte att min antika klocka inte är robust - bara att den är mindre robust än moderna klockor.

Detta är en vacker brett ämne, men jag tar en stick i en sammanfattande behandling.

Robusthet kan komma från många ställen, men är vanligtvis nära relaterad till kostnad. Ta fästelement som ett exempel: rostfritt kontra galvaniserat; skruvar kontra bultar; den minsta storleken för din last, eller nästa storlek upp. I båda fallen är det en avvägning mellan robusthet och kostnad. Så länge som något av alternativen uppfyller de grundläggande kraven för designen är detta ett affärsbeslut mer än ett tekniskt beslut.

Om någon säger till dig att du måste producera en robust design, fråga dem i jämförelse till vad och med vilket mått? Du behöver en specifik definition av "robust", oavsett om det är jämförande ("gör det mer vattentätt än vår konkurrents produkt") eller kvantitativt ("gör det vattentätt till 15 m"). När du väl har den definitionen kan du glömma ordet "robust".

Feltolerans är något som kan kräva lite mer fantasi och due diligence från din sida. Chefer som saknar erfarenhet av den specifika produkt eller teknik du arbetar med, särskilt de utan teknisk bakgrund, kanske inte kan berätta för dig vilka fel du kan förvänta dig. De kommer att säga något som "Användaren ska kunna byta ut trasiga komponenter utan att avbryta driften av systemet" och du måste göra jobbet för att räkna ut:

  • I vad sätt kan varje komponent misslyckas?
  • Hur troligt är att någon komponent kommer att misslyckas, på vart och ett av sätten den kan misslyckas?
  • Vilka andra komponenter kommer att påverkas när en komponent misslyckas på ett visst sätt och vilken kommer att ha den totala effekten på system?

När du samlar in denna information bör du överväga de antaganden som din design bygger på. Alla antaganden går sönder någon gång och att veta hur ditt system kommer att fungera under dessa omständigheter hjälper dig att identifiera fel som kan uppstå. När du väl har identifierat vilka fel du kan förvänta dig är det vanligtvis enklare att ta reda på hur mycket det kommer att kosta att mildra vissa risker.

Några allmänna principer:

  • Om en processen måste bibehålla en viss minimikapacitet, och en kritisk komponent kommer troligen att misslyckas någon gång, göra komponenten överflödig (t.ex. fler motorer än vad som behövs för grundflygning) eller ge en reserv (t.ex. möjligheten att utföra en landning utan kraft).
  • Använd alltid testade produkter och komponenter, även om det betyder att du måste göra testet själv.
  • Ge dina kunder / kunder / användare att ge feedback om fel när de inträffar. Du kommer knappast någonsin att förutse alla möjligheter och att kunna eftermontera eller anpassa en befintlig design är viktigt.

* Strippa för mycket isolering under installationen; skadedjur som tuggar på ledningar; köra trådar genom tappar utan nagelplatta; skärning av flexrör felaktigt / inte avgradning; etc.
** Du kan också argumentera för att utvidga systemet till att inkludera användare som interna komponenter - särskilt barn och husdjur - men det är en annan diskussion helt och hållet.

Jag är inte säker på att jag följer ditt klockexempel. Till exempel använder moderna klockor safir istället för glas för att vara mer robusta, eller är robustheten ett resultat av att det är fel (dvs. fall eller rep) tolerant? Måste felet endast vara internt?
Normalt slitage (repor) är inte ett fel i konstruktionen - allt är föremål för slitage. Om en komponent kan bli så försvagad av normalt slitage att den misslyckas skulle det vara ett fel i konstruktionen. Tänk på "designen" och "systemet" omväxlande. Det blir suddigt när du tänker på att du kan rita om din systemgräns hur du vill, men jag skulle säga att ja, de fel vi handlar om är interna.
Den andra frågan här är, om du släpper en klocka och den går sönder, är det ett fel på klockan? Jag skulle säga att det beror på klockan. Antika fickur var inte designade för mountainbikecyklister och skateboardåkare och förvaras vanligtvis i kedjor. Om kedjan går sönder är det ett fel i kedjan. Om du inte använder en kedja är det ditt fel. Å andra sidan är vissa moderna klockor utformade speciellt för att missbrukas, och i så fall skulle jag betrakta slaghållfasthet som det uttryckliga ansvaret för designen. Så igen, det är lite suddigt.
@Air Jag gillar ditt svar väldigt mycket, du förklarade skillnaderna bra. Det enda jag saknar är några referenser. Jag är särskilt intresserad av huvudkraven, t.ex. vad feltolerans och robusthet är. Känner du några ansedda källor för dessa påståenden? Tack för svaret!
@Kurtovic Jag är inte rädd. Förhoppningsvis kommer din bounty att uppmärksammas av någon som är specialiserad på detta område - jag kommer också att annonsera för din bounty från [vårt Twitter-konto] (https://twitter.com/stackengineers). :)
Luke Machowski
2015-05-16 10:46:17 UTC
view on stackexchange narkive permalink

Här är mitt försök till en kort och söt skillnad mellan de två begreppen:

Feltolerant:

Hur många misstag från andra människor kan jag hantera innan jag misslyckas själv?

Robust:

Hur många nya scenarier kan jag vara användbara i (eller nya ingångar kan jag acceptera att jag aldrig har sett förut) som jag inte ursprungligen var designad för?

Mandrill
2015-05-27 00:39:44 UTC
view on stackexchange narkive permalink

Robusthet (för ett system): Systemet behåller sin förväntade prestanda (misslyckas inte) även när de verkliga driftsförhållandena (utanför systemet) inte är desamma som de som antas i designen . Det bredare är intervallet kring de förväntade förhållandena mer robusta är systemet. Som ett enkelt exempel kan du överväga en bil som är konstruerad för att köra över relativt slät asfalt och du råkar använda bilen på en väldigt dåligt underhållen väg. Ju mer robust bildesignen är, desto mindre kommer påverkan av den dåligt underhållna vägen på prestanda (till exempel passagerarnas komfort) eller förväntningen på fel (kilometer körning innan den går sönder) av bilen.

Feltolerant (system): Systemet behåller förväntad prestanda (misslyckas inte) även när en av dess komponenter (som är interna i systemet) misslyckas. För den här analysen är det viktigt att känna till kritiken för varje komponent och också sannolikheten för att den komponenten går sönder.

För att göra ett system fel-tolerant gör du varje komponent mindre kritisk (ett plan med mer än en motor och som inte behöver alla motorer som arbetar för att kunna flyga är feltolerant vid motorfel). Ett plan med bara en motor är inte feltolerant när det gäller motorfel.

Om det inte är praktiskt att göra systemet feltolerant med avseende på en specifik komponent, gör du den komponenten mer robust , så sannolikheten för att komponenten kommer att misslyckas minskas (vilket innebär att komponenten klarar ett brett spektrum av driftsförhållanden när du ser det som ett system).

Tack för svaret! Känner du några ansedda källor som verifierar dina påståenden?


Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 3.0-licensen som det distribueras under.
Loading...