digital-brain/content/zettels/transconductance_amplifiers.md

14 KiB

+++ title = "Transconductance Amplifiers" draft = false category = "equipment" +++

Tags
[Electronics]({{< relref "electronics.md" >}}), [Voice Coil Actuators]({{< relref "voice_coil_actuators.md" >}})

Description

A Transconductance Amplifier converts the control voltage into current with a current source characteristic.

Such a converter is called a voltage-to-current converter, also named a voltage-controlled current source or transconductance amplifier.

Such amplifier is used to control motors (e.g. voice coil, BLDC, stepper motors, ...).

Manufacturers

Table 1: Drivers with integrated controllers
Model Manufacturer Linear / PWM Axes Interfaces Feedback Current Bandwidth ASD at 1kHz [A/sqrt(Hz)]
Apogee Prodrive PWM 1 to 3 +/-10V 16bits Encoder 7kHz 1e-6
S3-400/8 Prodrive PWM 1 +/-10V Encoder 1kHz 1e-4
LWM7S Macon Linear 1 Encoder/Hall
Automation1 XL2e Aerotech Linear 1 +/-10V 16bits Encoder/Hall 2.5kHz
Automation1 XL4s Aerotech Linear 1 (voice coil) +/-10V 16bits ?
EM-356B Electromen PWM 1 0-10V Hall
azbh10a4 AMC PWM 1 +/-10V Hall
X-MCC Zaber ?? 1 to 4
TA310 TrustAutomation Linear 1 +/-10V Hall 5kHz

Table 2: Pure Drivers
Model Manufacturer Linear / PWM Axes Interfaces Current Bandwidth Max Current ASD at 1kHz [A/sqrt(Hz)]
LA300 Varedan Linear 3 +/-10V 10kHz 4A
CMAu10 Cedrat Linear 1 +/-10V 5kHz 0.5A
TA115 and TA105 TrustAutomation Linear 1 +/-10V 5kHz 1e-6
SMA6520 Glentek Linear 1 Brushless (3 phases) +/-10V 10kHz
SMA5005 Glentek Linear 1 +/-10V 10kHz

Required properties

Main required properties are (taken from (Schmidt, Schitter, and Rankers 2020)):

  • Power delivery capability
  • Dynamic properties
  • Linearity
  • Voltage or current drive
  • Efficiency
  • Four quadrant operation

Four Quadrant Operation

The self-inductance of an electromagnetic actuator also causes another problem when the actuator is driven with a period signal, because for a sinusoidal signal the current is out of phase with the voltage. In the extreme case of a purely reactive load, the maximum current needs to be delivered at zero voltage, while at a quarter of the period a positive current is delivered with a negative voltage and another quarter it is just the other way around.

In mechatronic positioning systems with a high moving mass, the real problem is caused by the kinetic energy that is involved. At acceleration, the motion voltage of the actuator increases in phase with the current and electric power is inserted in the system and converted into kinetic energy. The deceleration phase is however completely the opposite. While the motion voltage still has the same sign as during constant motion, the current needs to be reversed in order to reverse the energy flow. This means that the full amount of kinetic energy has to be absorbed by the amplifier.

How to size a linear drive?

Why it is important to properly choose a linear drive?

From a TrustAutomation white paper:

The price you'll pay for the improved precision (i.e. thanks to the linear drive as compared to a PWM one) will mostly come in the form of heat. Linear drive typically maintain small amounts of power inside the drive circuits, increasing heat. Excess voltage not needed by the motor is also dissipated as heat.

Determine required currents and voltages

In order to properly choose a linear amplifier, it is important to determine the voltage and torque that has to be generated.

The required current is based on the force (resp. torque) constant \(K_f\) and peak force (resp. torque). The required voltage is based on the back EMF constant \(K_u\), peak velocity \(v_\text{peak}\), peak current \(I_\text{peak}\) and winding resistance \(R\).

Consider a linear brushless motor with a force constant \(K_f\) equal to 30 N/A, a BEMF constant \(K_u\) equal to \(18\,\frac{Vrms}{m/s}\) (i.e. \(25\,\frac{V}{m/s}\)) and a electrical resistance \(R\) of \(20\,\Omega\). The peak velocity \(v_\max\) is 1 mm/s and the wanted applied peak force \(F_\text{peak}\) is 50 N.

The peak current required is: \[ I_\text{peak} = F_\text{peak}/K_f \] And we obtain a peak current of 1.7 A.

The peak voltage is: \[ V_\text{peak} = K_u \cdot v_\text{peak} + R \cdot I_\text{peak} + V_\text{margin} \] With \(V_\text{margin}\) of 10 V, we obtain \(V_\text{peak} = 45\,V\).

From this simple calculation, it is possible to obtain the required capability of the amplifier.

Determine safe operating area

There are two danger scenarios: a stalled motor and a dynamic stopping motion

Stalled motor

Consider the voltage supply to the drive \(V_\text{supply}\) and the peak current \(V_\text{peak}\). Now suppose the motor is pushing against a hard stop, the power \(W_\text{drive}\) that the drive must dissipate is equal to: \[ W_\text{drive} = I_\text{peak} \cdot V_\text{drive} \] with: \[ V_\text{drive} = V_\text{supply} - I_\text{peak} R \]

For our current application, \(V_\text{supply} = 45\,V\), \(R = 20\,\Omega\) and \(I_\text{peak} = 1.7\,A\) which gives: \[ W_\text{drive} = 19\,W \]

