1 Introduction

A truss structure is one of the most commonly used structures in aerospace and civil engineering [16]. Because it is desirable to use the minimum amount of material for construction, trusses are becoming lighter and more flexible which means they are more susceptible to vibration. Passive damping is not a preferred vibration control solution because it adds weight to the system, so it is of interest to study the active control of such a structure. One promising method for this problem is to use the technology of smart structures, which employs embedded actuators and sensors [5].

Piezoelectric materials are commonly used as actuators in smart structures since they have advantages such as high stiffness, high bandwidth, high efficiency, light weight, no moving parts and easy implementation. One piezoceramic material in common use is lead zirconate titanate (PZT), which has a strong piezoeffect. This material can be fabricated into different shapes to meet specific geometric requirements. It is also often used as both a sensor and an actuator, which can be easily integrated into a structure. A common way to use PZT is in a stack. In this design, the active part of the positioning element consists of a stack of ceramic discs separated by thin metallic electrodes. Each ceramic disc lies between two electrode surfaces, one of which is connected to the control voltage and the other to the ground. The maximum operating voltage is proportional to the thickness of the discs. The individual discs and electrodes are connected to each other with epoxy cement and are hermetically sealed on the outside with highly insulating materials. Stack elements can withstand high pressure and show the highest stiffness of all the piezoactuator designs. These features make them attractive for structural control applications. The use of an active PZT strut for vibration suppression has already been demonstrated for a number of specific space applications [1113, 15].

Research on the damping of truss structures began in the late 80s. Fanson et al. [10], Chen et al. [8] and Anderson et al. [4] designed active members made of piezoelectric transducers. Preumont et al. [13] used a local control strategy to suppress the low frequency vibrations of a truss structure using piezoelectric actuators. Their strategy involved the application of integrated force feedback using two force gages each collocated with the piezoelectric stack actuators, which were fitted into different beam elements in the structure. Carvalhal et al. [7] used an efficient modal control strategy for the active vibration control of a truss structure. In their approach, a feedback force is applied to each node to be controlled according to a weighting factor that is determined by assessing how much each mode is excited by the primary source. Zheng et al. [17] developed an adaptive truss structure with a self-organizing active vibration control system. In that work, an experimental set-up of a two-bay truss structure with active members was constructed, and the fuzzy neural network controller was applied to suppress the vibration of the truss. The controller first sensed the output of the accelerometer as an error to activate the adaptation of the weights of the controller, and then a control command signal was calculated based on the fuzzy inference mechanism to drive the active members. Experimental results demonstrated that the active fuzzy neural network controller can effectively reduce the truss vibration. Abreu et al. [1] used a standard H robust controller design framework to suppress undesirable structural vibrations in a truss structure containing piezoelectric actuators and collocated force transducers. Abreu and Lopes Jr. [2] used an active modal damping controller together with integral control to suppress the vibrations of a truss structure using a pair of piezoelectric stack actuators collinear with force transducers. In that paper, the integral controller, obtained using the root locus technique, was designed to maximize modal damping of the truss structure. The numerical simulation results demonstrated that the active members of the structure and the integral controller can effectively reduce truss vibrations. Abreu1 et al. [3] verified numerically the application of a self-organizing fuzzy controller (SOFC) to suppress the vibrations of a truss structure using a pair of piezoceramic stack actuators. In that study, a finite element model of the truss structure was constructed using three-dimensional frame elements subjected to axial, bending and torsional loads considering electro-mechanical coupling between the host structure and piezoelectric stack actuators. Numerical simulations were carried out to evaluate the performance of the SOFC and illustrate the effectiveness of the active vibration control strategy. Li and Huang [11] developed a linear-quadratic-Gaussian (LQG) model for vibration control for an adaptive truss. Numerical examples and the vibration control experiments were used to validate the efficiency of the proposed method.

