Calculé la disipación de energía de una carga R1 en un circuito simple dentro de una duración de 1 segundo usando dos métodos.
- Utilizar una fuente de corriente de comportamiento arbitrario para integrar el producto de corriente y voltaje aplicado a la carga R1. Al leer el valor final de la traza correspondiente se obtiene la Energía \ $ E_a \ $.
- Trazando la potencia sobre la carga R1. Luego, seleccione la traza con Strg + Clic izquierdo, que muestra la integral de la traza \ $ E_t \ $.
El circuito que fue simulado en LTspice XVII:
\ $ E_a \ $ y \ $ E_t \ $ dan resultados diferentes. \ $ E_a \ $ siempre fue más preciso que \ $ E_t \ $ para varias combinaciones de frecuencia y amplitud de la fuente de voltaje sinusodial B1. Cuando B1 está configurado para ser una fuente de CC, no hay errores. Estos son algunos de los resultados:
- f = 10Hz Amplitud = 1 \ $ E \ $ = 0.25 J
\ $ E_a \ $ [J] 0.249999 \ $ E_t \ $ [J] 0.248911 - f = 50Hz Amplitud = 1 \ $ E \ $ = 0.25 J
\ $ E_a \ $ [J] 0.24999225
\ $ E_t \ $ [J] 0.23473 - f = 10 kHz Amplitud = 1 \ $ E \ $ = 0.25 J
\ $ E_a \ $ [J] 0.184319
\ $ E_t \ $ [J] 0.14374 - f = 10 kHz Amplitud = 10 \ $ E \ $ = 25 J
\ $ E_a \ $ [J] 24.6539
\ $ E_t \ $ [J] 24.059
Como se puede ver, el aumento de la frecuencia aumenta el error en comparación con el valor real \ $ E \ $, así como la diferencia entre \ $ E_a \ $ y \ $ E_t \ $. Aumentar la amplitud reduce el error a una frecuencia determinada.
Entonces, ¿por qué obtengo resultados diferentes? Como una integración discreta es igual a una suma de \ $ P_i \ cdot \ Delta t_i \ $ en cada paso de tiempo, sospecho que \ $ E_t \ $ se calcula con pasos de tiempo más grandes que conducen a una menor resolución.
También existe el problema de una precisión reducida a una frecuencia más alta. ¿Cómo puedo evitar esto? Para el circuito dado, esto podría evitarse calculando solo un período único y escalando a la duración posterior. Pero me preocupan más los circuitos más complejos donde puede llevar algún tiempo hasta que se alcanza un estado estable (y no notaría este error).
Código fuente:
Version 4
SHEET 1 880 680
WIRE 112 112 16 112
WIRE 208 112 112 112
WIRE 496 112 352 112
WIRE 608 112 496 112
WIRE 16 128 16 112
WIRE 208 128 208 112
WIRE 352 128 352 112
WIRE 608 128 608 112
WIRE 16 240 16 208
WIRE 208 240 208 208
WIRE 208 240 16 240
WIRE 352 240 352 208
WIRE 480 240 352 240
WIRE 608 240 608 208
WIRE 608 240 480 240
WIRE 208 256 208 240
WIRE 480 256 480 240
FLAG 112 112 u1
FLAG 208 256 0
FLAG 480 256 0
FLAG 496 112 u2
SYMBOL bv 16 112 R0
WINDOW 3 -109 153 Left 2
SYMATTR Value V= sin(2*pi*time* 10)
SYMATTR InstName B1
SYMBOL res 192 112 R0
SYMATTR InstName R1
SYMATTR Value 2
SYMBOL bi2 352 128 R0
SYMATTR InstName B3
SYMATTR Value I= idt(V(u1)*I(R1))
SYMBOL res 592 112 R0
SYMATTR InstName R2
SYMATTR Value 1
TEXT 272 296 Left 2 !.tran 0 1 0