Proportionell-Integral-Derivativ (PID) kontroll är den vanligaste kontroll algoritmen som används i industrin. Den omfattande användningen av elektronik och programvara har resulterat i en situation där den digitala PID-regulatorn med hjälp av en mikroprocessor och dess programimplementering ersätter befintliga pneumatiska, mekaniska och elektromekaniska lösningar. Programvarans tillförlitlighet garanteras genom upptäckt och borttagning av fel som kan leda till fel. I dokumentet presenteras matematiska metoder för verifiering och testning av mikroprocessorbaserade PID-regulatorer som kan användas för att öka systemets tillförlitlighet. Den framlagda metoden utforskar begreppet testning med en modell som orakel. Regulator PID (regulator proporcjonalno-całkuj skaco-różniczkuj skacy) Proportional-Integral-Derivative (PID) kontroll är den vanligaste kontrollalgoritmen som används i industrin. Den har använts i över ett sekel i olika former: som en rent mekanisk anordning, som en pneumatisk anordning och som en elektronisk anordning. Modern digital PID controller är ett system som kan betraktas som en kombination av dator hårdvara och programvara utformad för att utföra en dedikerad styrfunktion. Kontrollen genomförs på en anpassad hårdvaruplattform, som ofta är utformad och konfigurerad för den specifika applikationen. Sådana system kallas inbyggda system [29, 30]. Inbäddade system kan observeras i vanliga apparater som används i vardagslivet (t.ex. kaffemaskiner, tvättmaskiner, mobiltelefoner) samt i sofistikerade tekniska system (t.ex. bilar [4, 29], flygplan, rymdfarkoster). PID-regulatorer är också ofta säkerhetskritiska system. På grund av användningsområdet måste PID-kontrollen ha hög tillförlitlighet eftersom oväntade fel kan vara dödliga. Säkerställa tillförlitligheten hos inbyggda programvarusystem baserat på upptäckt och avlägsnande av fel som kan leda till systemfel. Processen för att kontrollera att systemet uppfyller de angivna kraven kallas provning. Testning är också en process för att försöka upptäcka varje tänkbart fel eller svaghet i en arbetsprodukt [12, 14]. De vanligaste felen som kan leda till felaktig drift av styrenheter utrustade med programvaran inkluderar funktionsfel i koden, aritmetiska fel i samband med användning av aritmetiska fasta punkter, kommunikations- och uppgiftshanteringsfel, brist på robusthet för olika typer av störningar och fungerar utanför räckvidden för variabiliteten hos ingångssignaler. Det finns flera fakta som tydligt visar möjliga konsekvenser av dåligt testade system. Den 25 februari 1991 slog en irakier Scud till mot barackerna i Dhaharan i Saudiarabien och dödade 28 soldater från den amerikanska armén. Denna olycka orsakades av programvarufel i systemets klocka [24]. PATRIOT missilbatteriet har varit i drift i 100 timmar, då systemets interna klocka hade drivit med en tredjedel av en sekund. För ett mål som rör sig så snabbt som Scud, var detta motsvarande ett positionsfel på 600 meter. Ett annat exempel är kopplat till Therac-25 strålbehandlingsmaskin som tillverkades av Atomic Energy of Canada Limited och CGR i Frankrike. Maskinen var inblandad i minst sex kända olyckor mellan 1985 och 1987, där patienterna fick massiva överdoser av strålning, som i vissa fall var i storleksordningen hundratals gråa [18]. Minst fem patienter dog av överdoserna. Dessa olyckor orsakades av fel i program för programvarukontroll.En av de mest ökända datorfelen i historien hittades under flight 501 som ägde rum den 4 juni 1996. Detta var den första, och misslyckade, testflygningen av det europeiska matsystemet Ariane 5. På grund av ett fel i programvarudesignen (otillräckligt skydd från heltalsspill), raketen svängde av sin flygväg 37 sekunder efter lanseringen och förstördes av dess automatiserade självförstörande system [19]. Eftersom det var en obemannad flygning, det fanns inga offer, men uppbrottet orsakade förlusten av fyra Cluster uppdrag rymdfarkoster, vilket resulterade i en förlust av mer än $ 370 miljoner. Det finns två grundklasser av testning av programvara: testning av svarta rutor och testning av vita rutor. Testning av svarta rutor är testning som ignorerar den interna mekanismen för ett system eller en komponent och fokuserar enbart på de resultat som genereras som svar på valda ingångar och genomförandeförhållanden. Testning av vit ruta är provning som tar hänsyn till den interna mekanismen för ett system eller en komponent. Black box-testning kallas också funktionell testning [2, 3] eller specifikationsbaserad testning. Specifikationen för kontrollsystem kan mycket ofta presenteras i form av modeller. Testfall ska sedan genereras systematiskt ur modellerna [29, 30]. De mest populära testmetoderna för svart box omfattar gränsvärdesanalys, partitionering av ekvivalens, testning av beslutstabeller, test av tillståndsövergång och testning av användningsfall (se t.ex. [3, 22]........................................................................................................... Gränsvärden analys är en testteknik där tester är utformade för att inkludera gränsvärden för ingångsfunktioner för att stimulera systemet. Idén kommer från gränsen, som är det område där testning sannolikt ger defekter. Likvärdighet partitionering är en teknik som delar in indata i grupper som förväntas uppvisa liknande beteende, så de kan sannolikt behandlas på samma sätt. Grupperna kallas ekvivalenspartitioner (eller klasser) och kan också identifieras för utgångar, intervallvärden och parametrar. Beslutstabeller är ett bra sätt att fånga in systemkrav som innehåller logiska villkor. Statsövergångstestning används mycket inom den inbyggda programvaruindustrin och teknisk automation där systemets beteende kan representeras med hjälp av tillståndsscheman. Tester kan också specificeras från användningsfall eller affärsscenarier. Ett användningsfall är en sekvens av steg som beskriver samspelet mellan en aktör (en användare av systemet) och systemet. Test av vit ruta (även kallad strukturbaserad testning) baseras på en identifierad struktur av programvaran eller systemet. Strukturen kan betraktas som själva koden (dvs. uttalanden, beslut eller grenar), ett anropsträd (ett diagram där moduler kallar andra moduler), en menystruktur, affärsprocess eller webbsidastruktur. Testfall som utformats med hjälp av provningsmetoder i vit ruta tar hänsyn till sådana ingångsvärden för att täcka relevanta instruktioner i koden (instruktionsprov), beslut (beslutsprov), villkor osv. Det bör betonas att de flesta av de presenterade teknikerna och metoderna sällan är tillämpliga i testprogramsystem där dynamiken inte kan försummas [20, 27]. De dynamiska systemen är modellerade av skillnader eller differentialekvationer och har vanligtvis oändligt många tillstånd. Det finns ett behov av ett annat tillvägagångssätt som kommer att hantera kontinuerliga aspekter av systemet (se t.ex. [6, 17]........................................................................................................... Detta beror på att testdynamiksaspekter av sådana system kräver tester som utnyttjar tidskontinuerliga ingångssignaler och tidskontinuerliga utgångssignaler (även när systemet behandlas digitalt). Processen att välja bara några få av de många möjliga scenarier som ska testas är en svår och utmanande uppgift och för närvarande baseras oftast på kvalitativt bästa tekniska bedömning. Vissa resultat [5, 11, 15, 28] som utvecklats för hybridsystem kan också vara tillämpliga på dynamiska system och system för delsystem (se t.ex. [21] ) som nyligen är av intresse för många forskare och ingenjörer. Tidningen är organiserad enligt följande. I nästa avsnitt introduceras modellering av funktionaliteten hos PID-regulatorn. Dessa begrepp undersöks vidare i nästa avsnitt och är grunden för att skapa testartefakter såsom: testorakel (avsnitt 3), notering av tester (avsnitt 4), genomförande av testjämförelser (avsnitt 5), testtäckning (avsnitt 6) och testgenerering (avsnitt 7 och 8). Experimentella resultat ges i avsnitt 9. Slutsatserna finns i avsnitt 10. En inbäddad PID-controller är ett system som kan betraktas som en kombination av datorhårdvara och programvara utformad för att utföra en dedikerad styrfunktion. PID-regulatorn (bild) 1 ) fungerar i ett slutet kretslopp system och försöker minimera felet e(t) genom att justera styringången u(t). Felet beräknas som skillnaden mellan en uppmätt processutgång y(t) och en önskad inpunkt y sp (t). Kontrollsignalen är ett resultat av följande beräkning där kontrollsignalen således är summan av tre termer: P-termen (som är proportionell mot felet), I-termen (som är proportionell mot felets integral) och D-term (som är proportionell mot felderivatan). Introducera notationen w t e t 1 0 (1) kan skrivas som: eller, motsvarande, i matrisnotation som: där w t w t w t W De fysiska och genomförande begränsningar som åläggs av datorsystemresurser leder till antagandet att utrymmet W begränsas. Antagandet innebär att utrymmet W är inneslutet i en cirkel av ändlig radie. Formlerna (1) och (3) anger matematiskt systemets beteende i klar och entydig form. Den kan användas i datorsimuleringar i en tidig utvecklingsfas för att validera systemkonceptet, kalibrera parametrar och optimera systemets prestanda. I nästa fas är det fysiska systemet konstruerat (dvs. hårdvara och programvara) som skall uppfylla de angivna kraven i form av ekvationerna (1) (3). Testprocessen ska betraktas som den sista fasen i utvecklingsprocessen som gör det möjligt att kontrollera att det fysiska systemets beteende är identiskt med det som observerats vid datorsimuleringar. Om testerna misslyckas måste systemet omformas. Det fysiska system som testas för korrekt drift kallas ofta för system under provning (SUT). Termen test oracle beskriver en källa för att bestämma förväntade resultat att jämföra med det faktiska resultatet av SUT [1]. Modellen spelar ofta rollen som sådan källa i det modellbaserade tillvägagångssättet (se bild). 2 )............................................................................................................... I tillvägagångssättet föreskrivs att samma insats ska tillämpas både på SUT och på modellen. Ingångssignalen är fysisk när det gäller SUT (t.ex. spänning, ström eller motstånd) och virtuell när det gäller modellen. Ur logisk synvinkel är båda signalerna likvärdiga. Bedömningen av om resultatet av en provning överensstämmer med modellen delegeras till en testjämförelse. Testjämförelsen är vanligtvis ett verktyg som jämför den faktiska produktionen från SUT med den förväntade produktionen från modellen. En av de grundläggande uppgifterna med programvarutestning är att skapa testfall. Ett testfall kan betraktas som en uppsättning indata, genomförandeförutsättningar och förväntade resultat som utvecklats för ett visst mål, t.ex. att utöva en viss programbana eller att kontrollera att ett visst krav uppfylls [13]. Anpassning av denna definition till SUT-modelleringskoncepten (1), ett enda testfall T-fall ( ) j kan definieras som: där j=1,2,...,N, N-1 är en etikett som anger olika testfall, →  till är en förväntad utdatafunktion, T (j) står för testutförandetid. Notering (5) och modellen (1) spelar den viktigaste rollen i den testmetod som beskrivs i avsnitt 8. När systemmodellen beskrivs med ekvationen (3) kan testjämförelsen betraktas som ett verktyg som implementerar en mekanism för att bestämma om ett prov klarar eller inte [14]. I konceptet illustreras på bild. 2, Detta verktyg jämför den faktiska produktionen som produceras av SUT med den förväntade produktionen som produceras av modellen (1) eller (3). Ett möjligt praktiskt förverkligande av jämförelsefunktionen för ett givet testfall (5) presenteras nedan: där z betecknar testresultatet, dvs. z=0 när provet passerar, z=1 när provet misslyckas, är ε>0 toleransområdet, u j s ( )  och ( ) står för den effekt som produceras av SUT. På liknande sätt kan jämförelsefunktionen definieras för notation (6): Den grad i vilken en given testsvit T-svit uppfyller alla angivna krav för ett visst system bestäms av ett testtäckningsmått [13]. Den mest uppenbara kvantifieringen av systemets beteende som utövas av testsviten beräknas genom att dividera antalet systemtillstånd som utforskas av testsviten med kardinaliteten i hela tillståndsutrymmet. Formeln har dock begränsad användbarhet för dynamiska system (och PID controller tillhör denna klass av system) eftersom tillståndet utrymme för sådana system innehåller vanligtvis oändligt antal tillstånd. I följande del av detta avsnitt presenteras en metod för beräkning av testtäckningen som tagits från papperet [25]. Den metod som beskrivs där har anpassats till modellen (3). Testtäckningen C h (T-sviten) i testsviten T-sviten kan definieras enligt följande: är det transformerade tillståndsutrymme som skapats från systemets tillståndsutrymme W, kommer att innehålla information om de tillstånd som täcks av testsviten. I exemplet på bild. 3, avgränsade tvådimensionella inre tillstånd utrymme W (området omfamnas av den djärva fasta linjen) har omvandlats till utrymmet I detta avsnitt, en algoritm för att generera testfall presenteras. Algoritmen använder SUT:s modelleringskoncept (3) för att generera testfall och beräkna testtäckning enligt den metod som presenteras i föregående avsnitt. Den utforskar transformerad tillståndsrymd genom att använda ingångssignaler som styr systemet från ett initialtillstånd till ett sluttillstånd. Urvalet och fullständigheten av testfall kvantifieras med hjälp av den metriska täckningen (10). Huvudidén med den presenterade strategin är att kontrollera att den funktionella specifikationen i form av ekvationen (3) genomförs korrekt, vilket i litteraturen beskrivs som överensstämmelsetest [14], korrekthetstest [16] eller funktionstest [13]. 1°: Ställ in parametrarna: För säkerhetskritiska system skulle det rekommenderas att minska granuleringen av partitionerna h i. Det bör dock stå klart att för liten granulering avsevärt ökar antalet testfall och den totala testansträngningen. Anmärkning 2. Systemet (3) kan styras eftersom kontrollmatrisens rang är lika med systemets storlek, dvs. rank[E EF]=2 (se t.ex. [20]........................................................................................................................... Detta innebär att det i allmänhet finns många olika kontroller som styr systemet från nolltillståndet till sluttillståndet w a vid tiden T>0. Till exempel är minimienergistyrning [20] förmodligen den enklaste beräkningsbara styrningen av systemet till önskat tillstånd under förutsättning att de begränsningar som systemet medför inte överträds. I detta avsnitt formuleras testvalsproblemet som ett optimeringsproblem. Representativa testfall konstrueras under optimeringsförfarandet med hjälp av modellen (1). Testurvalet kombineras med testutförandet och dessa två aktiviteter utförs samtidigt. Den största fördelen med detta tillvägagångssätt är att fokus ligger på bild. 3 För att utvärdera effektiviteten och användbarheten av de presenterade algoritmerna samt deras förmåga att hitta fel de tillämpades på det verkliga systemet. Felen i form av felaktiga parametrar hos PID-regulatorn har avsiktligt införts i systemets genomförande. För att bättre illustrera resultaten har parametrarna ändrats med 20 % från de rätta värdena. I praktiken kan dessa fel orsakas av användning av aritmetisk fast punkt; de kan också bero på fel i identifieringsförfarandet och kan vara en direkt följd av programmerarfel. Införandet av felaktiga parametrar i kontrollsystemet kan resultera i en annan tid för att nå ett stabilt tillstånd än förväntat, större överskridande i systemet och i värsta fall instabilitet i det slutna kretsloppet. God kontrollkvalitet beror starkt på de korrekta inställningarna vad som är särskilt viktigt vid optimala kontrollproblem [7] som exempelvis gäller för elmotorer [8] och förbränningsmotorer [26]. Betrakta modellen (1) av PID-regulatorn med följande parametrar Nästa, den funktionalitet som beskrivs av ekvationen (1) har implementerats i programvara, som körs i en mikroprocessor på den inbyggda maskinvaruplattformen, dock med felaktiga värden för parametrarna, det vill säga Hela systemet har testats med hjälp av algoritmen 1 som har implementerats och utförts för följande indataparametrar: h=[0.3,0.2] T, δ=0.7, T=20 [s],  skav 1 (t)≤1.5,  skav 2 (t) och≤1.0 (systemimplementationsbegränsningar).Testsviten som garanterar täckningsnivån högre än δ consits av 10 testfall. Elementen i de framtagna testfallen i form av (6) presenteras grafiskt i figurer. 4 och 5. Jämförelse av den faktiska banan som erhålls från SUT med den förväntade banan visas i bild. 6............................................................. Utgången från SUT för det första provningsfallet ligger inte inom toleransområdet ε=0.1 i förhållande till den förväntade uteffekten, därför är testfallet kvalificerat som fel. Detta bevisar förekomsten av fel i systemet. Betrakta följande uppsättning tillåtna felfunktioner:,, : som kan användas i optimeringsförfarandet (algoritm 2) för att hitta sådana testfall som maximerar skillnaden (17) mellan de utgångar som produceras av det testade systemet och dess modell inom tiden T. Implementeringen av algoritmen med Nender-Mead simplex (direkt metod) [23] leder till följande lokala optimal lösning: Element av de genererade testfallen i form av (5) presenteras grafiskt i bild. 7............................................................ I figuren ingår även för jämförelseändamål den faktiska bana som erhålls från det testade systemet. Den största fördelen med testmetoden baserad på algoritmen 2 är en betydande minskning av testfall, som sökningen görs med hjälp av optimeringsförfarandet. Algoritmen fokuserar på felbenägna situationer. Till följd av detta kan tiden och kostnaderna i samband med testningen av systemet minskas avsevärt. Eftersom den ansträngning som läggs ned på testning enligt uppskattningar [2], från 30 till 90 procent av den totala insatsen i projekten, kan fördelarna med även en mycket liten minskning av denna faktor vara mycket lönsamma. Det bör också noteras att algoritm 2 utför sökandet efter testfall med hjälp av det fysiska systemet och dess matematiska representation. För att starta testprocessen krävs alltså både modellen och det verkliga systemet. Dessutom tar den formulering som beskrivs i algoritm 2 formen av ett funktionellt optimeringsproblem, vilket kan verka svårt att lösa eftersom det kräver omvandling till ett värdeoptimeringsproblem. Papperet har presenterat två olika metoder för att testa inbyggda PID-styrenheter för att ge den kvalitet som krävs för systemet, säkerställa överensstämmelse med säkerhetsstandarder och eliminera fel i systemets utformning. Eliminering av fel i de tidiga stadierna av produktutveckling kan öka systemets tillförlitlighet och minska risken för fel under driftsfasen. Alla delar av testprocessen (dvs. testkoncept, notering av testfall, införande av testjämförelse, testtäckning, urval av testfall) har formulerats och beskrivits med hjälp av lämplig matematisk notation. Nyckelrollen i det framlagda tillvägagångssättet spelar den matematiska modell som representerar det planerade beteendet hos det utformade systemet. På så sätt kunde man utveckla metoder för testsystem där dynamiken spelar en viktig roll och där klassiska testmetoder inte kan tillämpas. Det framlagda tillvägagångssättet kan enkelt generaliseras till andra mikroprocessorbaserade styrsystem. Styrenheter med dynamisk kompensator [27], elektriska motorstyrenheter [7, 8], styrenheter för förbränningsmotorer, neurala nätverksstyrenheter [9] och luddiga logiska styrenheter [10] är exempel på system som kan verifieras med hjälp av de algoritmer som beskrivs i detta dokument.
Under denna fas måste man också ägna särskild uppmärksamhet åt genomförandeaspekterna, såsom beskrivs i Ref.
Mathematical methods for verification of microprocessor-based PID controllers for improving their reliability
{'venue': 'Eksploatacja i Niezawodnosc - Maintenance and Reliability', 'journal': 'Eksploatacja i Niezawodnosc - Maintenance and Reliability', 'mag_field_of_study': ['Computer Science']}