Parts made via polymer extrusion are currently limited to a constant cross section. Additionally, the process is difficult to control, so desired final part dimensions are often achieved via a manual trial-and-error approach to parameter adjustment. This work seeks to increase the capability of polymer extrusion by using iterative learning control (ILC) to regulate the final width of a rectangular part through changing the width of a simple variable-geometry die. Simulation results determine the appropriateness of the learning algorithm and gains to be used in experiment. A prototype die on a production extruder was used to demonstrate the effectiveness of the approach. These experiments achieved automated control over both gross change in shape and final part dimension when the puller speed was held constant, which has not been seen previously in the literature.

## Introduction

Extrusion is the most popular technique for creating plastic parts, accounting for 40% of all plastic part production [1]. The current state of the art in polymer extrusion is to create parts with a constant cross section by melting plastic and forcing it through a fixed die [2]. When the polymer exits a die, it swells [3] and is subject to other environmental disturbances that cause the finished product to have a slightly different shape than the die itself [4]. To overcome these difficulties, complex models and optimal design techniques have been developed to assist in die production [5,6]. One approach is to design the die such that minor adjustments can be made [7,8]. Such an approach still generally requires shutting down the manufacturing process so that pieces of the die can be moved by manual adjustment. A true variable-geometry die might have an integrated actuator that could adjust the die dimensions in real time during the extrusion process to produce distribution-ready products more quickly. Some work has been done in designing [9] and prototyping [10] such dies, though these existing variable-geometry dies lack integrated actuation and control.

Extrusion is a complex process to control due to its inherent nonlinearities and numerous variables, many of which, including ambient temperature and humidity, are typically left unregulated [2,11]. Extrusion process control often requires a series of iterations and minor adjustments before satisfactory products can be produced [3]. Some strategies to systematically approach modeling and control of polymer extrusion have been proposed [12–14]. Regulating the temperature along the length of the barrel and the melt pressure at the die output has been shown to improve part quality [15]. Adaptive control schemes have also been applied to control extrusion force in micro-extrusion [16], flow rate at the die exit in extruding wire insulation [17], and cooling rates for the same process [18]. Importantly, none of these methods directly controlled final part geometry, which is likewise not generally automatically controlled during production. Rather, it is common for the final shape to be monitored and for technicians to manually adjust screw speed, barrel temperature, and puller speed, among other parameters, if the part is out of specification. This generates a highly manual, repetitive, and inefficient control process.

While iterative learning control (ILC) has been used to control temperature [19,20] and flow rate at the die exit [21–23] in polymer extrusion, it also offers great promise for controlling final part geometry. ILC is well known to effectively deal with repetitive disturbances in cyclic processes, be they continuous like extrusion or discontinuous [24]. ILC's ability to deal with large time delays without compromising stability is also appealing because the delay between the extrudate's exit from the die and its measurement is typically on the order of one minute or more to allow the polymer to cool and the part to take its final shape. Algorithms for implementing ILC range from simple updates requiring no knowledge of the plant, to adaptive algorithms in which the update gains vary with each iteration [25], to more complex updating algorithms that leverage knowledge of the plant [26]. Simple algorithms are especially advantageous for extrusion since it is a complex process lacking accurate models.

This work investigates using a variable-geometry die to extrude parts with varying cross sections and applying ILC as the means of controlling that process. Variable-geometry dies have the potential to enable extrusion of more complex parts, saving time, and money relative to other processes such as injection molding. ILC is well suited to address not only the challenges of fixed die extrusion but also the additional complexities introduced by a moving die, namely, the extra inputs that affect final part dimensions. To demonstrate feasibility, this work employs the simplest possible variable-geometry die, which allows for the regulation of the width of a rectangle. The remainder of the paper is organized as follows: Section 2 discusses the extrusion system examined herein and the framework for the ILC algorithm implemented. Section 3 examines the feasibility of both single-input, single-output (SISO) and multi-input, multi-output (MIMO) cases for these systems by reporting the methods and results of experimental implementation on a production extruder. The paper finishes with some concluding remarks in Sec. 4.

## System Description

