EEVblog Electronics Community Forum
Electronics => Projects, Designs, and Technical Stuff => Topic started by: Experimentonomen on August 24, 2013, 03:23:21 pm
-
I'm looking for not only a inverting but also a non-inverting integrator circuit in which the gain remain constant from a few Hz and up to around a kHz, rather than gain dropping as freq goes up, but not only that, it also need to keep the output voltage constant regardless of input voltage.
Anyone know of anything ? I'd prefer if it used as few components as possible as i will have three of each these, one that integrates on the positive side of zero and one that integates on the negative side of zero.
I am trying to replicate the TI "instaspin" sensorless bldc drive using analog parts for the bemf stuff and some 4000 series logic to make the six step trapezoidal drive.
Why ? Just for fun.
-
Difficult to achieve with analogue electronics. When you mathematically integrate a function the coefficient scales the answer. In this case the coefficient is the frequency - so you would have to devise a method of multiplying the output of the integrator by frequency of the waveform.
-
I assume an arduino is not good enough and that i need atleast a dsp or even a smaller fpga to to do the integration. Neither do i have the skills to even get a led to blink.
I did dome up with a circuit that almost does what i want using two opamps and a few passives, prollem is the output waveform is the same as input waveform.
The flux threshold control i was gonna do with two comparators(per phase if i have to, and *or* them together with diodes) whose outputs would tell the 6-step sequencer the next commutation has arrived, as well as reset the integrators for the next phase bemf integration.
-
I assume an arduino is not good enough and that i need atleast a dsp or even a smaller fpga to to do the integration.
I don't know. I guess it depends how fast and how accurate you want to be. I wouldn't rule out the possibility of throwing several low-end micros at the job if the task was too much for a single chip. As for speed, it only takes a couple of instructions cycles to look-up an answer in a table.
Neither do i have the skills to even get a led to blink.
A project "just for fun" would be the ideal place to learn :)
-
I did find some pid library thing on the arduino website, but i dunno, doing the integrators on a mcu means i will have to do the comparators there as well, then then i could as well just go and buy a readymade instaspin eval board as the point was to replicate it all in analog for the bemf and using 4000 series logic for the rest.
I already played around with sensorless bldc before using a cd4046 and some bilateral switches and stuff for the backemf stuff based on the workings of some sensorless bldc drive ic block diagram but i couldent get it to work properly, neither is it a good way to drive a motor as you relying on past information and assumes constant velocity as mentioned in the 32 minute instaspin vid from TI.
-
I don't understand what you mean by an integrator with frequency independent gain -- that is not an integrator.
Is what you really want a 90 degree phase shift with unity gain? An all-pass filter does that, but only at a single frequency. To do something that sounds anything like what you are suggesting requires non-linear feedback. Basically you measure the frequency and feed-back the parameters of the filter to get the desired response. So you could make a digital low-pass filter or delay line, along with a counter that measures the frequency and sets the low-pass frequency/delay time so that at the current signal frequency you get the desired phase/amplitude response.
-
Isn't it enough to know the zero crossings (and their direction) of the waveform?
-
No that is not enough, and here is a explanation why: http://youtu.be/szgVUfyX8JM?t=5m9s (http://youtu.be/szgVUfyX8JM?t=5m9s) and http://cache.freescale.com/files/microcontrollers/doc/app_note/AN4597.pdf (http://cache.freescale.com/files/microcontrollers/doc/app_note/AN4597.pdf)
Not to mention all the filtering needed to prevent false triggering from the inductive spikes and other noise which further messes up the commutation times and causes commutation either too early or too late.
-
So is the Freescale method the one you want to implement? Because AFAICS that uses bog standard integration ...
-
The freescale one and the TI one is the exact same thing from what i can tell.