23.10.2017  Original Article  Ausgabe 6/2017 Open Access
Asymmetric Fuzzy Control of a Positive and Negative Pneumatic Pressure Servo System
 Zeitschrift:
 Chinese Journal of Mechanical Engineering > Ausgabe 6/2017
Wichtige Hinweise
Supported by National Natural Science Foundation of China (Grant No. 51575199).
1 Introduction
Pneumatic equipment is widely used in a variety of industries [
1–
3] due to lots of advantages, such as low cost, simple structure, easy maintenance [
4]. The occurrence and development of electropneumatic proportional control valves place pneumatic control techniques beyond the limitation of pointtopoint control. Electropneumatic proportional control valves provide the necessary components for pneumatic servo control systems, such as position [
5–
9], speed [
10], force [
11,
12], and pressure [
13–
17].
In the past decades, a great interest has been shown in pneumatic position servo systems. Compared with that of position servo controls, research on the design of pressure controllers at present is quite limited although the pneumatic pressure control systems have been used in the fields of robots, pressure calibration and various industrial processing systems. In some cases, the pressure controller is designed for improving the control performance of pneumatic position servo system [
7–
9]. In Ref. [
7], a position control for a rodless cylinder was investigated. The proposed controller had an inner linearization pressure control loop and an outer position control loop. A PID controller with feedback linearization was used in the pressure control loop to nullify the nonlinearity arising from the compressibility of air. Noritsugu et al. [
8] investigated a positioning control system with pressure control loop for improving control performance. A disturbance observer was employed to improve the pressure response and compensate the influence of friction force and parameter change. Igo et al. [
9] used a conventional proportional controller with a variable offset pressure controller for achieving quick response and less overshoot of pneumatic robots.
Anzeige
The independent pressure control system generally consists of air supply, electropneumatic proportional valve, chamber and pressure sensor, for example, constant pressure system [
14], pneumaticpressureload system [
15] and pneumatic pressure signal generator [
16]. Lu et al. [
14] presented a constant pressure control system that consisted of frictionless cylinders, a large tank and a pneumatic proportional pressure valve. A hybrid controller combined with BangBang, PD controller and fuzzy PID was proposed to minimize the pressure fluctuations in cylinders. The pneumaticpressureload system researched in Ref. [
15], applied to intensity testing devices, was constructed by electropneumatic proportional pressure valve. In order to adapt to the parameter variability of the pressure load system and obtain better dynamic and static performances, a linear quadratic Gaussian selftuning pressure regulator was proposed to realize an adaptive control of pressure in the chamber. In the pneumatic pressure signal generator [
16], electropneumatic proportional directional valve was used to control the airflow rates of injecting and outflowing the chamber to regulate the pressure. Because of the nonlinear characteristics, an intelligent coordinate control method, combining expert intelligent coordinator, expert controller, and fuzzy neural network controller, was designed to improve dynamic response and steady state accuracy of the generator.
At present, most of the researches can only regulate pressure to certain values. Poor dynamic characteristics and strong nonlinearity of such systems limit its application in the field of pressure tracking control. Positive and negative pneumatic pressure servo system (PNPPSS) is a very important equipment of the hardwareintheloop simulation of aerospace engineering [
17], which controls the sealed chamber pressure according to the altitude command to simulate the atmospheric environment variation during flight. Currently, air data test systems in aerospace applications, for example the product ADTS405 from Druck, can only adjust the pressure or the vacuum to set values. However, the dynamic characteristics of such test systems are too poor to meet the requirements of the hardwareintheloop simulation. Moreover, the flight altitude is progressively increasing with the development of aerospace craft. Therefore, the continually enlarged pressure range of PNPPSS is demanded. In this work, the pressure range of the system is from 2 kPa to 140 kPa, and the frequency and amplitude of tracing curve are 2 Hz and 0.4 kPa respectively.
The principle sketch of the PNPPSS is shown in Figure
1. The system uses a compressor and a vacuum pump as positive and negative pressure source. The chamber pressure is measured by a pressure sensor. Computer gets pressure signal and outputs control command to an electropneumatic proportional control valve (EPPCV), which controls airflow rate and process of chamber charging and discharging.
×
In fact, it is difficult for the PNPPSS to obtain desired dynamic and static performances because of the nonlinearity associated with air compressibility and the asymmetry of charging and discharging process. In addition, the parametric variation due to leakage, setting pressure and vacuum pumping speed will further complicate the problem. It is known that the distinct advantages of PID controllers are simple structure and robust performance [
18]. However, it is difficult to achieve the ideal result for the conventional PID controllers due to the nonlinearities mentioned above. Fuzzy controller is a good candidate, since it is not based on the model of the process and the accurate model of the system is not required [
19,
20]. Fuzzy rule based controllers are found to improve tracking performance over fixed gain PID by upwards of 70% [
21], and have been applied to pneumatic systems [
22,
23]. However, regular fuzzy controller is not suitable to the system due to its lack of adaption to wider operational range and serious asymmetry. To improve robustness and achieve consistent control performance, some auto adjusting mechanisms need to be introduced. Recently, many auto adjusting mechanisms for fuzzy controller have been presented [
24–
28], which offer better performance. In Refs. [
24,
25], both the input and output scaling factors (SFs) were tuned with rulebase defined on the error and change in error of the controlled variable. Since the output SF has strong influence on the performance and stability of the system [
26], some fuzzy logic controllers with autoadjusting mechanism only tuned the output SF, which was regulated by a properly designed rule base [
27,
28].
Anzeige
In this article, a fuzzy inference module is added to conventional PID controller to adaptively tune the PID gains. Further, an asymmetric fuzzy compensator is developed to online adjust output gain of the fuzzy PID controller. The charging or discharging state of chamber can be judged by the output of fuzzy PID controller. Thus, different from conventional adjusting mechanisms employing the error and change in error of the controlled variable as inputs, the current chamber pressure and the output of fuzzy PID controller, which are related to the system features, are chosen as input parameters of the asymmetric fuzzy compensator to improve adaptability.
The rest of this paper is organized as follows. The experimental setup and system characteristics are given in Section
2. Section
3 offers designing details of the fuzzy PID controller with asymmetric fuzzy compensator. In Section
4, experiments and results are provided to verify the proposed control method. Finally, conclusions are drawn in Section
5.
2 System Description and Analysis
An experimental setup used in this study is shown in Figure
2. A constant volume sealed chamber is the controlled object. The volume of chamber is 0.1 L. A highprecision pressure sensor (Setra, 270RoHS) is employed to detect the pressure in the chamber. The sensor output is passed to a computer (Advantech, IPC610) via a data acquisition and control board (Advantech, PCI1710). The control input is generated within the computer and passed to an EPPCV (Norgren, VP60) by using the D/A capability of the PCI1710 board. The EPPCV converts the electric input signal into a spool displacement, which changes air flow rate of injecting or outflowing the chamber in real time. The positive pressure is supplied by a compressor with a reducing valve (Festo, LFRD5MMINI) and the vacuum pressure is provided by a vacuum pump (Edwards, nXDS15i).
×
The mode of working process is composed of positive pressure mode and negative pressure mode. In positive pressure mode, the compressor is pressure source. The compressed air flows into the chamber through the control valve to increase pressure. While in another mode, air in the chamber is discharged by the vacuum pump through the control valve and the chamber pressure will decrease. In both work modes, the charging and discharging rates can be regulated by the control valve. The chamber pressure dynamics can be expressed as a function of the mass flow rate with the assumption that the air is an ideal gas undergoing an adiabatic process in the chamber [
29].
where
p is the chamber pressure,
k is the adiabatic exponent of gas (1.4),
R is the ideal gas constant (287.1 J/(kg·K)),
T is the temperature (293 K),
V is the volume of chamber (0.1 L), and
Q
_{m} is the mass flow rate in or out of the chamber.
ρ
_{0} and
T
_{0} are the air density (1.205 kg/m
^{3}) and temperature (293 K) at reference condition,
p
_{u} is the upstream pressure,
p
_{d} is the downstream pressure,
T
_{u} is the upstream air temperature,
C is the flow coefficient of the EPPCV(290 NL/(min·bar)).
u is the input voltage and the range is from 0 to 10 V, which is normalized to –1 to 1. The function
φ is defined as:
where
b is the critical pressure ratio (0.3) that differentiate subsonic and sonic flows in the valve.
p
_{s} is the supply pressure (160 kPa) that is controlled by the reducing valve and can be considered as constant.
p
_{v} is the intake pressure of the vacuum pump,
where
v is the intake volume of the vacuum pump (0.8 L),
Q
_{mv} is the pumping outflow of the vacuum pump,
S
_{m} is the vacuum pumping speed (250 L/min),
p
_{x} is the ultimate pressure of the vacuum pump (0.7 Pa).
$$\dot{p} = Q_{\text{m}} kRT/V,$$
(1)
$$Q_{\text{m}} = Cup_{\text{u}} \rho_{0} \sqrt {{{T_{0} } \mathord{\left/ {\vphantom {{T_{0} } {T_{\text{u}} }}} \right. \kern0pt} {T_{\text{u}} }}} \varphi \left( {{{p_{\text{d}} } \mathord{\left/ {\vphantom {{p_{\text{d}} } {p_{\text{u}} }}} \right. \kern0pt} {p_{\text{u}} }}} \right),$$
(2)
$$\varphi \left( {{{p_{\text{d}} } \mathord{\left/ {\vphantom {{p_{\text{d}} } {p_{\text{u}} }}} \right. \kern0pt} {p_{\text{u}} }}} \right) = \left\{ \begin{aligned} \sqrt {1  \left( {{{\left( {{{p_{\text{d}} } \mathord{\left/ {\vphantom {{p_{\text{d}} } {p_{\text{u}} }}} \right. \kern0pt} {p_{\text{u}} }}  b} \right)} \mathord{\left/ {\vphantom {{\left( {{{p_{\text{d}} } \mathord{\left/ {\vphantom {{p_{\text{d}} } {p_{\text{u}} }}} \right. \kern0pt} {p_{\text{u}} }}  b} \right)} {\left( {1  b} \right)}}} \right. \kern0pt} {\left( {1  b} \right)}}} \right)^{2} } , {\kern 1pt} {\kern 1pt} {\kern 1pt} {{p_{\text{d}} } \mathord{\left/ {\vphantom {{p_{\text{d}} } {p_{\text{u}} }}} \right. \kern0pt} {p_{\text{u}} }} > b, \hfill \\ \begin{array}{*{20}c} {\begin{array}{ll} {\begin{array}{*{20}c} {\begin{array}{*{20}c} {1,} & {} \\ \end{array} } & {} \\ \end{array} } & {} \\ \end{array} } & {} & {} & {\begin{array}{*{20}c} {\begin{array}{*{20}c} {} & {} \\ \end{array} } & {{{p_{\text{d}} } \mathord{\left/ {\vphantom {{p_{\text{d}} } {p_{\text{u}} }}} \right. \kern0pt} {p_{\text{u}} }}} \\ \end{array} } \\ \end{array} \le b, \hfill \\ \end{aligned} \right.$$
$$p_{\text{u}} = \left\{ {\begin{array}{*{20}c} {p_{\text{s}} \begin{array}{ll} , & {u > 0} \\ \end{array} ,} \\ {p\begin{array}{*{20}c} , & {u \le 0,} \\ \end{array} } \\ \end{array} } \right.\quad p_{\text{u}} = \left\{ {\begin{array}{*{20}c} {p_{\text{s}} \begin{array}{*{20}c} , & {u > 0} \\ \end{array} ,} \\ {p\begin{array}{*{20}c} , & {u \le 0,} \\ \end{array} } \\ \end{array} } \right.$$
$$\dot{p}_{\text{v}} = \left( {Q_{\text{m}}  Q_{\text{mv}} } \right){{kRT} \mathord{\left/ {\vphantom {{kRT} v}} \right. \kern0pt} v},$$
(3)
$$Q_{\text{mv}} = \left( {1  {{p_{\text{x}} } \mathord{\left/ {\vphantom {{p_{\text{x}} } {p_{\text{v}} }}} \right. \kern0pt} {p_{\text{v}} }}} \right){{S_{\text{m}} p_{\text{v}} } \mathord{\left/ {\vphantom {{S_{\text{m}} p_{\text{v}} } {(RT)}}} \right. \kern0pt} {(RT)}},$$
(4)
Model analysis was performed by comparing the openloop system step responses, which were obtained from the simulation and experiment respectively. Based on the mathematic model, a simulation program was developed using Matlab/Simulink. The simulation and experiment results are shown in Figure
3. It can be seen that the simulation results agree with the experimental results, but the change rate of the chamber pressure obtained from the simulation study is faster than that obtained from the experiment. The reason is that the model established above is an ideal one and the internal leakage is neglected. From Figure
3, it is also noticed that the pressure change rate slows down gradually as the chamber pressure is close to the limit whether it is charging or discharging process, and the pressure rising speed is different from the drop speed at the same pressure point. Especially in the range of lower pressure, the closer the chamber pressure is to the ultimate pressure of the vacuum pump, the more serious the asymmetry is, which coincides with the theoretical analysis.
×
According to Eq. (
1), the change rate of the chamber pressure depends on the mass flow rate
Q
_{m}, which is the function of a ratio of downstream and upstream pressure. The closer the downstream pressure is to the upstream pressure, the greater the pressure ratio is and the smaller the mass flow rate is. The change of pressure ratio is not linear, which causes that the performance of the control system is highly nonlinear with the change of pressure. Moreover, when the chamber pressure
p is lower, the value of
p
_{v}/
p during discharging process is far greater than that of
p/
p
_{s} in the process of charging, which leads to serious asymmetry. Therefore, the asymmetry is stronger with the increase of the positive supply pressure.
3 Controller Design
As discussed in the model, it is difficult to obtain the accurate mathematic model. Fuzzy PID controller has simple structure and better performance due to its inherent robustness. In this paper, PID controller with a fuzzy inference module is proposed. The fuzzy inference module is used to adaptively tune the PID gain parameters
k
_{p},
k
_{i} and
k
_{d} according to the error and change in error. Further, an asymmetric fuzzy compensator is developed to adjust output gain of fuzzy PID controller for solving the asymmetry of charging and discharging process. The control structure is shown in Figure
4. The Fuzzy PID controller is tuned online by dynamically adjusting its compensator factor
λ. The value of
λ is determined from a rule base defined on
u
_{f} and
p, and derived from the knowledge of practical experience.
×
3.1 Fuzzy PID Controller
The transfer function of the PID controller used in this paper is as follows:
$$G(s) = k_{\text{p}} \left( {1 + k_{1} \frac{1}{s} + k_{\text{d}} s} \right).$$
(5)
The PID parameters can be tuned online by the fuzzy inference module based on the nonlinear mapping of inputs and outputs established according to the operators experience and fuzzy set theory.
The inputs to the fuzzy inference module are the error
e and the change in error
ec, and the universes of discourse for
e and
ec are defined in [− 1, 1]. The PID parameters
k
_{p},
k
_{i} and
k
_{d} are transformed into a uniform fuzzy range [0, 1]. Then, the fuzzy range of inputs and outputs is separated into 7 and 5 semantic variables respectively, and the corresponding fuzzy subsets are
E =
EC = {NB, NM, NS, ZE, PS, PM, PB},
KP =
KI =
KD = {SS, SM, MM, BM, BB}, where NB is negative big, NM is negative middle, NS is negative small, ZE is zero, PS is positive small, PM is positive middle, PB is positive big, SS is small, SM is middle small, MM is middle, BM is middle big and BB is big. The membership functions for all the subsets are triangular form.
The rule base is the core of a fuzzy controller to specify the actions that should be taken under different conditions. In this paper, the rule base is established based on the step response of the process and the authors’ understanding of the system, as shown in Table
1.
Table 1
Fuzzy rules for the fuzzy PID controller
KP/KI/KD

E



NB

NM

NS

ZE

PS

PM

PB


EC

NB

BB/

SS/

BM/

SM/

SM/

SM/

MM/

SS/

BB/

SM/

SS/

SS/

MM/

MM/


SM

SM

MM

MM

MM

SS

SS


NS

BB/

BM/

SM/

SS/

SM/

MM/

MM/


SS/

SS/

BM/

SM/

SM/

MM/

MM/


BB

BM

BM

BM

MM

BM

SM


NM

BM/

BM/

MM/

SM/

SM/

MM/

BM/


SM/

SM/

MM/

MM/

MM/

BM/

BM/


BB

BB

BM

BM

MM

MM

SM


ZE

BM/

BM/

MM/

MM/

MM/

BM/

BM/


SM/

MM/

MM/

MM/

MM/

MM/

BM/


BB

BM

BM

MM

MM

MM

SM


PS

BM/

MM/

SM/

SM/

MM/

BM/

BM/


MM/

MM/

MM/

MM/

MM/

BM/

BM/


BB

BM

BM

BM

MM

MM

MM


PM

MM/

MM/

SM/

SS/

BM/

BM/

BB/


MM/

MM/

MM/

BM/

BM/

BB/

BB/


BM

BM

BM

MM

MM

SM

SM


PB

MM/

SM/

SS/

SS/

BM/

BB/

BB/


MM/

MM/

MM/

BM/

BB/

BB/

BB/


SM

SM

MM

MM

SM

SS

SS

3.2 Asymmetric Fuzzy Compensator
The inputs to fuzzy PID controller are the error and the change in error. However, as mentioned above, the nonlinearity of the system is mainly affected by a wide range of pressure and serious asymmetry of charging and discharging process. The control rules have nothing to do with the pressure and the charging or discharging state if only using the error and the change in error as input parameters. Then, it is difficult to compensate the system characteristics. In this paper, an asymmetric compensator using the current pressure
p and output
u
_{f} of the fuzzy PID controller as inputs is designed. The asymmetric compensator is based on the sign of the output
u
_{f} to determine charging or discharging process. If
u
_{f}<0, the chamber is in the discharging state. Otherwise, the chamber is in the process of charging. Moreover, the charging or discharging rate can be adjusted according to the current chamber pressure
p.
The asymmetric compensator adopts fuzzy system structure. The universes of discourse for inputs
p and
u
_{f} of the asymmetric compensator fuzzy subsystem are defined in the range of [0, 1] and [− 1, 1], respectively. For
p, the fuzzy set is defined as P = {ZE, SS, SM, MM, BM, BB}. The performance of the system changes obviously in the lowpressure range along with the pressure change, but is relatively stable in the highpressure range. Therefore, the membership function of pressure
p is not uniform and is more intensive in the lowpressure range. The fuzzy set of
u
_{f} is defined as
U
_{f} = {NB, NS, ZE, PS, PB}. The membership functions for
p and
u
_{f} are shown in Figures
5(a),
5(b).
×
The fuzzy output value
λ from the asymmetric fuzzy compensator can be obtained according to the control rules. The universe of discourse for
λ is defined in [0, 1], and the fuzzy set assumes
Λ = {VS, SS, SM, MM, BM, BB, VB}, where VS is very small and VB is very big.
The compensator factor
λ is calculated using fuzzy rules in Table
2. With a view to improving the overall control performance, some of the important considerations that have been taken into account for determining the rules are as follows.
Table 2
Fuzzy rules for the asymmetric fuzzy compensator
U
_{f}

P



ZE

SS

SM

MM

BB

VB


NB

VB

BB

BM

SM

SS

VS

NS

BB

BM

MM

SS

VS

VS

ZE

VS

VS

VS

VS

VS

VS

PS

VS

VS

VS

SS

SS

SM

PB

VS

VS

SS

SM

SM

MM

(1)
If
u
_{f} < 0, the chamber is in the discharging state. When the chamber pressure is lower, the discharging rate is slow. Therefore, the compensator factor should be larger to make the controller produce a fast response. When the chamber pressure is higher, the compensator factor should be set small to prevent the controller from generating a larger overshoot. For example, if
U
_{f} is NB and P is SS then
Λ is BB or if
U
_{f} is NS and P is VB then
Λ is VS;
(2)
If
u
_{f} > 0, the chamber is in the charging state. When the chamber pressure is lower, the charging rate is fast, the compensator factor should be small to make the controller produce a lower overshoot. When the chamber pressure is higher, the compensator factor should be set to be a larger value than that in the condition of lower chamber pressure to improve response. For example, if
U
_{f} is PB and P is SS then
Λ is VS or if
U
_{f} is PB and P is VB then
Λ is MM;
(3)
Due to the asymmetry of charging and discharging process, the compensator factor is also set to be asymmetric in the charging or discharging state. When the pressure
p is lower, the charging value of the compensator factor is less than that in the discharging state. When the pressure
p is higher, the charging value is slightly larger than the discharging value. For example, if
U
_{f} is PB and P is SS then
Λ is VS, but if
U
_{f} is NB and P is SS then
Λ is BB.
(4)
In steady states (i.e.,
u
_{f} ≈ 0), the compensator factor value should be very small (e.g., if
U
_{f} is ZE and P is VB then
Λ is VS) to avoid chattering problem around the set point and ensure the stability of the system.
4 Experiments and Results
To verify the effectiveness of the proposed controller, the comparison experiments were conducted by using PID controller, fuzzy PID controller and fuzzy PID controller with asymmetric compensator. The pressure range is from 140 kPa to 2 kPa. The experimental system is shown in Figure
2. According to the actual vertical speed of the flight, the reference inputs are sinusoidal and square wave curves with amplitude of 0.4 kPa and frequency of 2 Hz. The proportional, integral, and derivative gains for PID controller were set as
k
_{p} = 0.45,
k
_{i} = 0.03, and
k
_{d} = 0.001 respectively. The parameters in the fuzzy inference module and fuzzy compensator were set as
K
_{e} = 0.5,
K
_{ec} = 0.25,
K
_{s} = 0.00625,
K
_{u} = 0.5, and
K
_{r} = 2. The parameters of all controllers were set by experiment tracking reference signal with average value of 140 kPa, and remained unchanged when pressure was changed.
Figures
6 and
7 show the experimental results using PID controller and fuzzy PID controller with asymmetric fuzzy compensator. It can be noted that the control performance with PID controller is optimal when tracking the reference signal with average pressure of 140 kPa, but becomes worse obviously when average pressure of reference input is changed. Especially in the condition of lower pressure, Figures
6(c) and (d) show that the amplitude and phase error tracking sine curve increase significantly, and the square wave responses in two directions are strongly different as shown in Figures
7(c) and (d). The performance is significantly degraded when the operating conditions vary. Figure
8 shows the experimental results tracking the reference signal with average pressure of 5 kPa using fuzzy PID and the proposed controller. Identical conclusion can be obtained from comparison experimental results.
×
×
×
Compared with PID controller or fuzzy PID controller, it can be seen that the control performance with the proposed controller is better and relatively stable at different setting pressure. For better illustration, the phase and amplitude errors tracking sinusoidal input are shown in Table
3, demonstrating that asymmetric fuzzy compensator is added to make the controller adapt to the changes of pressure.
Table 3
The phase and amplitude errors tracking sinusoid
Average value
p/kPa

Phase error
θ
_{e}/(°)

Amplitude error
A
_{e}/%



Proposed controller

Fuzzy PID

PID

Proposed controller

Fuzzy PID

PID


140

6.2

8.6

3.9

2.4

6.7

7.6

20

6.4

17.9

13.7

2.7

10.7

22.8

5

7.9

36.4

28.9

4.6

3.8

32.6

2

8.1

45.8

42.0

4.7

7.4

38.7

Figure
9 shows the output of the asymmetric fuzzy compensator when tracking the sine signal with average pressure of 2 kPa. It can be seen that the output value of the first half is low, and the output value of the second half is increased. The asymmetry of charging and discharging rate can be compensated by the fuzzy compensator. Moreover, According to the square wave responses as shown in Figure
7, the asymmetries in two directions are not clear. Thus, it is obvious that, to a certain extent, the proposed controller overcomes the asymmetric problem and obtains more consistent control performance across the scope of work.
×
5 Conclusions
(1)
The openloop system step responses obtained by simulation and experiment show that the system has serious asymmetry in the process of charging and discharging. Especially in the range of lower pressure, the closer the chamber pressure is to the ultimate pressure of the vacuum pump, the more serious the asymmetry is.
(2)
A fuzzy PID controller with asymmetric fuzzy compensator is proposed for the PNPPSS. Since fuzzy rule based algorithm is not based on the model of the process, the accurate model of the system is not required. This is suitable for the pneumatic pressure system because the accurate system model is unavailable to users in practical application cases.
(3)
The asymmetric fuzzy compensator is utilized to online adjust output gain of the fuzzy PID controller. Different from conventional adjusting mechanisms employing the error and change in error of the controlled variable as input parameters, the current chamber pressure and the output of fuzzy PID controller are chosen as inputs of the compensator, which improves adaptability.
(4)
The proposed controller can obtain better dynamic performance and relatively consistent control performance across the scope of work (2–140 kPa).
Open AccessThis article is distributed under the terms of the Creative Commons Attribution 4.0 International License (
http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.