Proceedings of the Automation & IT Seminar


ISSN 2594-5335

21º Seminário de Automação e TI vol. 21, num.21 (2017)


Title

SINTONIA ÓTIMA PID COM ALGORITMO GENÉTICO PARA MINIMIZAR VARIAÇÕES DA AÇÃO DE CONTROLE

OPTIMUM PID TUNING WITH GENETIC ALGORITHM TO MINIMIZE CONTROL ACTION VARIATIONS

DOI

10.5151/2237-0234-30525

Downloads

519 Downloads

Abstract

É comum encontrar sintonia de controladores PID que não levam em consideração o sinal de controle aplicado a variável manipulada. Portanto, variações rápidas e amplitudes elevadas podem ser geradas, que, na prática, pode ser inviáveis, devido à limitação física de atuadores e equipamentos industriais. Nesse artigo é desenvolvido um método de sintonia em que os parâmetros do PID são calculados por meio do Algoritmo Genético. A função de custo proposta penaliza tanto a amplitude do erro de controle quanto à variação da variável manipulada. A estabilidade é garantida com as restrições de robustez sobre o pico das funções sensibilidades. Exemplos simulados demonstram as vantagens da sintonia proposta.

 

It is common to find PID controllers tuning that do not consider the control signal applied to the manipulated variable. Therefore, rapid variations and high amplitudes can be generated, which, in practice, may be unfeasible due to physical limitation of the actuators and industrial equipment. In this article it is developed a tuning method which the PID parameters are calculated by means the Genetic Algorithm. The proposed cost function penalizes both the control error amplitude and the manipulated variable variation. The stability is guaranteed with robustness constraints over the peak sensitivities functions. Simulated examples demonstrate the advantages of the proposed tuning.

Keywords

Controle de Processos, Algoritmo Genético, Otimização, PID.

Process Control, Genetic Algorithm, Optimization, PID

How to refer

Torga, Diego Santana; Euzébio, Thiago Antonio Melo; Guimarães, Frederico Gadelha; Silva, Cristiano Lopes da. SINTONIA ÓTIMA PID COM ALGORITMO GENÉTICO PARA MINIMIZAR VARIAÇÕES DA AÇÃO DE CONTROLE , p. 132-142. In: 21º Seminário de Automação e TI, São Paulo, 2017.
ISSN: 2594-5335 , DOI 10.5151/2237-0234-30525

Whoops, looks like something went wrong.

(1/1) ErrorException

fwrite(): write of 1826 bytes failed with errno=28 No space left on device