Figure 1 is a schematic of a typical industrial extrusion line. Material flows from right to left in the figure, starting as pellets entering the top of the extruder and following the path of the horizontal arrows. Inside the barrel, heaters and the shear force between the material and the screw combine to melt the pellets. The screw pushes the melt to the end of the barrel, where it is forced out through the die and into the cooling trough of chilled water. Here, the extrudate quickly cools to near room temperature so that it takes its final shape. The extrudate continues down the line through a calibrator, which in this work is a laser scanner that takes images of the extrudate cross section. Scanning the part shortly after it leaves the cooling trough and considering this the part's final dimension is standard practice. Beyond the calibrator is the puller that simply pulls the extrudate down the line, ensuring that it does not accumulate at the die. After the extrudate exits the puller, it can be cut to length and stored or otherwise postprocessed. All of these components, in addition to ambient temperature and humidity, have an effect on the final dimension of the extrudate.

The part first swells upon exiting the die and is then drawn down, or shrunk, due to the difference between puller speed and exit speed [3]. Therefore, four main factors contribute to final part shape: die geometry, swell, draw down, and cooling effects. Die geometry is relatively easy to regulate since fixed dies are typically refined over time in an iterative process and variable-geometry dies can be actively controlled. The other three factors are influenced by many interacting variables, resulting in a lack of accurate models. Swell is affected by screw speed, barrel temperature, and their impact on pressure. The amount of draw down is dependent on puller speed and exit speed, which is a function of screw speed, die geometry, and barrel temperature. Cooling effects are influenced by the chilled water temperature and ambient conditions, which are rarely controlled with precision. While screw speed and barrel temperature can be more easily controlled, their effects on part geometry happen very slowly. In contrast, the puller speed and die shape can be controlled to have an immediate influence on part geometry, so they can be treated as inputs to the system, while the slowly changing parameters are considered unknown plant dynamics. Variations in the ambient conditions and the controlled parameters are treated as disturbances that are nearly constant in time. ILC is particularly well suited to handle unknown plant dynamics and nearly constant disturbances. The difficulty in modeling the effects of the many inputs on final part geometry motivates use of ILC as opposed to a proportional–integral–derivative controller, for example, that would require an accurate model.

*j*refers to the iteration number and each element of a vector is for a given time-step

*k*in an iteration.

**Q**represents the Q-filter that affects transient behavior and robustness and

**L**is the learning function that determines how the error vector $e\xaf$ is used to update the input vector $u\xaf$. In this work, the input vector is the position of the actuator controlling the die opening for the SISO case, and a second vector containing the puller speed is added for the MIMO case

where $Y\xafd$ is a vector containing the desired output value at each time-step and $y\xafj$ is the actual output value for iteration *j*. The output is the final part width for the SISO case, and part height is added in the MIMO case. The core of ILC controller design lies in determining the **Q** and **L** matrices. *Q*-filtering removes undesired transients and increases robustness but does affect the new input signal, so **Q** must be the identity matrix (no *Q*-filtering) to allow for perfect tracking. While the extrusion plant is very complex, it is generally stable and well behaved in that errors tend not to grow exponentially or quickly. Therefore, it is reasonable to start with **Q** as the identity matrix and only change **Q** if undesired behavior is encountered. The elements of **L** can be selected to use different types of learning, and a proportional, or P-type, learning function is used herein. Bristow et al. provide an overview of ILC algorithms and how **Q** and **L** may be chosen to maximize performance [24].

## Controlling the Extrusion System With Iterative Learning Control

A simplified model of a production fan-cooled Akron 2–1/2 in extruder with an L:D ratio of 24:1 running a general purpose screw was created to investigate the proposed ILC algorithm. Simulations were performed on this model to investigate the stability of the ILC algorithm and determine plausible gains before implementing them on the production extruder. Both constant and varying width experiments were performed for the SISO production system, while only a constant width experiment was performed for the MIMO production system. The material used for all experiments was Exxon Santoprene 121-67W175, a TPV with a hardness of 67 shore A and a specific gravity of 0.97. This material was chosen because it is not susceptible to thermal degradation, meaning it can sit in the extruder at temperature between runs without starting to break down and reduce part quality.

