Skip to content

Commit 9efbef2

Browse files
committed
✨ feat: adicionar diagramas de fluxo de sinal com componente React customizado
- Criar componente SignalFlowDiagram para processar sinais de streams - Implementar blocos de processamento de sinais (integrador ∫, multiplicador ×, somador +) - Implementar componentes eletrônicos (resistor, capacitor, indutor) - Adicionar 4 diagramas para seções 3.5.3 e 3.5.4: * rc-integrator: Integrador RC com loop de realimentação * feedback-solver: Sistema para resolver dy/dt = f(y) * differential-system: Sistema acoplado de equações diferenciais * rlc-circuit: Circuito RLC em série - Adicionar suporte a dark mode e design responsivo - Figuras 3.53, 3.54, 3.78, 3.80
1 parent c210f0e commit 9efbef2

4 files changed

Lines changed: 485 additions & 1 deletion

File tree

docs/chapter-3/3.5.3.mdx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ title: 3.5.3 Explorando o Paradigma de Streams
33
---
44

55
import CodePlayground from '@site/src/components/CodePlayground';
6+
import SignalFlowDiagram from '@site/src/components/SignalFlowDiagram';
67

78
# 3.5.3 Explorando o Paradigma de Streams
89

@@ -151,6 +152,10 @@ function integral(integrand, initial_value, dt) {
151152
}
152153
```
153154

155+
<SignalFlowDiagram type="rc-integrator" />
156+
157+
**Figura 3.53:** Diagrama de fluxo de sinal para um integrador RC. O sinal de entrada `v` é multiplicado por `1/R`, integrado ao longo do tempo (∫dt), e então o resultado é multiplicado por `1/C` para produzir a corrente `i`. O loop de realimentação mostra como a saída do integrador influencia o estado do sistema.
158+
154159
A figura mostra um diagrama de processamento de sinal para o integrador. O diagrama mostra claramente como as operações de stream são combinadas para processar sinais. Este ponto de vista nos permite trabalhar com sistemas altamente complexos de uma maneira modular.
155160

156161
## Exercício 3.63

docs/chapter-3/3.5.4.mdx

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ title: 3.5.4 Streams e Avaliação Atrasada
33
---
44

55
import CodePlayground from '@site/src/components/CodePlayground';
6+
import SignalFlowDiagram from '@site/src/components/SignalFlowDiagram';
67

78
# 3.5.4 Streams e Avaliação Atrasada
89

@@ -18,6 +19,10 @@ A capacidade do interpretador de lidar com tal definição implícita depende do
1819

1920
Infelizmente, modelos de stream de sistemas com loops podem exigir usos de atraso além do padrão de programação de stream visto até agora. Por exemplo, a figura mostra um sistema de processamento de sinais para resolver a equação diferencial $dy/dt = f(y)$ onde $f$ é uma função dada. A figura mostra um componente de mapeamento, que aplica $f$ ao seu sinal de entrada, ligado em um loop de realimentação a um integrador de maneira muito similar à dos circuitos de computador analógico que são realmente usados para resolver tais equações.
2021

22+
<SignalFlowDiagram type="feedback-solver" />
23+
24+
**Figura 3.54:** Sistema de processamento de sinais com loop de realimentação para resolver $dy/dt = f(y)$. O sinal de entrada `dy/dt` é integrado para produzir `y`, que passa por uma função de ganho `f` (representando a função diferencial), e retorna ao somador através de um loop de realimentação tracejado.
25+
2126
Assumindo que nos é dado um valor inicial $y_0$ para $y$, poderíamos tentar modelar este sistema usando a função
2227

2328
```javascript
@@ -90,7 +95,13 @@ Considere o problema de projetar um sistema de processamento de sinais para estu
9095

9196
$$\frac{d^2y}{dt^2} - a\frac{dy}{dt} - by = 0$$
9297

93-
O stream de saída, modelando $y$, é gerado por uma rede que contém um loop. Isso ocorre porque o valor de $d^2y/dt^2$ depende dos valores de $y$ e $dy/dt$ e ambos são determinados integrando $d^2y/dt^2$. O diagrama que gostaríamos de codificar é mostrado na figura. Escreva uma função `solve_2nd` que recebe como argumentos as constantes $a$, $b$ e $dt$ e os valores iniciais $y_0$ e $dy_0$ para $y$ e $dy/dt$ e gera o stream de valores sucessivos de $y$.
98+
O stream de saída, modelando $y$, é gerado por uma rede que contém um loop. Isso ocorre porque o valor de $d^2y/dt^2$ depende dos valores de $y$ e $dy/dt$ e ambos são determinados integrando $d^2y/dt^2$. O diagrama que gostaríamos de codificar é mostrado na figura.
99+
100+
<SignalFlowDiagram type="differential-system" />
101+
102+
**Figura 3.78:** Sistema de processamento de sinais para resolver sistemas de equações diferenciais acopladas. Dois integradores processam `dy₁` e `dy₂` para produzir `y₁` e `y₂`, com multiplicadores de ganho `a` e `b`. Os loops de realimentação cruzados (tracejados) mostram como cada equação depende da solução da outra.
103+
104+
Escreva uma função `solve_2nd` que recebe como argumentos as constantes $a$, $b$ e $dt$ e os valores iniciais $y_0$ e $dy_0$ para $y$ e $dy/dt$ e gera o stream de valores sucessivos de $y$.
94105

95106
## Exercício 3.79
96107

@@ -122,6 +133,10 @@ $$\begin{align*}
122133

123134
O diagrama de fluxo de sinal representando este sistema de equações diferenciais é mostrado na figura.
124135

136+
<SignalFlowDiagram type="rlc-circuit" />
137+
138+
**Figura 3.80:** Circuito RLC em série mostrando resistor (R), indutor (L) e capacitor (C) conectados em série com uma fonte de tensão V(t). O circuito demonstra a relação entre voltagem e corrente nos três componentes passivos fundamentais da eletrônica.
139+
125140
Escreva uma função `RLC` que recebe como argumentos os parâmetros $R$, $L$ e $C$ do circuito e o incremento de tempo $dt$. De maneira similar à função `RC` do exercício 3.73, `RLC` deve produzir uma função que recebe os valores iniciais das variáveis de estado, $v_{C_0}$ e $i_{L_0}$, e produz um par (usando `pair`) dos streams de estados $v_C$ e $i_L$. Usando `RLC`, gere o par de streams que modela o comportamento de um circuito RLC em série com $R = 1$ ohm, $C = 0.2$ farad, $L = 1$ henry, $dt = 0.1$ segundo, e valores iniciais $i_{L_0} = 0$ amperes e $v_{C_0} = 10$ volts.
126141

127142
## Avaliação em ordem normal

0 commit comments

Comments
 (0)