This paper presents the design, implementation and experimental results of active vibration control of a particular truss structure using a pair of PZT stack actuators. The truss consists of 20 cubic bays mounted on to a base plate. The structure is approximately 2.12 m in tall and the bare truss weighs 6.15 kg. To simulate the effects of a disturbance on the truss, an impulse force is applied to the structure to excite the vibrational modes of the truss. For active suppression of the vibrations caused by the impulsive excitation, a pair of active strut members is installed along a vertical of the base bay of the truss. This location has the highest modal strain energy according to the finite element model [3]. The active strut elements consist of low cost, commercially available piezoelectric ceramic stack actuators, force transducers and mechanical interfaces. They replace truss members and act as load-carrying members as well as active members. Using the force transducer as a sensor and the PZT stack as an actuator, a SOFC is designed to suppress the vibration of the truss. The control system consists of independent single-input single-output (SISO) loops, i.e., decentralized active damping with local SOFCs connecting each actuator to its collocated force transducer. A dSPACE digital data acquisition and real-time control system along with Matlab/Simulink ® is used to implement the control design in real time. Experimental results show that the active strut member with a PZT stack actuator can effectively suppress truss vibration using the SOFC.

2 The truss structure

The truss structure (Fig. 1) is composed of 20 cubic bays assembled from a combination of 244 elements that begin and terminate in an aluminum node ball. There are a total of 84 node balls constituting the truss and the nodes at the bottom are clamped. The passive members are made of steel with a diameter of 5 mm. The structure is approximately 75 mm in length, 75 mm wide and 2.12 m tall (from the base plate).

Fig. 1
figure 1

The truss structure with incorporated active elements

The experimental set-up for the truss is displayed in Fig. 1. To excite the vibration of the truss, an impact hammer (model PCB 086C04) was used. To achieve the maximum excitation effect, the truss was excited at its free end by the impact hammer. To achieve active suppression of the vibration of the truss, a pair of active members (Fig. 1) which consists of a force transducer (model PCB 208C03) and a PZT stack actuator was installed as vertical active members in the bay next to the base. Each active member replaces a regular strut member. A more detailed description of the truss and its finite element model and the positions of PZT actuator/force sensor can be found in reference Abreu1 et al. [3].

In this experiment, the PZT stack actuator (model PPA20 M) manufactured by Cedrat was used. This preloaded PZT actuator is a high resolution linear translator for static and dynamic applications. It provides sub millisecond response and sub nanometric resolution. The translators are equipped with high reliability multilayer PZT ceramic stacks protected by an internally spring-preloaded non-magnetic stainless steel case. The actuator provides a displacement up to 20 μm, a push force and a pulling force up to 800 and 400 N, respectively, and an operating voltage range of −20 to 150 V. The voltage amplifier (model Cedrat LA75B) and the charge amplifier (model PCB 482C15 with gain of 20 V/V) shown in Fig. 1 were used to power the PZT stack actuator and to condition the signal from the force transducers, respectively. The truss response was measured by the force sensors collocated with the PZT stack actuators. The dSPACE system along with Matlab/Simulink ® was used for digital data acquisition and real-time control.

3 Active vibration control of the truss structure

3.1 Frequency response identification

Prior to designing the active controller, it was necessary to identify the frequency response of the truss system [3], whose input was the force of the impact hammer that excited at free end of the truss and whose output is each force sensor. The frequency response functions of the impact hammer-sensor systems were obtained using the Matlab/Simulink ® software together with a PC and the dSPACE 1103 board. The frequency responses (calculated from 15 averages) of the system (in terms of the impact force applied by the hammer and the voltage measured from the force transducer) from 0 to 500 Hz are displayed in Fig. 2a.

Fig. 2
figure 2

Frequency response of the force transducers 1 (a) and 2 (b)

