PID algoritma izmantošana automatizācijas sistēmās


Zemāk ir redzama PID algoritma realizācija, izmantojot mikrokontrolleri, kur sistēmai ir nepieciešams saglabāt temperatūru, kura ir mazāka vai vienāda ar 23,5 °C.

1.1.att. Temperatūras uzraudzības sistēmas blokshēma



delay_s(dt)                                                           
//Aizture sekundēs – aptuvenais iterācijas ilgums
//Nepieciešams noteikt laika izmaiņas

actual_value = ADC_read()/2.05                                        
//Tiek aprēķināta nolasītā temperatūra                                       
//Tiek saglabāta temperatūras vērtība

error = (desired_value - actual_value)                
//Tiek aprēķināta proporcionālā kļūda, zinot vēlamo un reālo vērtību

integral = integral + (error*dt)                            
//Tiek aprēķināta integrālās kļūdas daļa

derivative = (error - error_previous)/dt            
//Tiek aprēķināta diferenciālās kļūdas daļa

output = KP*error + KI*integral + KD*derivative
//Tiek aprēķināta nepieciešamo izmaiņu vērtība, kuru tālāk padod uz izeju, piemēram, lai mainītu fēna griešanās ātrumu

error_previous = error                                           
//Tiek saglabāta aprēķinātā kļūda, lai vēlāk aprēķinātu jauno kļūdas vērtību

duty = duty + output 
//Tiek veiktas izmaiņas sistēmā – impulsa platuma modulācijas izmaiņas

Šoreiz tiek aplūkots PID (P – proporcionālais, I – integrālais, D - diferenciālais) algoritms, ar kura palīdzību sistēma spēj izsekot līdzi dažādu fizikālo lielumu izmaiņām, piemēram, temperatūras vai apgaismojuma, lai saglabātu nepieciešamo sistēmas stāvokli. Piemēram, ja nepieciešams, lai telpas apgaismojuma intensitāte palielinātos, kad ārā satumst, ja nepieciešams, lai telpā gaisa temperatūra nepārsniegtu noteiktu robežu,  ja nepieciešams, lai kvadrkopteris saglabātu konstantu pozīciju.

PID algoritma ieejā tiek padota vēlamā vērtība (stāvoklis), bet tālāk tiek aprēķināta kļūda, izmantojot atgriezenisko saiti (sensors), ar kuras palīdzību tiek atgriezta reālā sistēmas stāvokļa vērtība. Zinot reālo un vēlamo vērtību, tālāk tiek aprēķināta kļūda, kuru tālāk izmanto, lai aprēķinātu visas PID algoritma komponentes (output = KP*error + KI*integral + KD*derivative), kuras tālāk summē, lai vēlāk padotu uz izeju atbilstošu signālu, veiktu izmaiņas sistēmā. Izmaiņas tiek veiktas tik ilgi, kamēr kļūda nav vienāda ar nulli.

PID algoritma galvenais uzdevums ir nodrošināt, ka sistēma spēj ātri reaģēt un nodrošināt vēlamo stāvokli.

Svarīgi ir zināt, ka, lai aprēķinātu KP, KI un KD koeficientu vērtības, ir nepieciešams veikt sistēmas mērījumus. Parasti, veicot sistēmas testa mērījumus, KI un KD koeficientu vērtības ir vienādas ar 0, bet KP ir vienāda ar 1, ar kuru palīdzību tiek noteikts sistēmas aiztures laiks (T2), vienas svārstības ilgums (T1), kamēr sistēma sasniedz vēlamo stāvokli, un svārstību amplitūda. Tālāk šī informācija tiek izmantota, lai izveidotu sistēmu aprakstošu pārvades funkciju, kuru tālāk var izmantot, lai aprēķinātu PID algoritma koeficientus (KP, KI un KD).

Matlab (Simulink rīks) ir programma, ar kuras palīdzību ir iespējams veikt sistēmas modeļa simulēšanu, zinot pārvades funkciju, izmantojot veiktos testa mērījumus, lai tālāk noteiktu PID koeficientu vērtības.

Praksē biežāk, lai noteiktu PID koeficientu vērtības, tiek izmantotas tādas metodes kā Ziegler–Nichols 1. metode (sistēmas soļa reakcijas metode) un 2. metode (sistēmas pašsvārstību metode), taču eksistē arī citas metodes. Ja salīdzina abas metodes, tad 1. metode ir precīzāka, jo otrā metode ir vairāk eksperimentāla, kur, veicot sistēmas testa mērījumus, tālāk tiek aprēķinātas koeficientu vērtības (skatīt zemāk), bet pirmā ir balstīta uz sistēmas pārvades funkcijas izmantošanu, lai daudz precīzāk varētu noteikt koeficientu vērtības, taču problēmas rodas, ja laiku vērtības tiek noteiktas aptuveni, ja mainās sistēma, piemēram, kad mainās sensori, jo tad izmainās sistēmas pārvades funkcija.

Ziegler–Nichols 2. metode:

KP = 0,60*Kkritiskā (koeficients, pie kura novērojamas svārstības ar nemainīgu amplitūdu)
TI = 0,50*svārstību periods, kur KI = KP/TI
TD = 0,125*svārstību periods, kur K= KP*TD

Ziegler–Nichols 1. metode:

KP = 1,20*T/L
TI = 2,00*L, kur K= KP/TI
TD = 0,50*L, kur K= KP*TD
1.2.att. Sistēmas reakcija uz soļa funkciju


UZ SĀKUMU