Frequency splitter and band-pass filter for capacitive load - Page 1
Forum section: electronics / beginners

author: Novgorod
author_rank: Contributor
timestamp: September 22, 2017, 01:17:37 pm
content: Hi!My particular problem might be somewhat exotic, but the electronics part should be relatively basic, so I'm asking in this section. I need to use the output signal of a commercial PID controller (±10V range) to drive a piezoelectric actuator, which is essentially a capacitive load (1.8µF), using a voltage range of -20V to +130V. I can't simply hook up the PID controller directly to a piezo amplifier/driver (commercial module which amplifies the ±10V range to the -20V to 130V range) because this would reduce the precision of the PID controller's output too much and it's not possible to mitigate this by changing the PID parameters (simply put, it's already at its limit). In this application, the final signal to the piezo actuator would have a very slowly (or not at all) changing DC component within its range (-20V to 130V) and in relation to that a tiny AC component (tens of mV amplitude) at frequencies well below 1kHz. This signal comes directly from the PID controller but it's limited to the ±10V range, so I need to "expand"only the DC partto the piezo's -20V to +130V range while keeping the AC part as is.My approach would be to split the PID controller's output signal into a DC and an AC part (similar to a bias tee in RF electronics) at about 1Hz, use the DC part as an input for the piezo amplifier, connect the amplifier's output to the piezo "+", and connect the piezo "-" to the (inverted?) AC signal instead of ground. This should work in principle (I think) because the piezo is a capacitive load and doesn't allow DC current flow. In addition, I want to have an adjustable low-pass or band-pass filter for the AC signal in order to suppress unwanted resonance frequencies (on the order of tens to 100Hz). I'm quite unfamiliar with analog AC electronics and I have no idea what's the right approach to design frequency splitters/filters for a capacitive load rather than for a resistive load. I'd appreciate any advice...

author: T3sl4co1l
author_rank: Super Contributor
timestamp: September 22, 2017, 03:59:25 pm
content: Why is the AC component not simply the correct fraction of the full range to begin with?Note that your suggested method inverts the AC signal. I don't know if that matters.The solution isn't difficult, anyway: construct a "shelf" filter. These are common in audio equalization (in the same frequency range, even). Technically, it's a pole-zero filter, with the pole and zero at the "break" (in your case, above "DC") and "shelf" (below "AC") frequencies, respectively. The circuit is a normal RC lowpass, where C --> R+C.Tim

author: Novgorod
author_rank: Contributor
timestamp: September 23, 2017, 09:22:12 am
content: Thanks for the reply!The AC part is not the "correct fraction" after scaling everything up to the full piezo voltage range simply because of the limited dynamic range of the PID controller. The AC part is already near to its resolution limit in the native ±10V range and it only gets worse if everything is scaled up, thus I want to separate the high-precision AC part and the "large-range" DC part. Of course a custom-built PID controller or even a digital one would eliminate the problem but hugely increase the effort (the digital one would require 24bit DACs and messing around with microcontrollers or even FPGAs).I'll look into the filter you suggested. Is there anything to be aware of when working with capacitive loads like a piezo?

author: T3sl4co1l
author_rank: Super Contributor
timestamp: September 23, 2017, 07:47:59 pm
content: Quote from: Novgorod on September 23, 2017, 09:22:12 amIt might be worth exploring the use of a V-to-F converter, or something like that. Controlling the AC signal path with analog circuitry will surely be better than bit-banging it (so to speak, if I understand your method correctly) from a controller.QuoteYes, there is.If you give quite a lot more information about your application, parts and intent, we can be more specific.Tim

author: Novgorod
author_rank: Contributor
timestamp: September 24, 2017, 09:46:48 am
content: The application is a nano-positioning device (piezo actuator) which needs to be "locked" in place with high precision. A measurement system and the PID controller is used to compensate random drift and mechanical vibrations in order to keep the position fixed on a nm level. At the same time the actuator requires the ability to be set/moved to a certain position and then held in place at the new position. Everything is controlled through the voltage applied to the piezo (-20V to +130V). Thus, the DC part represents the deliberate setting of a certain position (e.g. 80V) and the AC part corrects small mechanical fluctuations around this position (e.g. a random signal with 10mV amplitude around 80V). The set position (i.e. the DC part) is either kept constant or changes slowly (<1V/s) and the bandwidth required for the AC part is on the order of 100Hz.As a side note: The position is set through the measurement system in physical units and the DC part of the control signal is generated by the PID controller (together with the AC part of course) as a response to the measurement input, so it's not some external voltage bias but part of the control loop."Bit-banging" it (you mean making everything digital?) would definitely allow for the most flexible control (i.e. PID controller and filter in software) but as I said, it's a can of worms far beyond my expertise. The resolution required is ~5×10-6of the full range (i.e. 0.75mV), which is on the order of 18bit or so. Hardware which can run a many-kHz PID loop with software filters and appropriate ADCs/DACs seems overkill for this problem...Parts: The PID controller is a SRS SIM960 (analog controller with programmable parameters), the output range is ±10V and it uses a LT1010 to provide driving current. The piezo actuator has 1.8µF capacitance. The piezo driver (used for the DC part) has an input impedance of 200k?.I hope that's enough information. I attached a little sketch for clarity (all inputs/outputs are referenced to the same ground). What's the best way to make this 1Hz splitter and an adjustable low-pass filter (10-100Hz cutoff) for this kind of load?

author: T3sl4co1l
author_rank: Super Contributor
timestamp: September 24, 2017, 05:57:48 pm
content: So the AC part is generated how?If it's the control loop's response to errors, I don't understand calling that AC. While it may be fluctuating, the fluctuation has to include DC (e.g., static load, dielectric absorption).You talk about it like it's an AC bias, but I don't see how that would be helpful. Maybe that's the point, you have excessive quantization and sampling noise from the PID controller and want to reduce that? But then, the controller's DC range will also be far too lumpy for you, which doesn't make sense. And anyway, the SIM960 is fully analog, and has plenty of bandwidth, so it's not that. I don't get it.Tim

author: Novgorod
author_rank: Contributor
timestamp: September 25, 2017, 04:54:05 am
content: Everything is generated by the PID controller. This ±10V signal has a "DC" part and an "AC" part, which I simply want to split apart. Maybe the terms DC and AC are a bit misleading (because both can change) but I think I made it clear that I only mean a frequency range by that (like 0-1Hz for "DC" and everything above 1Hz "AC").The bandwidth of the PID controller is not the problem, it's the dynamic range. It has a certain minimum proportional response which is too strong in the "AC" part (above 1Hz) if I simply scaled up the output to the full piezo range, but it should work if I scale up only the "DC" part, i.e. the 0-1Hz portion of the control signal. This should only be limited by noise and not by the dynamic range (these two are not the same here, even though it's an analog controller). Essentially, the whole thing (including the piezo amp for the "DC" part) should constitute a kind of active filter for the PID controller's output, which boosts only the very low frequencies (down to 0) - that would be indeed a "shelf" filter, as you suggested. I'm just struggling with the correct implementation for this capacitive load.Of course I can't be certain whether it will perform as desired (noise could be an issue in the amplified part), but I want to try this, since the effort seems reasonable...

