Introduction

3-D printing using fused filament fabrication (FFF) is the process of producing a solid object by accumulating successive layer of normally polymer-based materials following a digital CAD model. Historically, 3-D printing was limited to rapid prototyping in well-funded laboratories and large manufacturing firms. The designs for the RepRap (short for self-replicating rapid prototyper) were released under open hardware licenses and a combination of rapid innovation and competition between now many 3-D printing firms rapidly reduced the cost of 3-D printing below $1000 (Sells et al. 2010; Jones et al. 2011; Wittbrodt et al. 2013). These cost declines permit rapid distributed manufacturing of high-value products in underprivileged areas of the world where industrialization is economically challenging (Canessa et al. 2013; Pearce et al. 2010; Hurst and Kane 2013; Lotz et al. 2013; De Maria et al. 2014; Gwamuri and Pearce 2017; Savonen et al. 2018). Simultaneous development and wide adoption of information technologies have enabled a commons-based open design or open source method to accelerate development of appropriate technology (AT) (Buitenhuis and Pearce 2012; Pearce and Mushtaq 2009; Pearce 2012a, b). Such open source appropriate technology (OSAT) follows the free and open source (FOSS) model that allows technology users to be developers and share the open source code of their physical AT designs (Pearce 2009; Korukonda 2011; Louie 2011) and to use this ability as a science and engineering education aide (Kentzer et al. 2011; Pearce 2007, 2012b, 2013). Thus, in this context, the “source code” for the OSAT are 3-D CAD designs, which enable anyone with access to a 3-D printer and electricity to fabricate them. Unfortunately, 1.4 billion people lack access to electricity (Birol 2010; van der Hoeven 2013) and despite rural electrification projects (Zomers 2003; Barnes 2011) the problem persists as the International Energy Agency estimates that at the present rate, electricity access will only keep pace with population growth until 2030 (Birol 2010; van der Hoeven 2013). To enable rural isolated communities without access to the grid to leverage the power of 3-D printing for development, solar photovoltaic (PV)-powered RepRaps with battery storage have been developed (King et al. 2014). The electrical designs and the performance of such systems have not been optimized.

In order to improve the electrical design of such systems, this study provides a detailed simulation of a PV power system for stand-alone 3-D printing with a controller using a buck and a bidirectional DC converter used to charge and discharge the batteries with minimum energy loss. These converters utilize MOSFET switching that disconnects the PV or the battery autonomously when not required. Each of the converters is controlled by their own PI controller, which ensures the constant current (CC) and constant voltage (CV) charging pattern of the lithium ion battery and provides the output voltage with a small band of oscillation. Finally, the system is designed in a way that the load always receives power (e.g. either from the PV module or from the battery), which enables the system to be able to print anytime there is sufficient power. The entire system simulation is designed using ordinary differential equations to have the maximum flexibility while observing the required dynamic behavior. The simulated controllers are tested for stability in different steps to make sure that the designed controller for the linear approximation of the system also can operate properly for the actual nonlinear design. The entire system simulation is tested for two different operating conditions, charging and discharging. In the first, the PV module is able to provide enough power to the 3-D printer and charge the battery and then in the second, during reduced simulated solar irradiance the battery acts as the source for the 3-D printer. Results of the simulations are discussed and conclusions are drawn about the efficacy of such designs for off-grid 3-D printing.

Methods

Delta RepRap

Previously designed systems powered more energy-intensive Cartesian-based RepRap 3-D printers (King et al. 2014). The Cartesian RepRap power systems use only two operational amplifier comparator circuits named as over-charge and over-discharge protection to control two MOSFET devices. The over-charge protection circuit allows the battery to be charged up to a specific voltage where the over-discharge protection cuts off the batteries when the state of charge of the battery is too low. Moreover, the only current limiter used in this schematic is a resistance placed in series with the batteries. The previous designs had efficiency losses from the use of a resistive element to limit the charging and discharging current of the battery from PV module. Secondly, this circuit is charging a pack of lithium ion batteries, which requires a specific CC and CV charging method or they suffer from capacity fading, swelling and even explosion, creating a potentially hazardous situation. An improved electrical design is simulated here for a MOST delta RepRap. The MOST Delta RepRap printer (Irwin et al. 2014; Anzalone et al. 2015) is a conglomeration of 4 stepper motor controlled by a motor drive controller based on the Arduino architecture and a resistively heated hot end with temperature feedback and position feedback from end stop mechanical switches.