in StreamHandler.php line 131
at HandleExceptions->handleError(8, 'fwrite(): write of 1826 bytes failed with errno=28 No space left on device', '/var/www/webroot/ROOT/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php', 131, array('stream' => resource, 'record' => array('message' => 'file_put_contents(): write of 346 bytes failed with errno=28 No space left on device', 'context' => array('exception' => object(ErrorException)), 'level' => 400, 'level_name' => 'ERROR', 'channel' => 'production', 'datetime' => object(DateTime), 'extra' => array(), 'formatted' => '[2025-05-31 22:04:06] production.ERROR: file_put_contents(): write of 346 bytes failed with errno=28 No space left on device {"exception":"[object] (ErrorException(code: 0): file_put_contents(): write of 346 bytes failed with errno=28 No space left on device at /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122)[stacktrace]#0 [internal function]: Illuminate\\\\Foundation\\\\Bootstrap\\\\HandleExceptions->handleError(8, \'file_put_conten...\', \'/var/www/webroo...\', 122, Array)#1 /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(122): file_put_contents(\'/var/www/webroo...\', \'a:5:{s:6:\\"_toke...\', 2)#2 /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Session/FileSessionHandler.php(83): Illuminate\\\\Filesystem\\\\Filesystem->put(\'/var/www/webroo...\', \'a:5:{s:6:\\"_toke...\', true)#3 /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Session/Store.php(128): Illuminate\\\\Session\\\\FileSessionHandler->write(\'b8iP2tTpq1tSMqk...\', \'a:5:{s:6:\\"_toke...\')#4 /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(87): Illuminate\\\\Session\\\\Store->save()#5 /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(218): Illuminate\\\\Session\\\\Middleware\\\\StartSession->terminate(Object(Illuminate\\\\Http\\\\Request), Object(Illuminate\\\\Http\\\\Response))#6 /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(189): Illuminate\\\\Foundation\\\\Http\\\\Kernel->terminateMiddleware(Object(Illuminate\\\\Http\\\\Request), Object(Illuminate\\\\Http\\\\Response))#7 /var/www/webroot/ROOT/public/index.php(59): Illuminate\\\\Foundation\\\\Http\\\\Kernel->terminate(Object(Illuminate\\\\Http\\\\Request), Object(Illuminate\\\\Http\\\\Response))#8 {main}"} ')))
at fwrite(resource, '[2025-05-31 22:04:06] production.ERROR: file_put_contents(): write of 346 bytes failed with errno=28 No space left on device {"exception":"[object] (ErrorException(code: 0): file_put_contents(): write of 346 bytes failed with errno=28 No space left on device at /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122)[stacktrace]#0 [internal function]: Illuminate\\\\Foundation\\\\Bootstrap\\\\HandleExceptions->handleError(8, \'file_put_conten...\', \'/var/www/webroo...\', 122, Array)#1 /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(122): file_put_contents(\'/var/www/webroo...\', \'a:5:{s:6:\\"_toke...\', 2)#2 /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Session/FileSessionHandler.php(83): Illuminate\\\\Filesystem\\\\Filesystem->put(\'/var/www/webroo...\', \'a:5:{s:6:\\"_toke...\', true)#3 /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Session/Store.php(128): Illuminate\\\\Session\\\\FileSessionHandler->write(\'b8iP2tTpq1tSMqk...\', \'a:5:{s:6:\\"_toke...\')#4 /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(87): Illuminate\\\\Session\\\\Store->save()#5 /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(218): Illuminate\\\\Session\\\\Middleware\\\\StartSession->terminate(Object(Illuminate\\\\Http\\\\Request), Object(Illuminate\\\\Http\\\\Response))#6 /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(189): Illuminate\\\\Foundation\\\\Http\\\\Kernel->terminateMiddleware(Object(Illuminate\\\\Http\\\\Request), Object(Illuminate\\\\Http\\\\Response))#7 /var/www/webroot/ROOT/public/index.php(59): Illuminate\\\\Foundation\\\\Http\\\\Kernel->terminate(Object(Illuminate\\\\Http\\\\Request), Object(Illuminate\\\\Http\\\\Response))#8 {main}"} ')in StreamHandler.php line 131
at StreamHandler->streamWrite(resource, array('message' => 'file_put_contents(): write of 346 bytes failed with errno=28 No space left on device', 'context' => array('exception' => object(ErrorException)), 'level' => 400, 'level_name' => 'ERROR', 'channel' => 'production', 'datetime' => object(DateTime), 'extra' => array(), 'formatted' => '[2025-05-31 22:04:06] production.ERROR: file_put_contents(): write of 346 bytes failed with errno=28 No space left on device {"exception":"[object] (ErrorException(code: 0): file_put_contents(): write of 346 bytes failed with errno=28 No space left on device at /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122)[stacktrace]#0 [internal function]: Illuminate\\\\Foundation\\\\Bootstrap\\\\HandleExceptions->handleError(8, \'file_put_conten...\', \'/var/www/webroo...\', 122, Array)#1 /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(122): file_put_contents(\'/var/www/webroo...\', \'a:5:{s:6:\\"_toke...\', 2)#2 /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Session/FileSessionHandler.php(83): Illuminate\\\\Filesystem\\\\Filesystem->put(\'/var/www/webroo...\', \'a:5:{s:6:\\"_toke...\', true)#3 /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Session/Store.php(128): Illuminate\\\\Session\\\\FileSessionHandler->write(\'b8iP2tTpq1tSMqk...\', \'a:5:{s:6:\\"_toke...\')#4 /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(87): Illuminate\\\\Session\\\\Store->save()#5 /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(218): Illuminate\\\\Session\\\\Middleware\\\\StartSession->terminate(Object(Illuminate\\\\Http\\\\Request), Object(Illuminate\\\\Http\\\\Response))#6 /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(189): Illuminate\\\\Foundation\\\\Http\\\\Kernel->terminateMiddleware(Object(Illuminate\\\\Http\\\\Request), Object(Illuminate\\\\Http\\\\Response))#7 /var/www/webroot/ROOT/public/index.php(59): Illuminate\\\\Foundation\\\\Http\\\\Kernel->terminate(Object(Illuminate\\\\Http\\\\Request), Object(Illuminate\\\\Http\\\\Response))#8 {main}"} '))in StreamHandler.php line 117
at StreamHandler->write(array('message' => 'file_put_contents(): write of 346 bytes failed with errno=28 No space left on device', 'context' => array('exception' => object(ErrorException)), 'level' => 400, 'level_name' => 'ERROR', 'channel' => 'production', 'datetime' => object(DateTime), 'extra' => array(), 'formatted' => '[2025-05-31 22:04:06] production.ERROR: file_put_contents(): write of 346 bytes failed with errno=28 No space left on device {"exception":"[object] (ErrorException(code: 0): file_put_contents(): write of 346 bytes failed with errno=28 No space left on device at /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122)[stacktrace]#0 [internal function]: Illuminate\\\\Foundation\\\\Bootstrap\\\\HandleExceptions->handleError(8, \'file_put_conten...\', \'/var/www/webroo...\', 122, Array)#1 /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(122): file_put_contents(\'/var/www/webroo...\', \'a:5:{s:6:\\"_toke...\', 2)#2 /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Session/FileSessionHandler.php(83): Illuminate\\\\Filesystem\\\\Filesystem->put(\'/var/www/webroo...\', \'a:5:{s:6:\\"_toke...\', true)#3 /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Session/Store.php(128): Illuminate\\\\Session\\\\FileSessionHandler->write(\'b8iP2tTpq1tSMqk...\', \'a:5:{s:6:\\"_toke...\')#4 /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(87): Illuminate\\\\Session\\\\Store->save()#5 /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(218): Illuminate\\\\Session\\\\Middleware\\\\StartSession->terminate(Object(Illuminate\\\\Http\\\\Request), Object(Illuminate\\\\Http\\\\Response))#6 /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(189): Illuminate\\\\Foundation\\\\Http\\\\Kernel->terminateMiddleware(Object(Illuminate\\\\Http\\\\Request), Object(Illuminate\\\\Http\\\\Response))#7 /var/www/webroot/ROOT/public/index.php(59): Illuminate\\\\Foundation\\\\Http\\\\Kernel->terminate(Object(Illuminate\\\\Http\\\\Request), Object(Illuminate\\\\Http\\\\Response))#8 {main}"} '))in AbstractProcessingHandler.php line 39
at AbstractProcessingHandler->handle(array('message' => 'file_put_contents(): write of 346 bytes failed with errno=28 No space left on device', 'context' => array('exception' => object(ErrorException)), 'level' => 400, 'level_name' => 'ERROR', 'channel' => 'production', 'datetime' => object(DateTime), 'extra' => array(), 'formatted' => '[2025-05-31 22:04:06] production.ERROR: file_put_contents(): write of 346 bytes failed with errno=28 No space left on device {"exception":"[object] (ErrorException(code: 0): file_put_contents(): write of 346 bytes failed with errno=28 No space left on device at /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122)[stacktrace]#0 [internal function]: Illuminate\\\\Foundation\\\\Bootstrap\\\\HandleExceptions->handleError(8, \'file_put_conten...\', \'/var/www/webroo...\', 122, Array)#1 /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(122): file_put_contents(\'/var/www/webroo...\', \'a:5:{s:6:\\"_toke...\', 2)#2 /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Session/FileSessionHandler.php(83): Illuminate\\\\Filesystem\\\\Filesystem->put(\'/var/www/webroo...\', \'a:5:{s:6:\\"_toke...\', true)#3 /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Session/Store.php(128): Illuminate\\\\Session\\\\FileSessionHandler->write(\'b8iP2tTpq1tSMqk...\', \'a:5:{s:6:\\"_toke...\')#4 /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(87): Illuminate\\\\Session\\\\Store->save()#5 /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(218): Illuminate\\\\Session\\\\Middleware\\\\StartSession->terminate(Object(Illuminate\\\\Http\\\\Request), Object(Illuminate\\\\Http\\\\Response))#6 /var/www/webroot/ROOT/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(189): Illuminate\\\\Foundation\\\\Http\\\\Kernel->terminateMiddleware(Object(Illuminate\\\\Http\\\\Request), Object(Illuminate\\\\Http\\\\Response))#7 /var/www/webroot/ROOT/public/index.php(59): Illuminate\\\\Foundation\\\\Http\\\\Kernel->terminate(Object(Illuminate\\\\Http\\\\Request), Object(Illuminate\\\\Http\\\\Response))#8 {main}"} '))in Logger.php line 344
at Logger->addRecord(400, 'file_put_contents(): write of 346 bytes failed with errno=28 No space left on device', array('exception' => object(ErrorException)))in Logger.php line 707
at Logger->error('file_put_contents(): write of 346 bytes failed with errno=28 No space left on device', array('exception' => object(ErrorException)))in Writer.php line 203
at Writer->writeLog('error', 'file_put_contents(): write of 346 bytes failed with errno=28 No space left on device', array('exception' => object(ErrorException)))in Writer.php line 114
at Writer->error('file_put_contents(): write of 346 bytes failed with errno=28 No space left on device', array('exception' => object(ErrorException)))in Handler.php line 113
at Handler->report(object(ErrorException))in Handler.php line 100
at Handler->report(object(ErrorException))in HandleExceptions.php line 81
at HandleExceptions->handleException(object(ErrorException))