Mapa da aula
Aula 03 publicada. Mapa, exemplo, EX015.
flowchart TD
N0["3.1 O desenho acompanha a pergunta"]
N1["3.2 Simulação antes dos dados"]
N2["3.3 Ética e segurança"]
N3["3.4 Plano de reprodutibilidade"]
N4["Síntese do capítulo"]
N0 --> N1 --> N2 --> N3 --> N4
N4 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX015"]
Desenho lógico
flowchart LR
N0["3.1 O desenho acompanha a pergunta"]
N1["3.2 Simulação antes dos dados"]
N2["3.3 Ética e segurança"]
N3["3.4 Plano de reprodutibilidade"]
N4["Síntese do capítulo"]
N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX015"]
[3.1 O desenho acompanha a pergunta]
|
v
[3.2 Simulação antes dos dados]
|
v
[3.3 Ética e segurança]
|
v
[3.4 Plano de reprodutibilidade]
|
v
[Síntese do capítulo]
|
v
[Exemplo resolvido] --> [Exercício EX015]
Objetivos de aprendizagem e conexão
Depois deste capítulo, você consegue (1) escolher um desenho compatível com a pergunta, (2) simular o viés e o poder do desenho antes de coletar dados, (3) aplicar os princípios do Menlo à pesquisa industrial e (4) redigir um plano de pré-análise com níveis de dados.
3.1 O desenho acompanha a pergunta
O Harbor Loop compara dois detectores sob ataques controlados num modelo e numa bancada — um experimento controlado, não um estudo observacional. Se você perguntasse "com que frequência as plantas sofrem ataques de replay?", precisaria de um levantamento com uma base amostral e um modelo de divulgação, porque as plantas que nunca relatam ficam invisíveis nos catálogos públicos. Se perguntasse como os operadores confiam nos alarmes, precisaria de entrevistas com revisão ética. Ajustar o desenho à pergunta é o modo de falha mais comum no mestrado: os estudantes pegam emprestado um método de que gostam e depois caçam uma pergunta que caiba nele. Escreva a pergunta primeiro.
Um segundo problema de ajuste é a unidade de análise. A comparação de detectores opera sobre episódios de ataque. A comparação de arquiteturas opera sobre grafos de alcançabilidade. Os estudos com operadores operam sobre pessoas e turnos. Misturar unidades — contar pacotes como se fossem episódios — recria a confusão do ajuste por pontos. Declare a unidade antes de coletar qualquer coisa.
3.2 Simulação antes dos dados
Antes de qualquer experimento, simule. O Laboratório 3 (abaixo, reutilizado como o laboratório principal do detector) já mostra a detecção da classe A e a falha na classe B. Executá-lo antes de escrever a proposta mostra que o desenho consegue distinguir as hipóteses sob os pressupostos do modelo. A simulação antes dos dados também revela se o tamanho de amostra planejado é inútil: se oitenta sementes de ataque sempre produzem o mesmo resultado binário, você precisa mais de uma análise de sensibilidade nos parâmetros que poderiam mudar o resultado (a folga k, o coeficiente do orifício, o atraso do sensor) do que de mil sementes idênticas.
Registre a simulação como um artefato de desenho: faixas de sementes, grade de parâmetros, regras de decisão. Quando um orientador perguntar "por que oitenta execuções?", a resposta está nesse artefato.
3.3 Ética e segurança
Menlo: respeito às pessoas (os operadores que você entrevista), beneficência (limitar cada experimento físico com uma camada de segurança independente — nunca o CLP sob teste), justiça (as pequenas concessionárias arcam com os custos das correções), respeito à lei e ao interesse público. Nunca teste em produção. O pior resultado da Bancada do campus R2 é água numa bandeja coletora; uma válvula boia mecânica e uma parada de emergência física o limitam.
Além do Menlo, a pesquisa em TO herda a cultura de segurança: briefings antes das sessões de laboratório, regra de duas pessoas para energizar bombas e uma autoridade de parada escrita que se sobrepõe à vontade do pesquisador de terminar uma execução. Registre os quase acidentes (a válvula boia quase alcançada) com a mesma seriedade que as hipóteses que falharam.
3.4 Plano de reprodutibilidade
Registre as métricas (revocação por evento, atraso, execuções com alarme falso em 80 sementes nominais, transbordamento no alarme), as sementes, os limiares e o código de análise antes das execuções de validação. Atribua os níveis de dados T0–T3 (o Capítulo 7 do livro de doutorado companheiro aprofunda isso; aqui, separe ao menos o código público das configurações da bancada).
Guarde o plano registrado com um carimbo de tempo que o orientador possa verificar, como um commit datado no repositório do projeto. Inclua os valores congelados de k e h, as faixas de sementes para ajuste e para avaliação e a regra do que conta como detecção. Qualquer mudança posterior entra numa tabela de desvios, com data e motivo, e é relatada na dissertação.
3.5 Exemplo resolvido e Laboratório 3
# Lab 3: residual CUSUM vs band on synthetic tank; report event recall, delay, FA/shift, overfill@alarm.
import random
def run(seed,atk,det,k=0.8,h=6.0,steps=800,onset=400):
rng=random.Random(seed); true=est=50.0; s=0.0; alarm=None; at=None
for t in range(steps):
inflow=1.0+rng.gauss(0,0.05)+(0.05 if atk and t>=onset else 0)
true+=inflow-0.02*true
lvl=true+rng.gauss(0,0.3); fm=inflow+rng.gauss(0,0.02)
if atk and t>=onset: lvl=50.0+rng.gauss(0,0.3)
if atk=="B" and t>=onset: fm=1.0+rng.gauss(0,0.02)
est+=fm-0.02*est
hit=abs(lvl-50)>1.5 if det=="band" else False
if det=="cusum":
s=max(0.0,s+abs(lvl-est)-k); hit=s>h
if hit and alarm is None: alarm=t; at=true-50
return alarm,at
for det in ("band","cusum"):
fa=sum(run(i,None,det)[0] is not None for i in range(80))
for atk in ("A","B"):
r=[run(i,atk,det) for i in range(80)]
hits=[(a-400,ov) for a,ov in r if a is not None and a>=400]
d=sum(h[0] for h in hits)/len(hits) if hits else float("nan")
ov=sum(h[1] for h in hits)/len(hits) if hits else float("nan")
print(f"{det:5s} class{atk} FA_runs={fa}/80 detected={len(hits)}/80 mean_delay={d:.1f} mean_overfill@alarm={ov:.2f}")
Saída esperada:
band classA FA_runs=11/80 detected=0/80 mean_delay=nan mean_overfill@alarm=nan
band classB FA_runs=11/80 detected=0/80 mean_delay=nan mean_overfill@alarm=nan
cusum classA FA_runs=0/80 detected=80/80 mean_delay=37.7 mean_overfill@alarm=1.38
cusum classB FA_runs=0/80 detected=0/80 mean_delay=nan mean_overfill@alarm=nan
O laboratório executa oitenta sementes para cada detector e classe de ataque e conta as execuções com alarme falso nas mesmas oitenta sementes sem ataque. O alarme de faixa nunca dispara em nenhum dos ataques, porque o replay mantém o nível relatado perto de 50, mas ainda assim gera alarmes falsos em 11 de 80 execuções nominais. O CUSUM detecta todos os episódios da classe A e nenhum da classe B, quando o medidor de vazão também é falsificado. Essa única tabela já contém o resultado principal e o seu limite. Leia-a antes de qualquer trabalho na bancada.
3.6 Erros comuns e limites
Escolher o desenho depois de ver os dados; chamar de "passiva" uma consulta ativa; usar o CLP como único limite de segurança.
Cada erro tem uma salvaguarda concreta. Registre o desenho e suas regras de decisão antes de coletar dados. Descreva como ativa qualquer medição que envie requisições a um dispositivo, mesmo que só leia. Na bancada R2, a válvula boia e a parada de emergência física são o limite de segurança; nunca se confia no CLP sob teste para impedir um transbordamento que ele mesmo pode estar causando.
Exercícios — capítulo 3
- EX015 — Associar perguntas a tipos de desenho. Associe três perguntas (comparação de detectores; taxa de adoção do DNP3-SA; confiança dos operadores nos alarmes) a tipos de desenho.
Mostrar critérios de avaliação
Rubrica: 3 = experimento/levantamento/entrevista associados corretamente; 2 = dois corretos; 1 = um; 0 = nenhum. - EX016 — Números do Laboratório 3 contra H1 e H4. Execute o Laboratório 3; relate os números contra H1 (CUSUM na classe A com revocação ≥95%, faixa ≤10%) e H4 (classe B ≤10%).
Mostrar critérios de avaliação
Rubrica: 3 = H1 80/80 vs 0/80, H4 0/80, alarmes falsos da faixa registrados; 2 = H1/H4 sem alarmes falsos; 1 = qualitativo; 0 = nenhum. - EX017 — Limitar o forçamento da bomba na bancada R2. Escreva o pior resultado plausível, a camada independente e a autoridade de parada para um experimento de forçamento da bomba na bancada R2.
Mostrar critérios de avaliação
Rubrica: 3 = transbordamento para a bandeja coletora, válvula boia+bandeja, gerente nomeado com parada de emergência; 2 = falta a independência; 1 = só o CLP; 0 = sem limites. - EX018 — Menlo sobre publicar a evasão da classe B. Aplique os quatro princípios do Menlo à publicação de um método de evasão da classe B.
Mostrar critérios de avaliação
Rubrica: 3 = princípios do Menlo → publicar classe+defesa, reter os passos específicos de produtos até a CVD; 2 = princípios sem decisão; 1 = publicar tudo; 0 = nenhum. - EX019 — Plano de pré-análise com sementes congeladas. Redija um plano de pré-análise de uma página com métricas e sementes congeladas.
Mostrar critérios de avaliação
Rubrica: 3 = métricas, sementes 0–79/1000–1079, k=0,8 h=6, nenhuma mudança depois da carga na R2; 2 = faltam as sementes ou o congelamento; 1 = plano vago; 0 = nenhum. - EX020 — Níveis do simulador às citações dos operadores. Atribua T0–T3 a: código do simulador, traços sintéticos, diagrama de fiação da R2, citações anonimizadas de operadores.
Mostrar critérios de avaliação
Rubrica: 3 = código T0, traços T1, fiação T2, citações T2/T1 com nota sobre a anonimização; 2 = três corretos; 1 = dois; 0 = nenhum.
Síntese do capítulo
Desenho antes dos dados, simulação antes do compromisso, limite para cada experimento físico e plano de análise congelado.