Vous êtes sur la page 1sur 5

Sintonia PID

Sintonia PID refere-se a um algoritmo de controle proporcional-integral-derivativo utilizado em


alguns repraps para fins quentes e camas aquecidas.

PID precisa de ter um P, I e D valor definido para controlar a temperatura do injector. Se as rampas
de temperatura se rapidamente e diminui medida que se aproxima a temperatura alvo, ou se oscila
de alguns graus ambos os lados da temperatura pretendida, em seguida, os valores esto
incorrectos.

Para executar PID Autotune em Marlin e outros firmares, execute o seguinte gcode com o frio bico:

M303 E0 S200 C8

Isto ir aquecer o primeiro bico (E0), e ciclo de temperatura em torno do alvo 8 vezes (C8) a uma
dada temperatura (S200) e valores de retorno para o IP e D. Um exemplo
dehttp://www.soliwiki.com/PID_tuning :

vis: 92 d: 92 min: 196,56 mx: 203,75


Ku: 32.59 Tu: 54,92
Clasic PID
Kp: 19,56
Ki: 0,71
Kd: 134,26
PID Autotune acabado! Coloque as constantes Kp, Ki e Kd no
configuration.h

Para Marlin, estes valores indicam as contagens do controle de poder soft-PWM (0 a PID_MAX)
para cada elemento da equao de controle. O valor softPWM regula o ciclo de trabalho do f =
(FCPU / 16/64/256/2) do sinal de controlo para o aquecedor associado. A proporcional (P)
constante Kp em contagens / C, que representam a mudana na sada softPWM por cada grau de
erro.A integral (I) Ki constante em contagens / (C * s) representa a alterao por cada unidade de
erro integrada no tempo. O derivado (D) constante Kd em contagens / (C / s) representa a mudana
na sada esperado devido atual taxa de variao da temperatura. No exemplo acima, a rotina de
auto-ajuste determinou que para controlar uma temperatura de 200C, o PWM suave deve ser
desviada para 92 + 19,56 * 0,71 * + erro (soma de erros de tempo *) * -134,26 dError / dT. O 'soma
de erros * Tempo' valor limitado faixa +/- PID_INTEGRAL_DRIVE_MAX conforme definido no
Configuration.h. Controladores PID comerciais tipicamente usar parmetros baseados no tempo, Ti
= Kp / Ki e Td = Kd / Kp, para especificar os parmetros integrais e derivados. No exemplo acima: Ti
= 19,56 / 0,71 = 27.54s, ou seja, um ajuste para compensar o erro integrada ao longo de cerca de
28 segundos; Td = 134,26 / 19,56 = 6.86s, ou seja, um ajuste para compensar a temperatura
projectada com cerca de 7 segundos no futuro.

Os valores de Kp, Ki e Kd pode ser inserido com:

M301 P19.56 I0.71 D134.26

No caso de mltiplas extrusoras (E0, E1, E2) estes valores de PID so partilhados entre os
extrusores, embora as extrusoras podem ser controladas separadamente. Se o EEPROM est
habilitado, salvar com M500. Se no estiver habilitado, salvar essas configuraes em
Configuration.h.

Para a cama, use:

Bed: M303 E-1 S60 C8

e salvar as configuraes de cama com:

M304 P1 I2 D3

Para ajustes manuais:

se ultrapassa um lote e oscila, ou o ganho integral tem de ser aumentado ou todos os ganhos
deve ser reduzida

Excesso de superao? Aumentar D, diminuir P.

Resposta muito amortecida? Aumente P.

Rampas-se rapidamente para um valor abaixo da temperatura alvo (0-160 rpido) e, em


seguida, diminui medida que se aproxima alvo (160-170, 170-180, etc realmente lento lento)
de temperatura? Tente aumentar a constante I.

Veja tambm do Wikipedia PID_controller e Zeigler-Nichols mtodo tuning. Marlin auto-ajuste