author: f5r5e5d
author_rank: Frequent Contributor
timestamp: September 25, 2017, 05:28:52 am
content: do you understand, use the 'integral' gain?and a generic PID controller's electronics is unlikely to have the LF '1/F' noise and DC drift specs for your application

author: Novgorod
author_rank: Contributor
timestamp: September 25, 2017, 01:31:48 pm
content: I use it and it has nothing to do with the problem. The specs are also fine (sub-mV noise) and drift is compensated by the PID loop anyway.

author: f5r5e5d
author_rank: Frequent Contributor
timestamp: September 25, 2017, 05:49:21 pm
content: so are you saying there is a problem with your piezo drive amp? bandwidth or noise performance? - what are its specs?

author: Novgorod
author_rank: Contributor
timestamp: September 25, 2017, 06:03:57 pm
content: No, the problem is the limited dynamic range of the PID controller at >1Hz, thus I only want to amplify the "DC" part. Anyway, I'll try simple high-pass/low-pass RC filter first...

author: f5r5e5d
author_rank: Frequent Contributor
timestamp: September 25, 2017, 06:23:06 pm
content: I don't see how you can improve on the PID input noise at any given frequency if dynamic range is set by your measurement system Vout/pid_input_noiseunless your piezo drive amp was adding noise - hard to believe the gain is set to use a good fraction of the PID +/-10 V output

author: Novgorod
author_rank: Contributor
timestamp: September 26, 2017, 06:02:46 am
content: Again, the PID noise is not the underlying problem, it's the limited parameter range which limits the dynamic range of the control output. I could in principle scale down the measurement input to get a "finer" response of the output, but the PID performance also depends on the aboslute signal level (i.e. eventually the input noise will become a problem if it's scaled down too much). Instead, I want to scale down the AC part of the output (which needs to be precise), while running the controller within its optimum range.