### Simulations.

Both SISO and MIMO systems were simulated for the model die shown in Fig. 3. The die has two ports from which material is extruded. A single sliding block controls the width of these ports such that as the width of one decreases, the width of the other increases. A linear actuator, controlled with a simple proportional controller, positions the sliding block to set the width of both ports, so the desired positions, or setpoints, are the input $u\xaf1,j$ for the ILC algorithm. The output is the width (and height) of the extrudate coming from the main port for the SISO (and MIMO) system. The second or “dump” port is included simply to keep the total cross-sectional area of the die opening constant, so the extrudate exiting it is just recycled. The exit speed of the extrudate is assumed to remain nearly constant regardless of actuator position, with slight variations accounted for by the inclusion of noise in the simulation. In all cases for this system, noise is introduced via the *normrnd* function in matlab, with the mean set to the nominal parameter value and the standard deviation set to 2% of this value to match the variance seen in production.

where *w*_{max} is the maximum opening (5/8 in), $u1,j$ is the encoder count setpoint, *h*_{die} is the height of the ports (0.08 in), *swell* is the amount the extrudate first expands upon exiting the die, *d* comes from the difference in exit and puller speed discussed below, and *noise* is included in both equations, as previously described.

*V*

_{ex}) differs from the puller speed, the cross-sectional area of the extrudate must change to allow the volumetric flow rates to remain equal. Since the flow rate is uniform throughout the cross section, the difference in puller speed and exit speed is assumed to create a uniform change in area, resulting in the width and height changing by the same proportion

*d*

The time delay between the extrudate exiting the die and reaching the scanner is determined by the distance between the die and scanner and the average puller speed. The time delays seen in simulation were within a second of those seen in the SISO experiments, as obtained with the procedure described in Sec. 3.2.

*Q*taken as the identity matrix:

where *k*_{1} is selected as −800 for the SISO case to match the relationship between encoder counts and die position. For the MIMO case, an obvious choice for *k*_{2} does not exist; therefore, 225 combinations of gains were tested. Values of −200 for *k*_{1} and −1500 for *k*_{2} were found to result in both low errors and rapid convergence. Both learning functions are P-type because both inputs correspond directly to the parameter (die opening and puller speed). The gains are negative because there is a reverse relationship between the input and the part dimension—increasing $u\xaf1,j$ narrows the die opening, decreasing the extrudate width.

The constant and varying profiles shown in Fig. 4 were used for both the SISO and MIMO cases. The desired width $Y\xaf1,d$ for the constant profile was 0.375 in. The varying width profile consisted of five regions, each ten time steps in duration: (1) constant 0.3 in; (2) ramp to 0.5 in; (3) constant 0.5 in; (4) ramp to 0.3 in; and (5) constant 0.3 in. The desired height $Y\xaf2,d$ was a constant 0.08 in for both profiles. The initial input vector was set such that the die opening was the initial desired width of the profile. For the constant profiles, the entire vector was set equal to 196, which corresponds to an opening of 0.375 in; for the varying profiles, the entire vector was set equal to 256, which corresponds to an opening of 0.300 in. The puller speed was set to 20 feet per minute (fpm) and held constant for the SISO case, but updated for the MIMO case. The exit speed was set to 15 fpm. These speeds were chosen based on discussions with the operators of the experimental extruder. They were chosen to match an appropriate line speed and the amount of draw down typically seen. Also, it was determined that a *swell* value of 1.05 was appropriate.

*noise*parameters in the SISO system are ignored, it is a linear system, and the asymptotic stability of the system may be analyzed using the methods discussed in Ref. [24]. When applying this condition, the SISO system is stable if the following equation is satisfied:

