Version 4 SHEET 1 3164 680 WIRE 1280 -96 1184 -96 WIRE 1376 -96 1280 -96 WIRE 1840 -96 1456 -96 WIRE 3088 -96 2688 -96 WIRE 1840 -16 1840 -96 WIRE 3088 -16 3088 -96 WIRE 2688 0 2688 -96 WIRE 1184 16 1184 -96 WIRE 752 96 128 96 WIRE 800 96 752 96 WIRE 128 128 128 96 WIRE 800 128 800 96 WIRE 2688 128 2688 80 WIRE 3088 128 3088 64 WIRE 1840 144 1840 64 WIRE 128 240 128 208 WIRE 800 240 800 208 WIRE 1184 240 1184 96 FLAG 128 240 0 FLAG 800 240 0 FLAG 752 96 Vpulse FLAG 1184 240 0 FLAG 1840 144 0 FLAG 1840 -96 Vs FLAG 1280 -96 Vo FLAG 2688 128 0 FLAG 3088 128 0 FLAG 3088 -96 vs_energy SYMBOL res 784 112 R0 SYMATTR InstName R2 SYMATTR Value 1k SYMBOL bv 1184 0 R0 SYMATTR InstName B1 SYMATTR Value V=min((V(Vpulse))/(148.457)*US, 0) SYMBOL res 1472 -112 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName Ri SYMATTR Value {Ri_val} SYMBOL res 1824 -32 R0 SYMATTR InstName RL SYMATTR Value {RL_val} SYMBOL ISO7637-2 128 128 R0 SYMATTR InstName U1 SYMBOL bv 2688 -16 R0 SYMATTR InstName B2 SYMATTR Value V={idt(V(Vs)*I(RL))} SYMBOL res 3072 -32 R0 SYMATTR InstName R1 SYMATTR Value 1 TEXT 1112 -488 Left 2 !.tran 0 0.015 0 1m TEXT 320 80 Left 2 !;.meas vraw_max MIN v(Vpulse) TEXT 904 -136 Left 2 !;.meas vsurge_max MIN v(Vo) TEXT 1928 -104 Left 2 !.meas total_energy INTEG (V(Vs)*I(RL)) TEXT 1928 -40 Left 2 !.meas maximum_power MAX (V(Vs)*I(RL)) TEXT 1928 -72 Left 2 !.meas avg_power INTEG (V(Vs)*I(RL))/0.5 TEXT 1112 -352 Left 2 !.param RL_val=table(scenario, 0, 2, 1, 10, 2, 50, 3, 10, 4, 50) TEXT 1112 -424 Left 2 !;.step param scenario 0 4 1 TEXT 1120 -280 Left 2 !.meas RL_value MAX RL_val TEXT 1112 -384 Left 2 !.param Ri_val=table(scenario, 0, 2, 1, 2, 2, 2, 3, 10, 4, 50) TEXT 1112 -320 Left 2 !.param US=table(scenario, 0, 650, 1, 650, 2, 650, 3, 110, 4, 650) TEXT 1576 -168 Left 2 !.meas vload_max MAX ABS(v(Vs)) TEXT 1112 -448 Left 2 !.param scenario=1