O documento discute a linguagem de programação NXT-G para o Lego Mindstorms NXT. Em três frases:
A nova versão da linguagem NXT-G suporta cálculos com números decimais. Vários blocos de programação são discutidos, incluindo blocos de movimento e sensores. Programas devem fornecer instruções específicas para as máquinas executarem corretamente.
2. Detalhes da Linguagem
A nova versão da linguagem gráfica NXT-G (2.0)
suporta cálculos em “ponto-flutuante” (com
casas decimais)(float). A versão anterior só
permitia realizar cálculos com números inteiros
(int).
Existem outras linguagens...
6. Programa...
Def.: Seqüência lógica de
passos que permite coletar
dados de entrada, processar
esta informação de entrada e
gerar uma saída específica
conforme desejado.
Ex.: Programa para resolver
equação do 2o-grau:
Dados Entrada: a, b e c.
Processamento:
Saída: x1 e x2.
ax2
+ bx + c = 0
= b2
4ac
x =
b ±
p
2a
7. Programando...
Exemplo Válido?
Programador: SPOT, ande
para frente e pare.
[SPOT: apenas fica parado]
Que aconteceu?
Se alguém pedisse que você
“ande um pouco e pare”,
quão longe você iria?
Quando você iria parar?
Máquinas: indicar com
precisão o que deve ser
8. Programando (2)...
Exemplo Válido:
Programador: SPOT, ande
para frente 5 segundos e
pare.
[SPOT: se move para frente
durante 5 segundos e para.]
Programador: SPOT, gire 180
graus e então ande até meus
pés.
[SPOT: ?]
1o-caso: note são algumas
instruções: andar para frente,
esperar os 5 segundos, parar.
(São diferentes, simples e
pequenos programas
intercalados).
2o-caso: Girar 180o
no
sentido horário ou anti-
horário? Outro problema:
“pés”?
9. Programando (3)...
Conclusões:
O programa deve ser
bastante específico;
Infelizmente o NXT não
entende ainda comandos de
voz!
Necessidade de usar alguma
linguagem de programação.
10. Programando (3)...
Conclusões:
O programa deve ser
bastante específico;
Infelizmente o NXT não
entende ainda comandos de
voz!
Necessidade de usar alguma
linguagem de programação.
1. NXT-G
2. C# with Microsoft Robotics Developer Studio
3. BricxCC, Next Byte Codes, Not eXactly C
4. Robolab (RCX)
5. RoboMind
6. Enchanting
7. ROBOTC (comercial)
8. NXTGCC
9. leJOS NXT (Java)
10.nxtOSEK (tempo-real, Matlab)
11.ICON
12.MATLAB and Simulink
13.Lua
14.Ada
15.URBI
16.FLL NXT Navigation
17.ruby-nxt
18.Robotics.NXT
19.LibNXT
20.PyNXC
21.NXT-Python
22.LEGO Mindstorms EV3 Software
23.Physical Etoys
24.?
36. CRIANDO UM
PROGRAMA
1.Digitar na caixa de texto o nome
do programa e cliclar no botão
“Go”;
2.Arrastar blocos para a área de
trabalho e ajustar blocos no
Painel de Configuração.
3.Quando estiver pronto:
1. Ligar NXT;
2. Plugar cabo USB no NXT;
3. Plugar cabo USB no PC -
Talvez apareça janela “Found
New Hardware” (esperar
para Windows terminar de
instalar o driver).
38. Common Blocks:
Move: 1) Estas letras no topo do bloco mostram que portas no
NXT serão controladas.
2) Este ícone mostra em que direção o robô irá.
3) Este ícone mostra o nível de potência (PWM).
4) Mostra como foi ajustada a Propriedade “Duration”: se
para ilimitada (unlimited), graus (degrees), rotations
(rotações) ou segundos (seconds). Um ícone com
imagem “-” significa a Propriedade de “Direction” foi
ajustada para “stop”.
7) “Feedback boxes”: Conta quantos degraus ou rotações completas o motor realizou.
O botão de Reset pode ser pressionado para zerar valores - útil para fazer o robô
andar certa distância pré-especificada!
39. Common Blocks:
Move: 1) Estas letras no topo do bloco mostram que portas no
NXT serão controladas.
2) Este ícone mostra em que direção o robô irá.
3) Este ícone mostra o nível de potência (PWM).
4) Mostra como foi ajustada a Propriedade “Duration”: se
para ilimitada (unlimited), graus (degrees), rotations
(rotações) ou segundos (seconds). Um ícone com
imagem “-” significa a Propriedade de “Direction” foi
ajustada para “stop”.
7) “Feedback boxes”: Conta quantos degraus ou rotações completas o motor realizou.
O botão de Reset pode ser pressionado para zerar valores - útil para fazer o robô
andar certa distância pré-especificada!
Obs: Brake x Coast
Coast: para o motor gradualmente aproveitando-se da
perda do momento. Quando setado desta forma, o
motor requer maiores torques (e tempo) para começar a
andar de novo.
Brake: para o motor imediatamente! Resulta em maior
precisão. Usa freio eletromagnético (bobinas do motor
em curto) - gastando mais bateria.
40. Common Blocks:
Move: 1) Estas letras no topo do bloco mostram que portas no
NXT serão controladas.
2) Este ícone mostra em que direção o robô irá.
3) Este ícone mostra o nível de potência (PWM).
4) Mostra como foi ajustada a Propriedade “Duration”: se
para ilimitada (unlimited), graus (degrees), rotations
(rotações) ou segundos (seconds). Um ícone com
imagem “-” significa a Propriedade de “Direction” foi
ajustada para “stop”.
7) “Feedback boxes”: Conta quantos degraus ou rotações completas o motor realizou.
O botão de Reset pode ser pressionado para zerar valores - útil para fazer o robô
andar certa distância pré-especificada!
41. Common Blocks:
Move: 1) Estas letras no topo do bloco mostram que portas no
NXT serão controladas.
2) Este ícone mostra em que direção o robô irá.
3) Este ícone mostra o nível de potência (PWM).
4) Mostra como foi ajustada a Propriedade “Duration”: se
para ilimitada (unlimited), graus (degrees), rotations
(rotações) ou segundos (seconds). Um ícone com
imagem “-” significa a Propriedade de “Direction” foi
ajustada para “stop”.
7) “Feedback boxes”: Conta quantos degraus ou rotações completas o motor realizou.
O botão de Reset pode ser pressionado para zerar valores - útil para fazer o robô
andar certa distância pré-especificada!
Obs: Duration
Pode eliminar a necessidade de
monitorar o número de graus
(feedback boxes) que o motor
realizou.
Isto significa que ajustar esta caixa
para qualquer coisa diferente de
“Unlimited” fará o programa
esperar até que o motor complete
a duração especificada; somente
então o programa continuará!
45. Keep Alive Block
This block will keep the NXT from
entering sleep mode.Add this block if
your program needs to wait for longer
than the NXT’s set “sleep time” (that is
configured using your NXT’s menus).
Calibration Block
Use this block to
calibrate the minimum
(0%) and maximum
(100%) values detected
by a sound or light
sensor.
Advanced Blocks:
Referências Bibliográficas:
1. Kelly, James Floyd. Lego Mindstorms NXT-G Programming Guide, 2nd ed.,Apress/Springer Science
+Business Media, p. 337, ISBN-13 (pbk): 978-1-4302-2976-6, 2010, URL: http://www.kirp.chtf.stuba.sk/
moodle/pluginfile.php/46109/mod_resource/content/1/Lego%20Mindstorms%20NXT-G
%20programming%20guide.pdf (Março/2014).
2. Griffin,Terry. The Art of Lego Mindstorms NXT-G Programming, No Starch Press, p. 288, ISBN-13:
978-1-59327-218-0,August 26, 2010. URL: http://my.safaribooksonline.com/book/hobbies/
9781593272180/4dot-motion/brake_comma_coast_comma_and_the_reset_mo (Março/2014).
3. Rosenberg, Neil. Workshop - NXT Programming For Beginners,Version 1.1, p. 102, Summer 2012,
URL: Ref.: http://www.rocwnc.org/Beginning_NXT_Programming_Workshop.pdf (Março/2014).
46. Problemas
1. Criar programa que simplesmente aciona
os 2 motores com a mesma potência
(75%) durante 10 segundos;
2. Idem, mas agora os motores devem
percorrer exatos 3 metros de distância
independente da velocidade!
3. Fazer o robô percorrer um quadrado com
2 (ou 3) metros de arresta. Ele deve partir
e conseguir voltar ao mesmo ponto de
partida.
Bloco “Move":
48. Distância percorrida por
roda...
• Percorrendo uma distância
exata (independente da
velocidade):
R
P
P = 2 ⇥ ⇡ ⇥ R
d = n ⇥ 2 ⇥ ⇡ ⇥ R
onde:
R = raio da roda;
P = perímetro da roda;
n = número de voltas;
⇡ = 3.141592653589793
Detalhes:
Roda do Lego NXT:
“@ LEGO Group 56x26”
onde 56 = 56mm de diâmetro.
54. Seguidor de Linha:
Idéias
1.Siga em frete infinitamente com potência a 50%;
2.Até que o sensor de luz leia valor > 50%;
3.Então pare a roda esquerda;
4.E mova a roda direita, 10
o
para frente;
5.Repita.
Este programa faz o robô andar para frente até que ele saia par fora da
linha preta. Em seguida, ele move para a esquerda 10o. Ele assume
que a linha é um círculo e que o robô está posicionado dentro do
círculo, por isto irá percorrer o círculo em sentido anti-horário.
Ver: https://www.youtube.com/watch?v=5-1N9x7obTM
59. Seguidor de Linha #1
1.Siga em frete infinitamente com potência a 50%;
2.Até que o sensor de luz leia valor > 50%;
3.Então pare a roda esquerda;
4.E mova a roda direita, 10o
para frente;
5.Repita.
60. Seguidor de Linha #1
1.Siga em frete infinitamente com potência a 50%;
2.Até que o sensor de luz leia valor > 50%;
3.Então pare a roda esquerda;
4.E mova a roda direita, 10o
para frente;
5.Repita.
61. Seguidor de Linha #1
1.Siga em frete infinitamente com potência a 50%;
2.Até que o sensor de luz leia valor > 50%;
3.Então pare a roda esquerda;
4.E mova a roda direita, 10o
para frente;
5.Repita.
62. Seguidor de Linha #1
“ERRATA”:
Mudar bloco “WAIT” para Sensor >> Color Sensor !
63. Seguidor de Linha #1
“ERRATA”: Mudar bloco “WAIT” para Sensor >> Color Sensor !
64. Seguidor de Linha #1
1.Siga em frete infinitamente com potência a 50%;
2.Até que o sensor de luz leia valor > 50%;
3.Então pare a roda esquerda;
4.E mova a roda direita, 10o
para frente;
5.Repita.
65. Seguidor de Linha #1
1.Siga em frete infinitamente com potência a 50%;
2.Até que o sensor de luz leia valor > 50%;
3.Então pare a roda esquerda;
4.E mova a roda direita, 10o
para frente;
5.Repita.
66. Seguidor de Linha #1
1.Siga em frete infinitamente com potência a 50%;
2.Até que o sensor de luz leia valor > 50%;
3.Então pare a roda esquerda;
4.E mova a roda direita, 10o
para frente;
5.Repita.
Loop (Laço):
Usa-se para repetir sequencias de código. Uma condição de parada
deve ser ajustada: período de tempo transcorrido (elapsed time),
número de repetições, sinal lógico ou de sensor. Ou o laço pode ser
ajustado para ser perpétuo (forever).
69. Seguidor de Linha #2
Dentro de um laço perpétuo, repetidamente se
chaveia o Sensor de Cor como Sensor de Luz,
testando se o mesmo percebe um brilho maior
que um certo limiar.
O valor do limiar deve ser apropriadamente
ajustado para ser o valor médio entre o mínimo
valor que se espera ler no centro da linha e o
máximo esperado no caso da leitura no chão
usando as luzes coloridas.
Se sugere o uso de um programa
tipo “Medidor de Luz” (LightMeter)
para descobrir estes valores.
Usando o valor médio, o robô vai
andar pelo lado direito da linha
procurando manter uma leitura que
fique entre o valor para metade da
linha e metade para o chão.
Se o valor lido é maior que o limiar
então o robô está fora do lado
direito da linha e assim gira para a
esquerda para corrigir a rota (o
motor C fica mais rápido que o B).
Se o valor lido é menor que o limiar
então o robô está mais próximo do
centro da linha (e não próximo do
lado direito da linha) e assim gira
para a direita (motor B fica mais
rápido que o B).
70. Seguidor de Linha #2
IDÉIA:
Dentro de um laço perpétuo, repetidamente se chaveia o
Sensor de Cor como Sensor de Luz, testando se o mesmo
percebe um brilho maior que um certo limiar.
O valor do limiar deve ser apropriadamente ajustado para ser
o valor médio entre o mínimo valor que se espera ler no centro
da linha e o máximo esperado no caso da leitura no chão
usando as luzes coloridas.
Se sugere o uso de um programa tipo “Medidor de
Luz” (LightMeter) para descobrir estes valores.
Usando o valor médio, o robô vai andar pelo lado direito da
linha procurando manter uma leitura que fique entre o valor
para metade da linha e metade para o chão.
Se o valor lido é maior que o limiar então o robô
está fora do lado direito da linha e assim gira
para a esquerda para corrigir a rota (o motor C
fica mais rápido que o B).
Se o valor lido é menor que o limiar então o
robô está mais próximo do centro da linha (e
não próximo do lado direito da linha) e assim
gira para a direita (motor B fica mais rápido que
o B).
O teste do sensor e correções da direção
do robô são rapidamente repetidas pelo
laço (várias vezes por segundo).
Note que a propriedade “Unlimited” é
usada para definir Duration para todos os
blocos Motor. Isto faz com que o bloco
Motor simplesmente ajuste seu nível de
potência e o programa segue adiante sem
esperar por nada. Isto permite ao Color
Sensor testar repetidamente tão rápido
quanto possível e assim o robô reaja tão
rápido quanto possível frente a mudanças
na leitura da linha.
71. Seguidor de Linha #2
OBSERVAÇÕES:
Dentro de um laço perpétuo, repetidamente se chaveia o
Sensor de Cor como Sensor de Luz, testando se o mesmo
percebe um brilho maior que um certo limiar.
O valor do limiar deve ser apropriadamente ajustado para ser
o valor médio entre o mínimo valor que se espera ler no centro
da linha e o máximo esperado no caso da leitura no chão
usando as luzes coloridas.
Se sugere o uso de um programa tipo “Medidor de
Luz” (LightMeter) para descobrir estes valores.
Usando o valor médio, o robô vai andar pelo lado direito da
linha procurando manter uma leitura que fique entre o valor
para metade da linha e metade para o chão.
1.O valor do limiar (threshold): Ajustar o bloco
do Color Sensor para “Compare” o número
lido com a média entre os valores máximos e
mínimos esperados para as leituras de
intensidade da luz faz também que o
programa se ajuste as condições de
iluminação atuais e superfície (solo) do
ambiente sendo usado para testá-lo.
2.Velocidade máxima: nos 2 blocos Motor
“rápidos”, o nível de potência especificado
determina a máxima velocidade do motor. Se
a velocidade máxima for muito alta, o robô vai
acabar se perdendo em curvas mais
fechadas.
3.Curvas fechadas: nos 2 blocos Motor
“lentos”, o nível de potência especificado vai
determinar que tão fechada uma curva o robô
vai ser capaz de seguir. Baixos níveis de
potência vão permitir que o robô realize
curvas fechadas, entretanto valores maiores o
deixariam mais rápido e com condução mais
suave sobre as partes retas da linha (caminho
à seguir).
85. Seguir de Linha:
Idéias 2: Controlador P
Idéia do Controlador Proporcional:
Estabelecer um laço de realimentação fechado, calculando o erro e proporcional ao erro
definir uma ação de controle:
Valor
Médio
(Ref.)
∑
Erro
K
Sinal de Controle
Atuação
(Pot. Motor) Motores
Lego
Sensor
Cor
Trajetória
Intensidade Luminosa
(Leitura atual)
+
-
86. Base Teórica Controlador Proporcional
Seja a fita isolante (Pista) x
Índice reflexão (sensor de luz)
x
0
+1
-1
x = mede o desvio físico do AVG.
87. Base Teórica Controlador Proporcional
Seja a fita isolante (Pista) x
Índice reflexão (sensor de luz)
x
0
+1
-1
x = mede o desvio físico do AVG.
x
x
Largura da fita isolante (pista).
88. Base Teórica Controlador Proporcional
- O que ocorre quando o AGV não anda sobre a faixa?
Largura da fita isolante (pista).
-
1
+10
O
O
O
⌘ = 35
⌘ = 37 (“Mid”)
⌘ = 47 (“Max”)
⌘ = 27 (“Min”)
O
O
⌘ = 39
CB
VB = VCruize + Kp ⇤ E
VC = VCruize Kp ⇤ E
Caso 1)
Caso 2)
⌘Sensor Erro VB VC Stearing
35 +2
= 75 + 100*(2)/Range
= 75+10 = 85
= 75-100*(2)/Range
= 75-10 = 65
39 -2
= 75+100*(-2)/Range
= 75-10 = 65
= 75 - 100*(-2)/Range
= 75+10 = 85
37 0
= 75+100*0
= 75
= 75-100*0
= 75
Erro = Ref Lido
Erro = “Mid” ⌘Sensor
90. Seguidor de Linha:
Controlador Proporcional
Ajusta as variáveis
Power e Gain
(podem ser alterados)
90 100
A lâmpada parece acender
depois de um pequeno
atraso no modo “Light
Sensor”, o que pode afetar
a auto-calibração. Melhor
acender e esperar um
pouco
91. Seguidor de Linha:
Controlador Proporcional
Ajusta as variáveis
Power e Gain
(podem ser alterados).
90 100
A lâmpada parece acender
depois de um pequeno
atraso no modo “Light
Sensor”, o que pode afetar
a auto-calibração. Melhor
acender e esperar um
pouco.
50 0.2
9999
0
Iniciando as variáveis Min
para um valor grande e
Max para zero para
garantir que a lógica de
calibração irá alterá-los.
Continua→
92. Seguidor de Linha:
Controlador Proporcional
Ajusta as variáveis
Power e Gain
(podem ser alterados).
90 100
A lâmpada parece acender
depois de um pequeno
atraso no modo “Light
Sensor”, o que pode afetar
a auto-calibração. Melhor
acender e esperar um
pouco.
50 0.2
9999
0
Iniciando as variáveis Min
para um valor grande e
Max para zero para
garantir que a lógica de
calibração irá alterá-los.
Inicie um pequeno arco para
a direita assim o sensor
acabará lendo a linha e a
área à direita da linha
(incluindo o solo).
B
C
CB
93. Seguidor de Linha:
Controlador Proporcional
B
C
CB
LAÇO DE CALIBRAÇÃO - IDÉIA:
1. Criar um laço de repetição que só para quando o motor B girar 120o.
2. Dentro do laço se lê os valores do sensor de cor enquanto o robô está girando
para a direita para descobrir os valores de Min e Max.
3. Ler informação do Sensor de Cor no modo Light Sensor (saída numérica na porta
“Detected Color”) e guarde este valor na variável Light.
4. Se o valor Light é menor que o valor Min, então atualize Min <-- Light.
5. Se o valor Light é maior que o valor Max, então atualize Max <-- Light.
94. Seguidor de Linha:
Controlador Proporcional
B
C
CB
Leia sensor de Cor no modo
“Light Sensor” (valor de 0 ~
100 na porta “Detected
Color”) e guarde em “Light”
Se o valor Light for menor que Min, então: Min ← Light.
Continua→
Detected Color Value
95. Seguidor de Linha:
Controlador Proporcional
B
C
CB
Leia sensor de Cor no modo
“Light Sensor” (valor de 0 ~
100 na porta “Detected
Color”) e guarde em “Light” Se o valor Light for menor que Min, então: Min ← Light.
Continua→
Result
Value
98. Seguidor de Linha:
Controlador Proporcional
B
C
CB
Continua→
Depois da Calibração →Calcular faixa (Range) e valor médio (Mid):
Agora que sabe os valores máximos e mínimos
esperados para a linha e o solo, calculamos a faixa de
valores: Range = Max - Min.
Calculamos agora o valor médio entre Min e Max e guardamos este valor
na variável Mid: Mid = (Max + Min) / 2. O robô vai esperar encontrar o
valor médio à direita da borda da linha - valor que procurará manter.
99. Seguidor de Linha:
Controlador Proporcional
B
C
CB
Continua→
Depois da Calibração →Reposicionando o Robô no lado direito da linha:
Uma vez que a auto-calibração moveu o robô para a direita, devemos movê-lo de
volta para a esquerda antes de começar a seguir a linha. O robô gira à esquerda
até que encontra um valor imediatamente mais escuro que Mid (o médio), o que
deveria posicionar o robô no lado direito da linha que corresponde a maneira
como pretende seguir a linha.
Quando o sensor encontra o
ponto desejado para
começar a seguir a linha,
soa um beep para indicar
que a auto-calibração foi
completada.
100. Seguidor de Linha:
Controlador Proporcional
B
C
CB
Continua→
Depois da Calibração →Reposicionando o Robô no lado direito da linha:
Uma vez que a auto-calibração moveu o robô para a direita, devemos movê-lo de
volta para a esquerda antes de começar a seguir a linha. O robô gira à esquerda
até que encontra um valor imediatamente mais escuro que Mid (o médio), o que
deveria posicionar o robô no lado direito da linha que corresponde a maneira
como pretende seguir a linha.
Quando o sensor encontra o
ponto desejado para
começar a seguir a linha,
soa um beep para indicar
que a auto-calibração foi
completada.
Trigger
Point
101. Seguidor de Linha:
Controlador Proporcional
B
C
CB
Continua→
Depois da Calibração →Reposicionando o Robô no lado direito da linha:
Uma vez que a auto-calibração moveu o robô para a direita, devemos movê-lo de
volta para a esquerda antes de começar a seguir a linha. O robô gira à esquerda
até que encontra um valor imediatamente mais escuro que Mid (o médio), o que
deveria posicionar o robô no lado direito da linha que corresponde a maneira
como pretende seguir a linha.
Quando o sensor encontra o
ponto desejado para
começar a seguir a linha,
soa um beep para indicar
que a auto-calibração foi
completada.
Trigger
Point
102. Seguidor de Linha:
Controlador Proporcional
B
C
CB
Continua→
Seguindo Linha → Laço de Controle Proporcional - Parte 1/2
Obtenha uma leitura do Sensor de Cor no
modo “Light Sensor” e subtraia este valor do
valor médio (Mid) ➠ calculando o erro.
Se este erro é positivo então robô está mais
para a esquerda “vendo” a parte mais escura
(central) da pista. Se o erro é negativo, então
o robô está muito à direita com o sensor
“vendo” mais o solo. A magnitude do erro
corresponde à quão longe o robô está da sua
“meta” (valor médio).
Detected
Color
Multiplique o valor do erro pelo valor Gain para enfatizar a resposta ao
erro de acordo com a magnitude de Gain. Então divida o resultado pelo
valor Range (faixa) para normalizar o erro em relação à faixa total
esperada. Guarde este valor na variável Correction.
103. B
CB
Continua→
Seguindo Linha → Laço de Controle Proporcional - Parte 1/2
Obtenha uma leitura do Sensor de Cor no
modo “Light Sensor” e subtraia este valor do
valor médio (Mid) ➠ calculando o erro.
Se este erro é positivo então robô está mais
para a esquerda “vendo” a parte mais escura
(central) da pista. Se o erro é negativo, então
o robô está muito à direita com o sensor
“vendo” mais o solo. A magnitude do erro
corresponde à quão longe o robô está da sua
“meta” (valor médio).
Detected
Color
Multiplique o valor do erro pelo valor Gain para enfatizar a resposta ao
erro de acordo com a magnitude de Gain. Então divida o resultado pelo
valor Range (faixa) para normalizar o erro em relação à faixa total
esperada. Guarde este valor na variável Correction.
Valor
Médio
(Ref.)
∑
Erro
K
Sinal de Controle
Atuação
(Pot. Motor) Motores
Lego
Sensor
Cor
Trajetória
Intensidade Luminosa
(Leitura atual)
+
-
104. Seguidor de Linha:
Controlador Proporcional
B
C
CB
Fim.
Seguindo Linha → Laço de Controle Proporcional - Parte 2/2
Use o valor de Correction para aplicar uma ação de controle (steering) sobre os motores. Partindo do
valor base Power definido na inicialização use (Power + Correction) para o motor B e (Power −
Correction) para o motor C. Isto fará com que o robô se posicione da direção correta para continuar
seguindo a linha pelo seu lado direito. Note que a correção é proporcional ao tamanho do desvio. Se for
grande, um giro mais forte será produzido, senão uma leve correção na sua orientação é realizada. Isto
permite um deslocamento mais rápido e suave.
Laço
perpétuo
(Forever)
Power +
Correction
Power −
Correction
Power Power
B
C
105. Outros controladores +
sofisticados...
Controle PI --> exige noção de integral;
Controle PD --> exige noção de derivada;
Controle PID: adotado em 90% da indústria.
Mais “trabalho”: sintonia (ajuste) do mesmo... --
> Controle Automático