The new electrical design is due to improvements in knowledge of 3-D printing materials and in the evolutionary nature of the RepRap itself. Improvements in surface treatments have enabled elimination of the heated bed, radically reducing power consumption (130–140 W down to 45 W), which reduces the storage requirements and PV size. For example, polylactic acid (PLA), the most popular 3-D printing polymer, can be printed directly on Kapton tape as shown in Fig. 1 or can be printed directly on glass after pre-treatment with common glue sticks. The new delta-style of RepRap design has also decreased the number of stepper motors further reducing power use as shown in Fig. 1. Three for the motion control (located under the columns in Fig. 1) and one for the filament driver (located on the column to the right in Fig. 1). Polymer filament is fed by the filament driver through a Bowden sheath to the hot end located on the end effector (yellow component with fan in middle of Fig. 1).

Fig. 1
figure 1

MOST delta RepRap 3-D printer. The polymer components visible (yellow and black) have been printed on the same type of 3-D printer

Modeling the stand-alone PV power system

The system is designed with the following operating conditions and dispatch strategy:

  1. 1.

    During the day, the PV should be able to power the printer provided 800 W/m2 (0.8 sun) AM1.5 illumination is available.

  2. 2.

    While PV-powered printing, the system should be able to route the power toward charging the battery whenever there is a positive difference between available power and the load of the 3-D printer.

  3. 3.

    If the battery is fully charged and the PV power can still support the printer, then the battery will remain as reserve for low-light/nighttime usage, while the PV continues to provide the printers.

  4. 4.

    Whenever the PV power is insufficient to run the 3-D printer, the battery converter changes mode of operation from charge to discharge to fulfill the lacking, provided the battery has enough power to distribute. This is the mixed mode of operation where both the PV and the battery are sharing the load requirements.

  5. 5.

    When the PV does not have enough power, the battery should step in as the sole power supplier and run the printers until depleted.

To meet all of these standards, the system depicted in Fig. 2 is designed. It can be seen that the PV module is connected with the buck converter, which is operated by a voltage PI controller providing a duty cycle signal to a pulse width modulator. The output of the buck converter is connected with the load of the 3-D printer. The lower-voltage side of the bidirectional converter is connected to the 3-D printer. Thus, the low-voltage side of the buck converter, the 3-D printer and low-voltage side of the bidirectional converter are connected in parallel. The high-voltage side of the bidirectional converter is connected to the battery. Like the buck converter, the PI controller, the controller for bidirectional converter, is connected through a pulse width modulator. Both of these converters are of non-isolated topology. The transformer isolated converter topologies have the advantage of separating the ground of the two side of the converter (Sira-Ramírez and Silva-Ortigoza 2006), but it also requires more switching devices compared to the non-isolated topology converters (Jain et al. 2000; Duarte et al. 2007; Inoue and Akagi 2007; Li et al. 2011; Wu et al. 2012). Moreover, soft-switching is implemented for these converters in most cases to reduce switching losses with an objective of improving efficiency (Xie et al. 2010; Jain and Ayyanar 2011; Oggier et al. 2011; Krismer and Kolar 2012). Thus, the complexity of the system increases along with the cost (Fardoun et al. 2014). One of the purposes of this paper is to minimize cost; thus, this paper concentrates on non-isolated topologies only.

Fig. 2
figure 2

Schematic of stand-alone PV system for RepRap 3-D printing

Testing with a MOST Delta RepRap printing PLA revealed the voltage and maximum power requirements of 12 V and 48 W, respectively. It should be noted that the standard printing power requirements for the MOST Delta RepRap are 37 W. The converter connected between the solar module and the 3-D printer has to regulate its output voltage to match the measured printer requirement. Since the system should be able to print while being charged, the PV modules should be rated at least 48 W to meet the requirement of the printer and provide the remaining to the battery when the printer will not operate at maximum rating. A market analysis revealed that PV modules with more than 50 W power rating have a voltage rating higher than 12 V. This obviated the use of the buck converter. Power converters in a hybrid system where a source requires a bidirectional flow like in Jung et al. (2014) a bidirectional converter would be preferable, but here the major source is a PV module. Power flowing back can be fatal for the PV module. A buck converter has a unidirectional flow of power (Sira-Ramírez and Silva-Ortigoza 2006), which prevents any power feedback toward the PV module also eliminates the need for a protection diode. This is a norm for a hybrid system like (Li et al. 2015) to connect the primary source with a unidirectional converter. An extra inductor is used with the buck converter to reduce the current ripple and protect the 3-D printer. The PI controllers are used because these can eliminate the error with least overshoot percentage, peak time and steady-state error. During the day when the illumination requirements are met, the PI controller of the buck converter produces a duty cycle, which results in a good regulated 12 V supply.