Since the left-hand-side of Eq. (9) equals 0.09, the system is asymptotically stable. A similar analysis can be performed for the MIMO system by linearizing it about a particular input value. Performing this analysis about several operating points between 15 and 25 fpm yields values between 0.64 and 0.84, showing that the linearized MIMO system is also asymptotically stable for the range of input speeds seen in practice. It should be noted that ILC algorithms do exist that guarantee trial-to-trial stability for nonlinear systems [27–29]. These algorithms, though, are more complicated to implement, so this work followed the advice in Ref. [26] and pursued a simple algorithm first. While more complex algorithms could always be investigated if a lack of stability or robustness were observed, such behavior was not found in either the simulations or the experiments herein.

All simulations were run for 60 iterations, converged within five iterations, and were stable in the bounded-input bounded-output sense, with finite inputs producing outputs bounded by a finite number [30]. Stability in this work more specifically indicates behavior in which the error settles and remains below an upper bound for the duration of the trial. Every case was run 100 times, and the average, maximum, and minimum rms errors at each iteration were computed. Figure 5 depicts the rms error versus iteration for the SISO case with constant width profile. The varying width profile results are not included since they displayed similar trends. For both profiles in the SISO case, the width quickly settled below an error of 0.02 in, confirming that the ILC controller with the chosen gain was plausible for implementation on the production extruder. Additionally, the error for the height was consistently smaller than 0.008 in, or less than 10% of the desired value, indicating that the more complex MIMO case may not be necessary. The results for the MIMO case with constant width profile are presented in Fig. 6, and those for the varying width profile were similar so not included herein. Part height was better regulated in the MIMO case, with the error in height being roughly 40% that of the SISO case. Part width regulation was nearly identical, though, with the average steady-state error being about 0.015 in for both cases.

### Experimental Implementation.

Figure 7 shows a picture of the die setup with three key areas highlighted for reference. Figure 8 shows a picture of the die used for all of the experiments discussed herein, made from the model used in simulations. This die was machined and precision ground such that the clearance was a maximum of 1.5 thousandths of an inch on all sliding surfaces. The tight clearance and precision machining allowed for minimal leakage that did not interfere with the motion of the die during the experiments.

A linear actuator, seen in part B of Fig. 7, was used to move the sliding block during experiments. The PA-17 linear actuator from Progressive Automations was used with a one inch stroke length, 2000 lbf maximum force, and a Hall effect encoder on the motor. An Arduino Mega2560 Rev3 microcontroller, MegaMoto Plus H-bridge for Arduino motor shield, and 12 V power supply were also used to control and power the linear actuator. A proportional controller was used to set the position of the linear actuator since steady-state error and overshoot were not observed. This control loop was run at 100 Hz. During experimentation, it was noted that some drift was present in the encoders; however, the ILC algorithm was able to overcome this disturbance, as discussed in Sec. 3.3. The actuator was attached to the sliding block on one end, using a threaded rod and clevis joint, and to the support platform on the other, using another clevis joint. The support platform, shown in part C of Fig. 7, attached the linear actuator back to the frame of the die.

A low pass filter with a voltage divider was used in conjunction with a pulse-width-modulated voltage signal from the Arduino to send a reference voltage signal to the puller motor. This setup replaced the built-in potentiometer used to set the puller speed. A one-half voltage divider was used to increase the resolution of the signal being sent, allowing the pull speed to be adjusted by as little as 0.25 fpm. A circuit with a time constant of 0.1 s was found to hold the speed as steady as when the potentiometer was used, with a similar response time.

The ILC update law (Eqs. (6)–(8)) and gains from the simulations in Sec. 3.1 were used in matlab to control the experiment. It interfaced with the output from the scanner through a network drive and gave the input to the Arduino code through a serial connection. The laser scanner is shown in Fig. 9, where part A is the scanner itself and part B is the computer that recorded the data and saved it as a text file to the network drive. The scanner would save the height and width of the extrudate to a text file every second. This text file was read into matlab from the network drive and used to create the actual output vectors $y\xafa,j$ needed to calculate the errors $e\xafa,j$ for the *j*th iteration.