Then, it should be checked that the amplifier can dissipate this amount of power.

Dynamic Stopping.

With a linear drive, the kinetic energy is absorbed by the drive itself, but must be dissipated as heat. This energy must be added to the energy required by the drive to stop all motion.

The kinetic energy \(E_K\) is (expressed in Joules): \[ E_K = \frac{1}{2} m v_\text{peak}^2 \] with \(m\) the payload mass. During the linear deceleration phase, the power \(W_d\) that has to be dissipate by the drive is: \[ W_d = \frac{E_K}{t_\text{dec}} \] with \(t_\text{dec}\) the deceleration time.

Consider a mass of 5 kg with a peak velocity of 1 mm/s and a deceleration time of 0.1s, the power to be dissipated in the drive is: \[ W_d = 25\,\mu W \] which is quite negligible.

If a velocity of 1 m/s is considered instead, we obtain \(W_d = 25\,W\).

Matlab Script to size a linear drive

%% Motor properties
Kt = 28; % Force constant [N/A] or Torque constant [Nm/A]
Ku = 28; % BEMF in [V/(m/s)] or in [V/(rad/s)]
R  = 8.5; % Winding resistance [Ohm]

%% Motion property
Fp = 100; % Peak force [N] or Peak torque [Nm]
vp = 10e-3; % Peak Velocity [m/s] or peak rotation [rad/s]
m  = 5; % Mass of the payload [kg]
td = 0.1; % Deceleration time [s]
%% Driver wanted properties
V_margin = 10; % Power supply margin [V]
Imax = Fp / Kt; % Peak current to be supplied by the driver [A]
Vmax = vp * Ku + R * Imax + V_margin;  % Peak voltage to be generated by the driver [V]
Imax = 3.6 [A], Vmax = 41 [V]
%% Stalled Motor
W_stalled = Imax * (Vmax - Imax * R); % [W]
W_stalled = 37 [W]
%% Dynamic Stopping
W_stop = 0.5*m*vp^2 / t_dec; % [W]
W_stop = 0.0025 [W]

Estimation of the required current noise

Voice Coil Actuator with flexible guiding

%% Frequency vector used for the analysis
freqs = logspace(0, 4, 1000); % [Hz]

%% Motor properties
Kt = 28; % Force constant [N/A]

%% Amplifier Noise
In = 1e-6.*ones(size(freqs)); % Current noise density [A/sqrt(Hz)]

%% DAC Noise
Vn = (20/2^20)^2/12*1e4*ones(size(freqs)); % DAC output noise in [V/sqrt(Hz)]
Vn = 3e-8
Gi = 0.2; % Amplifier Gain [A/V]

%% Mechanical properties
m = 200e-3; % Mobile mass [kg]
k = 1e3; % Guiding stiffness [N/m]
xi = 0.05; % Modal Damping
%% Transfer function from F [N] to x [m]
Gx = 1/(m*s^2);
%% Transfer function from I [A] to x [m]
x_asd_i = In.*abs(squeeze(freqresp(Gx*Kt, freqs, 'Hz')))';
x_asd_v = Vn.*abs(squeeze(freqresp(Gx*Gi*Kt, freqs, 'Hz')))';

%% Cumulative amplitude spectrum
figure;
tiledlayout(1, 1, 'TileSpacing', 'Compact', 'Padding', 'None');

nexttile();
hold on;
plot(freqs, sqrt(flip(-cumtrapz(flip(freqs), flip(x_asd_i.^2)))) , '-');
plot(freqs, sqrt(flip(-cumtrapz(flip(freqs), flip(x_asd_v.^2)))) , '-');
plot(freqs, ex , '-');
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Magnitude'); xlabel('Frequency [Hz]');
xlim([0, 1e3]);

Approximate analytical formula

Parameters:

  • Kt: motor force constant in N/A
  • In: current noise density of the amplifier in \(A/\sqrt{Hz}\)
  • m: mass in kg
  • fb: the feedback bandwidth in Hz

We have that the residual motion when the feedback controller is closed is approximately equal to:

\begin{equation} \epsilon_x = \sqrt{\int_\infty^{f_b} \left(\frac{K_t I_n}{m \omega^2}\right)^2 d\omega} \end{equation}

\begin{equation} \epsilon_x = \frac{K_t I_n}{m (2\pi)^2} \sqrt{\frac{1}{3 f_b^3}} \end{equation}

Therefore, this formula can be used to:

%% Estimate the position stability from the current noise and system parameters
m = 1; % [kg]
In = 1e-6; % [A/sqrt(Hz)]
Kt = 10; % [N/A]
fb = 10; % [Hz]

ex = In*Kt/m/(2*pi)^2*sqrt(1./(3*fb^3));
epsilon x = 4.6 [nm RMS]
%% Estimate the required current noise from the wanted position stability and the parameters of the system
m = 1; % [kg]
Kt = 10; % [N/A]
fb = 50; % [Hz]
ex = 1e-9; % [m RMS]

In = ex*m*(2*pi)^2/Kt * sqrt(3*fb^3);
In = 2.4e-06 [A/sqrt(Hz)]

Bibliography

Schmidt, R Munnig, Georg Schitter, and Adrian Rankers. 2020. The Design of High Performance Mechatronics - Third Revised Edition. Ios Press.