On the other side, the battery needs to be charged and discharged. The control system provides the required duty cycle when there is excess power production from the PV module. The duty cycle changes when the PV modules cannot produce enough power to supply power from the battery to the load. This type of architecture is called active hybrids (Blackwelder and Dougal 2004). A semi-active hybrid structure is more economically viable as explained in Song et al. (2015), but a more precise control strategy can only be adopted in the active hybrid as explained in Zhang et al. (2014). Current in this converter should be able to reverse to achieve this feat. There are several converter options that meet this requirement, but the selection of bidirectional converter is governed by the battery property. The battery of choice is lithium ion due to its highest energy density among the currently available battery technologies (ICCNEXERGY 2015). A lithium ion 3S battery pack usually has an operating range from 11.1 to 12.6 V, which necessitates a buck-boost converter with the 12 V load, which will create unnecessary complications in controlling schemes. Thus, a 4S battery pack is considered, which has a usual operation range from 14.8 to 16.8 V. The entire operating region of the battery pack is higher than the load requirement. Thus, a converter with bidirectional current flow (Drolia et al. 2003), a bidirectional converter, is used where the high side is connected to the lithium ion battery. Similar to the buck converter, an extra inductor is used to limit current ripples. The PI controller of the bidirectional converter forces the entire system to operate at two different operating conditions. When the PV has enough power, then \(i_{{{\text{L}}_{{{\text{B}}_{\text{Ref}} }} }}\) input of this controller is set to a negative value, which denotes a safe charging current for the battery. Moreover, this safe charging current should be less than the difference between maximum current output of the module and the printer requirement. This prevents the battery from sinking too much current that may prevent a proper 3-D printer operation. The required current input changes according to the power provided from the PV to ensure an uninterrupted printing process. In Karunarathne et al. (2011), this type of different operation of a same controller is used. Such operation of the controller fulfills the design requirement statement of 2, 3, 4 and 5. Thus, it can be considered that the designed system fulfills all the aimed goals.

Simulating the designed system

The system was simulated in MATLAB/Simulink 2014. The operating condition requires that the system should be able to provide power from the battery if the PV is incapable to run the 3-D printer. This handover from PV to the battery has to occur in a very short time frame to carry out an uninterrupted 3-D printing. Thus, the simulation needs to be defined by the differential equation representation of the system to observe the dynamic responses. The ordinary differential equations (ODE) associated with the model are shown in Fig. 2 and the list of variables are:

Variable

Description

\(i_{{{\text{L}}_{\text{S}} }}\)

Current flowing through the inductor \(L_{\text{S}}\)

\(V_{{{\text{C}}_{\text{S}} }}\)

Voltage across the capacitor \(C_{\text{S}}\)

\(i_{{{\text{L}}_{\text{SL}} }}\)

Current flowing through the inductor \(L_{\text{SL}}\)

\(D_{1}\)

Duty cycle of the buck converter

\(i_{{{\text{L}}_{\text{HB}} }}\)

Current flowing through the inductor \(L_{\text{HB}}\)

\(V_{{{\text{C}}_{\text{HB}} }}\)

Voltage across the capacitor \(C_{\text{HB}}\)

\(i_{{{\text{L}}_{\text{B}} }}\)

Current flowing through the inductor \(L_{\text{B}}\)

\(V_{{{\text{C}}_{\text{B}} }}\)

Voltage across the capacitor \(C_{\text{B}}\)

\(i_{{{\text{L}}_{\text{BL}} }}\)

Current flowing through the inductor \(L_{\text{BL}}\)

\(D_{2}\)

Duty cycle of the bidirectional converter

\(V_{{{\text{C}}_{\text{Load}} }}\)

Voltage across the capacitor \(C_{\text{Load}}\) or the load voltage

\(V_{\text{in}}\)

Input voltage from the PV module

\(V_{\text{bat}}\)

Battery terminal voltage

\(R_{\rm Load}\)

Load resistance of the 3-D printer

\(i_{{{\text{L}}_{{{\text{B}}_{\text{Ref}} }} }}\)

Reference current for PI controller of bidirectional converter

\(V_{{{\text{C}}_{{{\text{S}}_{\text{Ref}} }} }}\)

Reference voltage for PI controller of buck converter

\({\text{err}}i_{\text{S}}\)

Integral of error signal in PI controller for buck converter

\({\text{err}}i_{B}\)

Integral of error signal in PI controller for bidirectional converter

\({\text{kp}}_{\text{S}}\)

Proportional gain for buck converter

\({\text{ki}}_{\text{S}}\)