The major challenge in this procedure was synchronizing this output data with the input data to ensure that the error at time-step *k* corresponded to the input signal at time-step *k*. This was accomplished by driving the die from the fully open configuration of the main port to the minimally open configuration of the main port at the beginning of every experiment. This allowed for a sudden and significant change in width that could easily be identified in the width data measured by the laser scanner. A threshold was set at 0.05 in greater than the nominal width of the minimally open configuration. Once a measurement dropped below this threshold, it was known that this reading corresponded to the beginning of the experiment, and the time delay between die position changes and scans from the laser was determined. Since the pull rate remained the same for SISO experiments, this time delay did not change, and the input and output data were successfully synchronized. In the MIMO case, the pull rate changed, meaning that this time delay changed, resulting in the input and output data not being properly synchronized. The consequences of this are discussed in Sec. 3.5.

The initial input value remained the same for the first ten seconds of every iteration to ensure that identical, steady-state initial conditions were reached at the beginning of each iteration. The next 50 values in the input vector corresponded to the actual profile, resulting in a part that took a total of 60 s to extrude. This part was repeated twice for a total of three parts with the same input vector for each iteration, because it took about 90 s for the extrudate to reach the scanner once it exited the die. Running the input vector three times allowed enough time for the first part to reach the scanner, the error vector to be generated, and the input vector to be updated and sent to the Arduino controller before the next iteration started. Only data from this first part were used in updating the control law. The data from the subsequent parts were recorded and used to determine the variability when identical input signals were provided, as discussed in Sec. 3.4.

*μ*and standard deviation

_{D}*σ*for the difference vector were determined and used to calculate upper $UB\xaf$ and lower $LB\xaf$ bound vectors per

_{D}If an actual width was larger (smaller) than its corresponding value in $UB\xaf$ ($LB\xaf$), it was replaced by that value of $UB\xaf$ ($LB\xaf$). The same was done for the height, where the upper and lower bounds were set to 0.085 and 0.075 in, respectively, since the height dimension of the die does not change. It should be noted that introducing a non-identity Q-filter is an alternative method of removing this type of noise from the system. Occasionally, a bad reading resulted in no data value at all for a second. If this occurred during testing, the average of the two data points surrounding the bad reading was used as the missed value.

### Single-Input, Single-Output Constant Width Experiments.

The experimental procedure is as follows: First, the slider block is positioned such that the main port is completely open and the dump port is completely closed. The actuator is then extended from fully retracted to an encoder count of 200, the count is reset to zero, and the actuator is connected to the sliding block. The barrel and die are then allowed to heat up to 370 °F, the recommended temperature for the material. Once this temperature is reached, the screw speed is set to 10 RPM, and the extrusion is started. The puller speed is set to 20 fpm, the slow end of typical production speeds. This speed was selected to match normal line operation, while minimizing the amount of material needed. The screw speed was selected to minimize the draw down. Once the extrudate reaches the puller and has been running for approximately one minute, the scanner is started and the ILC algorithm is initiated. For the constant width experiments the process was terminated after 30 iterations. At 3 min per iteration, 30 iterations correspond to 90 min of run time. This is sufficiently long to assess the system's stability, as defined in Sec. 3.1.

The desired profile for this experiment is the same as the constant width one used for the simulations, as shown in Fig. 4(a). Two runs were performed for this desired profile. The rms error at each iteration is shown in Fig. 10 for both runs. An initial input vector equal to the encoder count that provided the nominal desired width was used for both runs. The first run used the ILC algorithm to update the input vector, whereas the second run maintained the set point from the input vector throughout the experiment. Everything else in the procedure remained the same, allowing for the effectiveness of the ILC algorithm to be compared to that of a stationary die.

Looking at iterations 5–15 in Fig. 10, the two cases display similar errors, with the ILC run having higher variability. This is to be expected since the width of the die opening does not change in the set point run. After iteration 15, however, the error of the set point run starts to increase and continues to increase for the remaining iterations; likely due to a small amount of encoder drift. Over time, noise in the encoder signal led to drift, which caused the motor position to change even though it was still in the correct position. While this is not ideal, the performance of the ILC run shows that this encoder drift was largely accounted for by the ILC algorithm and merely increased the variability of the error, without significantly affecting the trend. This experiment shows that the ILC algorithm was effective in controlling the final width of the extrudate and remained stable. It should be noted, however, that in general, if a constant cross section is the desired profile, a traditional fixed die will likely last longer and provide more robust performance in a typical continuous operation that lasts hours at a time. Therefore, the main outcome of this experiment was to show that the ILC algorithm is viable for the simplest possible control system.

