Saturday, 21 October 2017

Moving average pid


Resultados do exame da cidade de Londres Resultados do nível A Estamos satisfeitos por relatar outro ano bem sucedido de resultados de nível A, com mais de dois terços do grupo conseguindo pelo menos um A. Houve resultados fantásticos em línguas estrangeiras modernas com 33 graus A, Em comparação com uma média nacional de aproximadamente 8,2. Nos assuntos combinados da Ciência, houve uma impressionante média de 94 graus A-B atribuídos. 100 dos alunos receberam uma nota A ou A em Tecnologia de Design, como tem sido o caso nos últimos 6 anos. Os resultados matemáticos também foram excelentes, com 87 A-A. Inglês resultados foram igualmente impressionante, com mais de metade dos alunos atingindo. As notas de Belas Artes foram premiadas com um excelente número de. As meninas continuam a impressionar todos nós com sua determinação eo orgulho que levam em seu trabalho. Seus resultados nos mostram o que o ensino inspirador juntamente com uma sede genuína de aprendizagem pode alcançar. Estou muito grato ao pessoal por tudo o que eles fizeram para as meninas. Estamos muito satisfeitos que tantas das raparigas vão continuar a perseguir os seus interesses acadêmicos nas universidades de sua escolha. Sabemos que o CLSG os preparou fantasticamente para serem aprendizes ao longo da vida e para enfrentar com confiança os desafios futuros. Sra. Ena Harrop, Diretora Embora eu esteja extremamente satisfeito com meus três As, o que eu vou tirar da cidade acima de tudo é o apoio que me senti na escola. Sinto-me valorizado não só academicamente, mas também pessoalmente, e sem isso eu não teria sido capaz de alcançar esses resultados. Os professores e alunos da cidade me permitiram prosperar. Ellie Arnold O apoio de amigos e funcionários do CLSG me puxou por alguns anos difíceis. Muito obrigado CLSG por me ajudar a garantir três Como e meu lugar de sonho na Universidade de Oxford. Alannah Burns Estou entusiasmado com os meus resultados e muito feliz que todos trabalham tem pago. Vai ser triste deixar a cidade depois de 11 anos, mas eu estou realmente animado sobre passar para a universidade no próximo ano e estudar o assunto que mais gosto. Jennifer Griggs Resultados do GCSE Os alunos da Escola de Meninas da City of London estão celebrando outro ano marcante de resultados do GCSE. Um impressionante 78 de notas foi premiado com um A, e 95 de todas as notas foram A-A grades. Quase metade dos alunos alcançou 10 A ou mais, destacando a dedicação e os sucessos individuais das meninas. Um estudante recebeu um notável 12 As, com aproximadamente um terço da coorte alcançando Como em todos os seus sujeitos. As raparigas obtiveram resultados particularmente agradáveis ​​nas Línguas Estrangeiras Modernas, com uma média de 93 alunos conseguindo notas A nas seis línguas. Sobre os assuntos científicos (Biologia, Química e Física) houve uma média fantástica de mais de 88 A-A. 87 As notas foram alcançadas na literatura inglesa, com resultados igualmente notáveis ​​em História e Música, com 82 e 85 graus A, respectivamente. As meninas da cidade fizeram mais uma vez fantàstica bem em seus exams de GCSE este ano. Os seus resultados são um testemunho do seu empenho e trabalho árduo e do excelente ensino e assistência pastoral que receberam. Que tantas das raparigas tenham alcançado resultados tão notáveis ​​enquanto também se destacaram em suas atividades extracurriculares é ainda mais impressionante. Estamos ansiosos para recebê-los de volta em setembro, pronto para embarcar em seus estudos de sexto formulário. Ena Harrop, Directora Estou muito feliz com os meus resultados este ano, Im sobre a lua Gostaria de agradecer a todos os meus professores e estou ansioso para passar os próximos dois anos na cidade. Caroline Hug Estou muito satisfeito com meus resultados e eu aprecio tudo o que meus professores fizeram para me apoiar, Meu tempo na Cidade me forneceu uma variedade de habilidades para me ajudar com o aprendizado futuro. Roxy Brill Parabéns a todos os alunos pelo seu trabalho árduo e determinação (Esta é a Modificação 2 numa série maior sobre a escrita de um sólido algoritmo PID) O Problema Esta modificação vai ajustar o termo derivativo um pouco. O objetivo é eliminar um fenômeno conhecido como 8220Derivative Kick8221. A imagem acima ilustra o problema. Desde errorSetpoint-Input, qualquer alteração no Setpoint causa uma mudança instantânea de erro. A derivada dessa mudança é infinita (na prática, já que dt isn8217t 0 acaba sendo um número realmente grande.) Esse número é alimentado na equação pid, o que resulta em um pico indesejável na saída. Felizmente, há uma maneira fácil de se livrar disso. A Solução Acontece que a derivada do Erro é igual a derivada negativa de Entrada, EXCEPTO quando o Setpoint está mudando. Isso acaba sendo uma solução perfeita. Em vez de adicionar (derivado Kd de Erro), subtraímos (derivado Kd de Entrada). Isso é conhecido como 8220Derivative em Measurement8221 As modificações aqui são bastante fácil. We8217re substituindo dError por - dInput. Em vez de lembrar o lastError, agora lembramos o lastInput O Resultado Here8217s o que essas modificações nos trazem. Observe que a entrada ainda parece aproximadamente a mesma. Então nós obtemos o mesmo desempenho, mas nós don8217t emitem um ponto de saída enorme cada vez que as mudanças de ponto de ajuste. Isso pode ou não ser um grande negócio. Tudo depende de quão sensível sua aplicação é a saída picos. A maneira que eu vejo isso, porém, ele doesn8217t ter mais trabalho para fazê-lo sem chutar, então por que não fazer as coisas para a direita Next Esta entrada foi postada na sexta-feira, 15 de abril de 2017 às 3:02 pm e é arquivada sob codificação. PID. Você pode seguir qualquer resposta a esta entrada através do feed RSS 2.0. Você pode deixar uma resposta. Ou trackback de seu próprio site. 9 Responses to 8220Improving the Beginners PID 8211 Derivativo Kick8221Account Desativado Verificação de Email Necessário Quase Terminado Registro Obrigado por Registrando Criar Nova Senha Criar Nova Senha Entrar para Concluir a Conta Merge Reenviar Verificação Verificação de Email Email Enviada Email Verificada Alterar Senha Alterada Senha Criar Nova Senha Criar Novo Tim Wescotts PID sem PhD foi originalmente publicado Embedded Systems Programming em outubro de 2000. O artigo se tornou um grande sucesso ao longo dos anos e foi reutilizado por outros sites , Como EE Times India, e ligada por muitos sites, como a Wikipedia. Sabíamos que este era um artigo popular e permaneceu assim até que se tornou indisponível quando redesenhamos nosso site em julho de 2010. A equipe da Embedded está trabalhando diligentemente para restaurar todo o nosso conteúdo antigo e disponibilizar conteúdos nunca antes publicados em breve. Aqui está o PDF completo do artigo PID sem um PhD. Nota: Este artigo PDF está sob copyright da revista Embedded Systems Design e não pode ser repostado em outro lugar sem permissão. O texto original do artigo é propriedade de Tim Wescott e não pode ser usado sem permissão do autor. Por favor, ligue para o artigo, em vez disso. Abaixo está a versão HTML do artigo. Entre em contato conosco para mais informações ou pedidos: Susan Rambo Editor Gerente, revista ESD susan. ramboubm PID Sem um PhD PID (proporcional, integral, derivativo) controle não é tão complicado quanto parece. Siga estas etapas de implementação simples para resultados rápidos. No trabalho, eu sou um dos três assalariados designados, eo único que implementa loops de controle em software. Como resultado, muitas vezes tenho a oportunidade de projetar loops de controle digital para vários projetos. Descobri que, embora existam certamente problemas de controle que exigem toda a experiência que posso trazer para suportar, um grande número de problemas de controle pode ser resolvido com controladores simples, sem recorrer a qualquer teoria de controle em tudo. Este artigo irá dizer-lhe como implementar e ajustar um controlador simples sem entrar em matemática pesada e sem exigir que você aprenda qualquer teoria de controle. A técnica usada para ajustar o controlador é um método experimentado e verdadeiro que pode ser aplicado a quase qualquer problema de controle com sucesso. Controle PID O controlador PID tem sido usado por mais de um século em várias formas. Gozou popularidade como um dispositivo puramente mecânico, como um dispositivo pneumático, e como um dispositivo eletrônico. O controlador digital PID usando um microprocessador recentemente entrou em sua própria indústria. Como você verá, é uma tarefa simples incorporar um controlador PID em seu código. PID significa proporcional, integral, derivado. Estes três termos descrevem os elementos básicos de um controlador PID. Cada um desses elementos executa uma tarefa diferente e tem um efeito diferente sobre o funcionamento de um sistema. Em um controlador PID típico, esses elementos são movidos por uma combinação do comando do sistema e do sinal de realimentação do objeto que está sendo controlado (normalmente referido como a planta). Suas saídas são somadas para formar a saída do sistema. A Figura 1 mostra um diagrama de blocos de um controlador PID básico. Neste caso, o elemento derivado é conduzido apenas a partir da realimentação da planta. O feedback da planta é subtraído do sinal de comando para gerar um erro. Este sinal de erro acciona os elementos proporcional e integral. Os sinais resultantes são adicionados em conjunto e utilizados para conduzir a planta. Eu não descrevi o que esses elementos ainda fazem - bem, chego a isso mais tarde. Incluí um posicionamento alternativo para o elemento proporcional (linhas pontilhadas) - esta pode ser uma localização melhor para o elemento proporcional, dependendo de como você deseja que o sistema responda aos comandos. Plantas de amostra Para discutir este assunto com qualquer senso de realidade precisamos de alguns exemplos de sistemas. Ill usam três plantas de exemplo ao longo deste artigo, e mostram os efeitos da aplicação dos vários controladores para eles: Um motor que conduz um trem de engrenagem Um sistema de posicionamento de precisão Um sistema térmico Cada um desses sistemas tem características diferentes e cada um requer uma estratégia de controle diferente para Obter o melhor desempenho. Motor e engrenagem O primeiro exemplo de instalação é um motor que acciona um trem de engrenagens, sendo a posição de saída do trem de engrenagem monitorizada por um potenciómetro ou algum outro dispositivo de leitura de posição. Você pode ver este tipo de mecanismo de condução de um carro em uma impressora, ou um mecanismo de regulador de pressão em um sistema de controle de cruzeiro automóvel, ou quase qualquer outro controlador de posição moderadamente preciso. A Figura 2 ilustra um diagrama de um tal sistema. O motor é accionado por uma tensão que é comandada por software. A saída do motor é engrenada para baixo para dirigir o mecanismo real. A posição deste accionamento final é medida pelo potenciómetro. Um motor DC accionado por uma tensão quer ir a uma velocidade constante que seja proporcional à tensão aplicada. Normalmente, a armadura do motor tem alguma resistência que limita a sua capacidade de acelerar, de modo que o motor terá algum atraso entre a mudança na tensão de entrada ea mudança resultante na velocidade. O trem de engrenagem leva o movimento do motor e multiplica-lo por uma constante. Finalmente, o potenciômetro mede a posição do eixo de saída. A Figura 3 mostra a resposta de passo da combinação de motor e engrenagem. Im usando um valor de constante de tempo de t0 0,2 s. A resposta de passo de um sistema é apenas o comportamento da saída em resposta a uma entrada que vai de zero a algum valor constante no tempo t 0. Uma vez que estavam lidando com exemplos bastante genéricos aqui eu mostrei a resposta do passo como uma fração da escala completa , Assim que vai a 1. A figura 3 mostra a entrada do passo e a resposta do motor. A resposta do motor começa lentamente devido à constante de tempo, mas uma vez que está fora do caminho a posição do motor rampas a uma velocidade constante. Atuador de precisão Às vezes é necessário controlar a posição de algo muito precisamente. Um sistema de posicionamento preciso pode ser construído usando um estágio mecânico movendo-se livremente, uma bobina do altofalante (um arranjo da bobina e do ímã), e um transdutor de posição sem contato. Você pode esperar para ver esse tipo de mecanismo de estabilização de um elemento de um sistema óptico, ou localizar algum outro equipamento ou sensor. A Figura 4 mostra um tal sistema. O software comanda a corrente na bobina. Esta corrente configura um campo magnético que exerce uma força no ímã. O íman é ligado ao estágio, que se move com uma aceleração proporcional à corrente da bobina. Finalmente, a posição do estágio é monitorada por um transdutor de posição sem contato. Com esta disposição, a força no ímã é independente do movimento do estágio. Felizmente isso isola o palco de efeitos externos. Infelizmente, o sistema resultante é muito escorregadio, e pode ser um desafio para o controle. Além disso, os requisitos elétricos para construir um bom amplificador de saída de corrente e interface de transdutor sem contato podem ser desafiadores. Você pode esperar que se você está fazendo um projeto como este você é um membro de uma equipe bastante talentosa (ou você está trabalhando em um projeto de curta duração). As equações de movimento para este sistema são bastante simples. A força no estágio é proporcional ao comando de accionamento sozinho, de modo que a aceleração do sistema é exactamente proporcional ao accionamento. A resposta de passo deste sistema por si só é uma parábola, como mostrado na Figura 5. Como veremos mais tarde, isso torna o problema de controle mais desafiador por causa da lentidão com que o estágio começa a se mover e seu entusiasmo para continuar se movendo uma vez que ele começa a ir. Controle de temperatura O terceiro exemplo de uso de plantas é um aquecedor. A Figura 6 ilustra um diagrama de um sistema de exemplo. O recipiente é aquecido por um aquecedor eléctrico e a temperatura do seu conteúdo é detectada por um dispositivo de detecção de temperatura. Sistemas térmicos tendem a ter respostas muito complexas. Eu vou ignorar um pouco de detalhe e dar um modelo muito aproximado. A menos que seus requisitos de desempenho são graves, um modelo preciso não é necessário. A Figura 7 mostra a resposta do passo do sistema a uma alteração em Vd. Ive usado constantes de tempo de t1 0,1 s e t2 0,3 s. A resposta tende a resolver a uma temperatura constante para uma determinada unidade, mas pode demorar muito tempo a fazê-lo. Além disso, sem muitos isolamentos, os sistemas térmicos tendem a ser muito sensíveis aos efeitos externos. Este efeito não é mostrado na figura, mas será bem investigá-lo mais tarde no artigo. Controladores Os elementos de um controlador PID aqui apresentados tomam sua entrada a partir da saída da planta medido ou do sinal de erro, que é a diferença entre a saída da planta eo comando do sistema. Eu vou escrever o código de controle usando ponto flutuante para manter detalhes de implementação fora da discussão. Cabe a você adaptar isso se você estiver indo para implementar o seu controlador com inteiro ou outro aritmética de ponto fixo. Vou assumir uma chamada de função como mostrado abaixo. À medida que a discussão evolui, você verá como a estrutura de dados e os internos da função se configuram. A razão pela qual eu passar o erro para a rotina de atualização PID em vez de passar o comando é que às vezes você quer jogar truques com o erro. Deixando de fora o cálculo de erro no código principal torna a aplicação do PID mais universal. Esta função será usada da seguinte forma: Proporcional O controle proporcional é o controle de feedback mais fácil de implementar, eo controle proporcional simples é provavelmente o tipo mais comum de loop de controle. Um controlador proporcional é apenas o sinal de erro multiplicado por uma constante e alimentado para o inversor. O termo proporcional é calculado com o seguinte código: A Figura 8 mostra o que acontece quando você adiciona feedback proporcional ao motor e ao sistema de engrenagens. Para ganhos pequenos (kp 1) o motor vai para o alvo correto, mas ele faz isso muito lentamente. Aumentar o ganho (kp 2) acelera a resposta a um ponto. Além desse ponto (kp 5, kp 10) o motor começa mais rápido, mas ultrapassa o alvo. No final o sistema não resolver qualquer mais rápido do que teria com menor ganho, mas há mais overshoot. Se mantivéssemos aumentar o ganho, chegaríamos eventualmente a um ponto em que o sistema apenas oscilava ao redor do alvo e nunca se estabilizava - o sistema seria instável. O motor e a engrenagem começam a ultrapassar com ganhos elevados devido ao atraso na resposta do motor. Se você olhar para trás na Figura 2. Você pode ver que a posição do motor não começa ramping acima imediatamente. Este atraso, além de alto ganho de realimentação, é o que causa o overshoot visto na Figura 8. A Figura 9 mostra a resposta do atuador de precisão apenas com feedback proporcional. O controle proporcional sozinho obviamente não ajuda este sistema. Há tanto atraso na planta que não importa como baixo o ganho é, o sistema oscilará. Como o ganho é aumentado, a freqüência da saída aumentará, mas o sistema simplesmente não vai resolver. A Figura 10 mostra o que acontece quando você usa realimentação proporcional pura com o controlador de temperatura. Im mostrando a resposta do sistema com uma perturbação devido a uma alteração na temperatura ambiente em t 2s. Mesmo sem a perturbação você pode ver que o controle proporcional doesnt obter a temperatura para a configuração desejada. Aumentar o ganho ajuda, mas mesmo com kp 10 a saída ainda está abaixo do alvo, e você está começando a ver um forte overshoot que continua a viajar para frente e para trás (isso é chamado de toque). Como os exemplos anteriores mostram, um controlador proporcional sozinho pode ser útil para algumas coisas, mas não ajuda sempre. As plantas que têm atraso demais, como o atuador de precisão, não podem ser estabilizadas com controle proporcional. Algumas plantas, como o controlador de temperatura, não podem ser levadas ao ponto de ajuste desejado. As plantas como a combinação do motor e da engrenagem podem trabalhar, mas podem necessitar ser conduzidas mais rapidamente do que é possível com controle proporcional sozinho. Para resolver esses problemas de controle você precisa adicionar controle integral ou diferencial ou ambos. Controle Integral Integral é usado para adicionar precisão a longo prazo a um loop de controle. É quase sempre usado em conjunto com controle proporcional. O código para implementar um integrador é mostrado abaixo. O estado do integrador, iState é a soma de todas as entradas precedentes. Os parâmetros iMin e iMax são os valores mínimos e máximos permitidos para o integrador. O controle integral por si só normalmente diminui a estabilidade, ou o destrói completamente. A Figura 11 mostra o motor e a engrenagem com controle integral puro (pGain 0). O sistema não resolve. Como o atuador de precisão com controle proporcional, o sistema de motor e engrenagem com controle integral sozinho irá oscilar com balanços maiores e maiores até algo atingir um limite. (Esperemos que o limite não seja quebrável). A Figura 12 mostra o sistema de controle de temperatura com controle integral puro. Este sistema leva muito mais tempo para se estabelecer do que a mesma planta com controle proporcional (veja a Figura 10), mas observe que quando ele se instala, ele se ajusta ao valor-alvo, mesmo com a perturbação adicionada. Mão doesnt exigem resolução rápida, este pode ser um sistema viável. A Figura 12 mostra por que usamos um termo integral. O estado integrador lembra tudo o que aconteceu antes, que é o que permite ao controlador cancelar quaisquer erros de longo prazo na saída. Esta mesma memória também contribui para a instabilidade - o controlador está sempre respondendo tarde demais, depois que a planta se acelera. Para estabilizar os dois sistemas anteriores, você precisa de um pouco de seu valor presente, que você recebe de um termo proporcional. A Figura 13 mostra o motor e a engrenagem com controle proporcional e integral (PI). Compare isso com as Figuras 8 e 11. A posição demora mais para resolver do que o sistema com controle proporcional puro, mas não vai resolver para o lugar errado. A Figura 14 mostra o que acontece quando você usa o controle PI no sistema de aquecimento. O aquecedor ainda se ajusta para a temperatura alvo exata, como com o controle integral puro (veja a Figura 12), mas com controle PI, ele se acalma duas a três vezes mais rápido. Esta figura mostra a operação muito perto do limite da velocidade atingível usando o controle PI com esta planta. Antes de deixar a discussão dos integradores, há duas coisas mais que eu preciso apontar. Primeiro, uma vez que você está somando o erro ao longo do tempo, o tempo de amostragem que você está executando torna-se importante. Em segundo lugar, você precisa prestar atenção ao intervalo de seu integrador para evitar windup. A taxa que o estado do integrador muda é igual ao erro médio multiplicado pelo ganho do integrador multiplicado pela taxa de amostragem. Porque o integrador tende a suavizar as coisas a longo prazo você pode obter afastado com uma taxa de amostragem um tanto desigual, mas precisa de média para fora a um valor constante. Na pior das hipóteses, sua taxa de amostragem deve variar em não mais de 20 em qualquer intervalo de 10 amostras. Você pode mesmo começar afastado com faltando algumas amostras contanto que sua taxa de amostragem média permanecer dentro dos limites. No entanto, para um controlador PI eu prefiro ter um sistema onde cada amostra cai dentro de 1 a 5 do tempo de amostragem correta e uma taxa média de longo prazo que está bem no botão. Se você tem um controlador que precisa empurrar a planta duramente, sua saída do controlador gastará quantidades significativas de tempo fora dos limites de o que sua movimentação pode realmente aceitar. Esta condição é chamada de saturação. Se você usar um controlador PI, então todo o tempo gasto em saturação pode fazer com que o estado do integrador cresça (wind up) para valores muito grandes. Quando a planta atinge o alvo, o valor do integrador ainda é muito grande, de modo que a planta vai além do alvo enquanto o integrador se desenrola e o processo inverte. Esta situação pode ficar tão ruim que o sistema nunca se acalma, mas apenas lentamente oscila em torno da posição-alvo. A Figura 15 ilustra o efeito do enrolamento do integrador. Eu usei o motor controlador da Figura 13. E limitou o accionamento do motor a 0,2. Não só a saída do controlador é muito maior do que a unidade disponível para o motor, mas o motor mostra severa superação. O motor realmente atinge seu alvo em cerca de cinco segundos, mas não inverte o sentido até oito segundos, e não resolver até 15 segundos se passaram. A maneira mais fácil e mais direta de lidar com o windup do integrador é limitar o estado do integrador, como mostrei em meu exemplo de código anterior. A Figura 16 mostra o que acontece quando você toma o sistema na Figura 15 e limita o termo do integrador à saída de unidade disponível. A saída do controlador ainda é grande (devido ao termo proporcional), mas o integrador não se enrola muito e o sistema começa a se estabelecer em cinco segundos e termina em cerca de seis segundos. Observe que, com o exemplo de código acima, você deve escalar o iMin eo iMax sempre que você alterar o ganho do integrador. Geralmente você pode apenas definir o integrador mínimo e máximo para que a saída do integrador corresponde ao mínimo e máximo da unidade. Se você souber que seus distúrbios serão pequenos e você quiser uma resolução mais rápida, você pode limitar o integrador ainda mais. Diferencial Eu nem mostrei o atuador de precisão na seção anterior. Isso ocorre porque o atuador de precisão não pode ser estabilizado com controle PI. Em geral, se você não pode estabilizar uma planta com controle proporcional, você não pode estabilizá-lo com controle PI. Sabemos que o controle proporcional lida com o comportamento atual da planta, e que o controle integral lida com o comportamento passado da planta. Se tivéssemos algum elemento que prevê o comportamento da planta, então isso pode ser usado para estabilizar a planta. Um diferenciador fará o truque. O código abaixo mostra o termo diferencial de um controlador PID. Eu prefiro usar a posição real da planta em vez do erro porque isso faz com que transições mais suaves quando o valor do comando muda. O termo diferencial em si é o último valor da posição menos o valor atual da posição. Isto dá-lhe uma estimativa aproximada da velocidade (delta positionsample time), que prediz onde a posição será em um tempo. Com o controle diferencial você pode estabilizar o sistema de atuador de precisão. A Figura 17 mostra a resposta do sistema de atuador de precisão com controle proporcional e derivado (PD). Este sistema se instala em menos de 12 segundos, em comparação com vários segundos para os outros sistemas. A Figura 18 mostra o sistema de aquecimento com controle PID. Você pode ver a melhoria de desempenho a ser tido usando controle PID completo com esta planta. Controle diferencial é muito poderoso, mas também é o mais problemático dos tipos de controle apresentados aqui. Os três problemas que você provavelmente irá experimentar são irregularidades de amostragem, ruído e oscilações de alta freqüência. Quando eu apresentei o código para um elemento diferencial, mencionei que a saída é proporcional à mudança de posição dividida pelo tempo de amostragem. Se a posição está mudando a uma taxa constante, mas seu tempo de amostragem varia de amostra para amostra, você vai ter ruído em seu termo diferencial. Desde que o ganho diferencial é geralmente alto, este ruído será amplificado muito. Quando você usa controle diferencial você precisa prestar muita atenção para a amostragem mesmo. Eu digo que você quer que o intervalo de amostragem seja consistente dentro de 1 do total em todos os momentos - quanto mais próximo, melhor. Se você não pode definir o hardware para impor o intervalo de amostragem, projetar seu software para amostra com alta prioridade. Você não tem que realmente executar o controlador com precisão tão rígida-apenas certifique-se a conversão ADC real acontece no momento certo. Pode ser melhor colocar toda sua amostragem em uma tarefa ISR ou muito alta prioridade e, em seguida, executar o código de controle de uma forma mais relaxada. Controle diferencial sofre de problemas de ruído, porque o ruído é geralmente distribuídos de forma relativamente uniforme em todo o espectro de freqüência. Os comandos de controle e as saídas da planta, entretanto, geralmente têm a maior parte de seu conteúdo em freqüências mais baixas. Controle proporcional passa o ruído sem ser molestado. O controle integral mede seu sinal de entrada, que tende a matar o ruído. Controle diferencial melhora os sinais de alta freqüência, portanto, melhora o ruído. Olhe para os ganhos diferenciais que Ive definido sobre as plantas acima, e pensar no que vai acontecer se você tem ruído que torna cada amostra um pouco diferente. Multiplique esse pouco por um ganho diferencial de 2.000 e pense no que isso significa. Você pode filtro passa-baixa sua saída diferencial para reduzir o ruído, mas isso pode afetar severamente a sua utilidade. A teoria por trás de como fazer isso e como determinar se ele vai funcionar está além do escopo deste artigo. Provavelmente, o melhor que você pode fazer sobre esse problema é olhar para a probabilidade de ver qualquer ruído, quanto custará para obter entradas silenciosas e quão mal você precisa do alto desempenho que você recebe do controle diferencial. Uma vez que você trabalhou isto fora, você pode evitar o controle diferencial completamente, falar o seu pessoal de hardware em obter-lhe uma menor entrada de ruído, ou olhar para um especialista em sistemas de controle. O texto completo do código do controlador PID é mostrado na Listagem 1 e está disponível em eetimesdesignembeddedsource-code4200393Wescott-txt. Listagem 1: Código do controlador PID Ajuste A coisa agradável sobre o ajuste de um controlador PID é que você não precisa ter uma boa compreensão da teoria de controle formal para fazer um bom trabalho dele. Cerca de 90 dos aplicativos de controladores de malha fechada do mundo fazem muito bem, de fato, com um controlador que é ajustado apenas bastante bem. Se puder, ligue o sistema a algum equipamento de teste ou escreva algum código de depuração para permitir que você veja as variáveis ​​apropriadas. Se o seu sistema é lento o suficiente você pode cuspir as variáveis ​​adequadas para fora em uma porta serial e gráficos-los com uma planilha. Você quer ser capaz de olhar para a saída da unidade ea saída da planta. Além disso, você quer ser capaz de aplicar algum tipo de sinal de onda quadrada para a entrada de comando do seu sistema. É bastante fácil escrever algum código de teste que irá gerar um comando de teste adequado. Depois de preparar a instalação, defina todos os ganhos para zero. Se você suspeitar que não precisará de controle diferencial (como o motor eo exemplo de engrenagem ou o sistema térmico), então salte para a seção que discute o ajuste do ganho proporcional. Caso contrário, comece ajustando seu ganho diferencial. A maneira como o controlador é codificado não é possível usar o controle diferencial sozinho. Defina seu ganho proporcional para algum valor pequeno (um ou menos). Verifique se o sistema funciona. Se ele oscila com ganho proporcional você deve ser capaz de curá-lo com ganho diferencial. Comece com cerca de 100 vezes mais ganho diferencial do que o ganho proporcional. Observe o sinal da unidade. Comece agora a aumentar o ganho diferencial até ver oscilações, excesso de ruído ou excesso (mais de 50) de excesso na unidade ou saída da planta. Observe que a oscilação de muito ganho diferencial é muito mais rápida do que a oscilação de não o suficiente. Eu gosto de empurrar o ganho até o sistema está à beira da oscilação, em seguida, voltar o ganho fora por um fator de dois ou quatro. Certifique-se de que o sinal da unidade ainda parece bom. Neste ponto, o sistema provavelmente estará respondendo muito lentamente, então é hora de ajustar os ganhos proporcionais e integrais. Se já não estiver definido, ajuste o ganho proporcional para um valor inicial entre 1 e 100. Seu sistema provavelmente mostrará um desempenho terrivelmente lento ou oscilará. Se você ver oscilação, solte o ganho proporcional por fatores de oito ou 10 até a oscilação parar. Se você não vê a oscilação, aumente o ganho proporcional por fatores de oito ou 10 até que você comece a ver a oscilação ou overshoot excessivo. Como com o controlador diferencial, eu normalmente sintonizar até o ponto de excesso demais, em seguida, reduzir o ganho por um fator de dois ou quatro. Uma vez que você está perto, afinar o ganho proporcional por fatores de dois até que você gosta do que você vê. Depois de ter seu ganho proporcional definido, comece a aumentar o ganho integral. Seus valores iniciais provavelmente serão de 0,0001 a 0,01. Aqui, novamente, você quer encontrar o intervalo de ganho integral que lhe dá desempenho razoavelmente rápido sem excesso demais e sem estar muito perto de oscilação. Outras questões A menos que você esteja trabalhando em um projeto com parâmetros de desempenho muito críticos, você pode obter com ganhos de controle que estão dentro de um fator de dois do valor correto. Isso significa que você pode fazer todas as suas multiplicações com turnos. Isso pode ser muito útil quando você está trabalhando com um processador lento. Taxa de amostragem Até agora Ive só falou sobre as taxas de amostragem em termos de quão coerentes eles precisam ser, mas eu havent disse-lhe como decidir antecipadamente o que a taxa de amostragem precisa ser. Se sua taxa de amostragem for muito baixa, talvez você não consiga alcançar o desempenho desejado, devido ao atraso adicional da amostragem. Se sua taxa de amostragem for muito alta você criará problemas com o ruído em seu diferenciador e estouro em seu integrador. A regra geral para os sistemas de controle digital é que o tempo de amostragem deve estar entre 110 e 1100 do tempo de sedimentação do sistema desejado. O tempo de ajuste do sistema é o tempo decorrido desde o momento em que a unidade sai da saturação até que o sistema de controle tenha efetivamente liquidado. Se você olhar para a Figura 16. O controlador sai de saturação em cerca de 5,2 s, e se estabeleceu em cerca de 6,2 s. Se você pode viver com o segundo tempo de resolução que você poderia fugir com uma taxa de amostragem tão baixo quanto 10Hz. You should treat the sampling rate as a flexible quantity. Anything that might make the control problem more difficult would indicate that you should raise the sampling rate. Factors such as having a difficult plant to control, or needing differential control, or needing very precise control would all indicate raising the sampling rate. If you have a very easy control problem you could get away with lowering the sampling rate somewhat (I would hesitate to lengthen the sample time to more than one-fifth of the desired settling time). If you arent using a differentiator and you are careful about using enough bits in your integrator you can get away with sampling rates 1,000 times faster than the intended settling time. Exert control This covers the basics of implementing and tuning PID controllers. With this information, you should be able to attack the next control problem that comes your way and get it under control. Tim Wescott has a masters degree in electrical engineering and has been working in industry for more than a decade. His experience has included a number of control loops closed in software using 8- to 32-bit microprocessors, DSPs, assembly language, C, and C. He is currently involved in control systems design at FLIR Systems where he specifies mechanical, electrical, and software requirements and does electrical and software design. You can contact him at timwescottdesign.

No comments:

Post a Comment