Integral gain for buck converter

\({\text{kp}}_{\text{B}}\)

Proportional gain for bidirectional converter

\({\text{ki}}_{\text{S}}\)

Integral gain for bidirectional converter

Each of the inductor and capacitor delivers an ODE from Fig. 2. The obtained ODE’s are:

$$L_{\text{S}} \times \frac{{{\text{d}}i_{{{\text{L}}_{\text{S}} }} }}{{{\text{d}}t}} = D_{1} \times V_{\text{in}} - V_{{{\text{C}}_{\text{S}} }}$$
(1)
$$C_{\text{S}} \times \frac{{{\text{d}}V_{{{\text{C}}_{\text{S}} }} }}{{{\text{d}}t}} = i_{{{\text{L}}_{\text{S}} }} - i_{{{\text{L}}_{\text{SL}} }}$$
(2)
$$L_{\text{HB}} \times \frac{{{\text{d}}i_{{{\text{L}}_{\text{HB}} }} }}{{{\text{d}}t}} = V_{\text{bat}} - V_{{{\text{C}}_{\text{HB}} }}$$
(3)
$$C_{\text{HB}} \times \frac{{{\text{d}}V_{{{\text{C}}_{\text{HB}} }} }}{{{\text{d}}t}} = i_{{{\text{L}}_{\text{HB}} }} - D_{2} \times i_{{{\text{L}}_{\text{B}} }}$$
(4)
$$L_{\text{B}} \times \frac{{{\text{d}}i_{{{\text{L}}_{\text{B}} }} }}{{{\text{d}}t}} = D_{2} \times V_{{{\text{C}}_{\text{HB}} }} - V_{{{\text{C}}_{\text{B}} }}$$
(5)
$$C_{\text{B}} \times \frac{{{\text{d}}V_{{{\text{C}}_{\text{B}} }} }}{{{\text{d}}t}} = i_{{{\text{L}}_{\text{B}} }} - i_{{{\text{L}}_{\text{BL}} }}$$
(6)
$$L_{\text{SL}} \times \frac{{{\text{d}}i_{{{\text{L}}_{\text{SL}} }} }}{{{\text{d}}t}} = V_{{{\text{C}}_{\text{S}} }} - V_{{{\text{C}}_{\text{Load}} }}$$
(7)
$$L_{\text{BL}} \times \frac{{{\text{d}}i_{{{\text{L}}_{\text{BL}} }} }}{{{\text{d}}t}} = V_{{{\text{C}}_{\text{B}} }} - V_{{{\text{C}}_{\text{Load}} }}$$
(8)
$$C_{\text{Load}} \times \frac{{{\text{d}}V_{{C_{\text{Load}} }} }}{{{\text{d}}t}} = i_{{L_{\text{BL}} }} + i_{{L_{\text{SL}} }} - \frac{{V_{{C_{\text{Load}} }} }}{{R_{\text{Load}} }}$$
(9)
$$\frac{{{\text{derr}}i_{\text{S}} }}{{{\text{d}}t}} = V_{{{\text{C}}_{{{\text{S}}_{\text{Ref}} }} }} - V_{{{\text{C}}_{\text{S}} }}$$
(10)
$$\frac{{{\text{derr}}i_{B} }}{{{\text{d}}t}} = i_{{L_{{{\text{B}}_{\text{Ref}} }} }} - i_{{L_{\text{B}} }}$$
(11)

Here, Eqs. (1) and (2) belong to the buck converter. The PI controller of the buck converter takes the feedback of \(V_{{{\text{C}}_{\text{S}} }}\) to control the output of the buck converter. Equations (3)–(6) are from the bidirectional converter. \(i_{{{\text{L}}_{\text{HB}} }}\) and \(V_{{{\text{C}}_{\text{HB}} }}\) represent the actual terminal voltage, the current flowing in and out of the battery. The PI controller of the bidirectional converter controls \(i_{{{\text{L}}_{\text{B}} }}\) to determine how much current is withdrawn from or supplied to the system. Equations (7) and (8) belong to the inductor outside the converter toward the load which act to limit the current ripple of the system. The method of developing these ODEs is explained in detail in Karunarathne et al. (2011). The current across the load is designed as an algebraic equation with Eq. (9). Equations (10) and (11) define the PI controllers.

Since the system has been defined using the differential equation, the next step in simulating the system is to determine the operating points and linearize the system around a specific operating point. Linearization is required in order to produce the eigenvalues for specific controller parameters. The eigenvalues reveal the stability of the system for the selected parameters. The system will have two different set of parameters because of the distinct charging and discharging states. Some values are needed to be assumed to set up the simulation to depict these two operating points. The assumed parameters are listed in Table 1.

