Este documento descreve a implementação de um controlador PID digital em Matlab.
[1] Descreve o algoritmo PID discreto e como converter os parâmetros analógicos (Kc, Ti, Td) para os parâmetros digitais equivalentes (Kp, Ki, Kd).
[2] Apresenta como implementar o controlador PID de posição e velocidade em Matlab através de S-functions e como adicioná-los a uma biblioteca para reutilização.
[3] Explica como testar a resposta ao degrau dos diferentes algoritmos PID e
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...Universidade de São Paulo
Este documento discute a complexidade de algoritmos e a notação assintótica. Apresenta como a análise de complexidade de algoritmos reduz um algoritmo a uma função matemática que representa o número de instruções executadas em função do tamanho da entrada. Explora os conceitos de limite assintótico superior, inferior e estrito e como eles são usados para classificar algoritmos de acordo com sua taxa de crescimento, ignorando constantes e termos de menor ordem.
Slides da disciplina de Análise de Algoritmos, ministrada pelo Prof. Marcelo H. Carvalho no curso de Pós-Graduação em Ciência da Computação, FACOM - UFMS.
O documento discute conceitos de recursividade em programação. Em três frases:
1) A recursividade é uma estratégia onde uma função é definida em termos de chamadas a si mesma, permitindo definir conjuntos infinitos com comandos finitos.
2) Funções recursivas precisam de uma condição de parada para evitar loops infinitos, e a pilha de execução armazena os estados de cada chamada recursiva.
3) A recursividade é útil para algoritmos como quicksort e pesquisa em árvores, mas nem sempre é a solução
O documento introduz conceitos básicos de análise de algoritmos, discutindo como medir a eficiência de algoritmos e a notação O(f(N)) para classificar algoritmos de acordo com sua complexidade. Exemplos demonstram como algoritmos podem ter tempo de execução constante, linear, logarítmico ou quadrático, dependendo do problema.
O documento descreve um projeto de controlador por avanço de fase discreto para melhorar a resposta de uma planta. O controlador foi projetado para tornar a resposta da planta em malha fechada duas vezes mais rápida com um overshoot de 10%. O período de amostragem escolhido foi de 0,013 segundos para atingir a frequência de zero dB desejada de 16 rad/s. O controlador por avanço de fase discreto foi projetado usando ferramentas do Matlab e Simulink para validar a resposta da planta em malha fechada
Material de apoio das aulas de tutoria de Algoritmos e Estrutura de dados da Universidade Federal de Ouro Preto, Campus João Monlevade. O conteúdo abordado é sobre análise da complexidade de algoritmos.
Análise de Algoritmos - Problemas, instâncias, algoritmos e tempoDelacyr Ferreira
Slides da disciplina de Análise de Algoritmos, ministrada pelo Prof. Marcelo H. Carvalho no curso de Pós-Graduação em Ciência da Computação, FACOM - UFMS.
Slides da disciplina de Análise de Algoritmos, ministrada pelo Prof. Marcelo H. Carvalho no curso de Pós-Graduação em Ciência da Computação, FACOM - UFMS.
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...Universidade de São Paulo
Este documento discute a complexidade de algoritmos e a notação assintótica. Apresenta como a análise de complexidade de algoritmos reduz um algoritmo a uma função matemática que representa o número de instruções executadas em função do tamanho da entrada. Explora os conceitos de limite assintótico superior, inferior e estrito e como eles são usados para classificar algoritmos de acordo com sua taxa de crescimento, ignorando constantes e termos de menor ordem.
Slides da disciplina de Análise de Algoritmos, ministrada pelo Prof. Marcelo H. Carvalho no curso de Pós-Graduação em Ciência da Computação, FACOM - UFMS.
O documento discute conceitos de recursividade em programação. Em três frases:
1) A recursividade é uma estratégia onde uma função é definida em termos de chamadas a si mesma, permitindo definir conjuntos infinitos com comandos finitos.
2) Funções recursivas precisam de uma condição de parada para evitar loops infinitos, e a pilha de execução armazena os estados de cada chamada recursiva.
3) A recursividade é útil para algoritmos como quicksort e pesquisa em árvores, mas nem sempre é a solução
O documento introduz conceitos básicos de análise de algoritmos, discutindo como medir a eficiência de algoritmos e a notação O(f(N)) para classificar algoritmos de acordo com sua complexidade. Exemplos demonstram como algoritmos podem ter tempo de execução constante, linear, logarítmico ou quadrático, dependendo do problema.
O documento descreve um projeto de controlador por avanço de fase discreto para melhorar a resposta de uma planta. O controlador foi projetado para tornar a resposta da planta em malha fechada duas vezes mais rápida com um overshoot de 10%. O período de amostragem escolhido foi de 0,013 segundos para atingir a frequência de zero dB desejada de 16 rad/s. O controlador por avanço de fase discreto foi projetado usando ferramentas do Matlab e Simulink para validar a resposta da planta em malha fechada
Material de apoio das aulas de tutoria de Algoritmos e Estrutura de dados da Universidade Federal de Ouro Preto, Campus João Monlevade. O conteúdo abordado é sobre análise da complexidade de algoritmos.
Análise de Algoritmos - Problemas, instâncias, algoritmos e tempoDelacyr Ferreira
Slides da disciplina de Análise de Algoritmos, ministrada pelo Prof. Marcelo H. Carvalho no curso de Pós-Graduação em Ciência da Computação, FACOM - UFMS.
Slides da disciplina de Análise de Algoritmos, ministrada pelo Prof. Marcelo H. Carvalho no curso de Pós-Graduação em Ciência da Computação, FACOM - UFMS.
Este documento descreve a discretização de um sistema linear e contínuo no tempo usando o método do hold equivalente. O sistema discreto resultante é simulado e comparado com o sistema contínuo original, mostrando uma aproximação precisa.
Slides da disciplina de Análise de Algoritmos, ministrada pelo Prof. Marcelo H. Carvalho no curso de Pós-Graduação em Ciência da Computação, FACOM - UFMS.
O documento introduz conceitos básicos sobre análise e complexidade de algoritmos. Aborda o que é um algoritmo, tipos importantes de problemas, estratégias de projeto de algoritmos e como calcular a complexidade temporal e espacial de um algoritmo, analisando os casos de melhor, pior e médio caso. Também apresenta a notação assintótica O, Ω e θ para definir limites do crescimento de funções.
O documento apresenta conceitos básicos de análise de algoritmos, incluindo correção, eficiência e complexidade. Discute análise empírica e matemática de algoritmos, apresentando exemplos de algoritmos com complexidade constante, linear e quadrática.
O documento apresenta conceitos básicos de análise de algoritmos, incluindo: (1) definição de algoritmo e os aspectos de correção e análise, (2) tipos de análise (empírica e matemática), (3) exemplos de algoritmos com diferentes complexidades (constante, linear, quadrática).
Este documento descreve os conceitos básicos de programação no Maple, incluindo tipos de programação, estruturas de programação como loops e condicionais, procedimentos, variáveis locais e globais, e programação recursiva. Ele fornece exemplos de como implementar esses conceitos para resolver problemas matemáticos usando a linguagem de programação do Maple.
Course in GNU Octave / Matlab and Applications for Engineers (in Portuguese: ...Tiago Oliveira Weber
Course in GNU Octave / Matlab and Applications for Engineers (in Portuguese: "Curso de GNU Octave / Matlab e Aplicações para Engenheiros"). This material was initially presented at the II Computer Engineering Academic Week in March 2018 at UFSC - Campus Araranguá - Presentation in Portuguese.
Este documento fornece uma introdução à análise assintótica de algoritmos, definindo conceitos como tipos de dados, algoritmos, complexidade e ordens de crescimento. Ele explica como analisar algoritmos para determinar seus melhores, piores e casos médios, além de apresentar exemplos para ilustrar esses conceitos.
Este documento discute criptografia com uso de curvas elípticas. Apresenta curvas elípticas e sua aplicação na criptografia de chave pública. Explica que a segurança dessas curvas se baseia no problema matemático difícil de calcular logaritmos discretos em curvas elípticas.
O documento descreve o problema do segmento de soma máxima e apresenta um algoritmo de programação dinâmica chamado SOLIDEZ para resolvê-lo de forma eficiente. O algoritmo calcula a maior soma possível de uma subsequência de números em um vetor de entrada em tempo Θ(n), onde n é o tamanho do vetor. A corretude e complexidade do algoritmo são analisadas formalmente.
O documento discute técnicas de programação para máquinas de Turing, incluindo armazenamento no estado, várias trilhas e subrotinas. Estas técnicas permitem representar MTs de forma mais modular e eficiente, sem aumentar seu poder de cálculo. Exemplos ilustram como estas técnicas podem ser usadas para projetar MTs para problemas como aceitação de linguagens regulares e multiplicação.
Classes de problemas p, np,np completo e np-difícilGuilherme Coelho
O documento discute os conceitos de classes de problemas P, NP, NP-completo e NP-difícil e como medir a complexidade de algoritmos. Também apresenta exemplos de algoritmos polinomiais e de complexidade exponencial e teoremas sobre problemas NP-completos.
A análise e compreensão das estratégias de ordenação são tarefas corriqueiras no processo de aprendizagem de complexidade computacional. Os métodos mais clássicos são debatidos e suas respectivas complexidades teóricas são confrontadas, porém muitas vezes, não há um aprofundamento e muitas características relevantes de determinadas técnicas são deixadas de lado não ocorrendo um confrontamento prático desses métodos.
Além disso não existe disponível, ate o momento, uma ferramenta gratuita para aferição da complexidade das estratégias de ordenação que leve em consideração a natureza das amostras a serem classificadas. Para preencher essa lacuna propomos um Assistente de Avaliação de Estratégias de Ordenação que possui como principais funcionalidades a geração de aglomerados numéricos aleatórios, a execução de determinadas estratégias sobre esses aglomerados e a exibição do esforço computacional e temporal necessários a execução.
1. O documento apresenta um tutorial sobre o uso do software livre GNU Octave, que é uma ferramenta de cálculo numérico e científico similar ao Matlab.
2. O tutorial explica conceitos básicos como operações matemáticas, definir variáveis, formatar números, criar gráficos e definir funções.
3. O documento também fornece exemplos de código do Octave para ilustrar cada tópico abordado.
Material de apoio das aulas de tutoria de Algoritmos e Estrutura de dados da Universidade Federal de Ouro Preto, Campus João Monlevade. O conteúdo abordado é sobre relações de recorrência em relação com a análise e complexidade de algoritmos.
O documento apresenta conceitos e técnicas de vetorização. Discute sobre introdução à vetorização, incluindo vantagens do processamento vetorial. Apresenta abordagens para vetorização como auto-vetorização, diretivas como #pragma, e uso de Intel Cilk Plus para notação vetorial.
Este capítulo apresenta exemplos resolvidos no MATLAB de um sistema mecânico. Os exemplos ilustram conceitos de controle e observabilidade através da análise do sistema mecânico, como controlabilidade, observabilidade, realização e estabilizabilidade.
O documento apresenta exemplos de geração e manipulação de sinais no MATLAB, incluindo: (1) geração de uma senóide amostrada; (2) plotagem de sinais; (3) geração de sinais mais complexos através de operações ponto a ponto; (4) introdução a funções estatísticas como média e desvio padrão.
Um requisito fundamental em um motor é que ele deve rodar a velocidade desejada, com erro de estado estacionário da velocidade inferior a 1%. O outro requisito de desempenho é que o motor deve acelerar até sua velocidade de estado estacionário, assim que é ligado. Neste caso, queremos que ele tenha um tempo de estabilização de 2 segundos. Desde que uma velocidade superior à de referência pode danificar
o equipamento controlado, deseja-se um sobre sinal (overshoot) menor que 5%.
Se a entrada de referência (r) for um degrau unitário, a velocidade de saída do motor deve atender:
• Tempo de estabilização menor que 2 seg.
• Sobre sinal menor que 5%.
• Erro em estado estacionário menor que 1%.
Este documento descreve a discretização de um sistema linear e contínuo no tempo usando o método do hold equivalente. O sistema discreto resultante é simulado e comparado com o sistema contínuo original, mostrando uma aproximação precisa.
Slides da disciplina de Análise de Algoritmos, ministrada pelo Prof. Marcelo H. Carvalho no curso de Pós-Graduação em Ciência da Computação, FACOM - UFMS.
O documento introduz conceitos básicos sobre análise e complexidade de algoritmos. Aborda o que é um algoritmo, tipos importantes de problemas, estratégias de projeto de algoritmos e como calcular a complexidade temporal e espacial de um algoritmo, analisando os casos de melhor, pior e médio caso. Também apresenta a notação assintótica O, Ω e θ para definir limites do crescimento de funções.
O documento apresenta conceitos básicos de análise de algoritmos, incluindo correção, eficiência e complexidade. Discute análise empírica e matemática de algoritmos, apresentando exemplos de algoritmos com complexidade constante, linear e quadrática.
O documento apresenta conceitos básicos de análise de algoritmos, incluindo: (1) definição de algoritmo e os aspectos de correção e análise, (2) tipos de análise (empírica e matemática), (3) exemplos de algoritmos com diferentes complexidades (constante, linear, quadrática).
Este documento descreve os conceitos básicos de programação no Maple, incluindo tipos de programação, estruturas de programação como loops e condicionais, procedimentos, variáveis locais e globais, e programação recursiva. Ele fornece exemplos de como implementar esses conceitos para resolver problemas matemáticos usando a linguagem de programação do Maple.
Course in GNU Octave / Matlab and Applications for Engineers (in Portuguese: ...Tiago Oliveira Weber
Course in GNU Octave / Matlab and Applications for Engineers (in Portuguese: "Curso de GNU Octave / Matlab e Aplicações para Engenheiros"). This material was initially presented at the II Computer Engineering Academic Week in March 2018 at UFSC - Campus Araranguá - Presentation in Portuguese.
Este documento fornece uma introdução à análise assintótica de algoritmos, definindo conceitos como tipos de dados, algoritmos, complexidade e ordens de crescimento. Ele explica como analisar algoritmos para determinar seus melhores, piores e casos médios, além de apresentar exemplos para ilustrar esses conceitos.
Este documento discute criptografia com uso de curvas elípticas. Apresenta curvas elípticas e sua aplicação na criptografia de chave pública. Explica que a segurança dessas curvas se baseia no problema matemático difícil de calcular logaritmos discretos em curvas elípticas.
O documento descreve o problema do segmento de soma máxima e apresenta um algoritmo de programação dinâmica chamado SOLIDEZ para resolvê-lo de forma eficiente. O algoritmo calcula a maior soma possível de uma subsequência de números em um vetor de entrada em tempo Θ(n), onde n é o tamanho do vetor. A corretude e complexidade do algoritmo são analisadas formalmente.
O documento discute técnicas de programação para máquinas de Turing, incluindo armazenamento no estado, várias trilhas e subrotinas. Estas técnicas permitem representar MTs de forma mais modular e eficiente, sem aumentar seu poder de cálculo. Exemplos ilustram como estas técnicas podem ser usadas para projetar MTs para problemas como aceitação de linguagens regulares e multiplicação.
Classes de problemas p, np,np completo e np-difícilGuilherme Coelho
O documento discute os conceitos de classes de problemas P, NP, NP-completo e NP-difícil e como medir a complexidade de algoritmos. Também apresenta exemplos de algoritmos polinomiais e de complexidade exponencial e teoremas sobre problemas NP-completos.
A análise e compreensão das estratégias de ordenação são tarefas corriqueiras no processo de aprendizagem de complexidade computacional. Os métodos mais clássicos são debatidos e suas respectivas complexidades teóricas são confrontadas, porém muitas vezes, não há um aprofundamento e muitas características relevantes de determinadas técnicas são deixadas de lado não ocorrendo um confrontamento prático desses métodos.
Além disso não existe disponível, ate o momento, uma ferramenta gratuita para aferição da complexidade das estratégias de ordenação que leve em consideração a natureza das amostras a serem classificadas. Para preencher essa lacuna propomos um Assistente de Avaliação de Estratégias de Ordenação que possui como principais funcionalidades a geração de aglomerados numéricos aleatórios, a execução de determinadas estratégias sobre esses aglomerados e a exibição do esforço computacional e temporal necessários a execução.
1. O documento apresenta um tutorial sobre o uso do software livre GNU Octave, que é uma ferramenta de cálculo numérico e científico similar ao Matlab.
2. O tutorial explica conceitos básicos como operações matemáticas, definir variáveis, formatar números, criar gráficos e definir funções.
3. O documento também fornece exemplos de código do Octave para ilustrar cada tópico abordado.
Material de apoio das aulas de tutoria de Algoritmos e Estrutura de dados da Universidade Federal de Ouro Preto, Campus João Monlevade. O conteúdo abordado é sobre relações de recorrência em relação com a análise e complexidade de algoritmos.
O documento apresenta conceitos e técnicas de vetorização. Discute sobre introdução à vetorização, incluindo vantagens do processamento vetorial. Apresenta abordagens para vetorização como auto-vetorização, diretivas como #pragma, e uso de Intel Cilk Plus para notação vetorial.
Este capítulo apresenta exemplos resolvidos no MATLAB de um sistema mecânico. Os exemplos ilustram conceitos de controle e observabilidade através da análise do sistema mecânico, como controlabilidade, observabilidade, realização e estabilizabilidade.
O documento apresenta exemplos de geração e manipulação de sinais no MATLAB, incluindo: (1) geração de uma senóide amostrada; (2) plotagem de sinais; (3) geração de sinais mais complexos através de operações ponto a ponto; (4) introdução a funções estatísticas como média e desvio padrão.
Um requisito fundamental em um motor é que ele deve rodar a velocidade desejada, com erro de estado estacionário da velocidade inferior a 1%. O outro requisito de desempenho é que o motor deve acelerar até sua velocidade de estado estacionário, assim que é ligado. Neste caso, queremos que ele tenha um tempo de estabilização de 2 segundos. Desde que uma velocidade superior à de referência pode danificar
o equipamento controlado, deseja-se um sobre sinal (overshoot) menor que 5%.
Se a entrada de referência (r) for um degrau unitário, a velocidade de saída do motor deve atender:
• Tempo de estabilização menor que 2 seg.
• Sobre sinal menor que 5%.
• Erro em estado estacionário menor que 1%.
O documento descreve as etapas para projetar um controlador PID usando o método do lugar geométrico das raízes. A técnica envolve primeiro projetar o controlador PD para atender os requisitos de resposta transitória e, em seguida, projetar o controlador PI para garantir erro estacionário desejado. O documento fornece um exemplo numérico ilustrando como aplicar esta técnica para projetar um controlador PID para um sistema de exemplo.
Análise de Sistemas II - Modelamento e identificação de sistemasCiro Marcus
O documento apresenta os resultados de um trabalho final de identificação de sistemas dinâmicos utilizando três métodos: Método de Sundaresan Subamortecido, Método da Malha Fechada e Método dos Mínimos Quadrados. Foram gerados dados de um sistema, e cada método foi aplicado para estimar os parâmetros do sistema e comparar a resposta estimada com a real. O Método de Sundaresan apresentou a melhor identificação inicial, mas após ajustes dos parâmetros o Método de Sundaresan melhorou ainda mais a aproximação.
1) O documento apresenta uma série de exercícios relacionados com sistemas de controle realimentado, incluindo dimensionamento de controladores e análise de estabilidade.
2) São abordados tópicos como controlo PID, controlo por feedforward, controlo on-off, controlo de posição de satélites e controlo de nível em tanques.
3) São também discutidos conceitos como wind-up, saturação de actuadores e influência destes factores na estabilidade dos sistemas.
Ajuste de Controladores PID:
- Introdução;
- Método de Ziegler-Nichols;
- Método da Resposta ao Salto;
- Método do Período Crítico ou Método Relé;
- Método de Cohen-Coon
O documento apresenta uma aula sobre controle de sistemas no MATLAB. A agenda inclui revisão de conceitos como polos e zeros, expansão em frações parciais, mapa de polos e zeros, diagrama de Bode e importação de dados CSV. Exemplos e exercícios são fornecidos para demonstrar cada tópico.
Webinar: Implementação de Controle PID com PIC16F1619Embarcados
Apresentar o controlador PID bem como as questões e restrições práticas de sua implementação, levando em conta o processo de digitalização e discretização dos sinais.
No final do Webinar você conseguirá responder as seguintes perguntas:
O que é o PID?
Como eu implemento o PID para que ele funcione na prática?
Como eu implemento o PID para que ele funcione na prática e a planta obedeça meus requisitos?
Assita o webinar: https://experience.embarcados.com.br/webinars/controle-pid-com-pic16f1619/
O documento discute um curso sobre projeto e construção de sistemas aeroespaciais. A aula aborda conceitos de engenharia de controle, incluindo realimentação, sistemas de controle, modelagem, funções de transferência, PID, controle por eventos e exemplos de aplicação.
O documento discute o ajuste de controladores industriais do tipo PID para sistemas de controle. Ele explica o que é um controlador PID, como determinar seus parâmetros iniciais usando métodos como Ziegler-Nichols e apresenta um exemplo prático de como ajustar um controlador PID para controlar a temperatura em um processo térmico industrial.
O documento apresenta uma introdução ao software Simulink, descrevendo seus principais recursos e funcionalidades, como: simulação orientada a objetos, biblioteca de blocos para modelagem de sistemas, blocos fonte, cálculo e sumidouro. Exemplos ilustram o uso de blocos para modelagem de sistemas como tanques e processos biológicos.
1) O documento propõe uma metodologia para projetar controladores PID digitais usando um algoritmo genético multiobjetivo baseado nas especificações de margem de ganho e fase para plantas lineares com atraso de tempo.
2) As funções de transferência discreta do controlador PID e da planta são obtidas usando as aproximações de Tustin e Padé para gerar fórmulas analíticas das margens de ganho e fase no domínio da frequência.
3) Estas fórmulas são usadas para desenvolver um algoritmo gen
Brief presentation of the algorithms implementing IMRT in the TPS CAT3D.
CAT3D is a Radiotherapy Planning System (TPS) developed by Mevis Informatica Medica LTDA, Brazil.
O documento discute sistemas de controle digital, introduzindo conceitos básicos de malha fechada e variáveis envolvidas. Apresenta exemplos de sistemas de controle, incluindo o controle de posição de um satélite, um servomotor e um sistema de apontamento de antena, modelando cada um matematicamente através de equações diferenciais e funções de transferência.
O documento discute fundamentos de sistemas de controle dinâmicos, incluindo análise de sinais de controle, sinais típicos de teste, sistemas de primeira e segunda ordem, e análise da resposta transitória usando Matlab. Exemplos de circuitos RC e RLC são dados para ilustrar sistemas de primeira e segunda ordem.
Programação para engenharia - aspectos teóricos e computacionaisAlexandre Grossi
Este documento apresenta um plano de curso sobre programação para engenharia utilizando o software MATLAB. O plano inclui tópicos como interface gráfica, algoritmos estruturados, linguagem de programação e resolução de problemas matemáticos e algébricos. Referências teóricas sobre o MATLAB são listadas no final.
1) O documento apresenta três exemplos de sistemas de controle adaptativo com ganho programado. O primeiro exemplo trata de um atuador não linear, o segundo de um tanque com área variável e o terceiro de controle de concentração com fluxo variável.
2) Nos exemplos do tanque e da concentração, parâmetros do controlador PI como ganho e tempo de integração são determinados em função de variáveis de processo como nível, área ou fluxo para manter o desempenho.
3) Simulações confirmam que o ganho programado melhora o
O documento descreve o treinamento de um modelo de rede neural recorrente para gerar texto no estilo de William Shakespeare. O modelo é treinado em um conjunto de dados de texto de Shakespeare e, em seguida, é capaz de gerar novos textos no estilo de Shakespeare.
O documento discute vários métodos de discretização que podem ser aplicados a funções de transferência analógicas. São apresentados métodos como a transformada Z, função de transferência pulsada com seguidores, método das diferenças, transformação bilinear e transformação bilinear com pré-distorção de frequência. O documento explica as propriedades e aplicações de cada método de discretização.
Este documento apresenta 26 exercícios para aprendizagem da linguagem Ladder usando o software Clic Edit da WEG. Os exercícios cobrem tópicos como comandos básicos, reversores, problemas combinatórios, temporizadores, sequências de pistões e semáforos. O objetivo é fornecer material didático para familiarizar estudantes com a linguagem Ladder e simulação de programas em CLP.
Atividades de Inglês e Espanhol para Imprimir - AlfabetinhoMateusTavares54
Quer aprender inglês e espanhol de um jeito divertido? Aqui você encontra atividades legais para imprimir e usar. É só imprimir e começar a brincar enquanto aprende!
Atividade letra da música - Espalhe Amor, Anavitória.Mary Alvarenga
A música 'Espalhe Amor', interpretada pela cantora Anavitória é uma celebração do amor e de sua capacidade de transformar e conectar as pessoas. A letra sugere uma reflexão sobre como o amor, quando verdadeiramente compartilhado, pode ultrapassar barreiras alcançando outros corações e provocando mudanças positivas.
O Que é Um Ménage à Trois?
A sociedade contemporânea está passando por grandes mudanças comportamentais no âmbito da sexualidade humana, tendo inversão de valores indescritíveis, que assusta as famílias tradicionais instituídas na Palavra de Deus.
1. Pid digital
3 Implementação de um controlador PID digital (Matlab)
3.1 Algoritmo PID ideal
Discretizando a equação do algoritmo PID de posição:
kc t de( t )
m( t ) = k c e( t ) + ∫ e( t)dt + k c Td dt
Ti 0
(3-1)
obtém-se o sinal de controlo discreto, mk, a partir de:
(3-2) m k = k p e k + k i S k + k d (e k − e k -1 )
onde:
(3-3) Sk = Sk-1 + ek
e os novos parâmetros estão relacionados com os analógicos da seguinte forma:
⎧
⎪k p = k c
⎪
⎪ ∆T
(3-4) ⎨k i = k c
⎪ Ti
⎪ Td
⎪k d = k c ∆T
⎩
Pode-se também derivar o algoritmo de velocidade a partir de:
(3-5) ∆mk = mk - mk-1
Este tem como saída o incremento (ou decremento) no valor da variável manipulada em cada
instante (∆mk) e não o valor absoluto desta variável (mk):
(3-6) ∆m k = e k (k p + k i + k d ) - e k -1 (k p + 2k d ) + e k -2 k d
Guias práticos STR 3-1
2. Pid digital
Uma implementação do algoritmo de posição, no formato de S-function (Matlab):
function [sys, x0, str, ts] = pid_pos (t, x, u, flag, ts, kc, Ti, Td)
persistent s ek_1
if flag == 0 %inicialização
sys = [0 0 1 1 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 próxima amostra
elseif flag == 3
if t==0 ek_1=u(1); end;
kp=kc; ki=kc*ts/Ti; kd=kc*Td/ts; %Converte parametros
ek=u(1);
s = s + ek;
m=kp*ek+ki*s+kd*(ek-ek_1);
ek_1=u(1);
sys = m;
else %por defeito não retorna nada
sys = [ ];
end
Algoritmo 3-1: PID de posição em Matlab (S-function)
Repare-se que esta função assume como parâmetros de entrada kc, Ti e Td e converte-os
para os parâmetros kp, ki e kd.
Fig. 3-1: Diagrama blocos do Controlador PID discreto (posição)
Guias práticos STR 3-2
3. Pid digital
Criar o bloco PID de posição como descrito acima num modelo. A partir da janela principal
do Matlab: File->new->Model.
Os blocos podem ser guardados numa biblioteca para uso futuro. A partir da janela do
Modelo: File->new->Library abre uma janela de biblioteca. Pode-se agora arrastar o bloco
PID_posição para a biblioteca.
Na biblioteca além dos blocos devem ser guardadas também as s-functions correspondentes.
Para isso criar um directório, por ex. pid_lib, e guardar nesse directório a biblioteca com o
nome pid_lib. Copiar agora a s-function pid_pos.m para esse mesmo directório.
Para que esse directório fique registado no caminho do Matlab, de modo que as s-functions
estejam acessíveis a partir da janela principal do Matlab: File->Set path, e depois adicionar
ao caminho o directório onde está a biblioteca: pid_lib.
Pode-se agora obter o controlador PID de velocidade a partir do controlador de posição,
Algoritmo 3-1. Na janela da biblioteca:
#1 copiar o bloco PID_Posição e renomeá-lo para PID_velocidade.
#2 Abrir a máscara e mudar o nome da s-function para pid_vel
#3 Copiar o ficheiro com a s-function pid_pos.m para pid_vel.m e alterar o código para:
function [sys, x0, str, ts] = pid_vel (t, x, u, flag, ts, kc, Ti, Td)
persistent ek_ % passa a ter só uma variável persistente:
(...)
if flag == 0
% apagar a inicialização da variável: s = 0
(...=
elseif (flag == 3) % substituir por:
if t==0 ek_=ones(2,1)*u(1); end %ek_(1) -> ek-1, ek(2) -> ek-2
kp=kc; ki=kc*ts/Ti; kd=kc*Td/ts; %Converte parametros
ek=u(1);
dm=ek*(kp+ki+kd)-ek_(1)*(kp+2*kd)+ek_(2)*kd;
ek_(2)=ek_(1);
ek_(1)=ek;
sys = dm;
Algoritmo 3-2: PID de velocidade (alterações ao Algoritmo 3-1 PID de posição )
Guias práticos STR 3-3
4. Pid digital
Nota: se não fôr possível efectuar alterações na biblioteca, é porque esta está protegida. Para
a desproteger, na janela da biblioteca Edit->Unlock Library.
3.1.1 Resposta ao degrau do algoritmo PID
Vai-se agora analisar a resposta ao degrau dos controladores PID analógico e digital.
Primeiro copiar para a biblioteca o controlador analógico fornecido pela biblioteca do
Simulink. Para isso aceder à biblioteca do simulink digitando simulink <enter> na janela
principal do Matlab e arrastar o PID controller para a biblioteca pid_lib.
Agora ao ver por baixo da máscara a implementação deste controlador têm-se:
⎧P = k c
⎪ kc
⎪
(3-7) ⎨I =
⎪ Ti
⎪D = Td k c
⎩
Fig. 3-2: PID analógico Matlab
No diagrama acima as constantes têm outra designação da já referida, sendo a
correspondência dada por (3-7):
⎧P = k c
⎪
(3-8) ⎨I = Ti
⎪D = T
⎩ d
Fig. 3-3: PID analógico segundo equação (3-1)
Guias práticos STR 3-4
5. Pid digital
A versão da Fig. 3-2 é uma implementação diferente do controlador já visto, pois não segue a
equação (3-1), visto que a constante (Kc = P) apenas é aplicada ao termo proporcional, e não
a todos os 3 termos, e a constante de tempo integral está invertida.
Para alterar esta implementação para que respeite a equação (3-1) pode-se alterar o diagrama
da Fig. 3-2 de acordo com a Fig. 3-3 e renomear o bloco para PID_analógico). Repare-se
que manipulando as constantes Porporcional, Integral e Derivativa como indicado na
equação (3-7), ambos os modelos têm respostas idênticas.
Nesta disciplina vamos assumir que o modelo de PID é o dado pela equação (3-1) ou Fig.
3-3, pois os métodos de sintonia do PID estudados assumem este modelo.
Para comparar as diferentes implementações do algoritmo PID na resposta ao degrau
desenhar o diagrama abaixo:
Fig. 3-4: Diagrama blocos para resposta ao degrau do controlador PID
Para já não inclua o bloco a vermelho: actuador. Os 4 manual switches permitem ligar o
algoritmo correspondente de modo a apresentar no scope a saída deste.
Em cada bloco PID, colocar nos parâmetros Porporcional (Kc), Integral (Ti) e Derivativo
(Td), respectivamente as variáveis: Kc; Td e TI. Nos blocos PID discretos colocar também
Guias práticos STR 3-5
6. Pid digital
no parâmetro Sample Time a variável ts. No bloco step colocar no valor inicial do degrau 0 e
no valor final do degrau a variável uf. O degrau ocorre no instante de tempo 1 segundo.
Estas variáveis deverão ser definidas no workspace do Matlab e permitem definir iguais
parâmetros para todos os controladores do diagrama.
Gravar agora o modelo com o nome pid00.mdl. Este modelo não deve ser gravado no
directório onde está a biblioteca pid_lib. Escolha outro directório, p. ex STR_aula3.
Neste directório vai-se também criar um script que permita lançar o modelo e definir os
parâmetros do controlador. Este ficheiro vai chamar-se pid_step.m:
uf = 1 %Amplitude do degrau
Kc = 0.5 %define os parâmetros do controlador PID
Ti = 2
Td = 1
Ts = 0.25
pid00 %Abre modelo
Após executar a simulação deve-se obter no scope a seguinte figura:
Proporcional a Td y = Ti e
Fig. 3-5: Resposta ao degrau unitário do PID analógico e do discreto
Como se pode observar a resposta das implementações analógica e digital de posição são
muito semelhantes. Se se pretender que a resposta do controlador digital seja mais rectilínea
deve-se reduzir o intervalo de amostragem. Experimentar alterar Ts = 0.1 e executar outra
vez a simulação.
Guias práticos STR 3-6
7. Pid digital
A implementação analógica que acompanha a distribuição do simulink é uma rampa com
Kc
menor declive, pois o declive da rampa neste caso é dado por y = Ti e , e não por y = e.
Ti
Repare-se que o pico inicial na resposta é proporcional ao termo derivativo, e por isso cresce
com Td, de modo que alterando Td para 0 e executando a simulação o pico não existe.
Assim o termo derivativo pode ser sintonizado para compensar uma resposta inicial do
sistema demasiado amortecida, no entanto um valor demasiado grande pode provocar
ligeiras oscilações na resposta do sistema, impedindo-o mesmo de estabilizar.
Já a resposta do PID_velocidade não é uma rampa, mas sim uma recta paralela ao degrau de
entrada, pois constituí um incremento na posição do actuador e não a posição absoluta.
Para ensaiar o PID_velocidade vai-se simular um actuador. Este será implementado no
formato de uma s-function, actuador.m, onde os parâmetros serão o intervalo de
amostragem (ts), os valores de posição inicial (pini), mínimo (pmin) e máximo (pmax) do
actuador:
Function [sys, x0, str, ts]=actuador (t, x, u, flag, ts, pmin, pmax, pini)
persistent act %valor corrente do actuador [pmin, pmax].
if flag == 0
sys = [0 0 1 1 0 1 1];
x0 = [ ];
str = [ ];
ts = [-2 0]; %tempo de amostragem variável
%Garante valores de posição máximo mínimo e inicial coerentes
if pmin>pmax error ('Erro: Valor pmin tem de ser <= pmax!');
elseif pini>pmax act = pmax;
elseif pini<pmin act = pmin;
else act=pini; %inicializa posiçãoo do actuador
end
elseif flag == 4
ns = t / ts;
sys = (1 + floor(ns + 1e-13*(1+ns)))*ts;
elseif flag == 3
act=act+u(1); %actualiza posição do actuador
if act>pmax act = pmax; %garantido que não ultrapassa
elseif act<pmin act = pmin; %os limites fisicos pmin e pmax
end
sys = act;
else
sys = [ ];
end
Algoritmo 3-3: Actuador (S-function)
Guias práticos STR 3-7
8. Pid digital
Mascarar o bloco do actuador de acordo com a figura seguinte:
Fig. 3-6: Definição do actuador como s-function
Para já definir no actuador o valor inicial como 0, o mínimo como -20 e o máximo como 20
e o intervalo de amostragem a variável Ts.
Nota: Atenção que nos actuadores pode ser considerado um valor mínimo negativo e
simétrico do máximo sendo a posição central 0, ou então um valor mínimo nulo e igual ao
inicial.
Arrastar o bloco actuador para a biblioteca. Não esquecer que a s-function actuador.m tem
de estar guardada no directório da biblioteca pid_lib.
Guias práticos STR 3-8
9. Pid digital
Alternativamente o actuador poderia ser desenvolvido como uma montagem de blocos
simulink e mascarando o sub-sistema tal como acima:
Fig. 3-7: Diagrama blocos do actuador
Colocar o actuador no modelo pid00.mdl na posição indicada na Fig. 3-4. Executar outra
vez a simulação. Agora a resposta do PID_velocidade é igual ao PID_posição.
Se se pretender simular que os limites físicos do actuador foram ultrapassados, alterar o valor
máximo do actuador para 5 e voltar a executar a simulação. Agora a resposta do
PID_velocidade não ultrapassa esse valor:
Fig. 3-8: Resposta ao degrau unitário do PID velocidade utilizando um actuador
Guias práticos STR 3-9
10. Pid digital
3.1.2 Sintonia do controlador PID
A sintonia utilizada no exemplo anterior foi efectuada de acordo com o método de Ziegler
Nichols para um controlador analógico e convertida para parâmetros equivalentes no
controlador Digital, no entanto esta pode ser efectuada também directamente.
Se não for conhecida a função de transferência da plant esta poderá ser obtida através da
curva de reacção do processo, isto é da resposta em malha aberta ao degrau.
Assumindo que se tem o seguinte sistema de 1ª ordem, com atraso de 0.6 segundos e como
entrada um degrau de amplitude 2:
Fig. 3-9: Plant com atraso de 0.6 segundos e entrada de degrau com amplitude 2
Para processos de 1ª ordem, a curva de reacção do processo segue o padrão:
y(∞)
gain = K =
∆
t
TT = L + Tp
Fig. 3-10: Curva de reacção do processo
Neste caso particular será:
Guias práticos STR 3-10
11. Pid digital
y(∞)
Fig. 3-11: Resposta ao degrau de amplitude 2 da Plant do diagrama anterior
O valor de L pode ser obtido fazendo com que os dados do scope sejam escritos para o
workspace do Matlab, e verificando em que instante de tempo é que a resposta deixa de ser
nula.
Já o tempo em que a recta com declive R intersecta a resposta final pode ser lido através da
figura com o comando ginput, e resolvendo:
(3-9) Tp = Tt - L = 3.3353 - 0.6001 = 2.7351
Assim pode-se obter o declive da recta, isto é R:
y 0 - y1 0−4 −4
(3-10) R = = = = 1.4624
x 0 - x 1 0.6001 − 3.3353 − 2.7352
E o ganho:
H 4
(3-11) k = = =2
∆ 2
Guias práticos STR 3-11
12. Pid digital
Sendo a função de transferência dada por:
k e -L s 2 e -0.6001 s
(3-12) G(s) = =
Tp s + 1 2.7352 s + 1
Obviamente que neste caso a função de transferência correcta é conhecida:
k e -L s 2 e -0.6 s
(3-13) G(s) = =
Tp s + 1 2.5 s + 1
com L = 0.6 e:
y 0 - y1 0−4 −4
(3-14) R = = = = 1 .6
x 0 - x 1 0 .6 − 2 .5 + 0 .6 − 2 .5
Assim vai-se comparar a sintonia do PID para a função de transferência estimada (3-12) e
para a correcta, dada pela equação (3-14).
Agora a sintonia do PID pela regras de Ziegler-Nichols é dada por:
⎧ 1.2
⎪k c = R L
⎪
(3-15) ⎨Ti = 2 L
⎪T = 0.5 L
⎪ d
⎩
e de acordo com Goff:
(3-16) Ts = 0.3 L
usando a transformação para parâmetros digitais (3-4), Takahashi propôs a seguinte regra:
⎧ 1.2
⎪k p =
⎪ R (L + Ts )
⎪ 0.6 Ts
(3-17) ⎨k i =
R (L + Ts / 2 )
2
⎪
⎪ 0.5 0.6
⎪ RT ≤ k d ≤ RT
⎩ s s
Guias práticos STR 3-12
13. Pid digital
Para a função estimada com Ts = 0.3 * 0.6001 = 0.18003, têm-se então:
⎧ 1.2
⎪k p = 1.4624 * (0.6 + 0.18003) = 1.0520
⎪
⎪ 0.6 * 0.18003
(3-18) ⎨k i = = 0.1551
1.4624 * (0.6 + 0.18003 / 2 )
2
⎪
⎪ 0.5 0.6
⎪1.4624 * 0.18003 ≤ k d ≤ 1.4624 * 0.18003 ⇔ 1.8991 ≤ k d ≤ 2.279 (média 2.089)
⎩
e para a correcta, com Ts = 0.3 * 0.6 = 0.18:
⎧ 1.2
⎪k p = 1.6 * (0.6 + 0.18) = 0.9615
⎪
⎪ 0.6 * 0.18
(3-19) ⎨k i = = 0.1418
1.6 * (0.6 + 0.18 / 2 )
2
⎪
⎪ 0.5 0.6
⎪1.6 * 0.18 ≤ k d ≤ 1.6 * 0.18 ⇔ 1.7361 ≤ k d ≤ 2.0833
⎩
(média 1.9097)
Para aplicar estes parâmetros nos controladores PID já desenvolvidos as s-function
devem ser alteradas para receberem os parâmetros Kp, Ki e Kd e não os converter a
partir de Kc, Ti e Td.
Por isso antes de adicionar o controlador na malha como mostra a figura abaixo, podem ser
criados 2 novos blocos para o algoritmo de posição e velocidade.
Fig. 3-12: Exemplo de Plant controlada por PID
Estes parâmetros também podem ser estimados analiticamente através da resposta em malha
aberta, de acordo com:
∞
∫ [y(∞) − y( τ)]dτ
0
TT = Tp + L =
(3-20) y( ∞)
Guias práticos STR 3-13
14. Pid digital
Isto é a área superior entre curva de resposta em malha aberta e a resposta final y(∞) dividida
pela resposta final dá-nos o Tempo total (Tt). O atraso (L) pode ser medido verificando
quando a resposta deixa de ser nula e assim pode-se calcular a constante de tempo Tp.
Se se tiver um vector com resposta em malha fechada (y) e outro com vectores com os
tempos correspondentes (t) o seguinte script, id1.m, identifica (numericamente) a função de
transferência de 1ª ordem na resposta ao degrau de amplitude A:
function [K, Tp, L, R] = id1(y, t, A)
% Atraso
I=find(y>0)
L=t(I(1)-1)
% Constante de tempo Tp de acordo com (3-20)
yf = y(length(y));
tfi = t(length(t));
Tt = ((yf*tfi)-trapz(t,y))/yf;
Tp = Tt - L;
% Declive
R = yf / Tp; %Não necessário para este método
% Ganho
K = yf / A; % 1 pois e resposta ao degrau unitário
Algoritmo 3-4: Identificação de F.T. 1ª ordem
Os vectores podem ser retirados a partir do Scope, fazendo com que este grave as curvas
numa variável do workspace: Scope Parameters -> Data history.
Se se pretender visualizar a resposta ao degrau da função de transferência estimada pode-se
adicionar à função acima:
%Mostra resposta a FT estimada
[y,t]=step(tf(A*K, [T 1]));
y=[0; y];
t=[0; t+L];
plot(t,y)
hold on
grid
ylabel('Amplitude')
xlabel('time (s)')
title ('Estimated TF step response')
plot([L Tt], [0 yf], 'r')
hold off
Algoritmo 3-5: Mostra curva de resposta estimada
Para este caso os valores obtidos são:
Guias práticos STR 3-14
15. Pid digital
K = 1.9991 T = 2.4928 L = 0.6000 (R = 1.6039)
Que é muito próximo da FT real. Pode-se também de acordo com (3-16) e (3-17)
desenvolver um script que calcule os parâmetros para a versão discreta do PID: Kp, Ki, Kd e
Ts:
function [Kp, Ki, Kd, Ts] = pid_id_d(y, t, A)
[K,T,L,R]=id1(y,t,A);
Ts = 0.3 * L;
Kp = 1.2 / (R * (L +Ts));
Ki = (0.6 * Ts) / (R * (L + Ts/2)^2);
Kd = (0.5/(R * Ts) + 0.6/(R * Ts))/2; %Ponto medio de Kd
Algoritmo 3-6: Cálculo dos parâmetros para PID discreto
Também seria válido calcular os parâmetros para o PID analógico: Kc, Ti e Td, de acordo
com (3-15) e convertê-los para os parâmetros do modelo discreto:
function [Kp, Ki, Kd, Ts] = pid_id_ad(y, t, A)
[K,T,L,R]=id1(y,t,2);
Kc=1.2/(R*L);
Ti=2*L;
Td=0.5*L;
Ts = 0.3 * L;
Kp = Kc;
Ki = Kc*Ts/Ti;
Kd = Kc*Td/Ts;
Algoritmo 3-7: Cálculo dos parâmetros para PID Analógico e conversão para discreto
Na figura abaixo tem-se a comparação da resposta controlada por PID de posição para a
função de transferência estimada (a vermelho) e a para a correcta (a azul), sintonizado de
acordo com (3-18) e (3-19):
Guias práticos STR 3-15
16. Pid digital
4
sinal de controlo m (k) resposta em m alha aberta
3.5
3
2.5 resposta com PID
2
1.5
referência
1
0.5
0
0 5 10 15
Fig. 3-13: Controlo com PID de posição sintonizado de acordo com (3-18) e (3-19)
Na figura seguinte tem-se a comparação da resposta controlada por PID de velocidade para a
função de transferência estimada (a vermelho) e a para a correcta (a azul), sintonizado
também de acordo com (3-18) e (3-19). Repare-se que o overshoot é menor.
Fig. 3-14: Controlo com PID de velocidade sintonizado de acordo com (3-18) e (3-19)
Guias práticos STR 3-16
17. Pid digital
Por outro lado se a função de transferência fôr de 2ª ou 3ª ordem pode ser usada uma variante
do método de Ziegler-Nichols em malha fechada:
• 1: Fazer montagem em malha fechada com realimentação unitária positiva de um
controlador P puro (isto é um ganho) em série com o processo. (Ou Desligar D e I no
controlador PID)
• 2: Selecionar como referência um degrau
• 3: Aumentar o ganho P até que as oscilações tenham uma amplitude constante. Este ganho
é chamado ganho critico e designado por Ku.
• 4: Identificar o Período das oscilações Pu.
• 5: Sintonizar o controlador de acordo com:
Kc τI τD
PI 0.45 Ku Pu / 1.2
PID Ku / 1.7 ou 0.6 Ku Pu / 2 Pu / 8
Alternativamente pode ser usada a Tyreus-Luyben Tuning Chart, também
conhecida por TLC, que tem como objectivo reduzir efeitos oscilatórios e aumentar a
robustez:
Kc τI τD
PI Ku/3.2 2.2 Pu
PID Ku/2.2 2.2 Pu Pu/6.3
Veja-se um exemplo. Seja o processo de 2ª ordem dado por:
k e -L s e -0.5 s
G(s) = = 2
T1 s 2 + T2 s + x 2 s + s + x
Que corresponde ao modelo simulink da figura seguinte:
Guias práticos STR 3-17
18. Pid digital
Fig. 3-15: Controlo com PID de processo de 2º ordem
Com x = 0, a resposta do processo G(s) em malha aberta a um degrau com amplitude 0.5 é
instável, como mostra a figura abaixo, pois tem um polo duplo na origem:
Fig. 3-16: Resposta em malha aberta do processo G(s) com x = 0
Fechando o interruptor na malha de realimentação e aumentando o ganho proporcional em
série com o processo até P = 2.07 atinge-se o ganho critico Ku = P = 2.07. Pode-se agora
medir o período de oscilação nessas condições Pu=7.05.
Fig. 3-17: Resposta em condições de ganho critico com Ku=2.07 e Pu = 7.05
Guias práticos STR 3-18
19. Pid digital
Pode-se também escrever um script que faça esta análise a partir da saída acima e de Ku,
retornando os parâmetros do controlador PID analógico. Posteriormente se necessário estes
terão de ser convertidos para os parâmetros digitais:
function [Kc, Ti, Td, Pu] = pid_id_cl(y, t, Ku, TLC)
%Se TLC <> 0 usa Tyreus-Luyben chart para sintonia
%Procura 1º maximo
max=0;
for x=1:length(t)
if y(x) < max break; end;
max=y(x);
x=x+1;
end
%Procura próximo mínimo
min=max;
for x=x:length(t)
if y(x) > min break; end;
min=y(x);
x=x+1;
end
Pu=t(x);
if TLC == 0
%Ziegler Nichols
Kc=Ku/1.7; % ou Ku*0.6;
Ti=Pu/2;
Td=Pu/8;
else
%Tyreus-Luyben
Kc=Ku/2.2;
Ti=Pu*2.2;
Td=Pu/6.3;
end
Algoritmo 3-8: Cálculo dos parâmetros para PID Analógico em malha fechada
Para este caso os parâmetros estimados são:
Kc = 1.2176 Ti = 3.5250 Td = 0.8812 Pu = 7.0500
O intervalo de amostragem foi seleccionado para 0.01 segundos. A resposta apresenta-se a
seguir:
Guias práticos STR 3-19
20. Pid digital
Fig. 3-18: Controlo com PID de posição sintonizado de acordo com Algoritmo 3-1
Modificando agora o processo, fazendo x=1, a resposta em malha aberta não é instável e não
apresenta erro em regime estacionário:
Fig. 3-19: Resposta em malha aberta do processo G(s) com x = 1
Para o ganho critico Ku=2.12 em malha fechada obtém-se Pu = 5.84, e os parâmetros
estimados são:
Kc = 1.2471 Ti = 2.9200 Td = 0.7300
Com um intervalo de amostragem de 0.01 segundos, a resposta é:
Guias práticos STR 3-20
21. Pid digital
0.8
0.7
malha aberta
posição
0.6
0.5
0.4
0.3
velocidade
0.2
velocidade com Td+1.2
0.1
0
0 5 10 15 20 25 30
Fig. 3-20: Controlo com PID de posição sintonizado de acordo com Algoritmo 3-1
Como se pode observar a sintonia para o algoritmo de velocidade precisa ainda de alguma
afinação. Somando 1.2 ao valor de Td encontra-se uma melhor afinação.
3.2 Formas alternativas do algoritmo PID
3.2.1 Transferência sem saltos (bumpless transfer)
Seguidamente apresenta-se um algoritmo modificado de modo a possibilitar a transferência
do controlo automático para o manual o mais suavemente possível. O controlo manual
assumido é:
Fig. 3-21: Simulação de controlo manual
Onde a intenção corresponde ao sinal de referência ou setpoint desejado, o olho a uma leitura
da saída do processo e a mão ao sinal de controlo a aplicar ao processo. O ganho pode ser
variado de modo amplificar a referência reduzindo o erro em regime estacionário. Para este
caso considere-se G = 1.5.
Guias práticos STR 3-21
22. Pid digital
Neste caso a intenção ou a referência, é multiplicada por um factor de 1.5 de modo a
eliminar o erro em estado estacionário sem afectar a estabilidade.
Fig. 3-22: Simulação de bumpless transfer para método 1
No instante de tempo t = 15, é efectuada a transição do modo manual para automático. As
alterações ao algoritmo PID de posição para o método 1:
function [sys, x0, str, ts] = pid_bump_01 (t, x, u, flag, ts, kp, ki, kd, tt, MV)
persistent s ek_1
(...)
if flag == 3 %tt é o instante de transição manual -> automático
if t > tt-1 %Simula ligação do controlador PID neste instante
ek_1 = u(1);
s = 0;
end
ek=u(1);
s = s + ek;
Guias práticos STR 3-22
23. Pid digital
m = kp*ek + ki*s + kd*(ek-ek_1) + MV;
ek_1 = ek;
sys = m;
Algoritmo 3-9: PID bumpless método 1 (alterações ao Algoritmo 3-1 PID de posição )
A figura seguinte mostra a resposta do algoritmo PID de posição na transferência do modo
de controlo manual para automático (que é diferente do método 1 com MV=0):
Fig. 3-23: Resposta sem bumpless transfer (t = 15 segundos)
Na figura seguinte encontra-se a resposta com o algoritmo modificado para possibilitar a
transferência sem saltos pelo método 1. O valor de MV = 1 é o ponto de operação do
controlador mk, ou a posição do actuador, quando da transição e pode ser obtido através de
ensaios.
A sintonia PID é efectuada de acordo com o já determinado em (3-19):
kp=0.9615 ki=0.1418 kd=(1.7361+2.0833)/2 ts=0.18
Guias práticos STR 3-23
24. Pid digital
Como já referido o instante de transição é em: tt=15.
Fig. 3-24: Resposta bumpless transfer (método 1) em t = 15 segundos (MV = 1)
Se se variar MV a transição apresentará um salto.
A seguir vai ser ensaiado o algoritmo de velocidade.
Fig. 3-25: Simulação de controlo manual
Repare-se que neste caso o controlo manual terá de ser alterado de modo que o actuador seja
incrementado ou decrementado, isto é pretende-se a variação no sinal de controlo de acordo
com (3-5). Então o controlo manual terá de ser redesenhado de acordo com a figura anterior.
Deve ser fornecido também o intervalo de amostragem ao actuador de modo que o sinal mk
seja atrasado um instante de amostragem.
Abaixo tem-se as alterações no modelo para utilizar o algoritmo PID de velocidade:
Guias práticos STR 3-24
25. Pid digital
Fig. 3-26: Simulação de bumpless transfer para método 3 (algoritmo de velocidade)
A figura abaixo apresenta a resposta:
Fig. 3-27: Resposta bumpless transfer (método 3 algoritmo de velocidade) em t = 15 seg.
Assim consegue-se um transferência sem salto, sem ter de se ensaiar ou monitorizar
constantes tais como MV.
Guias práticos STR 3-25