By examining the frequency response plots, the frequency of the dominant mode below 20 Hz is determined to be at 16.89 (Fig. 2a) and 16.92 Hz (Fig. 2b). The strategy is to control simultaneously the first two modes (ω 1= 106.12 rad/s and ω 2 = 106.31 rad/s) using two active members (PZT struts) positioned in the elements shown in Fig. 1, and two decentralized SOFCs connecting each actuator to its collocated force transducer.

4 Controller design

In this section, a decentralized active damping controller is considered with a local SOFC connecting each actuator to its collocated force transducer (y).

The control voltage (V) applied to each actuator is defined as [3]:

$$V\left( s \right) = \frac{u}{s + \varepsilon }$$
(1)

where s is the Laplace variable, u is the output of the SOFC and the constant ɛ is to avoid voltage saturation and it must be lower than the first natural frequency of the structure. Therefore, in this work, the constant ɛ is set as: ɛ = ω 1/2 = 53 rad/s. The integral term 1/s introduces a 90° phase shift in the feedback path and thus adds damping to the system. It also introduces a −20 dB/decade slope in the open-loop frequency response, and thus reduces the risks of spillover instability [14].

Based on the steps in designing a conventional fuzzy logic controller (FLC), the SOFC design consists of six steps: (1) the definition of input/output variables; (2) definition of the control rules; (3) fuzzification procedure; (4) inference logic procedure, (5) defuzzification procedure, and (6) the self-organization of the rule base.

5 Definition of input/output variables

In general, the output of a system can be described with a function or a mapping of the plant input–output history. For a SISO discrete time systems, the mapping can be written in the form of a nonlinear function as follows

$$y_{k + 1} = g\left( {y_{k} , y_{k - 1} , \ldots ,u_{k} ,u_{k - 1} , \ldots } \right)$$
(2)

where y k and u k are, respectively, the output and input variables at the k-th sampling step.

The objective of the control problem is to find a control input sequence which will drive the system to an arbitrary reference point y ref. Rearranging Eq. (2) for control purposes, the value of the input u at the k-th sampling step that is required to yield the reference output y ref can be written as follows

$$u_{k} = h\left( {y_{\text{ref}} ,y_{k} , y_{k - 1} , \ldots ,u_{k - 1} ,u_{k - 2} , \ldots } \right)$$
(3)

which can be viewed as an inverse mapping of Eq. (2).

While a typical conventional FLC uses the error and the error rate as the inputs, the proposed controller uses the input and output history as the input terms: \(y_{\text{ref}} ,y_{k} , y_{k - 1} , \ldots ,u_{k - 1} ,u_{k - 2} , \ldots\). This implies that u k is the input to be applied when the desired output is y ref as indicated explicitly in Eq. (3).

6 Definition of the control rules

In this work, the key idea behind the SOFC is not to use rules pre-constructed by experts, but form rules with input and output history at every sampling step. Therefore, a new rule R, with the input and output history can be defined as follows

$$\begin{gathered} R^{\left( j \right)} :\;IF y_{k} \;\;is\;\; A_{1j} , \ldots , y_{k - n + 1} \;\; is\;\; A_{nj} \;\;AND \;\;u_{k - 1} \;\; is\;\; B_{1j} , \ldots , \hfill \\ u_{k - m} \;\;is\;\; B_{mj} \;\; THEN\;\; u_{k}\, is\, C_{j} \hfill \\ \end{gathered}$$
(4)

where n and m are the number of output and input variables, A 1j , A 2j , …, A nj and B 1j , B 2j , …, B mj are the antecedent linguistic values for the jth rule and C j is the consequent linguistic values for the jth rule.

7 Fuzzification procedure

In a conventional FLC, an expert usually determines the linguistic values A 1j , A 2j , …, A nj and B 1j , B 2j , …, B mj and C j by partitioning each universe of discourse. In this paper, however, these linguistic values are determined from the crisp values of the input and output history at every sampling step and a fuzzification procedure for fuzzy values is developed to determine A 1j , A 2j , …, A (n+1)j and B 1j , B 2j , …, B mj and C j from the crisp \(y_{k} , y_{k - 1} , y_{k - 2} , \ldots ,y_{k - n + 1} , u_{k - 1} ,u_{k - 2} , \ldots , u_{k - m}\) and \(u_{k}\) respectively. The fuzzification is done with its base on assumed input or output ranges. When the assumed input or output range is \(\left[ {a, b} \right]\), the membership function for crisp y i is determined as a triangular shape