Table 1 The assumed values to define the systems point of operation (1)

The threshold for \(V_{\text{in}}\) is set to 12 V because the output of the buck converter has to be 12 V. If the input from the PV module is at least 12 V, then the buck converter can maintain an output of 12 V, theoretically. However, practically the voltage output will be less than 12 V because of the internal losses in the buck converter. Charging current of − 1 A is set as an acceptable value because a market analysis revealed that 4S lithium ion batteries can withstand 4 A of charging current. Discharging current of 4 A is set to make sure the load receives 12 V because at maximum load the resistance of the printer is 3 Ω. The other parameters required for the simulation are shown in Table 2.

Table 2 The assumed values to define the systems point of operation (2)

The value of the inductors and capacitors are selected from an array of available products. The input of PV is set to 20 V for the charging state of the system. The maximum battery voltage is considered for a 4S lithium ion battery. Using these values and the ODEs, the operating point of the system is generated. Particulars of the operating points listed below are generated using Mathematica 10.

$$\begin{array}{*{20}c} {i_{{{\text{L}}_{\text{s}} }} \to 5} \\ {V_{{{\text{C}}_{\text{S}} }} \to 12} \\ {i_{{{\text{L}}_{\text{hB}} }} \to - 0.7142857142857142} \\ {V_{{{\text{C}}_{\text{HB}} }} \to 16.8} \\ {i_{{{\text{L}}_{\text{B}} }} \to - 1} \\ {V_{{{\text{C}}_{\text{B}} }} \to 12} \\ {i_{{{\text{L}}_{\text{SL}} }} \to 5} \\ {i_{{{\text{L}}_{\text{BL}} }} \to - 1} \\ {V_{{{\text{C}}_{\text{L}} }} \to 12} \\ {{\text{err}}i_{\text{S}} \to \frac{3}{{5*{\text{ki}}_{\text{S}} }}} \\ {{\text{err}}i_{\text{B}} \to \frac{0.7142857142857142}{{{\text{ki}}_{\text{B}} }}} \\ \end{array} \begin{array}{*{20}c} {i_{{{\text{L}}_{\text{s}} }} \to 0} \\ {V_{{{\text{C}}_{\text{S}} }} \to 12} \\ { i_{{{\text{L}}_{\text{hB}} }} \to 2.8571428571428568} \\ {V_{{{\text{C}}_{\text{HB}} }} \to 16.8} \\ {i_{{{\text{L}}_{\text{B}} }} \to 4} \\ {V_{{{\text{C}}_{\text{B}} }} \to 12} \\ {i_{{{\text{L}}_{\text{SL}} }} \to 0} \\ {i_{{{\text{L}}_{\text{BL}} }} \to 4} \\ {V_{{{\text{C}}_{\text{L}} }} \to 12} \\ {{\text{err}}i_{\text{S}} \to \frac{3}{{5*{\text{ki}}_{\text{S}} }}} \\ { {\text{err}}i_{\text{B}} \to \frac{0.7142857142857142}{{{\text{ki}}_{\text{B}} }}} \\ \end{array}$$

Here it can be observed that in both conditions, the values of the variable are reasonable considering practical applications. This means that this system is practical and can be simulated or implemented in the physical domain. This also proves that assumed values of different components can also be used in the simulation. Now the system is linearized on these two points of operation using Mathematica. The A and B matrices from the linearization process produce the equation of eigenvalues. The controller gains are assumed as below.

Both of these points are the desired point of operation and there is no need to change the assumed values. Now the system is linearized using Mathematica. The most significant matrix during linearization is matrix A. This matrix is required in order to determine the eigenvalues. The eigenvalues are required to design the controller for this system. For the determined A matrix is given below by Table 3.

Table 3 The assumed gain values

The determined respective eigenvalues are depicted using a pole–zero plot in Figs. 3 and 4. Figures 3 and 4 show eigenvalues for the assumed gains during charging and discharging state, respectively. In both cases, it can be observed that all the poles are on the left of the imaginary axis. This proves that for the assumed gain, all of the eigenvalues are negative. Negative coefficient on all eigenvalues verifies stability of the system (Eren and Liptak 2016). Thus, this system along with its assumed parameter is stable and can be implemented both in simulation and in physical domain.

Fig. 3
figure 3

The pole–zero plot for the charging state

Fig. 4
figure 4

The pole–zero plot for the discharging state

