diff --git a/content/phdthesis/jabben07_mechat.md b/content/phdthesis/jabben07_mechat.md index 33af58e..1d393cb 100644 --- a/content/phdthesis/jabben07_mechat.md +++ b/content/phdthesis/jabben07_mechat.md @@ -43,9 +43,9 @@ This approach allows frequency dependent error budgeting, which is why it is ref #### Ground vibrations {#ground-vibrations} -#### Electronic Noise {#electronic-noise} +#### [Electronic Noise]({{< relref "electronic_noise.md" >}}) {#electronic-noise--electronic-noise-dot-md} -**Thermal Noise** (or Johson noise). +**Thermal Noise** (or Johnson noise). This noise can be modeled as a voltage source in series with the system impedance. The noise source has a PSD given by: \\[ S\_T(f) = 4 k T \text{Re}(Z(f)) \ [V^2/Hz] \\] @@ -65,7 +65,7 @@ with \\(q\_e\\) the electronic charge (\\(1.6 \cdot 10^{-19}\\, [C]\\)), \\(i\_{
-An averable current of 1 A will introduce noise with a STD of \\(10 \cdot 10^{-9}\\,[A]\\) from zero up to one kHz. +A current of 1 A will introduce noise with a STD of \\(10 \cdot 10^{-9}\\,[A]\\) from zero up to one kHz.
diff --git a/content/zettels/brushless_dc_motor.md b/content/zettels/brushless_dc_motor.md new file mode 100644 index 0000000..52d534c --- /dev/null +++ b/content/zettels/brushless_dc_motor.md @@ -0,0 +1,20 @@ ++++ +title = "Brushless DC Motor" +author = ["Dehaeze Thomas"] +draft = false ++++ + +Tags +: + + +## Manufacturers {#manufacturers} + +- +- + + +## Bibliography {#bibliography} + +
+
diff --git a/content/zettels/charge_amplifiers.md b/content/zettels/charge_amplifiers.md index 8d9d5f5..4863945 100644 --- a/content/zettels/charge_amplifiers.md +++ b/content/zettels/charge_amplifiers.md @@ -45,7 +45,7 @@ The gain of the charge amplified (Figure [1](#figure--fig:charge-amplifier-circu | [DJB](https://www.djbinstruments.com/products/instrumentation/view/9-Channel-Charge-Voltage-Amplifier-IEPE-Signal-Conditioning-Rack-Mounted) | UK | | [MTI Instruments](https://www.mtiinstruments.com/products/turbine-balancing-vibration-analysis/charge-amplifiers/ca1800/) | USA | | [Sinocera](http://www.china-yec.net/instruments/signal-conditioner/multi-channels-charge-amplifier.html) | China | -| [L-Card](https://en.lcard.ru/products/accesories/le-41) | Rusia | +| [Physimetron](http://www.physimetron.de/produkte_en.html) | Germany | ## Bibliography {#bibliography} diff --git a/content/zettels/discrete_transfer_functions.md b/content/zettels/discrete_transfer_functions.md index a92f116..16c4f4d 100644 --- a/content/zettels/discrete_transfer_functions.md +++ b/content/zettels/discrete_transfer_functions.md @@ -8,6 +8,100 @@ Tags : [Digital Filters]({{< relref "digital_filters.md" >}}) +## Continuous to discrete transfer function {#continuous-to-discrete-transfer-function} + +In order to convert an analog filter (Laplace domain) to a digital filter (z-domain), the `c2d` command can be used ([doc](https://fr.mathworks.com/help/control/ref/lti.c2d.html)). + +
+ +Let's define a simple first order low pass filter in the Laplace domain: + +```matlab +s = tf('s'); +G = 1/(1 + s/(2*pi*10)); +``` + +To obtain the equivalent digital filter: + +```matlab +Ts = 1e-3; % Sampling Time [s] +Gz = c2d(G, Ts, 'tustin'); +``` + +
+ +There are several methods to go from the analog to the digital domain, `Tustin` is the one I use the most as it ensures the stability of the digital filter provided that the analog filter is stable. + + +## Obtaining analytical formula of filter {#obtaining-analytical-formula-of-filter} + +The Matlab [Symbolic Toolbox](https://fr.mathworks.com/help/symbolic/) can be used to obtain analytical formula for discrete transfer functions. + +Let's consider a notch filter: + +\begin{equation} + G(s) = \frac{s^2 + 2 g\_c \xi \omega\_n s + \omega\_n^2}{s^2 + 2 \xi \omega\_n s + \omega\_n^2} +\end{equation} + +with: + +- \\(\omega\_n\\): frequency of the notch +- \\(g\_c\\): gain at the notch frequency +- \\(\xi\\): damping ratio (notch width) + +First the symbolic variables are declared (`Ts` is the sampling time, `s` the Laplace variable and `z` the "z-transform" variable). + +```matlab +%% Declaration of the symbolic variables +syms gc wn xi Ts s z +``` + +The symbolic formula of the notch filter is defined: + +```matlab +%% Notch Filter - Symbolic representation +Ga = (s^2 + 2*xi*gc*s*wn + wn^2)/(s^2 + 2*xi*s*wn + wn^2); +``` + +Then the bi-linear transformation is performed to go from continuous to discrete: + +```matlab +%% Bilinear Transform +s = 2/Ts*(z - 1)/(z + 1); +``` + +Finally, the numerator and denominator coefficients can be extracted: + +```matlab +%% Get numerator and denominator +[N,D] = numden(Ga); + +%% Extract coefficients (from z^0 to z^n) +num = coeffs(N, z); +den = coeffs(D, z); +``` + +```text +num = (Ts^2*wn^2 - 4*Ts*gc*wn*xi + 4) + (2*Ts^2*wn^2 - 8) * z + (Ts^2*wn^2 + 4*Ts*gc*wn*xi + 4) * z^2 +``` + +```text +den = (Ts^2*wn^2 - 4*Ts*wn*xi + 4) + (2*Ts^2*wn^2 - 8) * z + (Ts^2*wn^2 + 4*Ts*wn*xi + 4) * z^2 +``` + + +## Variable Discrete Filter {#variable-discrete-filter} + +Once the analytical formula of a discrete transfer function is obtained, it is possible to vary some parameters in real time. + +This is easily done in Simulink (see Figure [1](#figure--fig:variable-controller-simulink)) where a `Discrete Varying Transfer Function` block is used. +The coefficients are simply computed with a Matlab function. + + + +{{< figure src="/ox-hugo/variable_controller_simulink.png" caption="Figure 1: Variable Discrete Filter in Simulink" >}} + + ## Typical Transfer functions {#typical-transfer-functions} diff --git a/content/zettels/electronic_noise.md b/content/zettels/electronic_noise.md new file mode 100644 index 0000000..b93500d --- /dev/null +++ b/content/zettels/electronic_noise.md @@ -0,0 +1,77 @@ ++++ +title = "Electronic Noise" +author = ["Dehaeze Thomas"] +draft = false ++++ + +Tags +: [Electronics]({{< relref "electronics.md" >}}), [Signal to Noise Ratio]({{< relref "signal_to_noise_ratio.md" >}}) + + +## Thermal (Johnson) Noise {#thermal--johnson--noise} + +Thermal noise is generated by the thermal agitation of the electrons inside the electrical conductor. +Its Power Spectral Density is equal to: + +\begin{equation} +S\_T \approx 4 k T \text{Re}(Z(f)) \quad [V^2/Hz] +\end{equation} + +with: +with \\(k = 1.38 \cdot 10^{-23} \\,[J/K]\\) the Boltzmann's constant, \\(T\\) the temperature [K] and \\(Z(f)\\) the frequency dependent impedance of the system. + +This noise can be modeled as a voltage source in series with the system impedance. + +| Resistance | PSD \\([V^2 / Hz]\\) | ASD \\([V/\sqrt{Hz}]\\) | RMS (1kHz) | RMS (10kHz) | +|-----------------|--------------------------|--------------------------|------------|-------------| +| \\(1 \Omega\\) | \\(1.6 \cdot 10^{-20}\\) | \\(1.2 \cdot 10^{-10}\\) | 4nV | 130nV | +| \\(1 k\Omega\\) | \\(1.6 \cdot 10^{-17}\\) | \\(4 \cdot 10^{-9}\\) | 130nV | 4uV | +| \\(1 M\Omega\\) | \\(1.6 \cdot 10^{-14}\\) | \\(1.2 \cdot 10^{-7}\\) | 4uV | 130uV | + + +## Shot Noise {#shot-noise} + +Seen with junctions in a transistor. +It has a white spectral density: + +\begin{equation} +S\_S = 2 q\_e i\_{dc} \ [A^2/Hz] +\end{equation} + +with \\(q\_e\\) the electronic charge (\\(1.6 \cdot 10^{-19}\\, [C]\\)), \\(i\_{dc}\\) the average current [A]. + +
+ +A current of 1 A will introduce noise with a STD of \\(10 \cdot 10^{-9}\\,[A]\\) from zero up to one kHz. + +
+ + +## Excess Noise (or \\(1/f\\) noise) {#excess-noise--or-1-f-noise} + +It results from fluctuating conductivity due to imperfect contact between two materials. +The PSD of excess noise increases when the frequency decreases: +\\[ S\_E = \frac{K\_f}{f^\alpha}\ [V^2/Hz] \\] +where \\(K\_f\\) is dependent on the average voltage drop over the resistor and the index \\(\alpha\\) is usually between 0.8 and 1.4, and often set to unity for approximate calculation. + + +## Noise of Amplifiers {#noise-of-amplifiers} + +The noise of amplifiers can be modelled as shown in Figure [1](#figure--fig:electronic-amplifier-noise). + + + +{{< figure src="/ox-hugo/electronic_amplifier_noise.png" caption="Figure 1: Amplifier noise model" >}} + +The identification of this noise is a two steps process: + +1. The amplifier input is short-circuited such that only \\(V^2(f)\\) has an impact on the output. + The output noise is measured and \\(V^2\\) in \\([V^2/Hz]\\) is identified +2. The amplifier input is open-circuited such that only \\(I^2(f)\\) has an impact on the output. + The output noise is measured and \\(I^2(f)\\) in \\([A^2/Hz]\\) is identified. + + +## Bibliography {#bibliography} + +
+
diff --git a/content/zettels/encoders.md b/content/zettels/encoders.md index 7068903..933dd38 100644 --- a/content/zettels/encoders.md +++ b/content/zettels/encoders.md @@ -11,7 +11,10 @@ Tags There are two main types of encoders: optical encoders, and magnetic encoders. -## Manufacturers {#manufacturers} +## Linear Encoders {#linear-encoders} + + +### Manufacturers {#manufacturers} | Manufacturers | Country | |---------------------------------------------------------------------------------|---------| @@ -20,6 +23,14 @@ There are two main types of encoders: optical encoders, and magnetic encoders. | [Renishaw](https://www.renishaw.com/en/browse-encoder-range--6440) | UK | | [Celera Motion](https://www.celeramotion.com/microe/) | USA | + + + + +## Angular Encoders {#angular-encoders} + + + ## Bibliography {#bibliography} diff --git a/content/zettels/gravity_compensation.md b/content/zettels/gravity_compensation.md new file mode 100644 index 0000000..b85c291 --- /dev/null +++ b/content/zettels/gravity_compensation.md @@ -0,0 +1,34 @@ ++++ +title = "Gravity Compensation" +author = ["Dehaeze Thomas"] +draft = false ++++ + +Tags +: + + +## Counterweight {#counterweight} + +(Yoshioka et al. 2017) + + +## Magnetic {#magnetic} + +(Hol, Lomonova, and Vandenput 2006) + + +## Constant force spring {#constant-force-spring} + + +## Variable Gravity Compensation {#variable-gravity-compensation} + +As the mass / position of the load may change during operation, a variable gravity compensation mechanism is very useful. + + +## Bibliography {#bibliography} + +
+
Hol, S.A.J., E. Lomonova, and A.J.A. Vandenput. 2006. “Design of a Magnetic Gravity Compensation System.” Precision Engineering 30 (3): 265–73. doi:10.1016/j.precisioneng.2005.09.005.
+
Yoshioka, Hayato, Hidenori Shinno, Jiang Zhu, and Manabu Uchiumi. 2017. “A Newly Developed Zero-Gravity Vertical Motion Mechanism for Precision Machining.” Cirp Annals 66 (1): 389–92. doi:10.1016/j.cirp.2017.04.057.
+
diff --git a/content/zettels/lock_in_amplifier.md b/content/zettels/lock_in_amplifier.md new file mode 100644 index 0000000..8d0b046 --- /dev/null +++ b/content/zettels/lock_in_amplifier.md @@ -0,0 +1,32 @@ ++++ +title = "Lock-in Amplifier" +author = ["Dehaeze Thomas"] +draft = false ++++ + +Tags +: + + +## Synchronous Detection {#synchronous-detection} + +(Francais 2003) +(Zurich 2016) +(Horowitz 2015) + + +## Manufacturers {#manufacturers} + +| Manufacturers | Country | +|---------------------------------------------------------------------------|---------| +| [Femto](https://www.femto.de/en/products/lock-in-amplifiers.html) | Germany | +| [Zurick Instruments](https://www.zhinst.com/europe/en/lock-in-amplifiers) | Swiss | + + +## Bibliography {#bibliography} + +
+
Francais, Olivier. 2003. “Detection Synchrone.”
+
Horowitz, Paul. 2015. The Art of Electronics - Third Edition. New York, NY, USA: Cambridge University Press.
+
Zurich, Instruments. 2016. “Principles of Lock-in Detection and the State of the Art.” Zurich Instruments.
+
diff --git a/content/zettels/motors.md b/content/zettels/motors.md new file mode 100644 index 0000000..f6cc0e0 --- /dev/null +++ b/content/zettels/motors.md @@ -0,0 +1,37 @@ ++++ +title = "Motors" +author = ["Dehaeze Thomas"] +draft = false ++++ + +Tags +: + +Reviews: + +- (Murugesan 1981) + + +## Linear Motors {#linear-motors} + + +### Short Stroke {#short-stroke} + +[Piezoelectric Actuators]({{< relref "piezoelectric_actuators.md" >}}) + + +### Long Stroke {#long-stroke} + +[Voice Coil Actuators]({{< relref "voice_coil_actuators.md" >}}) + + +## Angular Motors {#angular-motors} + +[Stepper Motor]({{< relref "stepper_motor.md" >}}) + + +## Bibliography {#bibliography} + +
+
Murugesan, S. 1981. “An Overview of Electric Motors for Space Applications.” Ieee Transactions on Industrial Electronics and Control Instrumentation IECI-28 (4): 260–65. doi:10.1109/TIECI.1981.351050.
+
diff --git a/content/zettels/stepper_motor.md b/content/zettels/stepper_motor.md index c528823..69d8d80 100644 --- a/content/zettels/stepper_motor.md +++ b/content/zettels/stepper_motor.md @@ -9,18 +9,91 @@ Tags : -## Errors between steps (micro-stepping) {#errors-between-steps--micro-stepping} +## Types of Stepper motors {#types-of-stepper-motors} -For a two phase stepper motor, there are (typically) **200 steps per revolution** (i.e. 1.8% per step). + + +- Permanent Magnet +- Variable Reluctance +- Hybrid + + + +{{< figure src="/ox-hugo/stepper_two_phase_hybrid_stepper.png" caption="Figure 1: Interior of a two phase hybrid stepper motor. This motor has eight windings and 50 roto teeth" >}} + + + +{{< figure src="/ox-hugo/stepper_hybrid_schematic.png" caption="Figure 2: Schematic of a two phase hybrid stepper motor. This motor has four windings and 15 pole pairs" >}} + + +## Micro Stepping {#micro-stepping} + +From (Ronquist and Winroth 2016): + +> By varying the magnitude and direction of the winding currents, the rotor is continuously attracted in the desired direction. +> A "step" occurs whenever a rotor tooth moves slightly to align itself to an electromagnet tooth. +> +> It is possible to decrease the step size of the hybrid stepper motor by using a control logic called **microstepping**. +> As opposed to fully exciting each phase in turn, as described previously, microstepping involves transitioning between each phase shift. +> That is, the current references are defined by sinusoidal signals displaced 90 electrical degrees from each other. +> For most time instances, then, both phases are excited to a certain degree. +> The result is that the electric position vector can be placed between two teeth. +> The resolution of the motor has therefore been increased. + +From (Condit 2004): + +> There are several factors that affect the linearity of microstepping in real motors. +> The first limitation is static friction in the system. +> +> [...] +> +> Another limitation is the fact that the torque versus position curve is not perfectly sinusoidal. +> The toothed shape of the motor and other physical characteristics of the motor contribute to this. +> Figure [3](#figure--fig:stepper-real-pos-vs-actual-pos) shows a plot of actual position vs expected position for a typical motor. + + + +{{< figure src="/ox-hugo/stepper_real_pos_vs_actual_pos.png" caption="Figure 3: Real vs actuator rotor position" >}} + + +## Open Loop errors {#open-loop-errors} + +Nice references: + +- (Vyas, Patel, and Shah 2015) +- (Ronquist and Winroth 2016) + +
+ +References about these errors can be search for using "torque ripple", "Cogging torque" and "load dependent error" keywords. + +
+ + +### Error with period equal to one **turn** {#error-with-period-equal-to-one-turn} + +A stepper motor has a position error with a period equal to a full turn. + +An example is shown in Figure [4](#figure--fig:stepper-error-one-turn-period) (from (Ronquist and Winroth 2016)). +The high frequency errors that can be observed have a period of one step (i.e. 200 periods each turn). + + + +{{< figure src="/ox-hugo/stepper_error_one_turn_period.png" caption="Figure 4: Angle error of the stepper motor during a 100rpm (i.e. 0.6s per turn)" >}} + + +### Error with period equal to one **step** {#error-with-period-equal-to-one-step} + +For a two phase stepper motor, there are (typically) **200 steps per revolution** (i.e. 1.8 degrees per step). Between each step, even when using some micro-stepping, there are some position errors that are due to non-perfect magnetic and electromagnetic fields. The period of this error is corresponding to 200 period/revolution. -Then scanning, this can lead to high frequency vibrations. +Then scanning, this can lead to **high frequency vibrations**. This is what is typically limiting the accuracy of the stepper motor (usually specified in between 3% and 5% of the step increment). -This is approximately corresponding to **1mrad**. +This is approximately corresponding to **1mrad** and can be around 0.1mrad for best stepper motors.
@@ -31,12 +104,23 @@ A rotation of 1 turn per second will induce vibrations at 200Hz with an amplitud Note that this error is not a pure sine, it also has some harmonics with corresponding periods of 1/100 revolution and 1/50 revolution. -This error should repeat every turn and can be calibrated provided it is repeatable over time. - One way to reduce these errors is to use a ball-screw mechanism with a smaller pitch. The price to pay is smaller velocity. +### Load Dependent Error {#load-dependent-error} + +If the electromagnetic torque would be the only torque acting on the system, the electrical angle generated by the control system would correspond directly to the reference angle. + +The position error is to a large degree due to the so called load angle when the motor is positioned by an open-loop controller. +The load angle results from applying an external torque to the stepper motor, **causing the magnetic rotor to be out of phase with the electrical field**. + +The most common way to limit these errors is to always operate the motor with its rated winding currents. +This results in significant energy losses and heating of the motor which deprive the motor of its efficiency. + +Another option is to use a position sensor such as an encoder with a feedback controller. + + ## Manufacturers {#manufacturers} | Manufacturers | Country | @@ -53,4 +137,7 @@ The price to pay is smaller velocity. ## Bibliography {#bibliography}
+
Condit, Reston. 2004. “Stepping Motors Fundamentals.” Microchip Technology.
+
Ronquist, Anton, and Birger Winroth. 2016. “Estimation and Compensation of Load-Dependent Position Error in a Hybrid Stepper Motor.” Linköping University, Automatic Control; Linköping University, Automatic Control.
+
Vyas, Darshit C, Jinesh G Patel, and Mrs Heli A Shah. 2015. “Microstepping of Stepper Motor and Sources of Errors in Microstepping System.” Int. Journal of Engineering Research and General Science 3 (2).
diff --git a/content/zettels/tuned_mass_damper.md b/content/zettels/tuned_mass_damper.md index f0058f6..323b294 100644 --- a/content/zettels/tuned_mass_damper.md +++ b/content/zettels/tuned_mass_damper.md @@ -7,7 +7,7 @@ draft = false Tags : [Passive Damping]({{< relref "passive_damping.md" >}}) -Review: (Elias and Matsagar 2017) +Review: (Elias and Matsagar 2017), (Verbaan 2015) ## Working Principle {#working-principle} @@ -69,7 +69,7 @@ c2 = 2*xi*sqrt(k2*m2); ```
- Table 1: + Table 1: Obtained parameters of the TMD
@@ -128,8 +128,7 @@ Possible damping sources: - Magnetic (eddy current) - Viscous -## References -
Elias, Said, and Vasant Matsagar. 2017. “Research Developments in Vibration Control of Structures Using Passive Tuned Mass Dampers.” Annual Reviews in Control 44 (nil): 129–56. doi:10.1016/j.arcontrol.2017.09.015.
+
Verbaan, C.A.M. 2015. “Robust mass damper design for bandwidth increase of motion stages.” Mechanical Engineering; Technische Universiteit Eindhoven.
diff --git a/content/zettels/voltage_amplifier.md b/content/zettels/voltage_amplifier.md index a43429a..70da4f1 100644 --- a/content/zettels/voltage_amplifier.md +++ b/content/zettels/voltage_amplifier.md @@ -121,6 +121,25 @@ However, for stability reasons and to avoid overshoot (due to the internal negat This is discussed in (Van Spengen 2017). +## Small Signal Voltage Amplifier {#small-signal-voltage-amplifier} + +Input is usually BNC. +Output voltage is to up +/-10V. +It has high input impedance. + +| Model | Channel | LPF | HPF | Gains | Shape | Noise | Price | +|------------------------------------------------------------------------------------------------|---------|----------------|----------------|-----------|-----------|-------|-------| +| [7008](https://www.krohn-hite.com/html/preamps.html) | 8 | 100kHz | AC or DC | 1 to 1k | 19" Rack | 7nV | | +| [MCVA5](https://www.specs-group.com/nc/nanonis/products/detail/mcva5-preamplifier/) | 4 | | AC or DC | 1 to 1k | Large | 4nV | | +| [DP-314](https://www.warneronline.com/4-channel-differential-amplifier-with-active-headstages) | 4 | 100Hz to 50kHz | 0.1Hz to 300Hz | 10 to 10k | 19" Rack | | | +| [ee701](https://www.ee-quipment.com/products/differential-preamplifier?variant=35410631368) | 1 | 10Hz to 1MHz | x | 1 to 1k | Small | | 400 | +| [LNA 10](https://www.priggen.com/LNA-10-Low-Noise-Differential-Preamplifier-for-Oscilloscopes) | 1 | 1Hz to 1MHz | x | 10 to 1k | Small | | 700 | +| [Koheron](https://www.koheron.com/photonics/amp200-amplifier) | 1 | | AC or DC | 5 to 500 | Small PCB | 2.4nV | 225 | +| [5307](https://www.nfcorp.co.jp/english/pro/mi/loc/pre/5307/index.html) | 1 | | AC or DC | 10 to 1k | Large | 4nV | | +| [DLPVA](https://www.femto.de/en/products/voltage-amplifiers/variable-gain-100-khz-dlpva.html) | 1 | 1kHz, 100kHz | AC or DC | 10 to 10k | Small | 2nV | | +| [AMP200](https://www.thorlabs.com/thorproduct.cfm?partnumber=AMP200) | 1 | | | 10 to 1k | Small | 5nV | 470 | + + ## Bibliography {#bibliography}
diff --git a/static/ox-hugo/electronic_amplifier_noise.png b/static/ox-hugo/electronic_amplifier_noise.png new file mode 100644 index 0000000..fd914b1 Binary files /dev/null and b/static/ox-hugo/electronic_amplifier_noise.png differ diff --git a/static/ox-hugo/stepper_error_one_turn_period.png b/static/ox-hugo/stepper_error_one_turn_period.png new file mode 100644 index 0000000..80e4eae Binary files /dev/null and b/static/ox-hugo/stepper_error_one_turn_period.png differ diff --git a/static/ox-hugo/stepper_hybrid_schematic.png b/static/ox-hugo/stepper_hybrid_schematic.png new file mode 100644 index 0000000..b4be6e9 Binary files /dev/null and b/static/ox-hugo/stepper_hybrid_schematic.png differ diff --git a/static/ox-hugo/stepper_real_pos_vs_actual_pos.png b/static/ox-hugo/stepper_real_pos_vs_actual_pos.png new file mode 100644 index 0000000..47e121e Binary files /dev/null and b/static/ox-hugo/stepper_real_pos_vs_actual_pos.png differ diff --git a/static/ox-hugo/stepper_two_phase_hybrid_stepper.png b/static/ox-hugo/stepper_two_phase_hybrid_stepper.png new file mode 100644 index 0000000..02b6e53 Binary files /dev/null and b/static/ox-hugo/stepper_two_phase_hybrid_stepper.png differ diff --git a/static/ox-hugo/variable_controller_simulink.png b/static/ox-hugo/variable_controller_simulink.png new file mode 100644 index 0000000..707ed12 Binary files /dev/null and b/static/ox-hugo/variable_controller_simulink.png differ