Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using...
Transcript of Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using...
![Page 1: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/1.jpg)
Adaptive-window PMU algorithms using
cascaded boxcar filters to meet and exceed
C37.118.1(a) requirements
Dr. Andrew Roscoe
![Page 2: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/2.jpg)
Contributors to recent and
forthcoming work
Andrew Roscoe,
University of Strathclyde
Bill Dickerson,
Arbiter Systems
Ken Martin,
Chair, IEEE Synchrophasor Working Group
Steven Blair,
University of Strathclyde
ENG52 Researcher
http://personal.strath.ac.uk/steven.m.blair/
![Page 3: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/3.jpg)
C37.118.1a-2014
IEC/IEEE 60255-118-1
![Page 4: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/4.jpg)
General PMU architecture
(single phase section)
Analogue
filteringADC
X
X
FIR filter
FIR filter
+
+j
Time
Synchronised
to UTC
Quadrature
oscillator
cos(2πfTt)-sin(2πfTt)
Tuned frequency fT
f0 = Nominal frequency (Hz)
f = Actual fundamental frequency (Hz)
fT = Tuned frequency (Hz)
![Page 5: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/5.jpg)
Fixed-filter PMU architecture
(single phase section)
Analogue
filteringADC
X
X
FIR filter
FIR filter
+
+j
Time
Synchronised
to UTC
Quadrature
oscillator
cos(2πfTt)-sin(2πfTt)
Tuned frequency fT=f0
f0 = Nominal frequency (Hz)
f = Actual fundamental frequency (Hz)
fT = Tuned frequency (Hz)
fT=f0
ff (f-f0 ≈ 0) , (f+f0 ≈ 2f0)
![Page 6: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/6.jpg)
Frequency-tracking PMU architecture
(single phase section)
Analogue
filteringADC
X
X
FIR filter
FIR filter
+
+j
Time
Synchronised
to UTC
Quadrature
oscillator
cos(2πfTt)-sin(2πfTt)
Tuned frequency fT=f
f0 = Nominal frequency (Hz)
f = Actual fundamental frequency (Hz)
fT = Tuned frequency (Hz)
fT=f
ff (f-fT=0) , (f+fT=2f)
![Page 7: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/7.jpg)
Reference vs. Tracking filter example
f0=50, Reporting rate 50 Hz
![Page 8: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/8.jpg)
The effect of modulation in the
bandwidth test
(1+0j)
0.9 1.1
0.1 pu amplitude modulation
0.1 rad phase modulation
M
TVEfF
Limit
M 1
1.0
03.01MfF
7.0MfF
F(fM) > -3.098 dB
tfjtfj MM eM
eM
V 22
22
tfj
M
tfj
MMeasMM e
MfFe
MfFV
22
22
VVTVE Meas
![Page 9: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/9.jpg)
Reference vs. Tracking filter example
f0=50, Reporting rate 50 Hz
![Page 10: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/10.jpg)
Bandwidth test – TVE
![Page 11: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/11.jpg)
Bandwidth testing
F & ROCOF
performance
limits
Error requirements for Compliance
P Class M Class
Reporting Rate
FS (Hz) Fr (Hz) Max FE Max RFE Fr (Hz) Max FE Max RFE
10 1 0.03 0.6 2 0.12 2.3
12 1.2 0.04 0.8 2.4 0.14 3.3
15 1.5 0.05 1.3 3 0.18 5.1
20 2 0.06 2.3 4 0.24 9.0
25 2 0.06 2.3 5 0.30 14
30 2 0.06 2.3 5 0.30 14
50 2 0.06 2.3 5 0.30 14
60 2 0.06 2.3 5 0.30 14
Formulas min(FS/10,2) 0.03 *Fr 0.18*π*Fr 2 min(Fs/5,5) 0.06 *Fr 0.18*π*Fr2
C37.118.1a-2014
![Page 12: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/12.jpg)
Bandwidth test – Frequency Error (FE)
& ROCOF ERROR (RFE)
![Page 13: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/13.jpg)
Reference vs. Tracking filter example
f0=50, Reporting rate FS=50 Hz
![Page 14: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/14.jpg)
Reference vs. Tracking filter example
f0=50, Reporting rate 50 Hz
![Page 15: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/15.jpg)
Frequency error during OOB testing
(1+0j)
Interharmonic at 2πfIH
Radius AF(fIH-fT)
• where A=0.1 pu
• F(fIH-fT) is filter gain at (fIH-fT)
• Deviation rotates at 2π∙(fIH-f)
(1- AF(fIH-fT))
Trajectory speed
at closest approach
2π∙(fIH-f) ∙ AF(fIH-fT)
Frequency deviation2π ∙ (fIH−f) ∙ AF(fIH−fT)
2π ∙ (1− AF(fIH−fT))
![Page 16: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/16.jpg)
Determining the required filter Mask
for OOB testing
𝐹 𝑓𝐼𝐻 − 𝑓𝑇 <𝐹𝐸𝑚𝑎𝑥
𝐴 ∙ 𝑓𝐼𝐻 − 𝑓
Minimum separation
of the interharmonic
from the tuned
(heterodyne) frequency.
Sets the width of the mask.
Maximum separation
of the interharmonic
from the
fundamental frequency, when
𝑓𝐼𝐻 − 𝑓𝑇 is minimum,
sets the gain (attenuation)
Required at the “closest” mask point.
Frequency deviation2π ∙ (fIH−f) ∙ AF(fIH−fT)
2π ∙ (1− AF(fIH−fT))
Frequency deviation2π ∙ (fIH−f) ∙ AF(fIH−fT)
2π ∙ (1− AF(fIH−fT))
![Page 17: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/17.jpg)
Out-of-Band testing, f=f0All algorithms
f0 = Nominal frequency (Hz)
f = Actual fundamental frequency (Hz)
fT = Tuned frequency (Hz)
Frequency in filter = ( fIH - fT )
Frequency
f = fT = f0
𝑓0 +𝐹𝑆2𝑓0 −
𝐹𝑆2
Minimum ( fIH - fT ) = 𝑓0 +𝐹𝑆
2− 𝑓0 =
𝐹𝑆
2
Minimum fIH (upper) = 𝑓0 +𝐹𝑆
2
Maximum ( fIH - f ) = 𝑓0 +𝐹𝑆
2− 𝑓0 =
𝐹𝑆
2
Mask width is “normal” 𝐹𝑆
2and ( fIH - f ) tracks exactly with ( fIH - fT ).
![Page 18: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/18.jpg)
Out-of-Band testing, f=f0-𝐹𝑆
20
Fixed-filter algorithm
f0 = Nominal frequency (Hz)
f = Actual fundamental frequency (Hz)
fT = Tuned frequency (Hz)
Frequency in filter = ( fIH - fT )
Frequency
fT = f0
𝑓0 +𝐹𝑆2𝑓0 −
𝐹𝑆2
Minimum ( fIH - fT ) = 𝑓0 +𝐹𝑆
2− 𝑓0 =
𝐹𝑆
2
Minimum fIH (upper) = 𝑓0 +𝐹𝑆
2
Maximum ( fIH - f) = 𝑓0 +𝐹𝑆
2− (f0−
𝐹𝑆
20) = 1.1
𝐹𝑆
2
f =f0-𝐹𝑆
20
Mask width is “normal” 𝐹𝑆
2but gain needs to be reduced by 20 ∙ 𝑙𝑜𝑔
1
1.1= 0.83 dB,
at the closest frequency, from what you might expect.
![Page 19: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/19.jpg)
Out-of-Band testing, f=f0+𝐹𝑆
20
Frequency-tracking algorithm
f0 = Nominal frequency (Hz)
f = Actual fundamental frequency (Hz)
fT = Tuned frequency (Hz)
Frequency in filter = ( fIH - fT )
Frequency
f0
𝑓0 +𝐹𝑆2𝑓0 −
𝐹𝑆2
Minimum ( fIH - fT ) = 𝑓0 +𝐹𝑆
2− 𝑓0 +
𝐹𝑆
20= 0.9
𝐹𝑆
2
Minimum fIH (upper) = 𝑓0 +𝐹𝑆
2
Maximum ( fIH - f) = 𝑓0 +𝐹𝑆
2− (f0+
𝐹𝑆
20) = 0.9
𝐹𝑆
2f =fT=f0+
𝐹𝑆
20
Mask frequency width is reduced by 10% from 𝐹𝑆
2but gain can be 20 ∙ 𝑙𝑜𝑔
1
0.9= 0.92 dB higher,
at the closest frequency, from what you might expect.
![Page 20: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/20.jpg)
Simplified OOB requirements and
examples, f0=50 Hz, FS=50 Hz
![Page 21: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/21.jpg)
Simplified OOB requirements and
examples, f0=50 Hz, FS=50 Hz
f0 = 50 Hz
FS = 50 Hz
0.92 dB
0.83 dB
14.8% narrower
![Page 22: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/22.jpg)
Cascaded boxcar filters,
f0=50 Hz, FS=50 Hz
![Page 23: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/23.jpg)
Boxcar filter properties
![Page 24: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/24.jpg)
Cascaded boxcar filters example,
f0=50 Hz, FS=50 Hz
![Page 25: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/25.jpg)
Cascaded boxcar filters example,
f0=50 Hz, FS=50 Hz
O
OO
O OO
O Primary filter zeros
![Page 26: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/26.jpg)
Cascaded boxcar filters example,
f0=50 Hz, FS=50 Hz
O
OO
O OOO
O Primary filter zeros
O Frequency filter
Additional zeros
![Page 27: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/27.jpg)
Cascaded boxcar filters example,
f0=50 Hz, FS=50 Hz
O
OO
O OOO
O
OO
O O OOO O
OOO
O
OO
O Primary filter zeros
O Frequency filter
Additional zeros
O “Harmonic” zeros
O Frequency filter
“harmonic” zeros
![Page 28: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/28.jpg)
Cascaded boxcar filters example,
f0=50 Hz, FS=50 Hz
![Page 29: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/29.jpg)
Cascaded boxcar filters example,
f0=50 Hz, FS=50 Hz
![Page 30: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/30.jpg)
Cascaded boxcar filters example,
f0=50 Hz, FS=50 Hz
1 1 22½ 2 1½ 1
Primary filter
10 cycles, ~200ms at f=50 Hz
Latency ~5 cycles, ~100ms at f=50 HzAdditional
Frequency (and ROCOF)
filtering
Response time
![Page 31: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/31.jpg)
Example software architecture
![Page 32: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/32.jpg)
Code execution speed
• 30-60μs Typical execution time per frame for M class PMU (Motorola MVME5500). Supports >10kHz reporting.
• Calculation rate does NOT increase for longer-window (lower reporting rate) devices, as long as the NUMBER of cascaded boxcar filter sections is kept constant.
– But fast-access memory requirement does (∝ Window length).
• Can easily be extended to “Harmonic PMU” applications.– # Calculations expand ∝N harmonics, memory expands ∝N
harmonics and ∝ Window length
• Compare with
– Least Squares and “TFT” algorithms, # calculations proportional to window length
– FFT algorithms for harmonic PMUs, # calculations proportional to (window length)*log(window length)
– Kalman filter methods, # calculations proportional to the number of filter zeros squared (matrix multiplications).
![Page 33: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/33.jpg)
Non-standard tests and real-world conditions
![Page 34: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/34.jpg)
Unfinished work - Increased fault tolerance for frequency
and ROCOF - 27th August 2013 example – P class
![Page 35: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/35.jpg)
Unfinished work - Increased fault tolerance for frequency
and ROCOF - 27th August 2013 example – P class
![Page 36: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/36.jpg)
Unfinished work - Increased fault tolerance for frequency
and ROCOF - 27th August 2013 example – P class
![Page 37: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/37.jpg)
Future considerations/work:
• Implement in hardware!
• Continuing input to standards development.
• Accurate revenue metering.
• Synchronised Power Quality assessment and PQ “metering”!
• Combinations of adaptive and fixed boxcars to provide “Uniform Aggregated Weighting” (Welch’s method) via repeated windows at fixed (i.e. 20ms) intervals, while also providing adaptive-zero-placement for off-nominal frequency.
• Integrating PMU algorithms within HVDC controllers?
• Aggregation of PMU ROCOF data across a geographically wide network to determine “system ROCOF” and required “inertial” responses.
– “Enhanced Frequency Control Capability (EFCC)” with National Grid, Alstom, Belectric, Centrica, Flextricity & University of Manchester.
![Page 38: Adaptive-window PMU algorithms using cascaded boxcar ... · Adaptive-window PMU algorithms using cascaded boxcar filters to meet and exceed C37.118.1(a) requirements Dr. Andrew Roscoe.](https://reader035.fdocuments.in/reader035/viewer/2022081400/5f0b89dd7e708231d43102e1/html5/thumbnails/38.jpg)
END