Now, an average mode simulation is carried out in Simulink using the ODE equations defined earlier. A self-improvised model of a battery is utilized in the simulation. A detailed battery model is ignored to reduce complexity of the simulation. The simulation is run for 0.2 s of operation to depict the dynamic response of the system. At the start, the PV input is kept at 20 V. After 0.1 s, the PV input is simulated to fall to 10 V to initiate the switching from the charging to the discharging state of operation. The results of the simulation are provided in the next section.

Results

To test the designed system, the simulation was run for 0.2 s. The PV supply is a step signal going from 20 to 10 V. This would cause the system to switch from charging to discharge operating condition. The battery capacity and initial state of charge (SOC) are selected as 20 Ah and 0.9998% to properly display the effect of charging and discharging. The source converter responses are shown in Fig. 5a–d.

Fig. 5
figure 5

a PV output voltage. b Buck converter duty cycle. c Buck converter output voltage. d Buck converter output current

It can be observed from Fig. 5a that the source is stepped down from 20 to 10 V. As a result, the buck converter output voltage initially was set to 12 V by 0.08 s in Fig. 5c. When the supply voltage is reduced below zero, the PV module cannot sustain the printer output of 12 V. So there is a dip in buck converter output voltage in Fig. 5c as the battery on the other side is switched from being a sink to a source. It takes about 0.05 s to recover from the change of sources. This is what it would take for an actual battery to recover from such a change. In Fig. 5d, buck converter output current was supplying the load as long as it had enough power from the PV. Initially there were some transients in Fig. 5c, d due to the inductor and the capacitor charging. Soon by 0.08 s the current output settled to 5 A which is the sum of requirement of the load and the battery charging current requirement. The characteristics of the battery parameters are shown in Fig. 6a–d.

Fig. 6
figure 6

a Battery current input during charging (negative) and output while discharging (positive). b Battery SOC during charging (rising) and discharging (falling). c Battery open circuit voltage during charging (rising) and discharging (falling). d Battery terminal voltage

After some initial transients due to charging of a large capacitor on the high side of the bidirectional converter (BDC), the battery current in Fig. 6a settles slightly less than − 1 A. This is the charging state of the battery and it continues until 0.1 s as the PV provides the battery. The charging current demanded from the PV is 1 A, but due to the duty cycle the voltage increased on the high side of the BDC converter and the current decreased. The current is almost − 0.7 A which corresponds to a duty cycle of 0.7 (= 12/16.8). After the PV is disconnected from the system, the battery starts discharging by reversing the flow of current to almost 3 A. This is also less than the printer requirement of 4 A. The duty cycle reduces the voltage on the lower side of the convert and increases the current by the order of duty cycle of 0.7 (= 12/16.8). In Fig. 6b, SOC of the battery increases as long as the battery is being charged. Since the design of the battery is linear, the SOC increases with a linear pattern. In real life for lithium ion batteries, the SOC is linear. But the terminal voltage are highly nonlinear especially near the high and the low end of the SOC level due to the effects of activation overpotentials and concentration overpotentials (Broadhead and Kuo 2001). When the battery is discharged, the SOC falls linearly. The open circuit voltage (OCV) in Fig. 6c increases while being charged and decreases while being discharged. Battery terminal voltage in Fig. 6d is a bit more interesting even with a linear design. The terminal voltage is slightly higher than the rated voltage of the battery. This is expected of a real battery. While charging the battery, the terminals account for all the internal losses due to overpotentials (Broadhead and Kuo 2001) (manifested in the design by a simple resistor) and the rated open circuit OCV. Thus, during the charging state, the \(V_{\text{bat}}\) is higher than 16.8 V. While being discharged in Fig. 6d, the battery has to overcome its internal losses. Thus, the \(V_{\text{bat}}\) during discharge is less than 16.8 V and decaying as SOC of battery is dropping as shown in Fig. 6d. The simulated performance of the bidirectional converter is shown in Fig. 7a–d.

Fig. 7
figure 7

a BDC high side current input during charging (negative) and output while discharging (positive). b BDC high side voltage. c BDC low side voltage. d BDC low side current input during charging (negative) and output while discharging (positive)