### Single-Input, Single-Output Varying Width Experiments.

The desired profile for this experiment is the same as the varying width one used for the simulations, as shown in Fig. 4(b). The rms error at each iteration is shown in Fig. 11 for all three runs performed. The first two runs had a constant initial input vector equal to the nominal desired initial width of the main port, resulting in a nearly constant width part for the first iteration. Figure 12 shows a picture of the extrudate generated during the tenth iteration of the second run. This shows that at the end of the experiment the two desired widths were being matched, despite a nearly constant width part coming from the first iteration. The third run had a varying initial input vector that matched the nominal desired width for the entire profile. This means that if this input were applied to a perfect model of the system, the initial error would be zero. Other than this difference in initial input vector, the runs were identical and followed the procedure described previously. This difference serves to examine the effect of the initial conditions on the performance of the system. It should be noted that only ten iterations were run for these varying width experiments. This allowed the performance of the system to be analyzed while minimizing the amount of ware on the die and the amount of encoder drift.

The data from iteration three to the end of the run are similar for all runs in Fig. 11. It shows that the rms error generally stayed below 0.02 in and the system remained stable. This marks the first time in polymer extrusion that the final part dimension of a varying-cross section part was autonomously controlled. A common acceptable error tolerance with the extruder is ±0.01 in. While this error is nearly double that, it is similar. Additionally, it is for a varying cross section part and some increase in error is expected. Furthermore, a higher precision actuator would likely be able to reduce this error to the desired 0.01 in.

Recall from Sec. 3.2 that the input vector for a given iteration was run three times. The amount of variance between these runs gives a sense of how much of the noise in the results comes from the control of the variable-geometry die. It was found that the width varied by about 0.01 in on average. This means that roughly half of the error is coming from variability in the die's position and the other half from noise and disturbances in the extrusion line. This supports the claim that the error could be reduced by using a higher precision actuator.

These results also show that the algorithm is robust to initial conditions. This means that if a good model of the system exists and there is intuition for an appropriate input vector, this information can be used to increase initial performance, but it will not have a major effect on steady-state performance. Therefore, if no intuition exists, any reasonable initial vector may be selected, and good steady-state performance will be achieved. Improvements to the system are needed to make this approach production-ready. These results indicate, though, that this is a viable approach and that high-quality parts with variable cross section may be made via polymer extrusion.

### Multi-Input, Multi-Output Constant Width Experiments.

The desired width and height profiles for this experiment are the same as the constant ones used for the MIMO simulations, as shown in Figs. 4(a) and 4(c). The experimental procedure is the same as that described in Sec. 3.3. The update laws are the same as those used for the MIMO simulations in Sec. 3.1 except the gain on the height error (*k*_{2}) was −500 instead of −1500. This is because the simulation was using the puller speed directly, in inches per minute, whereas the experiment uses the voltage sent to the puller, where a single step change results in a 3 in per minute change in speed. Therefore, the gain was reduced by a factor of 3.

The rms error for each of the 30 iterations run for this experiment is shown in Fig. 13. The width error drops below 0.01 in for several iterations, and the height error remains at or below 0.001 in for at least ten iterations. The error begins to grow again starting around the 15th iteration though. This is due to the issue of synchronizing input and output data mentioned in Sec. 3.2. This synchronizing relies on the assumption that the puller speed remains constant, which does not hold for the MIMO case. For example, if the puller speed increases such that the extrudate takes *a* less seconds to travel to the scanner, the error measured at the scanner for time-step *k* will actually correspond to the input at time-step *k* + *a*. If the values at *k* and *k* + *a* are similar, performance is not affected, and the good performance witnessed for the first several iterations is achieved. On the other hand, if these values are not similar, it is possible for the update law to increase the input when it should have been decreased, or vice versa. This will cause a minor increase in error, as seen in iterations 15–20 in Fig. 13(b). If the lack of synchronization persists, the problem is compounded, leading to a large increase in error as seen in the final ten iterations in Fig. 13(b). The likelihood of the values being dissimilar increases as *a* increases.

