Mapa da aula
Aula 04 publicada. Mapa, exemplo, EX021.
flowchart TD
N0["4.1 Termos"]
N1["4.2 Diagnosticando uma reprodução que falhou: o Tank"]
N2["4.3 Verificando o simulador"]
N3["4.4 Ajuste sem vazamento: Laboratório 6"]
N4["4.5 Um piloto limitado na Bancada de testes T2"]
N5["Síntese do capítulo"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5
N5 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX021"]
Desenho lógico
flowchart LR
N0["4.1 Termos"]
N1["4.2 Diagnosticando uma reprodução que falhou: o Tank"]
N2["4.3 Verificando o simulador"]
N3["4.4 Ajuste sem vazamento: Laboratório 6"]
N4["4.5 Um piloto limitado na Bancada de testes T2"]
N5["Síntese do capítulo"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> Q["EX021"]
[4.1 Termos]
|
v
[4.2 Diagnosticando uma reprodução que falhou: o Tank]
|
v
[4.3 Verificando o simulador]
|
v
[4.4 Ajuste sem vazamento: Laboratório 6]
|
v
[4.5 Um piloto limitado na Bancada de testes T2]
|
v
[Síntese do capítulo]
|
v
[Exemplo resolvido] --> [Exercício EX021]
Objetivos de aprendizagem e conexão
Ao final deste capítulo, você será capaz de (1) distinguir reprodução, replicação e reimplementação, (2) diagnosticar por que um resultado publicado de detecção em TO não pode ser reproduzido, (3) verificar um simulador de processo antes de confiar nele, (4) desenhar um piloto limitado numa bancada isolada e (5) tomar uma decisão pré-declarada de seguir ou não seguir (go/no-go). Ele parte das hipóteses do Capítulo 3 e prepara o estudo principal do Capítulo 5.
4.1 Termos
A política de selos de artefatos da ACM distingue repetibilidade (mesma equipe, mesma configuração), reprodutibilidade (equipe diferente, mesmos artefatos) e replicabilidade (equipe diferente, artefatos próprios). Na TO, esses termos diferem fortemente, porque plantas, controladores e conjuntos de dados raramente podem ser compartilhados. Fixe o seu vocabulário antes de alegar qualquer um deles.
No Setpoint Study, executar de novo o Laboratório 3 com o mesmo código e as mesmas sementes é repetibilidade. Um colega executando o código arquivado é reprodutibilidade. O trabalho com o TankBench-21 é uma reimplementação a partir da descrição do artigo, mais próxima da replicação. Dizer isso com precisão impede que um revisor leia uma nova pontuação como uma confirmação independente do resultado original.
4.2 Diagnosticando uma reprodução que falhou: o TankBench-21
O benchmark sintético TankBench-21 relata um F1 de 0,96 para um alarme de faixa mais taxa de variação. A reimplementação do candidato obtém 0,31. Um diagnóstico disciplinado lista hipóteses e testa cada uma: (a) convenção de pontuação — o artigo usou o ajuste por pontos (o Laboratório 1 mostra que só isso pode explicar uma diferença desse tamanho); (b) vazamento do limiar — os limiares foram escolhidos na partição de teste; (c) alinhamento dos rótulos — os rótulos de ataque começam quando o script de ataque foi lançado, não quando o processo se desviou pela primeira vez; (d) amostragem — o artigo reduziu a amostragem para 10 s, suavizando o ruído. Pontuar de novo com o ajuste por pontos dá 0,94, dentro de uma tolerância pré-declarada de ±0,05, então a reprodução "tem sucesso" — mas tem sucesso em reproduzir uma métrica inflada. A tese registra os dois números e adota a revocação por evento mais o atraso.
4.3 Verificando o simulador
A verificação pergunta se o modelo foi construído corretamente; a validação pergunta se ele é o modelo correto (vocabulário padrão de modelagem). Os testes de verificação para o tanque do Laboratório 3 incluem: equilíbrio em 50,0 com a entrada nominal (verificação analítica); conservação da massa ao longo de 1.000 passos sem ruído; média do resíduo perto de zero sem ataque; e sementes que produzem traços idênticos em duas máquinas. Um detector avaliado num simulador não verificado é avaliado num sistema desconhecido.
Escreva cada teste de verificação como código que falha de forma ruidosa e execute o conjunto antes de cada lote de experimentos. Se a verificação do equilíbrio falhar depois de uma mudança no termo de saída, nenhum resultado de detector daquela versão é utilizável até ela passar. Guarde a saída dos testes junto com os registros das execuções, para que um examinador veja que a verificação precedeu os resultados que ela sustenta.
4.4 Ajuste sem vazamento: Laboratório 6
O CUSUM tem dois parâmetros, a folga k e o limiar h. Ajuste-os em sementes separadas das sementes de avaliação e examine a robustez ao erro de modelo. O Laboratório 6 varre k e acrescenta um viés constante de calibração de 0,4 unidade no sensor de nível — um descompasso realista entre o modelo e o instrumento.
# Lab 6 (synthetic): CUSUM drift k vs. false alarms and detection delay - the tuning trade-off reviewers ask about.
import random
def first_alarm(seed, attack, k, h=6.0, steps=600, onset=300, bias=0.0):
rng = random.Random(seed); true, est, s = 50.0, 50.0, 0.0
for t in range(steps):
inflow = 1.0 + rng.gauss(0, 0.05) + (0.05 if attack and t >= onset else 0.0)
true += inflow - 0.02*true
lvl = true + rng.gauss(0, 0.3) + bias
if attack and t >= onset: lvl = 50.0 + rng.gauss(0, 0.3) + bias
est += inflow + rng.gauss(0, 0.02) - 0.02*est
s = max(0.0, s + abs(lvl - est) - k)
if s > h: return t
return None
for bias in (0.0, 0.4):
for k in (0.4, 0.6, 0.8, 1.0):
fa = sum(first_alarm(i, False, k, bias=bias) is not None for i in range(100))
d = [a-300 for a in (first_alarm(i, True, k, bias=bias) for i in range(100)) if a is not None and a >= 300]
print(f"bias={bias} k={k} false_alarm_runs={fa}/100 detected={len(d)}/100 mean_delay={sum(d)/len(d) if d else float('nan'):.1f}")
Saída esperada:
bias=0.0 k=0.4 false_alarm_runs=0/100 detected=100/100 mean_delay=25.6
bias=0.0 k=0.6 false_alarm_runs=0/100 detected=100/100 mean_delay=30.9
bias=0.0 k=0.8 false_alarm_runs=0/100 detected=100/100 mean_delay=38.0
bias=0.0 k=1.0 false_alarm_runs=0/100 detected=100/100 mean_delay=46.1
bias=0.4 k=0.4 false_alarm_runs=97/100 detected=19/100 mean_delay=35.4
bias=0.4 k=0.6 false_alarm_runs=4/100 detected=99/100 mean_delay=46.1
bias=0.4 k=0.8 false_alarm_runs=0/100 detected=100/100 mean_delay=55.6
bias=0.4 k=1.0 false_alarm_runs=0/100 detected=100/100 mean_delay=66.5
Com um modelo perfeito, o menor k parece o melhor. Um pequeno viés de calibração torna k = 0,4 inútil: 97 execuções alarmam antes de o ataque começar, e apenas 19 alarmes ocorrem depois do início. A escolha defensável é k = 0,8, que troca cerca de 7 passos de atraso (em comparação com k = 0,6 sem viés) por robustez. É esse tipo de resultado que os revisores esperam ver antes do estudo principal.
4.5 Um piloto limitado na Bancada de testes T2
O piloto responde apenas a perguntas de viabilidade: a bancada consegue executar o cenário de replay com segurança, o historiador consegue registrar a 1 Hz e a válvula boia impede o transbordamento? Os dados do piloto não são usados em testes de hipóteses. Os critérios de go/no-go são escritos com antecedência: seguir se três execuções consecutivas terminarem sem que a válvula boia seja alcançada, com perda de registros abaixo de 1% e sem nenhuma reinicialização não planejada do controlador; caso contrário, revisar. O plano do piloto também registra quem pode parar uma execução e como (uma parada de emergência física que corta a energia da bomba, independente do CLP).
4.6 Erros comuns e limites
Chamar uma nova pontuação de replicação; confiar num simulador porque ele "parece certo"; ajustar nas sementes de avaliação; usar dados do piloto para testar hipóteses; não ter uma parada de emergência independente.
Cada erro deixa um resultado parecer melhor do que é. Uma nova pontuação com ajuste por pontos só confirma que a convenção original foi usada. Um traço de aparência plausível não é um teste de verificação aprovado. Sementes compartilhadas entre o ajuste e a avaliação vazam informação. As execuções do piloto respondem à viabilidade, não às hipóteses. E sem uma parada física que corte a energia da bomba independentemente do CLP, o piloto não está limitado.
Exercícios — capítulo 4
- EX021 — Termos de repetibilidade da ACM. Classifique três atividades (executar de novo o seu próprio Laboratório 3, um colega executando o seu arquivo, um colega construindo o próprio modelo de tanque) segundo os termos da ACM.
Mostrar critérios de avaliação
Rubrica: 3 = repetibilidade / reprodutibilidade / replicabilidade atribuídas corretamente; 2 = duas corretas; 1 = uma; 0 = nenhum. - EX022 — Registro da reprodução do TankBench-21. Escreva uma entrada de registro de reprodução para o TankBench-21 com as quatro hipóteses, os testes e os resultados.
Mostrar critérios de avaliação
Rubrica: 3 = quatro hipóteses com testes/resultados, incluindo ajuste por pontos→0,94; 2 = hipóteses sem resultados; 1 = parcial; 0 = nenhum. - EX023 — Teste de verificação da conservação de massa. Escreva e execute um teste de verificação da conservação da massa no modelo sem ruído do Laboratório 3.
Mostrar critérios de avaliação
Rubrica: 3 = equilíbrio sem ruído≈50 e verificação da identidade entrada−saída; 2 = só o equilíbrio; 1 = vago; 0 = nenhum. - EX024 — Escolher k sob viés de calibração. Usando o Laboratório 6, escolha k para uma planta em que se espera um viés de calibração de até 0,4 e justifique a escolha com dois números.
Mostrar critérios de avaliação
Rubrica: 3 = k=0,8 com 0/100 AF vs k=0,6 com 4/100 AF e o compromisso com o atraso; 2 = escolha de k sem os dois números; 1 = só k; 0 = nenhum. - EX025 — Critérios de prosseguir/parar do piloto na T2. Escreva critérios de go/no-go para um piloto na T2, incluindo um critério de segurança e um critério de qualidade dos dados.
Mostrar critérios de avaliação
Rubrica: 3 = segurança (válvula boia), dados (<1% de perda), reinicialização, pré-teste da parada de emergência; 2 = falta um; 1 = "prosseguir" vago; 0 = nenhum. - EX026 — Por que o 0,94 reproduzido não indica qualidade. Explique por que o 0,94 reproduzido não é evidência de que o detector do TankBench-21 é bom.
Mostrar critérios de avaliação
Rubrica: 3 = pontuação com ajuste por pontos ≠ desempenho em atraso/AF/turno + possível ajuste no conjunto de teste; 2 = uma razão; 1 = "alto demais"; 0 = nenhum.
Síntese do capítulo
Reproduza as linhas de base com uma tolerância pré-declarada e diagnostique as diferenças de forma sistemática; verifique o simulador; ajuste em sementes separadas e submeta o ajuste a testes de estresse contra o erro de modelo; e pilote apenas para a viabilidade, com uma autoridade de parada física independente.