Figure 7b shows the plot of voltage across the capacitor on the high side of the converter. Since the capacitor is of a higher size, there is higher oscillation while charging it initially. Then by 0.08 s it settles down to the battery terminal voltage which is slightly higher than 16.8 V. The voltage on the lower side in Fig. 7c of the converter supplies the battery as it is initially being controlled by the PV supply. After some initial oscillation, the voltage settles to 12 V by 0.06 s. The battery acts as the source as the PV module is detached. The BDC converter output is now operated by the battery. The voltage on lower side in Fig. 7c settles within 0.05 s of the switching of the sources. During the switching, the min and max voltages are 10 and 22 V, respectively. The converter current through the lower side is shown in Fig. 7d. Initially when the PV was supplying, the initial condition of the converter was trying to charge the battery with all the current supplied by PV. However, as shown in Fig. 7d, the controller soon takes action and reduces the charging current to − 1 A by 0.06 s. When the PV is detached by 0.1 s, the current in the inductor reverses by the action of the controller and reaches 4 A by 0.15, 0.05 s after the switching. Figure 8a, b shows the output voltage and current across the 3-D printer. Figure 8c shows a zoomed in Fig. 8a to properly demonstrate the dynamic behavior of the system.

Fig. 8
figure 8

a Voltage across the RepRap. b Current through the RepRap. c Zoomed in on voltage across RepRap during the transition from PV to battery

The load output voltage is then obtained from a state equation. However, the current in Fig. 8b is just an algebraic equation as the load is considered to be just a resistor. It can be clearly seen in Fig. 8a that the output voltage has much lesser ripple in the voltage as well as the current. This is due to the fact that the output is separated from both the converter with two inductors. This approach caused the currents to be filtered through the two inductors. Moreover, the voltage across the load is also filtered by the presence of the capacitor. The parameter of the system was perfectly chosen to provide these results. The output voltage settles by 0.06 s to 12 V. During the switching, the min and max are 11.4–14.8 V, respectively. The system returns to 12 V by 0.17 s (0.07 s later switching). This can be perceived better in Fig. 8c, which shows the ripples in the output voltage during the handover from the PV to the battery source. The performance of the system was observed in this section while being operated in both charging and discharging state.

Discussion and future work

As the results show, a new system for PV-powered RepRaps has been successfully designed. Such a system is relevant to any rural isolated off-grid community that wants digital distributed manufacturing of OSAT or possibly export items to sell (Laplume et al. 2016). It is important to note the self-upgrading and open source nature of the RepRap 3-D printer. RepRaps are capable of printing their own components for replacement and are able to upgrade themselves as the global RepRap community iterates on the design. This effectively extends the life cycle of the device and enables it to be considered appropriate technology for most communities as it is both economically viable (Wittbrodt et al. 2013) and there are also substantial reductions in the environmental impact of manufacturing using this process rather than standard manufacturing (Kreiger and Pearce 2013a, b).

The system as described here will support upgrades to improve RepRap 3-D printer size, speed and accuracy. First, the power requirements do not change if the RepRap build volume is enhanced by increasing the z-height with greater vertical lengths of the smooth guide rods, the support structure/frame and the belts. Similarly the xy area can be expanded by changing the size of the base plate, the tie rods and the linking boards without impacting the power system. These approaches can be combined to increase the build volume as needed. Secondly, the power system provided here can support faster print speeds as the print speed is not limited in this case by the power system. The MOST delta can be accelerated further by adjusting the slicing settings. As the print speed increases, however, there are materials deposition limitations and depending on the type of filament there is a maximum speed for a given quality/resolution of print obtainable. This limitation can be offset in part by increasing the nozzle size of the hot end, which allows more material to be deposited in each layer. Although the positional accuracy remains the same, both the line width and the roundness of corners increase to the size of the nozzle. This is a fundamental limitation of FFF 3-D printing and can only be further increased by increasing the number of print heads and either chain ganging vertically or horizontally to increase throughput of identical parts. Finally, the power system can support improved accuracy by changing the nozzle size, which provides tighter corners and smaller line widths, but comes at the penalty of increasing print time. In addition, resolution can be improved by using a smaller drive gear or using a geared drive, which although requiring redesigning the extruder drive body could be printed on the MOST delta itself, thus enabling self-upgrading. This improvement again would be accommodated by the power system described here. The print resolution in the xy plane is complex for a delta as it improves when closer to an apex for that apex. So, for example, when moving toward the W apex (positive y direction), the resolution in x (controlled by U and V) degrades, but resolution in y improves. For the optimal resolution for both xy dimensions, the optimal print location is the center of the print bed. If the object has high-resolution bottom features, printing on a raft can help preserve the dimensionality of those features and only has a small penalty in energy consumption for the first layer raft printing. The z resolution is equivalent to the resolution of moving the carriages and is independent of the location. The MOST Delta (12 tooth T5 belt), which operates at 53.33 steps/mm, provides a z-precision of about 19 μm. This can be improved to 10 μm by changing to a 16 tooth GT2 belt, which operates at 100 steps/mm.