$$\mu_{{A_{i} }} = \left\{ {\begin{array}{*{20}l} {1 + \frac{{\left( {y - y_{i} } \right)}}{{\left( {b - a} \right)}}\;\; {\text{if}}\; a \le y < y_{i} } \\ {1 - \frac{{\left( {y - y_{i} } \right)}}{{\left( {b - a} \right)}}\,{\text{if}}\, y_{i} \le y < b,\;\; {\text{for }}\;i = 1, 2, \ldots , n} \\ 0 \\ \end{array} } \right.$$
(5)

Note that all linguistic values overlap on the entire range \(\left[ {a, b} \right]\), and furthermore, every crisp value uniquely defines the membership function with the unity center or vertex value and identical slopes: \(- \frac{1}{{\left( {b - a} \right)}}\) and \(\frac{1}{{\left( {b - a} \right)}}\) for the right and left lines, respectively (see Fig. 3).

Fig. 3
figure 3

Fuzzification procedure for \(A_{1j}\), \(A_{2j}\), …, \(A_{nj}\), \(B_{1j}\), \(B_{2j}\), …, \(B_{mj}\) or \(C_{j}\)

Figure 3 shows the fuzzification procedure for crisp variables y 1 and y 2, where A 1 and A 2 are the corresponding linguistic values (fuzzy sets) with membership functions defined in the range \(\left[ {a, b} \right]\). Thus, this fuzzification procedure requires only the minimal information in forming the membership functions.

8 Inference logic procedure

To attain the output fuzzy set, it is necessary to determine the membership degree (w i ) of the input fuzzy set with respect to each rule. If input fuzzy variables are considered as fuzzy singletons, the membership degree of the input fuzzy variables for each rule may be calculated using a specific operator (AND). As with the conventional FLC, the operator used here is the min operator described for the ith rule

$$w_{i} = \hbox{min} \left[ {\left( {A_{1i} \wedge y_{1} } \right), \ldots , \left( {A_{{\left( {n + 1} \right)i}} \wedge y_{{\left( {n + 1} \right)}} } \right), \left( {B_{1i} \wedge u_{1} } \right), \ldots , \left( {B_{mi} \wedge u_{m} } \right)} \right]$$
(6)

where \(\left( \wedge \right)\) is the AND operation.

This mechanism considers the minimum intersection degree between input fuzzy variables and the antecedent linguistic values for the example: ith and jth rules, as shown in Fig. 4.

Fig. 4
figure 4

Inference mechanism

The membership degrees w i and w j thus defined reflect the contribution of all input variables in the ith and jth rules. The evaluation of the membership degree value w with three fuzzy input variables, \(y_{k} , y_{k - 1}\) and \(u_{k - 1}\), is shown in Fig. 4, where the ith rule is closer to the input variables than the jth rule and thus w i  > w j .

The consequent linguistic value or the net linguistic control action, C n is calculated for taking the α-cut of C n , where α = max [μ(C n )]. To find the control range for the example shown in Fig. 4, each operation forms the consequent fuzzy set, and the range with its membership degree is deduced as a control range for each rule, i.e., \(\left[ {a, b} \right]\) for the ith rule, and \(\left[ {c, d} \right]\) for the jth rule as the respective ranges. As a result of this inference, the net control range (NCR), which is the intersection of all control ranges, is determined, i.e., \(\left[ {c, b} \right]\) as shown in Fig. 5, where C i and C j are the consequent fuzzy sets for the ith and jth rules, respectively.

Fig. 5
figure 5

The net control range (NCR) with two rules

9 Defuzzification procedure

Defuzzification is the procedure to determine a crisp value from a consequent fuzzy set. Methods often used to do this are the center of area and the mean of maxima [9]. Here, the purpose of defuzzification is to determine a crisp value from the NCR resulting from the inference. Any value within the NCR has the potential to be a control value, but some control values may cause overshoot while others may be too slow. This problem can be avoided by adding a predictive capability in the defuzzification. A method is presented which modifies the NCR to compute a crisp value using the prediction of the output response. The series of the last outputs is extrapolated in the time domain to estimate y k+1 by the Newton backward-difference formula [6]. If the extrapolation order is n, using the binomial-coefficient notation, the estimate \(\hat{y}_{k + 1}\) is calculated as follows

$$\hat{y}_{k + 1} = \mathop \sum \limits_{i = 0}^{n} \left( { - 1} \right)^{i} \left( {\begin{array}{*{20}c} { - 1} \\ i \\ \end{array} } \right)\nabla^{i} y_{k}$$
(7)

where

$$\nabla^{i} y_{k} \triangleq \nabla \left( {\nabla^{i - 1} y_{k} } \right),\;{\text{where}}\;\nabla y_{k} \triangleq y_{k} - y_{k - 1} \;{\text{for}}\;i \ge 2$$
(8)

Defuzzification is performed by comparing the two values, the estimate \(\hat{y}_{k + 1}\) and the reference output y ref or the temporary target y t k+1 , generated by the following reference model

$$y_{k + 1}^{t} = y_{k} + \alpha \left( {y_{\text{ref}} - y_{k} } \right)$$
(9)

where y t k+1 is the reference output or the temporary target and α is the target ratio (0 < α ≤ 1). The value α describes the rate with which the present output y k approaches the reference output value (for the present work, y ref is equal to zero). The value α is chosen by the user to obtain a desirable response.

When the estimate exceeds the reference output, the control has to slow down. On the other hand, when the estimate has not reached the reference, the control should speed up. Two possible cases will, therefore, be considered: Case 1) \(\hat{y}_{k + 1} < y_{k + 1}^{t}\) and Case 2) \(\hat{y}_{k + 1} > y_{k + 1}^{t}\).