(2014/01/20, https://github.com/ErikZalm/Marlin/blob/Marlin_v1/Marlin/temperature.cpp#L250 ) utiliza
o mtodo de Ziegler-Nichols 'Classic', que primeiro encontrar um ganho que maximiza as oscilaes
em torno do ponto de ajuste, e usa a amplitude e perodo destas oscilaes para definir os termos
proporcionais, integrais e derivativos.

Salvar configuraes de PID

Voc vai precisar para confirmar as suas alteraes EEPROM ou seu arquivo configuration.h para
eles para ser permanente.

Para salvar a utilizao EEPROM: M500


Modificando os parmetros Marlin Autotune

O padro Marlin M303 calcula um conjunto de Ziegler-Nichols parmetros "Classic" com base na Ku
(Ultimate Gain) e do Pu (Perodo Ultimate), onde a Ku e Pu so determinados pela procura de um
tendenciosa oscilao bang-bang em torno de uma mdia nvel de potncia que produz oscilaes
centradas no ponto de
ajuste. (Verhttps://github.com/ErikZalm/Marlin/blob/Marlin_v1/Marlin/temperature.cpp#L238 )

Kp_classic = Ku * 0,6
Ki_classic = 2 * Kp_classic / Tu
Kd_classic = Kp_classic * Tu / 8

Voc pode transformar esses parmetros "Classic" no Zeigler-Nichols "Alguns Overshoot" definido
com:

Kp = Kp_classic * 0,55
Ki = Ki_classic
Kd = Kd_classic * 03/08

Ou a ZN "No Overshoot" set:

Kp = Kp_classic / 3
Ki = Ki_classic
Kd = Kd_classic * 03/08

Note-se que os multiplicadores para os parmetros de regulao automtica, cada um tem apenas
um dgito significativo (o que implica 10% o mximo de preciso), e que os outros regimes diferem
por fatores de 2 ou 3. sintonizao automtica do PID e tuning no muito preciso, e alteraes nos
parmetros por factores de 5 a 50% so perfeitamente razovel.

Em Marlin, os parmetros que controlam e limitam o controlador PID pode ter efeitos mais
significativos do que os parmetros PID populares. Por exemplo, PID_MAX e
PID_FUNCTIONAL_RANGE e PID_INTEGRAL_DRIVE_MAX cada um pode ter efeitos inesperados
dramticas no comportamento PID. Por exemplo, um grande demais PID_MAX em um aquecedor
de alta potncia pode fazer auto-ajuste impossvel; um pequeno demais
PID_FUNCTIONAL_RANGE pode causar um comportamento estranho de reposio; uma muito
grande PID_FUNCTIONAL_RANGE pode garantir superao; e um pequeno demais
PID_INTEGRAL_DRIVE_MAX pode causar inclinao.

PID Sintonia por Comercial PID

Se voc tiver acesso a uma unidade de controlador PID e uma sonda trmica compatvel que se
encaixa para baixo em seu hotend, voc pode us-los para sintonizar o seu PID e calibrar o
termistor.

Conexo da sada do PID para o seu aquecedor varia de acordo com seus eletrnicos. (Eu usei um
1K2: divisor de tenso 4K7 para soltar a sada 22V do PID para 5V para o meu embarcou-po
VNP4904)

Aps o PID est ligado, voc pode us-lo para medir a temperatura do bico e correlacion-la com as
leituras de termistor e resistncias.

Converso de valores de PID dos comerciais kP% em fullscale, Ti, em segundos, e Td em segundos
a seguinte:

Kp_marlin = 255 * kP_% fs / 100 (contagens / C)

Ki_marlin = Kp_marlin / Ti (contagens / (C * s))

Kd_marlin = Td / Kp_marlin (contagens / (C / s))

Como exemplo, US $ 30 mypin TD4-SNR controlador de temperatura 1/16 DIN PID e US $ 10 sonda
tipo K pode segurar uma hotend Wildseyed especial com um resistor 6.8ohm em 185.0C +/- 0.1C
usando 12V com cerca de um ciclo de trabalho de 43,7% , ou 0,437 * 12 * 12 / 6,8 =
9.25W. Invocando o auto-ajuste do controlador produz estes parmetros: p = 0,8% / C, I = 27s, D =
6.7s.Converter esses valores para Marlin PID:

Kp_marlin = 255counts / fs * 0,8% / (100% / fs) = 2,04


contagens / C

Ki_marlin = Kp_marlin / Ti = 2.04counts / C / (27s) = 0,7


contagens / (C * s)

Kd_marlin = Td / Kp_marlin = 6.7s / (2,04 contagens / C) = 3,3


contagens / (C / s)
As diferenas entre os resultados podem ser causadas por diferenas fsicas entre os sistemas, (por
exemplo: o termopar est mais perto do aquecedor do que o termistor,) ou por diferentes escolhas
de parmetros de auto-ajuste (por exemplo: o processo de auto-ajuste mypin TD4 uma caixa preta
proprietrio, enquanto Marlin usa Zeigler-Nichols mtodo "Classic".)

A tabela de temperatura / resistncia abaixo foi desenvolvido usando o sistema de termopar PID +
para definir um hotend temperaturas na amostra, controlando o aquecedor enquanto se mede a
resistncia do termistor. Esses valores podem ser usados com de
Nophead http://hydraraptor.blogspot.com/2012/11/more-accurate-thermistor-tables.html ou de
Marlinhttps://github.com/ErikZalm/Marlin/blob/Marlin_v1/Marlin/
createTemperatureLookupMarlin.py para criar tabelas de termistor calibrados. A coluna PID recolhe
os valores de regulao automtica produzidos pelo controlador PID para a temperatura
indicada. Do Protocolo de Quioto, Ki, Kd lista os parmetros convertidos.

Temp Dutycycle Termistor R Comercial PID Kp, Ki, Kd

60.0 6 31630

100,0 15.7 10108 1,1% / C, 35.5s, 8.8s 2,81, 0,08, 3,13

120,0 22.5 5802 1,0% / C, 32.0s, 8.0s 2,55, 0,08, 3,14

135,0 26.5 3967

150,0 28.5 2840 1,2% / C, 29.0s, 7.2s 3,06, 0,10, 2,35

170,0 34,0 1829

185,0 43,7 1347 0,8% / C, 27s, 6.7s 2,04, 0,08, 3,28

190,0 45,9 1200 0,8% / C, 26s, 6.5s 2,04, 0,08, 3,18

200,0 51,0 977

Vous aimerez peut-être aussi