The final requirement for appropriate technology status is access to the raw materials to print with. Fortunately, recyclebot technology has been developed that enables users to turn plastic waste into 3-D printing filament with lower costs and less environmental impact (Baechler et al. 2013; Kreiger et al. 2013, 2014; Zhong et al. 2017; Woern et al. 2018). Polymer waste, often from food and drink containers, is common in many developing communities (Muttamara et al. 1994) and e-waste is becoming more predominant that can also be used as a feedstock (Zhong and Pearce 2018). Informal waste recycling is already conducted as an economic activity (Zia et al. 2008) and now recyclebot technology enables the potential for fair trade filament or social plastic (Feeley et al. 2014). Already the non-profit Plastic Bank in South America and business Protoprint in India are using waste pickers to recycle plastic into 3-D filament, and there is significant interest in the technical development community (Birtchnell and Hoyle 2014). Preliminary work has already begun to determine the number of cycles a polymer can withstand the print, recycle, filament extrude loop (Sanchez et al. 2015, 2017). Advanced flexible materials (Woern and Pearce 2017) as well as waste composites (Pringle et al. 2018) have also been recycled successfully following this approach, and an untethered solar-powered recyclebots have been developed (Zhong et al. 2017). As expanded resin identification codes are adopted, this activity can expand (Hunt et al. 2015). It should be noted that this design focused on PLA-based printing, and that the overall print time of the device will be limited by the polymer selected. High temperature polymer feedstocks will entail some redesign of the RepRap. For example, nylon is a strong, durable, and versatile 3-D printing material, which is both flexible when thin, but has high inter-layer adhesion, which enables it to be used for functional parts such as those needed in a bicycle. However, nylon requires temperatures above 240 °C to extrude. To handle these higher temperatures, the MOST delta RepRaps can be upgraded with an all-metal hot end, and the end effector would need to be redesigned in order to print with materials such as nylon. In addition, with some materials, a heated printer bed is recommended and can be accommodated by the existing Melzi Arduino-based microcontroller. However, this upgrade comes with significant energy penalties as the recommended printer settings for nylon involve extruder temperature from 240 to 260 °C, hot bed temperatures 70–80 °C with a PVA-based glue on glass, print speeds of 30–60 mm/s and 0.2–0.4 mm layer heights (Taylor 2014). Such relatively slow print speeds, with a high temperature hot end and a heated bed will significantly increase energy consumption and thus decrease print time with the system developed here. Future work is needed to improve the size of PV and storage system to accommodate this more energy-intensive type of printing with comparable print volumes/times.

Building upon the simulations detailed here, Gwamuri et al. (2016) fabricated and tested a PV-powered 3-D printer that performed as required under all conditions including: charging the battery and running the 3-D printer, printing under low-solar-insolation conditions, battery powered 3-D printing, PV charging the battery only and battery fully charged with PV-powered 3-D printing. The results show the promise of solar-powered 3-D printing systems providing feasibility for adoption in off-grid rural communities (Gwamuri et al. 2016). Thus, the technology has the potential to help reduce poverty through employment creation (e.g., for recyclebot operators or 3-D printing operators as well as the associated positions). In addition, it provides some promise for ensuring a constant supply of scarce products for isolated communities such as in rural clinics (Savonen et al. 2018). Further work is needed in biopolymer reactors to produce PLA from agricultural waste for regions, with no access to waste plastic. In addition, continual reductions on the energy consumption of RepRaps by, for example, improving hot end geometry will also help reduce the size and cost of the PV and battery storage systems. Finally, in order to absolutely minimize costs while ensuring optimized designs, all of the components of the system need to be completely open source and 3-D printable. There have already been some substantial improvements in the capabilities of such 3-D printers to either mill their own PCBs or print electronic materials (Andersson 2015; Anzalone et al. 2015; Krassenstein 2015).

For the electric system itself, there is still future work needed. First, multi-level PI controllers can be implemented that take in separate gains for charging and discharging operating point to make the system more agile. Secondly, other controlling schemes should be simulated and tested to further improve the response of the system. Thirdly, a simulation with a switching model can be implemented to observe more dynamic behavior. Finally, it is clear from the promising nature of the results that a hardware prototype can be made and tested with the delta RepRap to validate the simulations and test its effectiveness.

Conclusions

This study simulated a new design of a stand-alone PV power system for RepRap 3-D printing. A schematic of the electric system was developed, which lead to the differential equations that were analyzed and a controller for the system was developed. The results showed that the controller developed operates the system in a stable condition and the simulation shows steady acceptable behavior that makes this system highly suitable for hardware implementation.