To modify the control range, the sign of u k  − u k-1 is assumed to be the same as the sign of \(y_{k + 1}^{t} - \hat{y}_{k + 1}\). Thus, for case 1 the sign of \(y_{k + 1}^{t} - \hat{y}_{k + 1}\), hence the sign of u k  − u k-1, is positive, implying that u k has to be increased from the previous input u k-1.

The final crisp control value u k is then selected as one of the midpoints of the modified NCR as shown in Fig. 6.

Fig. 6
figure 6

The defuzzification procedure

$$u_{k} = \left\{ {\begin{array}{*{20}c} {\frac{{\left( {u_{k - 1} + q} \right)}}{2} \quad{\text{for}}\;{\text{Case}} 1} \\ {\frac{{\left( {p + u_{k - 1} } \right)}}{2}\quad{\text{for}} \;{\text{Case}} 2} \\ \end{array} } \right.$$
(10)

where p and q are the respective lower and upper limits of the NCR resulting from the inference mechanism.

10 Self-organization of the rule base

The rules of the SOFC are generated at every sampling time. If every rule is stored in the rule base, two problems will occur: (1) the memory will be exhausted, and (2) the rules which are performed improperly during the initial stages also affect the later inference.

For this reason, the fuzzy rule space is partitioned into a finite number of domains of different sizes and only one rule is stored in each domain [3].

Figure 7 shows the rule base updating procedure. If there are two rules in the same domain, the selection of a rule is based on comparison of y k in both rules. That is, if there is a new rule which has an output smaller than the existing output in a given domain (old rule), the old rule is replaced by the new one. This updating procedure of the rule base makes the proposed fuzzy logic controller capable of learning the object plant and self-organizing the rule base. The number of rules increases as new input–output data are generated. It converges to a finite number in the steady state, however, and never exceeds the maximum number of domains partitioned in the rule space.

Fig. 7
figure 7

The self-organization of the rule base

Figure 8 shows the architecture of the proposed FLC system. Initially, since there is no control rule in the rule base, the control input u k for the first step is the median value of the entire input range. As time increases, the defuzzification procedure begins to determine whether the input has to be increased or decreased depending on the trend of the output. The sign of ∇u k and the magnitude of u k are determined in the defuzzification procedure. The self-organization of the rule base, in other words the learning of the system, is performed at each sampling time k.

Fig. 8
figure 8

The self-organizing fuzzy logic control system architecture

11 Experimental results

In the experimental tests, \(y_{k} , y_{k - 1}\), and \(u_{k - 1} , u_{k - 2}\) were used as input variables to the SOFC (Eq. 1, where ε = 53 rad/s) and the variables y k and y k-1 were divided into 5 segments to partition the rule space [3]. The second-order extrapolation (Eq. 7) was performed to estimate y k+1 as follows

$$\hat{y}_{k + 1} = 2y_{k} - y_{k - 1}$$
(11)

In both controllers, the output range (y) is −1 to 1 N, input range (u) is −1 to 6 V applied to the voltage amplifier (with gain of 20 V/V), resulting in maximum operating voltage range of −20 to 120 V applied to the actuator, the target ratio α was 0.65 (determined by trial and error to obtain a faster desirable response), y ref is zero and the sampling time is set to 0.001 s.

The SOFC was implemented using Matlab/Simulink ® software together with a PC and the dSPACE 1103 board. Figure 9 shows a Simulink ® block diagram of the controller.

Fig. 9
figure 9

Simulink ® block diagram of the SOFC

To verify the controller performance experimentally, open-loop and closed-loop tests were conducted and the results are presented. The truss structure was excited at the top using the impact hammer shown in Fig. 1. The uncontrolled and controlled responses of the force transducers 1 and 2 in the time domain for impulsive excitation are shown in Figs. 10 and 11.

Fig. 10
figure 10

Uncontrolled and controlled time responses at the force transducer 1

Fig. 11
figure 11

Uncontrolled and controlled time responses at the force transducer 2

The degree of control effectiveness is evaluated by the reduction (in dB) of the frequency response of the controlled versus uncontrolled response. The frequency response comparison for each force transducer is displayed in Figs. 12 and 13, respectively.

Fig. 12
figure 12

Uncontrolled and controlled frequency responses at the force transducer 1

Fig. 13
figure 13

Uncontrolled and controlled frequency responses at the force transducer 2

From the results it can be observed that the time and frequency responses are reduced greatly (approximately 9 dB for both two first modes). Figure 14 presents the corresponding control voltages.

Fig. 14
figure 14

Feedback control voltages applied by the voltage amplifier

In Fig. 15, the proposed control algorithm starts with no initial rule and the number of generated rules is increased monotonically to 26 rules (each rule can be represented by Eq. 4).

Fig. 15
figure 15

Number of generated rules of SOFCs 1 and 2

12 Conclusions

A self-organizing fuzzy controller (SOFC) has been developed to control the vibrations of the truss structure containing a pair of piezoelectric linear actuators collinear with force transducers. The control system consists of a decentralized active damping with local SOFCs connecting each actuator to its collocated force transducer. The control strategy mimics the human learning process, requiring only minimal information on the environment. A simple defuzzification method was developed and an updating procedure of the rule was developed which makes the proposed fuzzy logic controller capable of learning the system and self-organizing the controller. Experimental tests were performed, which illustrated the effectiveness of the controller in reducing the vibrations of a truss structure. The experimental results have shown that piezoceramic stack actuators control efficiently the vibrations of the truss structure. It was also shown that the fuzzy control strategy can effectively reduce truss vibration.