The more the puller speed is changing, the more *a* will change. Figure 14 gives a sense of how much the puller speed varies within an iteration by reporting the difference between the maximum and minimum puller speeds for each iteration. This variation is less than 0.5 fpm for the first five iterations, which corresponds to the decrease in error seen in Fig. 13(b). The variation starts to slowly increase from iteration 5–15, which corresponds to a leveling out of the error in Fig. 13(b). Finally, after iteration 15, the puller speed starts to change greatly, increasing *a*, and ultimately leading to the increase in error seen in the final 15 iterations in Fig. 13(b). Similar, though slightly less severe, behavior is seen for the width data in Fig. 13(a). The error for the width likely does not grow as drastically since it is being affected by both die position and puller speed, instead of only puller speed as with the height.

The synchronization problem could likely be solved by only changing the puller speed in between iterations and reestablishing the synchronization at the beginning of each iteration. This limits the potential benefits of incorporating puller speed, though, since it is updating significantly less often. Regardless, a larger issue related to part length remains if the puller speed is being changed. The algorithm as setup makes parts that are extruded for 60 s. In reality, the part is desired to be a particular length. As the puller speed changes, the actual length could increase or decrease, negating the benefits of incorporating a changing puller speed. Therefore, what is really needed is a spatial-ILC (SILC) algorithm that can create parts with desired cross section at a desired distance along the length of the part. Some work has been done to develop SILC algorithms [31,32], but more is needed. The algorithms presented in these works would need to be updated and adapted for the specific task at hand. It should be emphasized that if the puller speed is constant, as it is in the SISO case, then a constant relationship exists between space and time. Therefore, the puller speed and desired profile can simply be selected to achieve the desired part length, and no SILC algorithm is required.

The results from the first half of the experiment demonstrate that puller speed can be used to control the dimension of a part that does not relate to a moving portion of the die. The results from the second half illustrate how not accounting for changing puller speed will disrupt the data synchronization and adversely affect the performance. Therefore, a SILC algorithm that allows the cross-sectional dimensions to be specified in space, not time, is required to make variable puller speed viable for production.

## Summary

This work explored using ILC to implement a variable-geometry die on an industrial polymer extruder. Both SISO and MIMO cases were considered where the width of the die opening (and puller speed) were the input(s) and the actual final part width (and height) were the output(s) for the SISO (and MIMO) cases. Die opening and puller speed were selected as inputs because they most directly control the final part dimensions. Simulations using a simplified model showed that the selected gains and P-type learning function were possible options for controlling the width of a varying cross section part while remaining stable.

Both of these SISO and MIMO systems were implemented using a die that allowed the width of a rectangle to be changed on a production extruder at an industrial partner. The SISO experiments resulted in final part dimensions with average steady-state errors less than 0.02 in. These results represent the first known time in polymer extrusion that the final part width was successfully controlled using an automated control system. The MIMO system initially exhibited the ability to simultaneously control part width and height, but over time, errors in synchronizing the input and output data grew, degrading performance. Using the puller to control dimension was shown to be feasible, but development and implementation of a spatial-ILC (SILC) are required to solve both the data synchronizing issue and ensure that the part is the desired length. Thus, the ILC algorithm was shown to be capable of controlling a varying cross section part for the simplest possible variable-geometry die when puller speed is held constant.

## Acknowledgment

The authors wish to thank David Hoelzle from The Ohio State University for his discussions and inspiration to help move this work forward. They also wish to thank everyone at Creative Extruded Products whose generous donation of time and expertise made this work a success, particularly Jim Reed, Tim Mach, and Tim Schlater. Jack Julien deserves acknowledgment for his assistance in making technical drawings for the die and in performing preliminary testing. Finally, a special thanks to Leon Hluchota for his machining skill and insights that went into making such a successful die.

## Funding Data

Division of Civil, Mechanical and Manufacturing Innovation Support was provided by grant # CMMI-1234383 from the National Science Foundation.