Estimation of an orthogonal component for a single-phase PLL

I'm trying to implement a single-phase PLL, for which operation I need an orthogonal component of the grid voltage.

Let the grid voltage be:

$$v_g(t)=A\sin(\omega t) + \tilde{v}(t),$$

where the latter component is a noise.

I need an estimator that would produce:

$$v_\alpha (t) = A \sin (\omega t), \quad v_\beta (t) = A \cos (\omega t)$$

Now, I've read that it is really challenging to estimate the orthogonal component. Can you tell me why a 1st order filter is not a good idea:

$$G_\alpha(s) = \frac{1}{1+sT}, \quad G_\beta (s) = \frac{1}{\omega}\frac{s}{1+sT},$$

where the filter time constant should be (at least):

$$\frac{1}{T} \geq 10\omega.$$

Note that I have to implement these filters on a microcontroller.

I've simulated the system in PLECS, and everything seems fine.

Here is a response of the estimation error:

Can you tell me why a 1st order filter is not a good idea

Quite simply, a 1st order filter will only produce a phase shift of 90 degrees at either infinite or zero frequency.

An integrator will produce 90 degrees at all frequencies but amplitude falls ten times for each rising decade in frequency. Thus it won't achieve what you want.

• I'm aware that there will be some (very small) errors, but if the filter cut-off frequency is set far away (e.g., 100 times the signal frequency), then these errors are really small. Please see simulation results in my question. Commented Dec 23, 2016 at 14:29
• All I have done is answered the question based on what you said. If you are happy that near-enough is good-enough then that's your decision. Commented Dec 23, 2016 at 14:44
• As it can be seen from the system simulation, the estimation precision is within 1%. From your experience, is this good enough for a PLL? Commented Dec 23, 2016 at 14:46
• I don't know - the term "single-phase PLL" leaves a lot to the imagination. Commented Dec 23, 2016 at 14:52

Run the sin into a LPF, then into the CA3011 limiter; that, with 60dB gain, will give a squarewave output. Can you use squarewave?

Or use a state-variable oscillator, where Sin and Cos are inherent to the oscillator.