Sistemas de tempo real (resumos)
3 Sistemas de controlo de tempo real
3.1 Introdução
Uma das áreas onde sistemas de tempo real são mais utilizados é a área de sistemas de
controlo. Assim, neste capítulo:
-
introduzir-se-ão conceitos gerais sobre sistemas de controlo de tempo real
-
dár-se-á ênfase à implementação do controlador mais usado na indústria, o
controlador PID.
3.2 Conceitos de controlo de tempo real
Os sistemas de controlo industriais ou laboratoriais que utilizam computador(es) podem
genericamente ser classificados, de acordo com a sua operação, em:
processamento por lotes (batch = fornada)
O termo 'batch' é usado para descrever processos de produção nos quais uma
sequência de operações é usada para produzir uma 'fornada' (batch) ou lote dum
determinado produto, sendo a mesma sequência repetida para produzir novas
fornadas. Eventualmente, a especificação do produto ou a sua exacta composição
pode variar de lote para lote.
Ex: Processo de laminagem de folhas de aço. Um lingote de aço fundido é passado
através de um laminador para produzir uma folha de aço de uma determinada
espessura. O lingote seguinte pode ser de outra composição ou pode ser requerida
uma outra espessura, sendo portanto necessários ajustes no laminador.
Uma das características do processamento batch é o tempo de preparação (setup time)
necessário para preparar o equipamento para o próximo lote de produção. Este é um
tempo morto; a razão entre o tempo de preparação e o tempo de produção é um
parâmetro importante para a determinação dum correcto tamanho de lote.
Nota: A introdução de máquinas de controlo numérico conduziu a que se tornasse
económico produzir lotes pequenos. (pois reduz o setup time)
3-1
Sistemas de tempo real (resumos)
contínuos
Sistemas contínuos são aqueles nos quais a produção é mantida por um longo período
de tempo, tipicamente meses ou mesmos anos. A composição dos produtos pode
mudar de tempos a tempos, mas o sistema continua sempre a funcionar.
Um problema característico destes sistemas é que, na altura da mudança de
especificações, o produto final não se encontra dentro das margens de tolerância e é
portanto rejeitado.
Nota: É pois economicamente importante que essa transição seja realizada o mais
rápida e suavemente possível.
laboratoriais
Sistemas laboratoriais são aqueles em que o computador é usado para realizar testes
(ensaios) complexos ou para controlar equipamento complexo utilizado em controlo
de qualidade.
Estas categorias não são mutuamente exclusivas, i.e., um sistema em particular pode
envolver actividades enquadradas em mais do que uma categoria.
Assim, os objectivos globais do controlo destes processos podem ser sumariados como:
-
segurança
-
melhores especificações (do produto)
-
facilidade de operação
-
economia de produção.
Em todos os sistemas acima descritos podem existir diferentes actividades executadas pelo
computador:
controlo de sequência
controlo digital directo (Direct Digital Control - DDC)
controlo de supervisão
interface com o utilizador.
aquisição de dados
análise de dados
3-2
Sistemas de tempo real (resumos)
3.2.1 Controlo de sequência
Controlo de sequência aparece na maior parte dos sistemas, mas predomina em sistemas de
processamento por lotes.
Exemplos deste tipo de controlo aparecem frequentemente em indústrias químicas. Na
figura seguinte representa-se um reactor químico. Um composto é produzido por uma
reacção de dois materiais químicos a uma dada temperatura. Estes são misturados no reactor
e a temperatura da reacção é controlada deixando entrar água quente ou fria no reservatório
de água que envolve o reactor. O fluxo de água é controlado pelas válvulas C e D. O fluxo de
material para o interior e o exterior do reactor é controlado pelas válvulas A, B e E. A
temperatura do conteúdo e a pressão no reactor são monitoradas
Fig. 3-1: Reactor químico
A sequência de operação do sistema (algoritmo) pode ser apresentada da seguinte maneira:
#1
Abrir válvula A para introduzir o químico 1
#2
Medir nível do químico (recorrendo à pressão no reactor - inferência) quando
o nível pretendido tiver sido conseguido, fechar válvula A
3-3
Sistemas de tempo real (resumos)
#3
Ligar misturador
#4
Repetir os passos #1 e #2 com o segundo químico
#5
Ligar e fornecer uma referência de temperatura ao controlador TC. (a
temperatura no reactor é controlada actuando nas válvulas C e D)
#6
Medir temperatura com TT. Quando chegar à temperatura desejada, ligar um
relógio para medir o tempo
#7
Após o tempo necessário para completar a reacção, desligar o controlador e
abrir a válvula D para arrefecer o composto. Desligar misturador.
#8
Medir a temperatura com TT. Quando o conteúdo tiver arrefecido, abrir a
válvula E para retirar o composto do reactor.
Algoritmo 3-1: Reacção química comum
(Quando este sistema é controlado por um computador, todas as acções e os atrasos são
implementados em software)
Numa indústria química normal, para que o sistema se torne eficiente, várias sequências
devem ser realizadas em paralelo. Por exemplo 2 reactores podem ser usados
alternativamente, de modo que, enquanto 1 está a processar uma reacção química, o outro
está a ser limpo, e vice-versa.
Quando o sistema vai aumentando de complexidade, a sequência de acções torna-se mais
complicada. Poderá também haver decisões complicadas sobre quando começar uma sequência. Esta decisão poderá ser tomada por uma pessoa, ou por um computador (controlo de
supervisão).
Nota: A decisão de entregar o controlo de supervisão a um homem ou um computador não é
uma decisão fácil. Muitas vezes, adopta-se uma solução mista, onde o computador executa
os cálculos necessários à supervisão e apresenta as suas decisões, para confirmação ou
rejeição do operador.
Em muitos sistemas batch, ou mesmo contínuos, além de controlo de sequência, existe
também controlo de supervisão e controlo DDC de temperatura, pressão ou fluxo, como
no exemplo acima.
3-4
Sistemas de tempo real (resumos)
3.2.2 Controlo DDC
No caso de controlo DDC, o computador está dentro da malha de realimentação conforme se
ilustra na figura.
Controlo de supervisão
DDC
Fig. 3-2: Controlo DDC
Deste modo o computador torna-se um elemento crítico e deve ser assegurado que, caso o
computador falhe, o processo se mantenha em segurança.
Nota: O modo usual de assegurar um funcionamento seguro é permitir apenas mudanças
incrementais nos actuadores e colocar um limite máximo na derivada das mudanças.
As vantagens de DDC sobre controlo analógico são essencialmente as seguintes:
Custo Antigamente o ponto de viragem entre o uso de controlo analógico sobre o
digital situava-se entre 50 e 100 malhas de controlo. Com os microprocessadores,
uma única malha DDC é mais barata que a correspondente analógica.
Desempenho O controlo digital torna possível utilizar algoritmos de controlo mais
sofisticados, e melhora o desempenho do sistema.
3-5
Sistemas de tempo real (resumos)
Nota: No entanto a maior parte dos controladores digitais são versões digitais, com
mais ou menos sofisticação do controlador PID, pois existem métodos eficazes de
sintonização de PIDs, e estes controladores são eficazes na maior parte dos casos.
Outras técnicas de controlo, que não o simples controlo realimentado, são:
-
controlo inferêncial
-
controlo feedforward
-
controlo adaptativo.
3.2.2.1 Controlo inferêncial
É o termo aplicado ao controlo em que as variáveis nas quais se baseia o controlo
realimentado não podem ser medidas directamente, mas tem de ser inferidas através de
outras variáveis.
Por exemplo o controlo do nível do reactor químico (passo #2 do Algoritmo 3-1) é efectuado
medindo a pressão no reactor e inferindo o nível a partir desta.
Na figura seguinte é utilizado um estimador para inferir as variáveis a controlar.
Reactor
químico
Valvulas A e B
PT
(injecção dos
químicos)
Estimação do nível a partir da pressão
Fig. 3-3: Estrutura de uma configuração inferêncial
3-6
Sistemas de tempo real (resumos)
3.2.2.2 Controlo feedforward
É frequentemente utilizado na indústria. Neste caso o que é medido são as perturbações e não
as saídas. O efeito deste tipo de controlo é acelerar a resposta do sistema a perturbações. Só
pode, contudo, ser usado se as perturbações puderem ser medidas.
Fig. 3-4: Estrutura de uma configuração de controlo feedforward
3.2.2.3 Controlo adaptativo
É usado quando não se conhece a função de transferência do processo, ou ainda quando o
processo varia no tempo. Pode ter várias formas, das quais as 3 mais comuns são:
-
controlo adaptativo programado
(gain scheduling)
-
controlo auto-sintonizado
(self-tuning control)
-
controlo adaptativo com modelo de referência (model reference adaptive control)
Em controlo adaptativo programado o mecanismo de adaptação introduz mudanças nos
parâmetros do controlador, com base em mudanças em medições de variáveis adicionais ou
do próprio ambiente.
3-7
Sistemas de tempo real (resumos)
Fig. 3-5: Estrutura de uma configuração de controlo adaptativo programado
Controlo auto-sintonizado utiliza técnicas de identificação para determinar a função de
transferência de um modo contínuo. Variações nos parâmetros do processo são usadas para
determinar novos parâmetros do controlador.
Controlo adaptativo com modelo de referência utiliza um modelo de referência para o
sistema realimentado, ajustando os parâmetros do controlador de modo a que o sistema
realimentado siga o sistema de referência.
3-8
Sistemas de tempo real (resumos)
Fig. 3-6: Controlo adaptativo auto-sintonizado
Fig. 3-7: Controlo adaptativo com modelo de referência
3-9
Sistemas de tempo real (resumos)
3.2.3 Controlo de supervisão
No ponto 3.2.1 foi visto um exemplo simples de controlo de supervisão para garantir, com
dois reactores químicos idênticos a produção continua, visto que um reactor se encontra em
manutenção enquanto o outro em produção.
Fig. 3-8: Processo químico de batch típico
3-10
Sistemas de tempo real (resumos)
No entanto, mesmo num sistema de processamento por lotes, à medida que a complexidade
do sistema aumenta, as decisões para iniciar determinadas sequências de produção podem
não ser tão simples.
A utilização de computadores em controlo de processos aumentou a gama de actividades que
podem ser executadas, dado que os computadores além de serem usados em controlo DDC,
podem ser utilizados para fornecerem aos engenheiros e directores um quadro completo do
estado do sistema. É neste papel de supervisão e apresentação de informação que as maiores
mudanças aconteceram, pois o controlo realimentado básico pouco mudou dos dias dos
controladores analógicos até aos tempos actuais.
Muitos dos esquemas computacionais antigos usavam o computador no papel de supervisão
e não para DDC. As razões para isso eram a falta de fiabilidade e o alto preço das máquinas.
Por vezes era economicamente justificável o uso de computadores para cálculo dos valores
de referência que minimizassem energia ou maximizassem a produção.
A maior parte das aplicações de controlo de supervisão são muito simples e só necessitam
das características de regime estacionário do processo. Nalguns sistemas, algoritmos de
controlo complexos foram usados com sucesso. Técnicas de optimização baseadas em
métodos de gradiente, simulações complexas de sistemas não lineares, etc., são calculadas
em tempo real em paralelo com a operação do processo.
3.2.4 A interface homem-máquina
A chave para uma fácil adopção de um sistema de controlo digital frequentemente reside no
seu emprego como apresentador de informação. É fundamental que o operador do processo
tenha um quadro claro do estado do processo, e que seja fácil a sua interacção com o
processo.
Existem packages standard de software que fornecem uma gama de tipos de displays:
-
uma área relacionada com alarmes
-
algumas áreas de display que apresentam informação dos sistemas de controlo
associados com cada área (ou com cada unidade de produção)
-
displays das diferentes malhas de controlo fornecendo informação extensa sobre
o funcionamento de cada malha.
Outras informações estão normalmente acessíveis como relatórios impressos. Estes dados
são apresentados de uma forma concisa, utilizando gráficos e prévio tratamento estatístico:
3-11
Sistemas de tempo real (resumos)
-
tendências
-
resumos históricos do funcionamento
(o responsável da manutenção necessita de saber)
-
O planeamento das manutenções
-
listas de substituições de material
(o director necessita ainda de outro tipo de informação)
-
sumários do funcionamento diário do processo
-
assim como dados históricos
3.2.5 Sistemas uni ou multi-computador
3.2.5.1 Controlo computorizado centralizado
Durante os anos 60, controlo computorizado implicava a utilização de um único
computador central, por razões económicas.
Como consequência do uso do controlo centralizado foi uma considerável resistência ao uso
de esquemas DDC. Com um computador central gerindo as malhas de controlo, a falha do
computador implicava a paragem de todo o sistema. Como nesta decada os computadores
não eram muitos fiáveis foram só usados para controlo de supervisão.
Nos finais dos anos 60, os fabricantes de instrumentação industrial começaram a produzir
controladores digitais com backup analógico. (controladores analógicos, que aceitavam
entrada de controlo digital). Se essa entrada não fosse actualizada periodicamente (sinal de
avaria do computador) o controlador passava para modo analógico. Este esquema permitia o
uso de DDC mesmo se o computador falhasse, mas a um maior custo.
Em 1970, o custo de hardware tinha baixado o suficiente para permitir o uso de 2
computadores. No caso de falha de um, o outro entraria em funcionamento. Esta mudança
podia ser feita manualmente, ou automaticamente.
Estes sistemas têm algumas fraquezas, no entanto muitos ainda se encontram em uso:
-
cablagem e equipamento de interface não é normalmente duplicado
3-12
Sistemas de tempo real (resumos)
-
o software não é criado de forma independente
-
O sistema automático de detecção de avarias e mudança de computador torna-se
ele próprio um elemento crítico.
Posteriormente com o advento dos microprocessadores e a contínua diminuição do seu preço
torna-se o uso de esquemas de multicomputadores viável. Existem basicamente 2 tipos de
multi computadores:
-
Hierárquicos
-
Distribuídos
3.2.5.2 Sistemas hierárquicos
Este é o desenvolvimento mais natural, no sentido em que segue o a estrutura típica de
tomada de decisões numa companhia. Do mesmo modo segue a divisão natural do processo
de produção em termos dos requisitos de tempos de resposta nos diversos níveis:
-
No fim da pirâmide, exige-se resposta rápida (ao nível de milisegundos ou
segundos) a problemas simples (na unidade de produção)
-
à medida que se sobe na hierarquia, os problemas tornam-se mais complexos e o
tempo de resposta aumenta.
Um típico exemplo dum sistema hierárquico é o sistema batch representado na figura
seguinte. O sistema tem 3 níveis (direcção, supervisão e unidade de controlo). Assume-se
que para os dois primeiros níveis, um único computador seja utilizado. Para cada uma das
unidades de produção, um computador é utilizado.
No nível de direcção, são executadas funções como:
-
alocação de recursos
-
calendarização de produtos
-
contabilidade de produção são executadas.
3-13
Sistemas de tempo real (resumos)
Controlo DDC
Controlo DDC
ou de Sequência
ou de sequência
Fig. 3-9: Controlo batch usando um sistema hierárquico
3-14
Sistemas de tempo real (resumos)
A informação de entrada do nível de direcção pode consistir de:
-
ordens de vendas (reais e predições)
-
níveis de stock
-
custo de venda e produção
-
custos de operação para cada unidade de produção
-
planos de manutenção
-
o estado corrente de cada unidade de produção
Com base nestes dados, a lista de produtos a serem produzidos, as suas quantidades, e as
unidades de produção a serem utilizadas, serão calculadas e transmitidas ao:
supervisor. Assume-se que este sistema tem armazenadas as 'receitas' de produção de cada
produto bem como as a sequência de operações necessárias. Quando a unidade de produção
escolhida pela direcção se encontrar livre, a informação sobre o produto (set-points,
condições de alarme, tolerâncias, etc.) são despejadas para a unidade de produção (pelo
supervisor), bem como as sequências de operações necessárias a cada fase de produção (a
'receita').
O supervisor delvolverá relatórios periódicos sobre cada unidade de produção à direcção e
arbitrará sobre o uso de recursos partilhados.
No nível mais baixo, unidade de controlo, os controladores de cada unidade são
responsáveis pelo controlo do processo (controlo DDC e de sequência) bem como enviar
relatórios ao supervisor.
3.2.5.3 Sistemas distribuídos
Num sistema distribuído assume-se que:
a) cada unidade executa tarefas similares
b) no caso de falha de algumas unidades, o sistema pode ser reconfigurado de modo a
que o sistema total continue a trabalhar.
3-15
Sistemas de tempo real (resumos)
Fig. 3-10: Sistema distribuído e hierárquico
O trabalho não é dividido por funções, mas todo o trabalho é dividido de modo a que a carga
dos vários computadores seja similar. Esta ideia é atractiva, mas existem problemas difíceis
de hardware e software a serem resolvidos. Para que o conceito seja completamente
implementado, a alocação das várias tarefas pelos diferentes computadores deve ser
dinâmica. Dado que cada computador necessita de aceder a toda a informação do sistema,
isto implica uma enorme comunicação entre os vários computadores.
3-16
Sistemas de tempo real (resumos)
Existe uma maneira mais prática de distribuir a carga de computação que é uma alocação
estática. Neste caso, um computador pode ficar responsável pela aquisição de dados, outro
pelos cálculos DDC, outro pela controlo de sequência, outro pela supervisão, como mostra a
figura acima. Assim na maior parte dos sistemas existe uma mistura de sistema distribuído e
hierárquico.
Nessa figura os computadores estão ligados em série, numa estrutura hierárquica:
Nível 1 - Responsável por todos os cálculos e interface com medida e actuação.
Nível 2 - Controlo DDC
Nível 3 - Controlo de sequência
Nível 4 - Comunicações com o operador
Nível 5 - Controlo de supervisão
Nível 6 - Comunicação com outros sistemas.
As vantagens desta solução são:
1. As capacidades do sistema são largamente aumentadas pela partilha de
tarefas entre os vários computadores. Um dos principais aspectos
computacionais envolve monitorização, filtragem e mudanças de escala dos
vários sensores. Existe aqui uma sobrecarga computacional porque normalmente
existe muitos sensores, e a frequência com que são lidos os dados é normalmente
alta.
2. O sistema é mais flexível do que usando só um computador, no sentido em que
pode ser aumentado.
3. Falha de uma unidade causa menos problema (em princípio pois o esforço pode
ser redistribuído pelas restantes)
4. Mudanças no hardware e software tornam-se mais fáceis visto o sistema estar
dividido em módulos.
5. Utilizando ligação série possibilita a dispersão do sistema.
3-17
Sistemas de tempo real (resumos)
3.3 Algoritmos de controlo DDC e a sua implementação
3.3.1 Introdução
Esta secção aborda essencialmente controladores PID (Proporcionais, Integrais e
Derivativos), visto serem os mais usados em aplicações industriais. Como já foi indicado isto
deve-se ao facto de existirem métodos efectivos de sintonização deste tipo de controladores,
e também porque funcionam satisfatoriamente na maior parte dos casos.
Serão discutidos vários métodos usados para a sua implementação, alguns problemas que
ocorrem em implementações digitais e será também brevemente revista a sua sintonização.
3.3.2 Temporização (sincronização da tarefa de controlo com o ADC)
Um sistema de controlo típico, na sua forma contínua e discreta, está representado na figura
seguinte:
E(z)
M(s)
DAC
ADC
Fig. 3-11: Forma geral de um sistema de controlo a) contínuo e b) discreto
Onde no sistema discreto, Ts, representa o período de amostragem. Neste espaço de tempo o
algoritmo do controlador tem de produzir o sinal de controlo.
Assim, uma característica essencial das aplicações de tempo real é que se executam
continuamente. Desta forma o algoritmo encontra-se dentro de um ciclo infinito:
3-18
Sistemas de tempo real (resumos)
PROGRAM RealTimeControl;
(* declarações *)
BEGIN
LOOP
TarefadeControlo;
END;
END RealTimeControl.
Algoritmo 3-2: Algoritmo de tempo real típico
A tarefa de controlo terá de ser sincronizada com os requisitos do processo a ser controlado
(muitas vezes depende apenas do período de amostragem).
Os métodos disponíveis para assegurar esse funcionamento são:
•
polling
Como já foi visto neste caso, a acção de controlo é desencadeada periodicamente:
PROCEDURE TarefadeControlo;
BEGIN
WHILE NOT (Digin (Sample)) DO
END;
(* Acção de controlo *)
END TarefadeControlo;
Algoritmo 3-3: Tarefa de controlo típica usando polling
3-19
Sistemas de tempo real (resumos)
Neste algoritmo assume-se que a função booleana Digin lê o sinal Sample,
disponível na interface com o periférico, ou Plant, o qual será activado assim que
estiver disponível a próxima amostra.
Desta forma o CPU aguarda sempre pela próxima amostra antes de processar a acção
de controlo. Após esta concluída, que se assume que deverá ser efectuada num tempo
inferior a Ts (Deadline), volta a esperar pela amostra seguinte.
•
ballast coding
Uma alternativa a polling é o uso de ballast coding. Geralmente, um algoritmo de
tempo real depende dos dados, pois de acordo com estes poderão existir várias
ramificações do algoritmo:
Fig. 3-12: Ballast coding
Deste modo o tempo de processamento não será o mesmo para todas as ramificações.
3-20
Sistemas de tempo real (resumos)
Para um algoritmo escrito em assembler, é possível construir um diagrama como o da
figura anterior, e calcular o tempo gasto em cada um dos ramos.
Para que todos os ramos tenham o mesmo tempo de execução adicionam-se
instruções a cada ramo. Normalmente estas instruções usam apenas um ciclo de
máquina, para que o tempo de espera seja feito em múltiplos de um ciclo. São
referidas como NOP, (No OPeration), e não alteram em nada o estado do CPU.
Na figura acima as três ramificações A1.1, A1.2 e A2 terminam com segmentos de
ballast coding. Também no final da tarefa, troço B, de modo que esta aguarde que a
próxima amostra esteja disponível é adicionado um segmento com ballast coding.
Desvantagens associadas com este método são a obrigatoriedade de programação em
assembler, e a necessidade de mudar o programa quando se muda a frequência de
amostragem ou o CPU. Também como já foi visto o uso de DMA pode requer alguns
ciclos de máquina, "roubando" estes ao CPU, o qual fica interrompido, de modo que
o tempo de execução de um troço será aumentado.
•
relógio de tempo real
O uso de um relógio tempo real fornece uma solução para o problema de
temporização. O algoritmo seguinte (na forma de um módulo de Modula-2) ilustra
este método de sincronização. Assume-se que GetTime é uma função que retorna o
valor do tempo corrente. O tempo corrente é actualizado por uma rotina de serviço à
interrupção do relógio de tempo real.
MODULE RealTimeControl2
(* declarações *)
BEGIN
(* Inicialização *)
time := GetTime;
LOOP
(* Aguarda próximo instante de amostragem *)
NextSample := time + Ts;
WHILE time<NextSample DO
3-21
Sistemas de tempo real (resumos)
time := GetTime;
END;
(* Aquisição do, sinal de entrada do controlador *)
e := ADC;
(* Tarefa de Controlo *)
u:= (...)
(* Envia sinal de controlo para Plant *)
DAC(u);
END;
END RealTimeControl.
Algoritmo 3-4: Sincronização com relógio de tempo real
ADC e DAC são duas funções que comunicam com o interface da Plant, e permitem
a aquisição e conversão de sinais analógica / digital.
Repare-se que mais uma vez o CPU fica ocupado esperando que a próxima amostra
esteja disponível.
•
interrupção externa
Para possibilitar que o computador realize trabalho adicional, entre a completa
execução da tarefa de controlo e o próximo instante de amostragem, usa-se uma
interrupção externa.
Neste caso uma dada tarefa principal será interrompida sempre que um periférico
necessite de atendimento.
3-22
Sistemas de tempo real (resumos)
3.3.3 O controlador PID ideal
O algoritmo PID básico pode ser expresso no domínio dos tempos como:
(3-1)
kc t
de( t )
e( t )dt + k c Td
m( t ) = k c e( t ) +
∫
Ti 0
dt
onde o termo integral pode ser discretizado usando:
(3-2)
t
k
0
i =0
∫ e(t )dt = ∑ ei ∆T
o derivado:
(3-3)
df
dt
=
k
f k − f k −1
∆T
sendo o período de amostragem ∆T = Ts:
(3-4)
⎡
⎤
T
∆T k
m k = K c ⎢e k +
e i + d (e k − e k -1 )⎥
∑
Ti i =0
∆T
⎣
⎦
introduzindo os novos parâmetros:
k p = kc
k i = k c ∆T / Ti
(3-5)
k d = k c Td / ∆T
e
k
Sk = ∑ ei = Sk −1 + e k
i =0
chega-se a:
(3-6)
m k = k p e k + k i S k + k d (e k − e k -1 )
Um programa em Pascal, para implementar o algoritmo PID, poderia ter a forma:
3-23
Sistemas de tempo real (resumos)
PROGRAM PID;
CONST
kp := 1.0;
ki := 0.8;
kd := 0.3;
VAR
s, en, enold, m: REAL;
time, NextSample: REAL;
FUNCTION ADC : REAL; EXTERNAL;
PROCEDURE DAC (VAR m : REAL); EXTERNAL;
BEGIN
s := 0.0;
(* Inicialização do módulo *)
enold := ADC;
REPEAT
(* Loop de controlo *)
(* Devia de algum modo aguardar próximo instante de amostragem *)
(* Aquisição do, sinal de entrada da Plant *)
en := ADC;
(* Tarefa de Controlo *)
s := s+en;
m:= kp*en+ki*s+kd*(en-enold);
(* Envia sinal de controlo para Plant *)
DAC(m);
enold:=en
UNTIL TRUE;
END PID.
Algoritmo 3-5: PID básico em PASCAL
3-24
Sistemas de tempo real (resumos)
Assume-se que os procedimentos DAC e ADC implementam a saída do dado para uma DAC
e lêem o dado de uma ADC, respectivamente.
O algoritmo anterior é incorrecto porque o programa não toma em linha de conta que o
cálculo da variável de controlo deve ser sincronizado com o tempo real. Neste caso, o tempo
de amostragem depende apenas da velocidade do computador.
A implementação em Modula-2, sincronizando o loop de controlo com o período de
amostragem através de um relógio de tempo real, é apresentado a seguir. Assume-se que
GetTime é uma função que retorna o valor do tempo corrente:
MODULE PID;
CONST
kp := 1.0;
ki := 0.8;
Ts := 0.01;
kd := 0.3;
(* Tempo de amostragem *)
VAR
s, en, enold, m: REAL;
time, NextSample: REAL;
FROM plantIO IMPORT
(* Import functions from module plantIO *)
ADC, GetTime, DAC;
BEGIN
s := 0.0;
(* Inicialização do módulo *)
enold := ADC;
time := GetTime;
NextSample := time + Ts;
LOOP
(* loop de controlo *)
(* Aguarda próximo instante de amostragem *)
WHILE time<NextSample DO
time := GetTime;
END;
3-25
Sistemas de tempo real (resumos)
(* Aquisição do sinal de entrada da Plant *)
en := ADC;
(* Tarefa de Controlo *)
s := s+en;
m:= Kp*en+ki*s+kd*(en-enold);
(* Envia sinal de controlo para Plant *)
DAC(m);
enold:=en
NextSample := time + Ts;
END;
END PID.
Algoritmo 3-6: PID em Modula-2 sincronizado com relógio de tempo real
Finalmente uma versão sincronizada no formato de S-function:
function [sys, x0, str, ts] = pid_base_01 (t, x, u, flag, ts)
persistent s ek_1
if flag == 0
%inicialização
sys = [0 0 1 4 0 1 1];
x0 = [ ];
str = [ ];
ts = [-2 0];
%tempo de amostragem variável
s=0;
elseif flag == 4
%Calcula próximo instante de amostragem
ns = t / ts;
%ns nº de amostras
sys = (1 + floor(ns + 1e-13*(1+ns)))*ts;
%momento da próxima amostra
elseif flag == 3
%Calcula o sinal de controlo m
3-26
Sistemas de tempo real (resumos)
if t==0 ek_1=u(1); end;
ek=u(1); kp=u(2); ki=u(3); kd=u(4);
s = s + ek;
m=kp*ek+ki*s+kd*(ek-ek_1);
ek_1 = ek;
sys = m;
else
sys = [ ];
end
Algoritmo 3-7: PID em Matlab (S-function)
Repare-se que esta função assume 4 entradas pois os parâmetros kp, ki e kd do controlador
são também fornecidos como entrada. Deste modo o controlador poderá ser usado num
esquema de controlo adaptativo.
Fig. 3-13: Diagrama blocos do Controlador PID discreto básico
Mas este algoritmo anterior é também impraticável porque:
-
Não toma em consideração limitações no actuador (o que pode provocar o fenómeno de integral wind-up)
-
Ruído de medida ou de processo
-
ou ainda a necessidade de uma transição suave de modo manual para modo
automático
3-27
Sistemas de tempo real (resumos)
Além disso o programa também expressa os parâmetros do controlador como constantes, o
que implica que qualquer modificação nos parâmetros do controlador ou período de
amostragem necessita a recompilação do programa.
As próximas secções irão debater os problemas atrás mencionados.
3.3.4 Formas alternativas do algoritmo PID
Na prática, a forma simples do algoritmo PID referida na última secção não é satisfatória e
devem ser introduzidas modificações para ultrapassar as suas limitações. Estas modificações
podem ser sumariadas como:
•
transferência sem salto (bumpless transfer)
•
saturação (integral wind-up)
•
ruído
•
cálculos modificados dos termos integrais e derivativos
3.3.4.1 Transferencia sem saltos
Pode-se admitir erradamente, da equação (3-6), que, em regime estacionário, com erro nulo,
a variável controlada, m, é nula. Tal situação por vezes não acontece, e em regime
estacionário pode ser necessário fornecer um controlo não nulo. Normalmente (3-6) é
modificada adicionando um termo constante (MV) representando o valor da variável
manipulada em regime estacionário.
(3-7)
m k = k p e k + k i S k + k d (e k − e k -1 ) + MV
A quantidade MV pode ser interpretada como o ponto de operação do controlador. Se é
omitida e o controlador dispõe de acção integral, o controlador compensa esta omissão. No
entanto, poderá haver dificuldades em mudar suavemente o modo de funcionamento de manual para automático, sem provocar perturbações no processo. Pode acontecer que na altura da
comutação, uma grande mudança seja requerida, o que é normalmente proibido pelas
especificações. É normalmente desejado que essa mudança se faça suavemente (bumpless).
Isto pode ser conseguido de várias maneiras:
3-28
Sistemas de tempo real (resumos)
•
Método 1
O valor de MV é calculado para uma dada condição de regime estacionário e é
inserido como uma constante no programa, ou é fornecido pelo operador na altura da
transição de modo. A transferência é feita quando o erro é nulo, o termo integral é
reposto a 0 e a saída m é colocada a MV. O problema com esta técnica é a de que só
funciona para uma determinada carga; se a carga está a variar pode não ser
conveniente efectuar a transição. Por outro lado, é sempre necessário efectuar a
transição com erro nulo, caso contrário, devido à acção proporcional, pode ser
originado um largo valor de saída.
•
Método 2
Neste método o valor da variável manipulada é monitorada pelo computador, de tal
modo que na transição o valor de m é posto a MV, ou se um predeterminado valor de
MV fôr usado, a soma integral é inicializada a:
(3-8) s = mc - kec - MV
onde os subscritos c denotam o instante de tempo da transição e k é um valor de
ganho constante adequado.
•
Método 3
Este é o método mais utilizado, baseado no denominado algoritmo de velocidade, que
tem como saída a mudança no valor da variável manipulada em cada instante, e não o
valor absoluto desta variável:
(3-9) ∆mk = mk - mk-1
Usando (3-6):
m k = k p e k + k i S k + k d (e k − e k -1 )
m k -1 = k p e k -1 + k i S k -1 + k d (e k -1 − e k -2 )
temos:
3-29
Sistemas de tempo real (resumos)
∆m k = k p (e k - e k -1 ) + k i (S k - S k -1 ) + k d (e k - 2e k -1 + e k -2 )
como:
ek = Sk - Sk-1
chega-se a:
(3-10) ∆m k = e k (k p + k i + k d ) - e k -1 (k p + 2k d ) + e k -2 k d
Dado que este algoritmo só fornece uma variação na posição do controlador, ele
automaticamente assegura uma transição sem saltos.
É normalmente limitado o valor máximo que ∆mk assume. Isto acontece
normalmente quando um sinal é ruidoso ou a referência é mudada. No 1º caso,
utiliza-se uma técnica que é explicada à frente. No segundo caso, é normal utilizar
uma outra topologia de PID, e aplicar a referência apenas na acção integral, sendo os
termos proporcionais e derivativo aplicados apenas à saída.
3.3.4.2 Saturação
Em qualquer aplicação prática, o valor da variável manipulada, m, é limitada por restrições
físicas. Uma válvula não pode estar mais que completamente aberta ou completamente
fechada. Se o valor da variável manipulada excede o valor máximo do actuador, então o controlo realimentado efectivo é perdido; deve-se assegurar que isto só acontece em situações
anormais.
Um simples exemplo do que pode acontecer pode ser ilustrado com o funcionamento de
sistema de aquecimento para casas. A capacidade destes sistemas é normalmente dimensionada para situações de inverno médio. Se existir uma baixa temperatura extrema, simultaneamente com ventos fortes, o sistema, mesmo operando à máxima capacidade, não conseguirá
manter a temperatura desejada, i.e., existirá sempre um erro. Se existir um controlador PI,
dado que existe este erro, o valor do somatório Sk aumentará a cada amostra. Consequentemente, o valor da variável manipulada aumentará, e consequentemente a saída pretendida do
3-30
Sistemas de tempo real (resumos)
elemento de aquecimento aumentará. Como este está já no seu máximo, esta saída desejada
não pode ser conseguida.
Caso o vento diminua ou a temperatura exterior aumente, então a temperatura da casa
aumentará, e eventualmente chegará à temperatura desejada. O valor de Sk, entretanto, será
grande, dado que só começa a reduzir quando o edifício chegar à temperatura desejada.
Como consequência o termo integral continuará a forçar o elemento de aquecimento a
funcionar ao seu máximo, mesmo estando a temperatura do edifício acima do valor
pretendido. Esta operação está ilustrada na figura seguinte:
Fig. 3-14: Acção integral wind-up
Este fenómeno é conhecido como enrolamento do integral (integral wind-up) e resulta numa
acção de controlo pobre quando se sai de uma situação de saturação. As principais técnicas
desenvolvidas para combater este problema são:
•
limites fixos no integral
Valores máximo e mínimo são fixados para a soma integral; caso a quantidade
calculada excede esse limite, o valor da soma é posto a esse limite. Estes limites são
normalmente os valores máximo/mínimo da variável manipulada. O programa de
3-31
Sistemas de tempo real (resumos)
controlo poderia ser modificado para após a soma integral limitá-la a uma dada gama
de valores:
(* geração do sinal de Controlo *)
s := s+ek;
IF s>smax THEN s:=smax
ELSE IF s<smin THEN s:=smin;
m:= Kp*ek+ki*s+kd * (ek - ek-1);
(* ... *)
Algoritmo 3-8: Limites fixos do termo integral do PID (alterações ao Algoritmo 3-6)
•
parar a integração na saturação
Neste método o valor da soma integral é mantido constante quando o actuador satura,
e durante o período em que o actuador se encontra saturado. Este esquema pode ser
implementado detectando quando o valor da variável manipulada sai fora dos limites
mmin ou mmax, ou ainda por um sinal externo do actuador, que indica situação de
saturação.
(* limites da variável manipulada*)
(*sinal do actuador*)
(* geração do sinal de Controlo *)
(*geração do sinal de Controlo*)
s := s+ ek;
IF NOT ADC (Saturation) THEN
m:= Kp * ek + ki * s + kd * (ek - ek-1);
s:=s+ ek;
m:= Kp * ek +ki*s+kd*(ek - ek-1);
IF m<mmin OR m>mmax THEN
BEGIN
(* … *)
s := s - ek;
m:= Kp* ek +ki*s+kd * (ek - ek-1);
END;
(* ... *)
Algoritmo 3-9: paragem da integração do PID (alterações ao Algoritmo 3-6)
Tal como o anterior, este método não permite que o termo integral suba para valores
elevados no caso de saturação. No entanto, têm a desvantagem de que o valor do
3-32
Sistemas de tempo real (resumos)
termo integral, quando se sai da saturação, não está relacionado com a dinâmica do
processo. Consequentemente, o offset do controlador, fornecido pelo termo integral,
está atrasado relativamente aos offsets requeridos pelo processo.
•
subtracção do integral
A ideia subjacente a este método é a de que a soma integral é diminuída de uma
quantidade proporcional à diferença entre o valor computado e ao valor máximo
permissível. A expressão da soma integral:
Sk = Sk-1 + ek
é substituída por:
(3-11) Sk = Sk-1 - K (mk - mmax) + ek
A soma integral é diminuída pela actuação excessiva e aumentada pelo erro. A taxa
de decréscimo é dependente da escolha do parâmetro K; esse valor deve ser
criteriosamente escolhido, mais baseado em experiência que por cálculos analíticos.
(* geração do sinal de Controlo *)
m := Kp * ek + ki * s + kd * (ek - ek-1);
s := s - K (m - mmax) + ek;
m := Kp * ek + ki * s + kd * (ek - ek-1);
(...)
Algoritmo 3-10: Subtracção da integração do PID (alterações ao Algoritmo 3-6)
O método pode ser modificado para parar a adição do erro durante a saturação se
estiver disponível um sinal lógico que indique saturação ou não saturação do
actuador. Neste caso o valor do integral começa a decrescer logo que o actuador entre
em saturação e continua até que o sistema saia da saturação, instante de tempo em
que o erro é adicionado ao integral. A vantagem deste método é a de que o sistema
3-33
Sistemas de tempo real (resumos)
sai da saturação o mais rapidamente possível; no entanto o valor do integral não
reflecte a dinâmica do processo.
•
uso de um algoritmo de velocidade
Neste caso, já visto, a acção integral é conseguida pela soma dos incrementos no
dispositivo de saída. Dado que esse dispositivo de saída é sujeito a um limite, o
integral é automaticamente sujeito a um limite. Evita pois o fenómeno de wind-up.
•
método analítico
Este método usa o conhecimento do processo de tal maneira que se obtém uma
resposta linear normal logo que o sistema saia da saturação. Repare que nesse
instante o processo está em regime estacionário e o valor do integral será de:
(3-12) I (τ) = c (τ) / kp kc
Se a entrada/saída de saturação for detectada, então o algoritmo de controlo pode ser
mudado, de modo a que a soma integral seja actualizada de acordo com a eq. anterior
durante a saturação, e normalmente durante a funcionamento normal.
3.3.4.3 Ruído
Em sistemas de controlo analógicos, uma pequena quantidade de ruído de alta frequência no
sinal medido não causa problemas graves, dado que a dinâmica dos componentes do sistema
reage como filtros passa-baixo, atenuando o ruído. Se tivermos amostragem, ruído de alta
frequência pode produzir perturbações de baixa frequência devida ao fenómeno de aliasing.
Esse ruído de baixa frequência tem a mesma amplitude do ruído original e a sua frequência é
a diferença entre a frequência original do ruído e a frequência de amostragem (ou múltiplos).
Por esta razão, o sinal analógico é primeiramente filtrado antes de ser amostrado. Para muitas
aplicações industriais, um simples filtro de 1ª ordem:
(3-13) G f (s) =
1
1 + Tf s
3-34
Sistemas de tempo real (resumos)
é satisfatório. A escolha de Tf = 2.Ts (onde Ts é o período de amostragem do controlador)
reduzirá o efeito de aliasing em 90% para ruído branco. Quando Tf é pequeno, filtros
analógicos são facilmente construídos. Quando Tf é maior que alguns segundos, é
normalmente utilizado uma combinação de filtragem analógica e digital.
Passar de Gf (s) para Gf (z) envolve 3 passos:
1.
Determinar a função de tempo correspondente a
G f (s)
:
s
G f (s)
1
=
s
s (1 + Tf s )
e no domínio do tempo:
G f (t) = 1 - e
2.
Ts
Tf
-k
Determinar a correspondente transformada de z (usualmente por consulta de
uma tabela a partir do domínio do tempo)
T
- s ⎞
⎛
T
z ⎜1 - e f ⎟
⎟
⎜
⎠
⎝
G f (z) =
T
- s
⎛
Tf
⎜
(z - 1)⎜ z - e
⎝
3.
⎞
⎟
⎟
⎠
=
1
1 − z −1
T
- s ⎞
⎛
T
⎜1 - e f ⎟
⎟
⎜
⎠
⎝
Ts
⎛
⎞
⎜ z - e Tf ⎟
⎜
⎟
⎝
⎠
Multiplicar por 1-z-1:
G f (z) =
1- e
-
z-e
Ts
Tf
-
Ts
Tf
sendo a equação diferença correspondente:
3-35
Sistemas de tempo real (resumos)
T
- s
⎛
Tf
⎜
xk = 1- e
⎜
⎝
T
- s
⎞
⎟u + e Tf x
k −1
⎟ k −1
⎠
onde u é a entrada do filtro e x a saída. O intervalo de amostragem do filtro,
Ts tem de ser inferior à constante de tempo do filtro, Tf.
Como alternativa a adicionar um filtro separado ao PID ideal, o controlador PID real inclui já
um filtro no componente derivativo.
3.3.4.4 Formas alternativas para o cálculo dos termos integral e derivativo
Os algoritmos PID de posição e velocidade usam equações de diferença de 1ª e 2ª ordem.
Dado que a diferenciação acentua ruído e erros, alguma forma de filtragem é necessária. Esta
suavização pode ser obtida usando técnicas que calculam o valor como uma média entre
várias amostras. Uma destas técnicas utiliza quatro amostras.
de
1
≈
( e k + 3e k − 1 − 3e k − 2 − e k − 3 )
dt
6
Ts
(3-14)
Substituindo esta eq. na eq. do PID (posição), temos:
⎡T
T
m k = k c ⎢ d (e k − 3e k −1 − 3e k −2 − e k − 3 ) + e k + s
Ti
⎣ 6Ts
(3-15)
k
∑e
n=0
k
⎤
⎥
⎦
O algoritmo de PID (posição) usando esta técnica aparece como:
Sk = Sk −1 + e k
(3-16) m k = p1e k + p 2 e k − p 2 e k −2 − p 3e k −3 + p 4Sk
onde
k T
k T
k T
k T
p1 = 1 + c d , p 2 = c d , p 3 = c d , p 4 = c s
Ti
6Ts
2 Ts
6 Ts
(3-17)
3-36
Sistemas de tempo real (resumos)
O cálculo do termo integral também pode ser melhorado usando a regra trapezoidal em vez
da regra rectangular. A equação do PID (posição) torna-se então:
⎡
T
m k = k c ⎢e k + s
Ti
⎣
(3-18)
⎤
e k + e k −1 Td
+ ( e k − e k −1 ) ⎥
Ts
2
n=0
⎦
k
∑
de modo que:
(3-19) Sk = Sk −1 +
e k + e k −1
2
3.3.5 Sintonia e escolha do intervalo de amostragem do controlador PID
Há várias técnicas de sintonia de controladores PID, sendo a mais antiga a devida a Ziegler e
Nichols (1942). De acordo com a fig. 3-15, elas são baseadas nos seguintes parâmetros da
resposta do sistema em malha aberta ao degrau:
1. Tempo de atraso (L) e a derivada (R)
2. L e a constante de tempo do processo Tp.
y(∞)
gain = K =
∆
t
TT = L + Tp
Fig. 3-15: Curva de reacção do processo
Estas técnicas assumem que o processo pode ser modelado pela função de transferência:
G ( s) =
(3-20)
ke − Ls
1 + sTp
3-37
Sistemas de tempo real (resumos)
O primeiro problema que se põe é como determinar estes parâmetros (L, R, Tp). Podem ser
determinados através de construções gráficas, ou através de métodos analíticos.
Note que a resposta ao degrau pode ser dada como:
−
(3-21) y = kA (1 − e
t−L
Tp
) u( t − L)
O declive máximo é de K
A
, em t = L. Assim sendo, uma linha recta com este declive
Tp
intersecta o valor máximo da saída em t=L+Tp. Desta maneira, através de métodos gráficos
podemos determinar Tp.
Quanto a métodos analíticos, através das propriedades da transformada de Laplace, pode-se
provar que:
∞
(3-22)
TT = Tp + L =
∫ [y(∞) − y( τ)]dτ
0
y( ∞ )
Definindo:
TT
(3-23)
σ=
∫ [y(∞) − y( τ)]dτ
0
y( ∞)TT
obtemos:
(3-24) Tp = eσTT
L = TT - Tp
Para o sistema contínuo, o ajuste implica que, dado L e R, ou L e Tp, os valores de kc, Ti e Td
são determinados de tal modo que um critério de desempenho seja minimizado.
A sintonização de controladores digitais envolve variáveis adicionais: q, a unidade de
quantização e Ts, o tempo de amostragem. O critério torna-se então:
3-38
Sistemas de tempo real (resumos)
(3-25) J = f (q, Ts, Kc, Ti, Td, L, Tp)
O tamanho da quantização não constitui normalmente um problema na indústria dado que os
cálculos podem ser feitos utilizando variáveis reais. Nalguns casos como em aviões ou
mísseis, onde as constantes de tempo são pequenas e os cálculos devem ser feitos
rapidamente (uso de aritmética fixa), este problema é grave.
Inúmeras regras foram propostas para escolher o intervalo de amostragem mantendo os
parâmetros do controlador escolhidos por métodos analógicos, outras modificando os
parâmetros do controlador em função do intervalo de amostragem.
Normalmente, a frequência de amostragem é escolhida em função da largura de banda do
sistema em malha fechada, wb. Normalmente, a frequência de amostragem, ws, é escolhida
como:
6≤
(3-26)
ws
≤ 40
wb
Utilizando as regras de Ziegler-Nichols para sintonia de PID analógico:
(3-27)
kc=1.2/RL,
Ti=2L,
Td=0.5L
Por exemplo, Goff sugeriu que:
Ts = 0.3L
Ki =
5<
(3-28)
Ti ⎧2 processos com tempo de atraso predominante
=⎨
Ts ⎩ 6 processos com pouco tempo de atraso
Td
< 10
Ts
Ainda, de acordo com (3-5), e a partir de (3-27) Takahashi propôs a seguinte regra para
sintonia de PID digital, onde TS está de acordo com (3-28):
(3-29)
kp =
0.6Ts
.
12
.5
.6
a
,ki =
2 ,kd =
R ( L + Ts )
RTs RTs
R ( L + Ts / 2)
3-39
Ts = 0.3L
Sistemas de tempo real (resumos)
3.3.6 Implementação de controladores baseados em modelos do
processo
O conhecimento do modelo do processo permite o uso de várias técnicas de projecto de controladores, não necessariamente só do tipo PID. Se o controlador é descrito por uma equação
diferença, pode então ser programado directamente. No caso de estar descrito por uma
função transferência, há basicamente 4 métodos para a sua implementação:
•
Método directo 1
A f.t. está expressa como o quociente de 2 polinomiais em termos de z-1:
n
M ( z)
= G ( z) =
E ( z)
∑a z
−j
j
j= 0
n
1 + ∑ b jz− j
j =1
(3-30)
A função de transferência é convertida directamente nas equações diferença:
mi =
(3-31)
n
n
j= 0
j=1
∑ a je i − j − ∑ b j m i − j
Exemplo
Consideremos um sistema com a função de transferência:
D( z) =
3 + 3. 6 z −1 + . 6 z −2
1+ .1z −1 − . 2 z −2
A equação diferença correspondente será:
m k = 3e k + 3. 6 e k − 1 + 0. 6 e k − 2 − 0.1m k − 1 + 0. 2 m k − 2
3-40
Sistemas de tempo real (resumos)
•
Método directo 2
Neste método a equação diferença é formulada introduzindo uma variável adicional
P(z) tal que:
M ( z) M ( z) P ( z)
=
P ( z) E ( z)
(3-32) E ( z )
(3-33)
M(z)
n
n
= ∑ j=0 a j z − j ⇔ M(z) = P(z)∑ j=0 a j z − j
P(z)
(3-34)
P(z)
1
1
=
⇔ P(z) = E(z) + n
n
E(z) 1 + ∑ b j z − j
∑ j=1 b j z − j
j= 0
Destas 2 equações, obtêm-se 2 equações diferenças:
mk =
(3-35)
n
∑ a jp k − j
j= 0
n
p k = e k − ∑ b jp k − j
(3-36)
j=1
Usando o exemplo anterior, teríamos então o seguinte algoritmo:
p k = e k − 0.1p k − 1 + 0. 2 p k − 2
pk
pk 1
pk 2
k
(3-38) m k = 3p k + 3. 6 p k − 1 + 0. 6 p k − 2
(3-37)
•
Cascata
Se a função de transferência é expressa como um produto de simples blocos de 1ª ou
2ª ordem, como mostra a figura seguinte, então cada elemento pode ser convertido
numa equação diferença utilizando o método 1, e o algoritmo total é o conjunto das
equações diferença:
3-41
Sistemas de tempo real (resumos)
E(z)
M(z)
D1
D2
Di
Dn
Fig. 3-16: Implementação em cascata
Para o exemplo seguido, a f.t., factorizada, é:
D( z) =
(3-39)
3(1 + z −1 )(1 + 0.2 z −1 )
(1 + 0.5z −1 )(1 − 0.4 z −1 )
Poderemos então ter:
N1 = 3
N2 = 1+z-1
N3 = 1+0.2z-1
D1 = 1+0.5z-1
D2 = 1-0.4z-1
Designando por y ik , i = 1L 5 as saídas dos blocos correspondentes, no instante k,
temos assim:
y1k = 3.0e k
y 2k = y1k + y 2k -1
y 3k = y 2k + 0.2 y 3k -1
y 4k = y 3k − 0.5 y 4k -1
m k = y 5k = y 4k + 0.4 y 5k -1
•
Paralelo
Se a f.t. é expandida em fracções parciais então pode ser representada como uma
soma de termos. A equação diferença de cada um dos termos pode ser obtido através
do método 1 e saída é obtida somando as saídas de cada bloco:
3-42
Sistemas de tempo real (resumos)
D1
E(z)
M(z)
D2
D3
Fig. 3-17: Implementação em cascata
Para o exemplo anterior temos:
D( z) = 3 +
.5
1 + 0. 5 z
−1
+
2.8
1 − 0. 4 z − 1
O algoritmo é, desta maneira:
y1k = 3e k
y 2k = .5e k − 0. 5y 2k − 1
y 3k = 2. 8e k + 0. 4 y 3k − 1
m k = y1k + y 2k + y 3k
3.3.7 O controlador PID em transformada de z
O controlador PID pode ser expresso como uma função de transferência em z. Considere-se
que, na equação (3-4), fazemos d =
Td
∆T
e g=
. Então:
∆T
Ti
k
(3-40)
m k = k c ( e k + g ∑ e k + d ( e k − e k − 1 ))
Dado que D (z) =
i=0
M (z)
, pode ser obtido aplicando a transformada de z ao lado direito da
E (z)
equação termo a termo. Assim:
3-43
Sistemas de tempo real (resumos)
(3-41)
M ( z ) = k c (1 +
gz
+ d + dz −1 ) E ( z )
z −1
Temos assim uma realização paralela do controlador PID. Rescrevendo
k cg
, temos:
1 - z −1
a k = k c (1 + d ) e k
b k = k c ge k + b k − 1
c k = − k c de k − 1
(3-42) m k = a k + b k + c k
Alternativamente, podemos usar uma implementação directa:
D ( z ) = k c (1 +
gz
+ d + dz −1 )
z −1
k c ( z ( z − 1) + gz 2 + dz ( z − 1) + d ( z − 1))
=
z ( z − 1)
k ( z 2 (1 + g + d ) − z (1 + 2 d ) − d )
= c
z ( z − 1)
(3-43)
ou em termos de z-1:
a + a 1z −1 + a 2 z −2
D( z) = 0
1 + b 1 z −1
(3-44)
onde:
a 0 = k c (1 + g + d )
a 1 = − k c (1 + 2 d )
a 2 = k cd
(3-45) b1 = −1
e implementação directa dá:
(3-46) mk = a0 ek + a1 ek-1 + a2 ek-2 - b1 mk-1
3-44
k cg z
como
z −1
Download

Capítulo III