Computational Aids in Aeroservoelastic Analysis Using MATLAB
Computational Aids in Aeroservoelastic Analysis Using MATLAB
in Aeroservoelastic Analysis
Using MATLABTM
These days, many specialized toolboxes have been developed: Control Systems,
Signal Processing, Optimization, Neural Network, System Identification, and so on.
Those toolboxes provide MATLAB very powerful tools for various and practical
applications.
The purpose of this chapter is to introduce a number of MATLAB functions that are
widely used for dealing with engineering problems. Because there exist a lot of
MATLAB functions, only selected MATLAB functions will be provided in the
following sections. Especially, some basic MATLAB functions used in this book will
be briefly summarized.
When you get into the MATLAB, MATLAB displays a prompt ( >> ) indicating that
MATLAB is ready to receive a command. When you type help command, you can
obtain on-screen information about MATLAB commands which are useful for users.
And when you type quit at the MATLAB prompt, you can exit MATLAB anytime. A
brief summary of some of MATLAB commands is provided in the following sections
for readers who are not familiar with MATLAB. Especially, some MATALB
commands for matrix operation and solution as well as plotting commands for
visualization of the numerical results are explained.
>> x = [ 0 3 2]
Note that elements are separated using either spaces or commas. To create column
vectors, transpose the vector using the apostrophe (’) key. When a complex vector is
transposed, the conjugate transpose of the vector will be obtained. To obtain the
unconjugated transpose, type a dot before the transpose symbol (.’).
Matrices are entered row by row, and each row is separated by semicolon. For
example, to enter 3-by-3 matrix, type the following command.
>> A = [ 0 3 2; 5 1 2; 9 -6 7]
The workspace is the area of memory used by the MATLAB. Two commands, who
and whos, provide the information of current variables in the workspace. The
command who lists all the variables in memory, while whos displays the variables,
sizes and storage information. The command size(A) returns the number of rows and
The element in row i and column j of a matrix A is denoted by A(i,j). For example,
A(2,3) is the number in the second row and third column. The colon operator (:)
represents all the rows or all the columns of a matrix, and therefore the colon operator
can be used to define vectors form a matrix. Consider the following expressions.
>> x=A(3, :)
>> y=A(:, 2)
By typing the above commands, x gives a row vector of third row of matrix A, and y
gives a column vector of second column of matrix A, respectively. Also, A(i:j, k:l)
returns rows i through j and columns k through l of matrix A, and therefore the
following expression yields a two-by-two submatrix of A.
When output variable is not specified, MATLAB uses the variable ans to store the
results of a calculation, and ans keeps the variable value of most recent answer
Rows and columns can be deleted from a matrix using just a pair of square brackets.
To delete the first column of matrix A, type the following command.
>> A(:,1) = [ ]
Concatenation is the process of joining small matrices to make bigger ones. For the
appropriately dimensioned matrices A, B, C, and D, the following command can be
used to define a new matrix.
>> E = [A B; C D]
The command clear clears specified variables from the workspace. For example, to
clear variables x and y from the workspace, type the following command.
MATLAB provides several functions that generate special matrices. The zeros(m,n)
function generates an m-by-n matrix containing all zeros, the ones(m,n) function
generates an m-by-n matrix containing all ones, the eye(n) function generates n-by-n
identity matrix, respectively. Also, rand(m,n) function generates an m-by-n matrix
with uniformly distributed random elements.
>> a1 = sin(x)
>> a2 = cosh(x)
>> a3 = asin(x)
>> a4 = abs(x)
>> a5 = sqrt(x)
The above commands perform the well-known math functions, and yield the sine
value, the cosine hyperbolic value, the arcsine or inverse sine value, the absolute
value, the square root value, the exponential value, and the natural logarithm value of
the variable x, respectively.
>> x = 1 + 2 ∗ i
>> C = A + B
>> C = A − B
>> C = A ∗ B
The above operations define a new matrix C as sum of two matrices, subtraction
matrix B from matrix A, and matrix multiplication, respectively.
Other useful matrix commands are listed as follows with a brief description:
>> A\B
>> A/B
>> inv(A)
Other useful matrix functions such as eig (eigenvalue), cond (condition number),
expm (matrix exponential), and norm are discussed in detail in the subsequent section.
The command format long displays the output in 15 digit scaled fixed point, while the
command format long e displays in scientific notation (15 digit floating point). Note
that the chosen format remains in effect until changed.
All variables in MATLAB workspace can be saved in the binary MATLAB format by
using the following save command.
If no extension is specified, MATALB adds the extension .MAT to the filename. Only
selected variables can be saved by performing a partial save.
where variables x and y are saved in a file name filename.mat. Variables can be saved
in a standard text format.
The above command save variables x and y in a file name data.dat in 16-digit ASCII
format. Without double option data is saved in 8-dgit ASCII format.
To restore the variables in the file that was generated by save command, use the load
command.
The command what shows the MATLAB files and the MAT data files under the
current directory, and the command dir shows all the files under the current directory.
The command delete deletes files, the command cd changes directory, and the
command type lists the contents of the file, respectively.
The command diary is used to create all the input commands and displayed outputs in
a MATLAB session. To create the MATLAB session in a file with a different name,
use
Now, all the command and answer lines that are displayed on the screen are saved
under a given name in ASCII format, and the file can be edited later.
>> expm(A)
>> logm(A)
>> sqrtm(A)
Note that exp(A) (that is without the m) gives exponential of matrix A element-by-
element.
Norms
The norm of a matrix is a scalar that gives some measure of the size of the matrix.
Several different definitions are commonly used.
Condition Number
The command cond returns the condition number (the ratio of the largest singular
value of matrix A to the smallest of matrix).
>> cond(A)
y=Ax
where x R n and y R m . The above problem has three possibilities: (i) exactly one
solution, (ii) an infinity of exact solutions, and (iii) no exact solution. For a
determined case [m=n=rank(A)], the solution is obtained by the following command.
>> x = inv(A) ∗ y
or
>> x = A \ y
The second and third cases are under-determined case and over-determined case,
respectively, and the following command yields the minimum norm solution and least
square solution, respectively.
>> x = pinv(A) ∗ y
Ax=λx
The command eig produces a vector lambda including the eigenvalues of matrix A, a
diagonal matrix D of eigenvalues and a full matrix V whose columns are the
corresponding eigenvectors, respectively.
For the square matrices A and B, the generalized eigenvalue problem is defined as
follows.
Ax=λBx
A = U Σ VH
Note that the diagonal matrix S and the vector sigma include the singular values in
decreasing order.
The following commands can be used to determine maximum and minimum, and
their locations.
>> y = max(x)
>> y = min(x)
>> [y, k] = max(x)
>> [y, k] = min(x)
If an input variable is a vector, then the function returns the largest or smallest value
of the input vector. However, if an input variable is a matrix, then the function returns
a row vector containing the maximum or minimum element from each column. And k
is an index of the maximum value in the vector.
To sort a vector in the ascending order, the command sort can be used.
The sorted values are returned to the vector y and the reordered indices are stored in
the vector i. When x is complex, the elements are sorted by the magnitude of x.
The mean value and the standard deviation of a vector can be calculated by the
following commands.
>> mean(x)
>> std(x)
1.2.f Polynomials
>> y = [1 3 3 1]
The roots of the polynomial equation may be reassembled back into the original
polynomial equation with the command poly.
>> poly(r)
The command poly returns the characteristic equation of matrix, when the input
variable is a matrix.
>> poly(A)
The product of the polynomials, the convolution of the coefficients, can be performed
by the command conv, while a polynomial can be decomposed by the deconvolution
command.
>> conv(x, y)
>> [m, r] = deconv(a, b)
The above command finds the residues, poles and direct term of a partial fraction
expansion of the ratio of two polynomials num(s)/den(s). If there are no multiple
roots, the residues are returned in the column vector r, the pole locations in column
vector p, and the direct terms in row vector k. The direct term coefficient vector is
empty if the function num(s)/den(s) is strictly proper, or length(num) < length(den).
The residue command can also be used to form the (num, den) polynomials from its
partial fraction expansion:
>> p = polyfit(x, y, n)
where x and y are vectors of the given data set in (x, y) form. The above command
finds the coefficients of a polynomial p of degree n that fits the data in a least squares
sense, that is the polynomial is obtained by minimizing the error between the
polynomial and the given data set.
MATLAB provides a powerful graphic tools that display vectors and matrices in a
variety of formats: x-y plots, polar plots, bar graphs, contour plots, and 3-D plots. In
this section, only a few of graphics functions will be described.
>> plot(x,y)
Note that the vectors must have the same length. To display the graphs in a
logarithmic scale, following commands are used.
To open a new figure window, the command figure is used. The command plot erases
the previous plots and reset all axis properties before drawing new plots. The
command hold on holds the current plot and all axis properties so that subsequent
graphing commands add to the existing graph, and the command hold off returns to
the default mode. The sample plotting command is shown below.
In the above example, t=0:pi/100:2∗pi represents a vector t which starts from 0 and
ends at (2∗pi) with an interval of (pi/100).
The variables (x1, y1), (x2, y2), and so on, are pairs of vectors, and therefore the
above command plots y1 versus x1, y2 versus x2, and y3 versus x3. In this case, x1,
x2, and x3 can have different length. However, xi and yi must have the same length
(i.e., same number of data points).
The command plot generates a line plot that connects the points with line segments.
Different line type can be used by line option, and also a point plot can be plotted
instead of line plot. For example, the following command plots a red dashed line with
a x-mark at each data point;
>> plot(x,y,'rx--:')
And the following command plots green circle at each data point but does not draw
any line.
>> plot(x,y,'go')
where s1 and s2 are characters string made from one element from any or all the
following options.
After plotting a graph on the screen, grid lines, title, x-axis and y-axis label may be
inserted. The following commands are used for the plot output.
>> grid on
>> title(‘Title of graph’)
>> xlabel(‘Time (sec)’)
>> ylabel(‘ydata’)
where (x, y) are the coordinates using the axes from the current plot, and text is
written beginning at a point (x,y).
The above command inserts the text on the graphic screen at the point (x,y) assuming
that the lower-left corner is (0,0) and the upper-right corner is (1,1).
The command gtext writes the text at the position on the graphic screen indicated by
the mouse or arrow keys. That is,
MATLAB automatically scales the axes to fit the data values. The following axis
command sets the axes to the specified setting.
The command axis, by itself, freezes the current setting for subsequent plots, and a
second execution of the axis command resumes auto-scaling. There are more options
in the axis command as follows.
The command subplot is used to split the graph window into subwindows, and
therefore multiple plots can be displayed in the same window.
>> subplot(m, n, p)
or
>> subplot(mnp)
The above command breaks the figure window into an m-by-n matrix of small
subplots and selects the p-th axes for the current plot. The subplots are numbered
along first the top row of the figure window, then the second row, and so on. The
sample plotting command for plotting data in four different subwindows is shown
below.
There are several commends for screen control. The commend pause is useful when
we display multiple graphic windows subsequently. The pause command causes a
procedure to stop and wait for the user to strike any key before continuing. And the
command pause(n) pauses for n seconds before continuing. The commend clf clears
the current figure window, and the command cla clears the current plot.
1.3.a M-Files
MATLAB can execute sequences of commands that are stored in files that are called
M-files. There are two kinds of M-files: Script M-files and function M-files that cam
be created by a text editor. Script M-files are useful for automating a series of
commands you want to execute many times. Script M-files operates on data in the
workspace, and do not accept input arguments nor return output arguments. Function
M-files are useful for adding more subroutines to MATLAB for specific applications,
and therefore accept input arguments and return output arguments. M-files can be
called from the command window, or from within another M-file.
Consider the example of script M-files that is saved under the name of test1.m.
The symbol % is used to add comments to the program, and everything to its right on
that line is ignored and is not executed. To perform the series of commands in the
test1.m file, the command test1 is used as follows
>> test1
The above script M-file can be written as a function M-file under the name of test2.m
as follows.
The work of the script M-file test1.m can also be done by the function M-file test2.m
as follows:
>> a = 1; b = 3; c=2;
>> root = test2(a,b,c);
MATLAB has five flow control statements (if statements, switch statements, for
loops, while loops, and break statements) that support some basic programming
structures that allow looping and conditioning commands along with relational and
logical operators. These features are briefly summarized in the subsequent sections.
MATLAB has six relational operators for comparing two scalrars (or matrices of
equal size, element by element) as follows:
For complex data, “==” and “~=” compare both the real and imaginary parts; other
operators compare only the real part.
1.3.c If Statements
If logical expression #1
statement group #1
elseif logical expression #2
statement group #2
else
statement group #3
end
>> n = 3.14;
>> if n > 0
>> disp('positive number')
>> elseif n < 0
>> disp('negative number')
In the above example, the command disp displays the given string or variable.
Several functions are very useful with if statement: these functions are any, all,
isequal, isempty and so on, which will not be discussed in this book. The interested
readers may refer to the user manual or on-line help command.
Note that the index of the for loop must be a variable, and the index contains the last
value used after completing the for loop. There may be also multiple loops. The colon
operator is used to define the index expression using the following format:
For iter = ni : nd : nf
Where iter is a loop index which starts from ni and ends at nf with an increment of nd.
If nd is not defined, the default value of nd=1 is used. The value of iter would be ni,
then ni+nd, then ni+nd+nd, and so on until the final value of nf.
The break statement can be used to exit a loop before it has been completed. This
statement is useful if an error condition is detected within the loop. Therefore, break
statement is usually used with if statement, because if statement may be used to check
the escape condition. In nested loops, break exits from the innermost loop only.
The while loop executes a group of statements repeatedly as long as the controlling
expression is true. The syntax is shown below.
while expression
statement group
end
>> n = 1;
>> while n <= 100
>> n = n + 1;
>> end
The break statement can also be used in the while loop to exit a loop before it has
been completed.
The statement group following the first case where the switch_expression matches the
case_expression is executed. When the case expression is a cell array (as in the
second case above), the case_expression matches if any of the elements of the cell
array match the switch expression. If none of the case expressions match the switch
expression then the otherwise case is executed (if it exists). Only one case is executed
and execution resumes with the statement after the end. Consider the following
example.
return
Normally functions return when the end of the function is reached. A return statement
can be used to force an early return.
input
The value of variables can be entered through the keyboard using the input command
that displays a text then waits for input. The values entered by user are stored in the
variable specified. Consider the following example.
When the above command is executed, the text ‘Enter values for var1’ is displayed on
the screen. Then the user can enter an expression that specifies values for var1. For
character string input string input, use the following option.
disp
The disp command displays a string of text or numerical values on the screen.
Consider the following example.
fprintf(format, variable)
where the format contains the text and format specifications. Within the text, %e and
%f are used for exponential notation or fixed point notation, respectively. If the string
\n appears in the format, the text statements before \n is displayed, and the rest of the
information will be displayed on the next line. A simple example is shown below.
>> temp=18;
>> fprint(‘The temperature is %f degrees C \n’, temp)
The fprintf command can also write formatted data to file using the file open and
close commands fopen and fclose which will not be discussed in this book. Again, the
interested readers may refer to the user manual or on-line help command.
MATLAB supports lots of numerical techniques that are useful for solving many
engineering problems. MATLAB functions for solving ordinary differential equation,
nonlinear algebraic equation, and numerical integration will be briefly summarized in
this section.
Linear and nonlinear differential equations can be solved using MATLAB. Higher-
order differential equation can be written as a system of coupled first-order
differential equations. A first-order ordinary differential equation (ODE) can be
written in the following form.
dx
x& = = f (t , x)
dt
To integrate the above ODE, the function representing the ODE should be defined as
the function M-file, and the integrating function calls the function M-file. The most
where ‘funct’ is a function containing the derivative information, t0 and tf are the
initial and final time, respectively, and x0 is an initial conditions. For example, let us
consider the van der Pol equation.
x&1 = x2
x& 2 = 3(1 − x12 ) x2 − x1
where x1 = x and x2 = x& . To integrate the above equations, function M-file vandP.m
should be first defined as follows.
function dy = vandP(t,x)
dy(1) = x(2);
dy(2) = 3(1-x(1)∗x(1)) ∗x(2) - x(1);
The following statements integrate the van der Pol equation over the interval [0,10]
with zero initial conditions.
>> x0=zeros(2,1);
>> [t,x] = ode45(‘vandP’, 0, 10, x0);
Minimization of a function
The MATLAB command fmin minimizes a function by finding over a value which
minimizes the given function. The syntax is shown below.
where ‘funct’ is the name of a function to be minimized, x1 and x2 are lower limit and
( x1 x2 − 3) 2
J = x12 +
x2
For the given example, function perf.m should be first defined as follows.
function J = perf(x)
J = x(1)∗x(1) + ( x(1)∗x(2))^2/x(2);
The minimum solution between –3 and 3 can be obtained by the following command.
The fmins function is similar to fmin except that given function is a function of several
variables, and an initial vector x0 should be specified rather than an interval. The
syntax is shown below.
where ‘funct’ is the name of a function and x0 is an initial value of the scalar variable.
The fzero function first searches for an interval around the given initial value where
the function changes sign. The solution returned by fzero is near a point where ‘funct’
changes sign, or NaN if the search fails. Note that x0 can be a vector of length 2. In
this case, x0 is an interval where the sign of funct(x0(1)) differs from the sign of
funct(x0(2)). An error occurs if this is not true. Calling fzero with an interval
guarantees fzero will return a value near a point where the function changes sign.
>> q = quad(‘funct’, a, b)
Before designing a control system for a given system, the modeling procedure of the
given system is required to analyze the dynamic characteristics of the system.
Usually, a mathematical model of a dynamic system is defined as a set of nonlinear
partial differential equations. The mathematical model includes unmodeled dynamics
as well as uncertainties, i.e., the physical system cannot be completely modeled. By
discretizing the spatial coordinates, the partial differential equations can be
approximated by the ordinary differential equations. And by linearizing the system
around the operating point or equilibrium state, linear modeling can be obtained. Even
though the behavior physical systems are in general nonlinear with respect to inputs,
most of physical systems can be approximated by linear systems as long as the system
is operating around the equilibrium. A system is called linear if the principle of
superposition applies. The linear characteristics make us analyze the system and
design control systems very easily. MATLAB supports a lot of analysis tools as well
as control system design tools for linear systems. In this chapter, the basic theories of
linear systems will be briefly summarized, covering the stability analysis and control
design methods.
x& = Ax + Bu
(1)
y = Cx + Du
>> [A,B,C,D]=tf2ss(num,den)
where num and den are numerator and denominator of the transfer function,
respectively. If the system has one input and one output, then the command ss2tf
converts the system in state space to the transfer function as follows:
If the system has more than one input, the following command is used.
x& = Ax + Bu (3)
The above system is said to be stable, if the solution of Eq. (3) tends toward zero
(which is obviously the only equilibrium state if A is of full rank) as for an arbitrary
initial condition. It is well known that the solution of Eq. (3) is given by
t
x(t) = eAt x(0) + ∫0 e A(t − τ ) Bu(τ )dτ (4)
If all eigenvalues of A are distinct, the response of system ensuing from a given
initial condition x0 with zero control input can be written as
From Eq. (5), we can see that the system will be asymptotically stable if and only if
all the eigenvalues of A have negative real parts, i.e.,
where ℜ{⋅} denotes the real part of {⋅}. Thus, the stability of a linear system can be
completely characterized by the eigenvalues of the system. This eigenvalue approach
to stability yields both necessary and sufficient conditions.
x& (t ) = Ax(t ) + Bu (t )
(7)
y (t ) = Cx(t )
Definition: Controllability
A linear system is said to be controllable at time t0 if there exists a control u (t ) that
will transfer the initial state x(t0 ) to the origin at some finite time t1 > t 0 . If this is
true for all initial times t 0 and all initial states x(t0 ) , the system is said to be
completely controllable.
There are several necessary and sufficient conditions (or criteria) for Controllability.
C ≡ [B AB A2 B L An B] (8)
∞
Wc ≡ ∫0 e Aτ BBT e A τ dτ
T
(9)
There are other criteria for checking the controllability of the linear system, known as
PBH(Popov, Belevitch, and Hautus) rank test and PBH eigenvector test that will not
be discussed in this book.
Note that MATLAB operators for computing controllability matrix C and the
controllability grammian Wc are as follows:
>> C = ctrb(A,B)
>> Wc = gram(A,B)
Definition: Observability
A linear system is said to be observable at t0 , if x(t0 ) can be determined from the
knowledge of u (τ ) , y (τ ) for t 0 ≤ τ ≤ t1 . If this is true for all t0 and all x(t0 ) , the
system is said to be completely observable.
C
CA
O ≡ CA 2 (10)
M
CAn
∞
Wo ≡ ∫ 0 e A τ CT CeA τ dτ
T
(11)
There are also PBH tests for checking the observability of the linear system that will
not be discussed in this book. The above criteria show the duality of the observability
and controllability. It has been proven that the controllability and observability
grammian matrices satisfy the following Lyapunov equations:
AWc + Wc A T + BBT = 0
(12)
A TWo + Wo A + CT C = 0
Note that MATLAB operators for computing the observability matrix O and the
observability grammian Wo are as follows:
>> O = obsv(A,B)
>> Wo = gram(A',C')
Bx& = Ax (13)
Note that overdots denote time differentiation throughout this text. The right and left
eigenvalue problems associated with x = φe λt solutions of Eq. (13) are
right : λ i Bφ i = Aφi ,
i = 1,2, L , n (14)
left : λi BTψ i = A Tψ i ,
where Phi and Psi are right and left modal matrices, and Lambda is a matrix with the
eigenvalues on the diagonal.
Note that every eigenvalue solver (computer software package) uses its own special
normalization equation for eigenvectors. In MATLAB, eigenvectors are normalized
so that norm of each eigenvector becomes 1. In order to obtain eigenvectors that
satisfy some other normalization conditions [e.g., Eq. (15)], we need our own special
normalization routine. The following code solves right and left eigenvalue problems
and normalizes eigenvectors according to Eq. (15). The MATLAB operator to
compute this normalized eigensolution is
Observe that the above code cannot be used for the repeated eigenvalue case since
eigenvectors satisfying Eqs. (15) and (16) do not generally exist. The source code for
eign is shown in Table 2.1.
There are many eigenvalue problem-related applications, such as system analysis and
synthesis techniques that use modal frequencies and mode shapes, as well as stability
analysis and controller design methods such as eigenstructure assignment techniques.
We will consider these in subsequent chapters of this text.
Now let us introduce spectral decomposition. Defining the modal matrices of right
and left eigenvectors as
Φ = [φ1 , L φn ]
(17)
Ψ = [ψ1 , L ψ n]
For the case that B matrix is an identity matrix, Φ −1 = ΨT from Eq. (15). Therefore,
we can obtain spectral decomposition of matrix A as follows:
Bx˙ = Ax (19)
The right and left eigenvalue problems of the above system are represented as
follows.
∂λi ∂A ∂B
= ψ iT − λ i φi (22)
∂ρ ∂ρ ∂ρ
Proof:
Let us derive the eigenvalue derivatives with respect to a scalar parameter ρ . First,
we take the partial derivative of Eq. (20) to get
∂λi ∂B ∂φ ∂A ∂φ
Bφi + λi φi + λ i B i = φi + A i (23)
∂ρ ∂ρ ∂ρ ∂ρ ∂ρ
∂λi T ∂φ ∂A ∂B
ψ j Bφi + (λiψ Tj B −ψ Tj A) i = ψ Tj − λ i φi (24)
∂ρ ∂ρ ∂ρ ∂ρ
Using Eqs. (15) and (21) in the above equation gives the analytical expressions of
eigenvalue sensitivities as
∂λi ∂A ∂B
= ψ iT − λ i φi (25)
∂ρ ∂ρ ∂ρ
In general, the state response may describe the detailed information about system
performance. And the state covariance matrix gives useful information to study the
properties of linear system, because certain information about the linear system is
embodied in the state covariance matrix. The state covariance matrix due to impulsive
inputs in u is defined as follows:
∞
X≡ ∫0
x(t)x T (t)dt (27)
Using Eq. (4), the response of system, i.e., the solution of Eq. (26), ensuing from
impulsive inputs with zero initial condition can be written as
∞
∫
T
X≡ e At BBT e A tdt (29)
0
AX + XAT + BB T = 0 (30)
Proof:
(Necessity)
The integrand is an infinite sum of terms of the form t k eλt , where λ is an eigenvalue
of A and, since ℜ{λi (A)} < 0, the integrand will exist for all values of t . Next, by
direct substitution of Eq. (29) into the left hand side of Eq. (30), we find that the
combined integrand is a perfect differential, permitting us to directly establish
∞ ∞
AX + XAT = ∫0 AeAt BBT e A t dt + ∫0 eAt BBT e A t AT dt
T T
( )
∞
d At T AT t ∞
∫
T AT t
= = At
e BB e dt e BB e (31)
0 dt 0
= −BB T
T
Note that e At (and e A t ) →0 as t → ∞, since all eigenvalues of A have negative real
T
parts, and since e At (and e A t ) equal 1 at t = 0.
(Sufficiency)
The sufficiency part can be proved by Lyapnov (direct) stability theorem that will not
be covered in this book.
Note that the Lyapunov equation is equivalent to a set of n(n + 1) / 2 linear equations
in n(n + 1) / 2 unknowns for an n th order system. The Lyapunov equation can be
solved by using numerical algorithms utilizing QR factorization; Schur
decomposition, or spectral decomposition, however, we believe that the most efficient
and robust algorithm utilizes the QR factorization. Note that the MATLAB operators
for computing the solution of Lyapunov equations are
Among the most fundamental results in modern control theory are the two sets of
analytical developments that underlie the linear-quadratic regulator (LQR) and
eigenstructure assignment regulator (EAR). Design of control systems for
aeroservoelasticity problems has been accomplished using both design techniques.
The central aspects of these two sets of approaches are presented in this section.
Since the complete response of a given linear system can be fully determined by the
closed-loop eigensolution, another attractive approach is to find a control law that
satisfies prescribed constraints on the closed-loop eigenvalues and eigenvectors. It is
also possible to determine many of the candidate measures of performance and
stability robustness (insensitivity with respect to system model errors and external
disturbances) as simple functions of the closed-loop eigenvalues and eigenvectors.
The class of methods that directly impose prescribed constraints on the eigenvalues
and eigenvectors are known as eigenstructure assignment regulator design methods.
While the EAR approaches allow some immediate insight that narrows the search for
practical designs, some additional difficulties arise. For controllable systems, we will
see that the closed-loop eigenvalues can be placed exactly at an infinity of locations
while, generally, the closed-loop eigenvectors can be placed only in certain feasible
subspaces.
The quadratic regulator and eigenstructure assignment approaches are among the most
important representatives of modern control theory, which is essentially the set of
approaches based on the time-domain state space description of linear dynamical
systems. As will be evident in the discussion below, the EAR formulations are
actually a diverse family of recently developed concepts and the associated gain
design algorithms that subsume and greatly expand upon the methodology historically
known as pole placement.
If a dynamical system is completely controllable, these exists at least one control that
will transfer the system from any/all given initial states to any/all desired states.
Consider a completely controllable and observable dynamical system whose behavior
is modeled by a nonlinear system of differential equations in the first-order state
variable form
where x(t) ∈ Rn is the state vector, and u(t) ∈R m is the control vector.
The objective of optimal control theory is to determine the control law that satisfies
the differential equation constraints, i.e., all trajectories are consistent with our model
of the system dynamics [Eq. (32)], and at the same time minimizes (or maximizes)
some performance criterion. The most general performance index functional to be
minimized (in the current discusion) is defined as
( ) ∫
J = h x( t f ),t f +
tf
g( x(t),u(t),t ) dt (33)
t0
where h and g are given functions, t0 is the initial time, and t f is the final time. The
objective is to find the optimal control u (t ) that drive the solution of the differential
equations of Eq. (32) from the given initial conditions to the final time such that the
performance index of Eq. (33) is minimized.
The derivation of the necessary conditions for optimal control is relatively lengthy
and straightforward and is not presented here. The linear regulator problem is the
most obvious special case of a linear system with the feedback control law being
parameterized as a linear function of the instantaneous state. The object is to
determine an optimal feedback control gain K for a linear law of the form
where S and Q are real symmetric positive semidefinite matrices, and R is a real
symmetric positive definite matrix. It is assumed that the states and controls are not
bounded. Moreover, we assume that all elements of the final state vector x(tf ) are
free and the final time t f is fixed.
Note that the physical and geometric motivation for this performance measure is as
follows: It is desired to maintain the time-varying state close to the origin without
incurring an excessive expenditure of control effort. The balance between small errors
and small control effort is achieved through judicious assignment of the weight
matrices.
dP(t)
= − AT P(t) − P(t)A + P(t)BR− 1B T P(t) − Q (36)
dt
The solution P(t) (an n × n positive semi-definite symmetric matrix), called the
Riccati matrix, is a symmetric positive definite matrix. The optimal gain matrix is
related to the Riccati gains in the following manner:
Note that, even though the plant matrices are constant, the optimal feedback gain
matrix K is time-varying for the finite time control case. Also, note that
measurements (or estimates) of all of the state variables must be available to
implement the optimal control law. For obvious reasons, such a law is known as a full
state feedback control law.
The most important special case of the linear regulator problem is the one for which:
(i) The plant is completely controllable, (ii) The plant dynamics are time invariant,
i.e., A, B, Q, and R are constant matrices, (iii) The final state error weight matrix is
zero, S=0 in Eq. (2.35), and (iv) The final time t f is infinite. In other words, the
problem is to find the optimal control minimizing the performance index
{x (t)Qx(t) + u T (t)Ru(t )} dt
1 ∞ T
J = ∫
2 0
t
(38)
In this case, it can be established that the optimal control law for minimizing the
quadratic index over an infinite time duration is stationary, and the feedback gain
matrix is a constant,,
u(t) = −Kx(t)
(39)
K = R−1 BT P
determined by the constant solution P of the matrix Riccati equation, Eq. (36),
reduced to a set of quadratically nonlinear algebraic equations,
A T P + PA − PBR−1B T P + Q = 0 (40)
which is called the algebraic Riccati equation (ARE). The fact that P approaches a
constant can be established from the general time-varying P(t) solution using
numerical method and letting t f → ∞.
Note that P in Eq. (40) is an n × n matrix, carrying out the algebra to obtain the
scalar elements of Eq. (40) generates a coupled system of n 2 first-order differential
equations. Notice that if P satisfies Eq. (40), PT also satisfies it, because the
transpose of Eq. (40) yields exactly Eq. (40). Since P is symmetric, there are not n 2
but rather n(n + 2 ) / 2equations that must be solved.
Note that the MATLAB (Control System Toolbox) operator for the steady-state LQR
problem has the following syntax:
which returns the constant optimal gain K and the ARE solution P.
In the previous section, full state optimal control law was discussed. In real situation,
only some of the states are available as measured outputs. Therefore, in order to
utilize the full state feedback, observer or estimator should be implemented with
controller to estimate the state variables using the mathematical model and output
measurements. This makes the control system very complicated. In this section, the
LQR with output feedback is briefly introduced. Because the estimator is not
involved, the whole control system using output feedback control law will become
very simple. However, the control system performance will be degraded because only
limited information is used for output feedback purpose, and the design procedure
will be more complicated than the full state LQR.
x˙ = Ax + Bu
(41)
y = Cx
The control law is restricted to a linear time-invariant output feedback of the form
u = −Ky (42)
{y (t)Qy(t) + u T (t)Ru(t)} dt
1 ∞ T
J = ∫
2 0
t
(43)
x (C QC + C T K T RKC) x dt
1 ∞ T T
J =
2 ∫0
(44)
x˙ = (A − BKC)x ≡ Ac x (45)
d T
dt
( x Px) = −x T ( CT QC + CT K T RKC) x (46)
1 T 1
J = x (0)Px(0) = trace{Px(0)x T (0)} (47)
2 2
where the operator trace(⋅ ) denotes the trace of a square matrix. If P satisfies Eq.
(46), then we may use Eq. (45) to see that
The above equation should satisfy for all initial conditions, and therefore the
following condition should be satisfied for all state trajectories.
Now we can state that, if there exists a constant symmetric positive semidefinite
matrix P that satisfies Eq. (49), then the performance index J for the closed-loop
system can be represented in terms of P by Eq. (47). Since the initial state x(0) may
not be known, we adopt Athans and Levine's procedure that minimizes the expected
value of performance index
1
J = E{J} = trace(PX ) (50)
2
where the operator E(⋅) denotes the expected value over all possible initial conditions,
and the n × n symmetric matrix X is defined by
The usual assumption is that the initial states are uniformly distributed on the unit
sphere; then X becomes identity matrix. By applying optimality conditions for the
above problem, the optimal control gain matrix K can be obtained by solving the
following three coupled nonlinear algebraic matrix equations simultaneously.
Step 1: Choose K such that the closed-loop system matrix Ac has all eigenvalues
with negative real parts.
Step 2: With the given K and the according Ac , solve the Lyapunov Eqs. (52) and
(53) for P and S , and compute the performance index value J .
Note that for the case that the matrix CSC T in Eq. (55) is singular, Moore-Penrose
generalized inverse utilizing singular value decomposition may be useful to inverse
the matrix CSC T to deal with the rank deficiency problem
where α is chosen so that the closed-loop system Ac is asymptotically stable, and the
performance index of the updated system is less than that of the current system. To
obtain the appropriate α , set the initial step size α 0 (for example, 0.3), and proceed if
the above two conditions are satisfied. If not, decrease the step size using the
following simple rule till the above conditions are satisfied.
αnew = καold , 0<κ <1 (57)
u = −K F x = −KCx (58)
where K F is the full state gain matrix resulting from LQR solver. The initial output
feedback gain matrix can be computed using the following equation.
KF = KC (59)
In general, the matrix C is not square, and therefore the Moore-Penrose pseudo-
inverse should be used as follows:
K = KF C + (60)
C + = V1 Σ −1U 1T (61)
u = −Kx (62)
The right and left eigenvalue problems of the closed-loop system can be written,
respectively, as
hi = Kφic (64)
Substituting Eq. (64) into Eq. (63) yields the following Sylvester equation
or in matrix form
AΦ c − Φ cΛ D = BH (66)
where
Φ c = [φ1c , φ 2c, ...,φ nc ]
Λ D = diag(λc1, λc2, ...,λcn ) (67)
H = [h1, h2 , . . . ,hn ]
with Λ D containing the desired closed-loop eigenvalues. From Eq. (65), it can be
seen that
If λci are distinct from their open-loop positions, the columns of H generate the
corresponding closed-loop eigenvectors. For the given parameter matrix H , the
closed-loop modal matrix Φ c can be determined by solving Sylvester equation. The
gain matrix is determined using the relation Eq. (64)
K = HΦ−c 1 (68)
The eigenvalues of the system can be assigned to the desired values by using a pole
placement technique. Our problem can be stated as the nonlinear parameter
optimization problem in which we seek to impose specified eigenspace equality
constraints, and the elements of output feedback gain matrix are parameters to be
determined. We introduce the output feedback control law
u = −Ky (69)
where K denotes the output feedback gain and y includes only the measurement
information. The eigenvalue problem of the closed-loop system can be written as
fi ( p) = ( p) = 0, i = 1, 2 , . . r,
d
λi − λ i (71)
d
where r is the number of the structural modes, and λi denotes the desired
eigenvalues of the structural modes. The above problem can be solved by using any
gradient-based nonlinear programming algorithm. In this section, homotopic
nonlinear programming with minimum norm correction algorithm is used. In order to
enhance the convergence, the linear homotopy map is generated: original eigenvalue
assignment problem is replaced by the one-parameter α family as follows:
fi ( p) = {αλdi }
+ (1 − α )λ i ( pstart ) − λi ( p ) = 0, 0 ≤ α ≤1 (72)
where pstart is the initial guess of parameter vector. Sweeping α at a suitably small
increment generates a sequence of neighboring problems. We solve this sequence of
problems using the neighboring converged solutions to generate starting iteratives for
each subsequent problem. If we obtain a solution for α = 1 , then we have the desired
solution. The local design corrections for each α are performed by linearizing the
neighboring problem (nonlinear constraint equations) about the local solution and
computing the minimum norm differential correction that satisfies the linearized
constraint equation. This algorithm is a generalized Newton process for solving a
system of underdetermined nonlinear equations. On each iteration, the norm of the
correction vector is minimized while satisfying the following linearized constraint
equation.
∂f
∂p ∆p = − f ( p)
(73)
p
where f (p) = [ f1(p), f2 (p),..., fr ( p)] is a constraint vector. The solution of the above
T
where φ ic and ψ ic are normalized right and left eigenvectors of the closed-loop system
c
corresponding to the eigenvalue λi , respectively. Figure shows the flow chart of this
algorithm.
Set α = 0
Select initial
p = p0
Update
homotopy parameter
α = α + ∆α
f i ( p ) = ( λ i ) α − λ i ( p)
d
∂λ i ( p)
Compute sensitivity
∂p j
+
∂f
∆p = − f (p)
∂p
f ≤ ε1 ? NO
∆p ≤ ε 2 ? p = p + ∆p
YES
NO
α =1 ?
YES
y
V h (x1,y1)
b=1
α ab x x
b= -1 b= 1 (x1,-y1)
elastic axis
Circle
Flat Airfoil
Figure . Flat airfoil and the transformed circle.
By Joukowski’s conformal transformation, the airfoil can be mapped onto a circle. The
velocity potential of a source ε on circle ( x1 , y1 ) can be expressed as the follow.
ϕ=
ε
4π
[
Ln ( x − x1 ) + ( y − y1 )
2 2
] (1)
ε ( x − x1 )2 + ( y − y1 )2 (2)
ϕ= Ln 2
2π (x − x1 ) + ( y + y1 )
2
z = h + α (x − ab) (3)
Then, the upwash will be
∂z ∂z
wa ( x, t ) = − + V = −[h& + α& ( x − ab)] − Vα (4)
∂t ∂x
Therefore, the velocity potential due to pitch angle, α will be
− Vα ( x − x1 ) + ( y − y1 )
2 2
1 1
ϕ α = b ∫ ϕ dx = b ∫ Ln 2
dx1 = Vαb 1 − x 2 (5)
(x − x1 ) + ( y + y1 )
−1 −1 2π 2
Similarly, velocity potentials due to plunge motion, h& and angular velocity, α& are
respectively expressed as
α&b 2 x
ϕ α& = π ( x + 2) 1 − x 2 − α&b 2 (1 + a) 1 − x 2 = α&b 2 ( − a) 1 − x 2 (7)
2π 2
The total velocity potential due to noncirculatory flow becomes
ϕ NC = ϕ α + ϕ h& + ϕ α&
x (8)
= Vαb 1 − x 2 + h&b 1 − x 2 + α&b 2 ( − a ) 1 − x 2
2
By Bernoulli theorem, the pressure is obtained
∂ϕ ∂ϕ dϕ
∆p = −2 ρ +V = −2 ρ = −2 ρϕ& (9)
∂t ∂x dt
1 (11)
≡ πρb 2 Vh& + bah&& + Vα& 2 − b 2 + a 2 α&&
8
To satisfy the Kutta condition, Theodorsen employed a bound vortex distribution over the
airfoil, and a vortex distribution over the airfoil wake.
(X,Y)
1/X0 X0
b=1
x
∆Γ −∆Γ
In order to consider wake, let’s assume a bound vortex ∆Γ = γdx at 1 / X 0 , and a shed
vortex − ∆Γ at X 0 .
Then, the velocity potential due to a vortex
∆Γ −1 Y Y
∆ϕ Γ = − tan − tan −1
2π X − X0 X − 1/ X 0
(12)
∆Γ ( X 0 − 1 / X 0 )Y
=− tan −1 2
2π X − X ( X 0 + 1 / X 0 ) + Y + 1
2
2
X 0 = x0 + x0 − 1
1 2 (13)
1/ X 0 = = x0 − x0 − 1
2
x0 + x0 − 1
∆ϕΓ = −
∆Γ −1
tan 2
(
1 − x 2 2 x0 2 − 1
)
2π x − x (2x 0 ) + (1 − x ) + 1
2
(14)
2 2
∆Γ −1 1− x x 0 − 1
=− tan
2π x 2 − xx 0
where
−1 ≤ x ≤ 1, 1 ≤ x0 ≤ ∞
It has to noted that the vortex is moving away from the airfoil with velocity of V.
Therefore, by Bernoulli theorem, the pressure due to the vortex is
∂∆ ϕ Γ ∂∆ϕ Γ
∆ p = −2 ρ +V (15)
∂t ∂x
where
1 − x 2 x 2 − 1
2π ∂∆ϕ Γ ∂
= − tan −1 0
∆Γ ∂x ∂x 1 − xx0
(16)
2
x0 − 1 1
=
1− x 2 x0 − x
∆Γ x 0 − 1 1− x2 1
2
∆p Γ = −2 ρ V +
2π 1 − x 2 x 0 − 1 x0 − x
2
∆Γ 1
2
x0 − x 2
= − ρV (18)
2π 1 − x 2 x 2 − 1 x0 − x
0
∆Γ x0 + x
= − ρV
2π 1 − x 2 x 2 − 1
0
x0 (19)
= − ρVb ∆Γ,1 ≤ x0 ≤ ∞
2
x0 − 1
FΓ = ∫ ∆FΓ
∞ x0 (20)
= −ρVb ∫1 2
γdx0
x0 − 1
Similarly,
∆M Γ = b 2 ∫ ∆pΓ ( x − a )dx,1 ≤ x0 ≤ ∞
1
(21)
−1
M Γ = ∫ ∆M Γ
∞ 1 x0 + 1 1 x0 (22)
= − ρVb 2 ∫ − a + γ dx
1 2 x0 − 1 2 x 2 −1
0
Therefore,
2 ∂ϕ Γ & 2 1
1 − x ∂x + − Vαb − hb − α&b ( 2 − a ) = 0 (25)
x =1
Since
2
∂∆ϕ Γ ∆Γ x0 − 1 1
= (26)
∂x 2π 1− x 2 x0 − x
we can get the following expression from the above equation.
2
2 ∂ϕ Γ ∆Γ x0 − 1
∂x x =1 ∫ 2π x0 − 1
1 − x =
2
b ∞ x0 − 1
=
2π ∫
1 x0 − 1
γdx0 (27)
1
= Vαb + h&b + α&b 2 − a
2
Let’s define
= −2πρVbCQ
1 x +1 1 x0
MΓ = − ρVb ∫ 0
∞
− a +
2 γdx
x0 2 − 1
2 x0 − 1 2 0
1
(30)
1 1
= −2πρVb 2Q − C a +
2 2
where C is the Theodorsen function, and defined as
∞ x0
∫ 1
x 02 − 1
γ dx 0
C= (31)
∞ x0 + 1
∫ 1 x0 − 1
γ dx 0
s
i k − x 0 +ϕ
= γ 0e [
b i ωt − kx 0 +ϕ ]
γ = γ 0e
ωb ks
where s = Vt, k = , = ωt
V b
C=
∞ x0 + 1
∫ 1 x0 − 1
γ 0 e iωt e − ikx0 e iϕ dx 0
∞ x0
∫
1 x0 − 1
2
e −ikx 0 dx0
=
∞ x 0 + 1 −ikx 0
∫ 1 x0 − 1
e dx0
(32)
= F(k) + iG(k)
The Theodorsen function can be expressed in terms of the following Bessel functions
π π
−
J1 + i Y1
C(k) = 2 2
π π π π
− J1 − Y0 + i Y1 − J 0 (33)
2 2 2 2
− J1 + iY1
=
− (J1 + Y0 ) + i (Y1 − J0 )
where J1, Y1 are the first and second kind Bessel functions. Also, the Theodorsen function
can be expressed as
H1(2) (k)
C(k) = (2) (34)
H1 (k) + iH0(2) (k)
where H1, H0 are the Hankel functions.
for i=1:5001,ri=(i-1)*0.001;yr(i)=theod(ri);xr(i)=ri;end
plot(xr,real(yr)),ylabel('F'),xlabel('k'),axis([0 5 0 1.2]),grid
plot(xr,imag(yr)),ylabel('G'),xlabel('k'),axis([0 5 -0.3 0]),grid
1 -0 .0 5
0 .8 -0 .1
0 .6 -0 .1 5
F
G
0 .4 -0 .2
0 .2 -0 .2 5
0
0 0 .5 1 1 .5 2 2 .5 3 3 .5 4 4 .5 5 0 0 .5 1 1 .5 2 2 .5 3 3 .5 4 4 .5 5
k k
The total force and moment resulting from the noncirculatory and circulatory flows are
expressed as
[
F = FNonCir + FΓ = −πρb 2 h&& + Vα& − baα&& − 2πρVbQC (k ) ] (35)
[ ] 1
FQS = −πρb 2 h&& + Vα& − baα&& − 2πρVb Vα + h& + α&b − a (37)
2
1 1
M QS = πρb 2 bah&& − Vb − a α& − b 2 + a 2 α&&
2 8
(38)
1 1
+ 2πρVb 2 a + Vα + h& + α&b − a
2 2
z = h + xα (39)
where x is a distance measured from the shear center.
The strain energy and the kinetic energy are respectively given by
1 1
U= KTα 2 + K h h 2 (40)
2 2
1 (41)
T=
2 ∫ ρ z& 2 dx
T=
2
(
1 &2
h ∫ ρdx + 2h&α& ∫ ρxdx + α& 2 ∫ ρx 2 dx ) (42)
Mass m = ∫ ρdx
The second moment of inertia of the airfoil about shear center, I θ = ∫ ρx 2 dx = mrθ2
The first moment of inertia of the airfoil about shear center, Sθ = ∫ ρxdx = mxθ
where rθ is the radius of gyration and xθ is a distance from the coordinate to the mass
center.
Then, the kinetic energy can be rewritten as follows:
1 &2 1
T= mh + mxθ h&α& + I θ α& 2 (43)
2 2
The virtual work due to the unsteady aerodynamic forces is
1 xθ h&& / b ω h2 0 h / b F / mb
x 2 + = (46)
θ rθ α&& 0 ω θ rθ 2 α M / mb 2
2
where ω 2h = Kh / m , ωθ2 = KT / Iθ , xθ = xθ / b , rθ = rθ / b .
iωt
If we assume the harmonic motion h = h0 e ,α = α 0 e iωt , the equation of motion will be
1 xθ h / b ω h2 0 h / b F / mb
−ω2 2 + = (47)
xθ rθ α 0 ω θ2 rθ 2 α M / mb 2
[ ] 1
F = −πρb 2 h&& + Vα& − baα&& − 2πρVbC (k ) Vα + h& + b − a α&
2
h 1 1 1 1 C (48)
= πρb 3ω 2 1 − i 2C + α − a − i − 2C 2 − i 2 − a
b k k k 2 k
h 1
= πρb 3ω 2 Lh + α Lα − + a Lh
b 2
ωb 1 1 1 + 2C 2C
where the reduced frequency is k = , and Lh = 1 − i 2C , Lα = − i − 2 .
V k 2 k k
Similarily,
2 b 2 2
(49)
1 3 1
where M h = , Mα = − i
2 8 k
ω2 ωh2
Let’s define Ω 2 = and R 2
= , then
ωθ2 ωθ2
1 xθ h / b R 2 0 h / b
−Ω 2
2 + 2
xθ rθ α 0 rθ α
(51)
1
2
Lh Lα − + a Lh h / b
Ω 2
= 2
µ 1 1 1 α
M h − 2 + a Lh M α − + a (Lα + M h ) + + a Lh
2 2
This artificial damping indicates the required damping for the harmonic motion. The
eigenvalues of the equation of motion represent a point on the flutter boundary if the
corresponding value of g equals the assumed value of g.
ωb
For give reduced frequency, k = , it is a complex eigenvalue problem.
V
(1 + ig ) h / b h / b
[ K ij ] = [ Aij + M ij ] (54)
Ω α α
2
The eigenvalue is
1 + ig
λ= (55)
Ω2
From this eigenvalue we have
1 ω i2
= 2 (56)
λ Re ωθ
λ Im
g= (57)
λ Re
The complex eigenvalue problem is solved beginning with large values of k and then
decreasing k until a flutter velocity is found. If there is no actual damping in the system,
when the artificial damping, g, first becomes positive, flutter will occur.
Example
Calculate the flutter speed of the following typical section model.
xθ =0.2, rθ =0.5, µ=20, a=-0.1, b=1, and R=0.3
% 2 dof system
% xth ; x _ theta
figure(1);
plot(vel(1,:),rst1(1,:),'.r',vel(2,:),rst1(2,:),'.r'),
axis([0.0 5.00 0 1.60]),xlabel('Velocity'),ylabel('Frequency Ratio'),grid;
figure(2);
plot(vel(1,:),rst2(1,:),'.r',vel(2,:),rst2(2,:),'.r'),
axis([0.0 5.00 -1.2 1.0]),xlabel('Velocity'),ylabel('g'),grid;
1.6 1
0.8
1.4
0.6
1.2
0.4
Frequency Ratio (ω / ω )
θ
1 0.2
0
0.8
g
-0.2
0.6 -0.4
-0.6
0.4
-0.8
0.2
-1
0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Velocity (V/ ω b) Velocity (V/ ω b)
θ θ
Let’s put the trailing edge flap at the airfoil that we discussed in the previous section.
The trailing edge flap is hinged at x=bc. Again the airfoil has a translational spring as
well as the torsional spring at the shear center. The same way that we discussed at the
previous section, we can calculate the unsteady aerodynamic forces.
T10 = 1 − c2 + cos−1 c
- π πa T1
1
M nc = πa − π ( + a 2 ) − 2T13
8
T T3
− 2T13
1 π
0 −π T4
1
Bnc = 0 π (a − ) − T16
2
0 T19
− T17 −
π
0 0 0
K nc = 0 0 − T15
0 0 − T18
π
The equation of motion of the airfoil are derived from Lagrange’s equations.
d ∂ (T − U ) ∂ (T − U )
− = Qq , where q=h, α, β (66)
dt ∂q& ∂q
The kinetic energy is
T = mh& 2 + mxθ h&α& + I θ α& 2 + I β β& 2 + mx β h&β& + (I β + mx β (bc − ba) )α&β& (69)
1 1 1
2 2 2
The potential energy U is stored in springs attached at the control surface hinge lines and
at the elastic axis.
1
U = (K h h 2 + KTα 2 + K β β 2 ) (70)
2
m mxθ mx β h&&
mrθ + mx β (bc − ba) α&&
2 2
mxθ mrθ
mx β mrθ 2 + mx β (bc − ba) mrβ
2
β&&
(71)
K h 0 0 h F
+ 0 KT 0 α = M
0
0 K β β M β
Or
V V
1 1 1 1
[ K ]{x s } = [ M ]{x s } + 2 C (k ){R}S1 {x s } + i C (k ){R}S 2 {x s }
ω 2
µ k k
(75)
1 1
− [ M nc ]{x s } + i [ Bnc ]{x s } + 2 [ K nc ]{x s }
k k
% 3 dof system
wh=50.0; wa=100.0; wb=300.0;
a=-0.4; c=0.6; b=1;
xa=0.2; xb=0.0125;
ra=sqrt(0.25); rb=sqrt(0.00625);
mu=40;
nn=3;i=sqrt(-1);rho=0.002378;
mas=pi*rho*mu*b*b; damb=0.0;
sqr=sqrt(1-c*c);
arc=acos(c);
%
%
% final version of t function generating the aero matrix
t1=-(2+c*c)/3*sqr+c*arc;
t3=-(1-c*c)/8*(5.*c*c+4)+.25*c*(7+2*c*c)*sqr*arc-(1./8.+c*c)*arc*arc;
t4=c*sqr-arc;
t5=-(1-c*c)-arc*arc+2*c*sqr*arc;
t7=c*(7+2*c*c)/8*sqr-(1/8+c*c)*arc;
t8=-1/3*(1+2*c*c)*sqr+c*arc;
t9=.5*(sqr*(1-c*c)/3+a*t4);
t10=sqr+arc;
t11=(2-c)*sqr+(1-2*c)*arc;
t12=(2+c)*sqr-(1+2*c)*arc;
t13=-.5*(t7+(c-a)*t1);
t15=t4+t10;
t16=t1-t8-(c-a)*t4+0.5*t11;
t17=-2*t9-t1+(a-.5)*t4;
t18=t5-t4*t10;
t19=-.5*t4*t11;
%
iden=zeros(nn,nn);ks=zeros(nn,nn);knc=zeros(nn,nn);bs=zeros(nn,nn);
for ii=1:nn
iden(ii,ii)=1.0;
end
% mass matrix
ms(1,1)=1; ms(1,2)=xa; ms(1,3)=xb;
ms(2,1)=xa; ms(2,2)=ra*ra; ms(2,3)=rb*rb+xb*(c-a);
ms(3,1)=xb; ms(3,2)=rb*rb+xb*(c-a); ms(3,3)=rb*rb;
%
%
mnc(1,1)=-pi; mnc(1,2)=pi*a; mnc(1,3)=t1;
mnc(2,1)=pi*a; mnc(2,2)=-pi*(1./8.+a*a); mnc(2,3)=-2*t13;
mnc(3,1)=t1; mnc(3,2)=-2*t13; mnc(3,3)=t3/pi;
m=200;
rst1=zeros(3,m); rst2=zeros(3,m); vel=zeros(3,m);
for kk=m:-1:1;
rk=kk*0.02;
[f,g]=faero(rk,b,mnc,bnc,knc,r1,s1,s2,mu);
aero=f+i*g;
ddd=eig(inv(ks)*(ms+aero));
rrr=abs(real(ddd)); iii= imag(ddd);
rst1(:,kk)=sqrt(1./rrr); rst2(:,kk)=iii./rrr;
vel(:,kk)=sqrt(1./rrr)*b/rk;
end
Example
500 0.4
0.3
400 0.2
0.1
300 0
Frequency
-0.1
g
200 -0.2
-0.3
100 -0.4
-0.5
0
0 100 200 300 400 500 0 100 200 300 400 500
Velocity Velocity
Frequency versue Velocity g versus Velocity
Figure . Flutter Result
For the aeroservoelastic analysis and design, it is necessary to transform the equations of
motion into the state space form. This requires to approximate the frequency domain
unsteady aerodynamic forces in terms of rational functions of the Laplace variable.
There are several methods for the rational function approximation (RFA) such as Roger's
method, Matrix Pade method, and Minimum State method. However, when the RFA is
In this section, we will discuss about Roger’s method since Roger’s method is very
simple and accurately transforms the unsteady aerodynamic forces from frequency
domain into time domain. The minimum state method will be discussed in the next
chapter,
First, let’s express the unsteady aerodynamic forces in the frequency domain as follows;
F /b
2 2b
M / b = q 2C (k ){R}S1 {xs } + C (k ){R}S 2 {x& s }
M / b 2 V
β
2b 2 2b
+ 2 [ M nc ]{&x&s } + [ Bnc ]{x& s } + 2[ K nc ]{xs }
V V
[
= q 2C (k ){R}S1 + i 2kC (k ){R}S 2 − 2k 2 [ M nc ] + i 2k[ Bnc ] + 2[ K nc ] {xs } (77) ]
= q[2C (k ){R}S + 2 s ' C (k ){R}S + 2 s '
1 2
2
[ M nc ] + 2 s ' [ Bnc ] + 2[ K nc ]]{x }
s
Roger’s method approximates the unsteady aerodynamic forces in the following form.
γ j −2 is the aerodynamic poles which are usually preselected in the range of reduced
frequencies of interest.
The real and imaginary part of the approximated aerodynamic matrix will be
[ ]
Imaginary part of Aap = [P1 ]s'+ ∑
N [P ]γ
j j −2 s'
(80)
j =3 (− s' ) + γ 2j − 2
2
The real matrices [Pj] are determined using least square technique for a term by term
fitting of the aerodynamic matrix, [A(s’)].
i
T
(81)
where
ki2
1 0 − ki2 ...
ki2 + γ 2j − 2
[Aaero] = γ j − 2 ki
0 ki 0 ...
ki2 + γ 2j − 2
F ( ki )
{Baero} =
G (ki ) mn
P0
P
1
{Xp} = P2
:
PN mn
s' s
{xaj } = {xs } = {xs } (82)
s'+γ j − 2 V
s + γ j −2
b
Then, the state space equation of motion is expressed in the following form.
0 I 0 .. 0
x&s − M −1K x
&x& −M B −1 −1
qM P3 .. qM PN s
−1
xs
&
s 0 V
I − γ 1I .. 0
x&a 3 = b xa 3 (84)
.. .. .. .. .. .. ..
0 V
x&aN I 0 0 − γ N − 2 I xaN
b
where
2
b
M = M − qP2
V
b
B = B − qP1
V
K = K − qP0
Example
Using the state space equation, calculate the flutter speed of the following typical section
model. Assume four aerodynamic poles for the rational function approximation using
Roger’s method. (γ=0.2, 0.4, 0.6, 0.8)
ω h = 50.0 rad/sec, ω θ = 100.0 rad/sec, ω β = 300.0rad/sec
a = -0.4, c = 0.6,b = 1, xθ = 0.2, x β = 0.0125,rθ2 = 0.25, rβ2 = 0.00625, µ = 40
-2 0
0
-4
-5
Imag of A(1,1)
Imag of A(1,2)
Imag of A(1,3)
-1
-6
-10
-8
-2
-15
-10
-3
-12 -20
-14 -25 -4
-5 0 5 10 15 20 25 -15 -10 -5 0 5 -6.5 -6 -5.5 -5 -4.5 -4 -3.5 -3
Real of A(1,1) Real of A(1,2) Real of A(1,3)
1.4 0 0
1.2 -2 -0.5
1
-4 -1
Imag of A(2,1)
Imag of A(2,2)
Imag of A(2,3)
0.8
-6 -1.5
0.6
-8 -2
0.4
0 -12 -3
0 2 4 6 8 10 12 1 2 3 4 5 6 7 8 -2.2 -2.1 -2 -1.9 -1.8 -1.7
Real of A(2,1) Real of A(2,2) Real of A(2,3)
0 0 0
-0.1 -0.05
-0.02
-0.2 -0.1
Imag of A(3,2)
Imag of A(3,1)
-0.4 -0.2
-0.06
-0.5 -0.25
-0.08
-0.6 -0.3
100
0
-100 -50 0
Real Part
20 400
Imag. Part(rad/sec)
0
300
Real Part
-20
200
-40
100
-60
-80 0
0 100 200 300 400 0 100 200 300 400
Velocity Velocity
The result shows that the model has a flutter speed of about 300 ft/sec, and the flutter
frequency is around 78 rad/sec, which is the pitching mode dominant.
nn=3;i=sqrt(-1);rho=0.002378;
mas=pi*rho*mu*b*b; damb=0.0;
sqr=sqrt(1-c*c);
arc=acos(c);
%
%
% final version of t function generating the aero matrix
t1=-(2+c*c)/3*sqr+c*arc;
t3=-(1-c*c)/8*(5.*c*c+4)+.25*c*(7+2*c*c)*sqr*arc-(1./8.+c*c)*arc*arc;
t4=c*sqr-arc;
t5=-(1-c*c)-arc*arc+2*c*sqr*arc;
t7=c*(7+2*c*c)/8*sqr-(1/8+c*c)*arc;
t8=-1/3*(1+2*c*c)*sqr+c*arc;
t9=.5*(sqr*(1-c*c)/3+a*t4);
t10=sqr+arc;
t11=(2-c)*sqr+(1-2*c)*arc;
t12=(2+c)*sqr-(1+2*c)*arc;
t13=-.5*(t7+(c-a)*t1);
t15=t4+t10;
t16=t1-t8-(c-a)*t4+0.5*t11;
t17=-2*t9-t1+(a-.5)*t4;
t18=t5-t4*t10;
t19=-.5*t4*t11;
%
iden=zeros(nn,nn);ks=zeros(nn,nn);knc=zeros(nn,nn);bs=zeros(nn,nn);
for ii=1:nn
iden(ii,ii)=1.0;
end
% mass matrix
ms(1,1)=1; ms(1,2)=xa; ms(1,3)=xb;
ms(2,1)=xa; ms(2,2)=ra*ra; ms(2,3)=rb*rb+xb*(c-a);
ms(3,1)=xb; ms(3,2)=rb*rb+xb*(c-a); ms(3,3)=rb*rb;
ms=ms*mas
%
%
mnc(1,1)=-pi; mnc(1,2)=pi*a; mnc(1,3)=t1;
mnc(2,1)=pi*a; mnc(2,2)=-pi*(1./8.+a*a); mnc(2,3)=-2*t13;
mnc(3,1)=t1; mnc(3,2)=-2*t13; mnc(3,3)=t3/pi;
%
for ii=1:nn
for jj=1:nn
tempa=0; tempb=0;
for jjrk=1:m
rk=rka(jjrk);
[fl,gl]=aero(rk,b,mnc,bnc,knc,r1,s1,s2);
flij=fl(ii,jj); glij=gl(ii,jj);
al=[ 1 0
0 rk
-rk*rk 0
rk*rk/(rk*rk+gam1*gam1) rk*gam1/(rk*rk+gam1*gam1)
rk*rk/(rk*rk+gam2*gam2) rk*gam2/(rk*rk+gam2*gam2)
tempa=tempa+al'*al;
tempb=tempb+al'*[flij glij]';
end
xe=inv(tempa)*tempb;
p0(ii,jj)=xe(1);
p1(ii,jj)=xe(2);
p2(ii,jj)=xe(3);
p3(ii,jj)=xe(4);
p4(ii,jj)=xe(5);
p5(ii,jj)=xe(6);
p6(ii,jj)=xe(7);
end
end
for jj=1:m
rk=rka(jj);
irk=i*rk;
rkg(jj)=rka(jj);
[fl,gl]=aero(rk,b,mnc,bnc,knc,r1,s1,s2);
zap=p0+p1*irk+p2*irk*irk+p3*irk/(irk+gam1)+p4*irk/(irk+gam2)+p5*irk/(ir
k+gam3)+p6*irk/(irk+gam4);
y1f(jj)=fl(1,2);
y1g(jj)=gl(1,2);
y2f(jj)=real(zap(1,2));
y2g(jj)=imag(zap(1,2));
end
%subplot(221),xlabel('Reduced Frequency')
%subplot(221),ylabel('Real of A(1,2)')
%subplot(221),plot(rkg,y1f,'.r',rkg,y2f,'.g')
%subplot(222),xlabel('Reduced Frequency')
%subplot(222),ylabel('Imag. of A(1,2)')
%subplot(222),plot(rkg,y1g,'.r',rkg,y2g,'.g')
%subplot(223),xlabel('Real of A')
%subplot(223),ylabel('Imag of A')
%subplot(223),plot(y1f,y1g,'.r',y2f,y2g,'.g')
%
%pause
%clg
iter=0;
ivf=0;
for kk=1:40;
state=0;
ans1=-invms*(ks-q*p0);
ans2=-invms*(bs-.5*rho*b*vel*p1);
ans3=q*invms*p3;
ans4=q*invms*p4;
ans5=q*invms*p5;
ans6=q*invms*p6;
for ii=1:nn
for jj=1:nn
state(ii,jj+nn)=iden(ii,jj);
state(ii+2*nn,jj+nn)=iden(ii,jj);
state(ii+3*nn,jj+nn)=iden(ii,jj);
state(ii+4*nn,jj+nn)=iden(ii,jj);
state(ii+5*nn,jj+nn)=iden(ii,jj);
state(ii+nn,jj)=ans1(ii,jj);
state(ii+nn,jj+nn)=ans2(ii,jj);
state(ii+nn,jj+2*nn)=ans3(ii,jj);
state(ii+nn,jj+3*nn)=ans4(ii,jj);
state(ii+nn,jj+4*nn)=ans5(ii,jj);
state(ii+nn,jj+5*nn)=ans6(ii,jj);
state(ii+2*nn,jj+2*nn)=-(vel/b)*gam1*iden(ii,jj);
state(ii+3*nn,jj+3*nn)=-(vel/b)*gam2*iden(ii,jj);
state(ii+4*nn,jj+4*nn)=-(vel/b)*gam3*iden(ii,jj);
state(ii+5*nn,jj+5*nn)=-(vel/b)*gam4*iden(ii,jj);
end
end
eig(state);
for ii=1:6*nn;
if imag(ans(ii)) >= 0.0,
iter=iter+1;
vsol(iter)=vel;
xsol(iter)=real(ans(ii));
ysol(iter)=imag(ans(ii));
end
end
end
vsol=vsol';
Using rational function approximation described in the previous section, the aeroelastic
equation of motion is successfully transformed into the linear time invariant state space
equation. The state equation can be expressed into the following form;
0 I 0 .. 0
x& s x 0
&x& − M K
−1
−M B −1 −1
qM P3 .. qM PN s −1
−1
xs M B ACT
&
s V
0 I − γ 1 I .. 0 β
x& a 3 = b xa 3 + 0
.. .. ..
.. .. .. .. 0
V
x& aN 0 I 0 0
− γ N −2 I xaN 0
b
(85)
or
x& = Ax + Bu (86)
where
0
{B ACT } = 0
ω 2 r 2
θ θ
Let’s design flutter suppression system using the following airfoil data.
ω h = 50.0 rad/sec, ω θ = 100.0 rad/sec, ω β = 300.0rad/sec
a = -0.4, c = 0.6,b = 1, xθ = 0.2, x β = 0.0125,rθ2 = 0.25, rβ2 = 0.00625, µ = 40
The flutter speed of this model is about 300 ft/sec. Control system design in the state
space requires to fix the design airspeed. Usually the design airspeed is fixed as
arbitrarily. Let’s fix the design airspeed as 320 ft/sec, which is higher than the open loop
flutter speed.
At the design airspeed, the system eigenvalues are
-14.3870 ± i 339.6737
5.0715 ± i 70.9743
-25.5913 ± i 74.9236
There are several control algorithms are available. Here, let’s use the classical LQR
(Linear Quadratic Regulator) theory to design a control system.
PA − AT P + C T QC − PBR −1 B T P = 0 (90)
-107.2088 ± i 314.2080
-5.1270 ± i 73.0405
-49.1710 ± i 64.1661
It can be seen that the controller stabilizes the unstable pitching mode. It is assumed that
Q and R are identity matrices, and C is defined to feedback the plunge and pitching
modes only. Figure shows the closed loop system eigenvalues for different airspeed.
Roger Approx.
200
100
0
-150 -100 -50 0 50
Real Part
20 400
0
300
Imag. Part
Real Part
-20
200
-40
100
-60
-80 0
0 100 200 300 400 0 100 200 300 400
Velocity Velocity
Figure Closed Loop Flutter Analysis Results.
close all
clear
% function [result2]= close3(wh,wa,wb,a,c,xa,xb)
% version 1992 1 6
% By nam, changho
% 3 dof system ;roger approx.
wh=50.0; wa=100.0; wb=300.0;
a=-0.4; c=0.5; b=1;
xa=0.2; xb=0.0125;
ra=sqrt(0.25); rb=sqrt(0.00625);
mu=40;
nn=3;i=sqrt(-1);rho=0.002378;
mas=pi*rho*mu*b*b; damb=0.0;
sqr=sqrt(1-c*c);
arc=acos(c);
%
%
for ii=1:nn
for jj=1:nn
tempa=0;
tempb=0;
for jjrk=1:m
rk=rka(jjrk);
[fl,gl]=aero(rk,b,mnc,bnc,knc,r1,s1,s2);
flij=fl(ii,jj);
glij=gl(ii,jj);
al=[ 1 0
0 rk
-rk*rk 0
rk*rk/(rk*rk+gam1*gam1) rk*gam1/(rk*rk+gam1*gam1)
rk*rk/(rk*rk+gam2*gam2) rk*gam2/(rk*rk+gam2*gam2)
rk*rk/(rk*rk+gam3*gam3) rk*gam3/(rk*rk+gam3*gam3)
rk*rk/(rk*rk+gam4*gam4) rk*gam4/(rk*rk+gam4*gam4) ]';
tempa=tempa+al'*al;
tempb=tempb+al'*[flij glij]';
end
xe=inv(tempa)*tempb;
p0(ii,jj)=xe(1);
p1(ii,jj)=xe(2);
p2(ii,jj)=xe(3);
p3(ii,jj)=xe(4);
p4(ii,jj)=xe(5);
p5(ii,jj)=xe(6);
p6(ii,jj)=xe(7);
end
end
for jj=1:m
rk=rka(jj);
irk=i*rk;
rkg(jj)=rka(jj);
[fl,gl]=aero(rk,b,mnc,bnc,knc,r1,s1,s2);
for ii=1:nn
for jj=1:nn
state(ii,jj+nn)=iden(ii,jj);
state(ii+2*nn,jj+nn)=iden(ii,jj);
state(ii+3*nn,jj+nn)=iden(ii,jj);
state(ii+4*nn,jj+nn)=iden(ii,jj);
state(ii+5*nn,jj+nn)=iden(ii,jj);
state(ii+nn,jj)=ans1(ii,jj);
state(ii+nn,jj+nn)=ans2(ii,jj);
state(ii+nn,jj+2*nn)=ans3(ii,jj);
state(ii+nn,jj+3*nn)=ans4(ii,jj);
state(ii+nn,jj+4*nn)=ans5(ii,jj);
state(ii+nn,jj+5*nn)=ans6(ii,jj);
state(ii+2*nn,jj+2*nn)=-(vel/b)*gam1*iden(ii,jj);
state(ii+3*nn,jj+3*nn)=-(vel/b)*gam2*iden(ii,jj);
state(ii+4*nn,jj+4*nn)=-(vel/b)*gam3*iden(ii,jj);
state(ii+5*nn,jj+5*nn)=-(vel/b)*gam4*iden(ii,jj);
end
g1(ii)=0.0;
g1(ii+nn)=temp(ii);
g1(ii+2*nn)=0.0;
g1(ii+3*nn)=0.0;
g1(ii+4*nn)=0.0;
g1(ii+5*nn)=0.0;
end
g1=g1';
state=state;
%
%
%
iter=0;
eig(state);
for ii=1:6*nn;
if imag(ans(ii)) >= 1.0e-4,
if abs(real(ans(ii))) >= 1.0e-4,
if real(ans(ii)) <= 50.0,
if real(ans(ii)) >= -500.0,
for i=1:4
for j=1:6*nn
c(i,j)=0.0;
end
end
c(1,1)=1.0;
c(2,2)=1.0;
c(3,4)=1.0;
c(4,5)=1.0;
%
qq=c'*c/10000.0; rr=0.1;
%qq=qq/10000;rr=rr/10000;
[gain,ricca]=lqr2(state,g1,qq,rr);
% u = -Kx minimizes the cost function:
temp= -g1*gain;
iter=0;
eig(state+temp);
for ii=1:6*nn;
if imag(ans(ii)) >= 1.0e-4,
if abs(real(ans(ii))) >= 1.0e-4,
if real(ans(ii)) <= 50.0,
if real(ans(ii)) >= -500.0,
iter=iter+1;
xclse(iter)=real(ans(ii));
yclse(iter)=imag(ans(ii));
end
end
end
end
end
xclse=xclse';
yclse=yclse';
%
break
%
for kk=1:41;
vel=10.*(kk-1)+50;
q=.5*rho*vel*vel;
state=0;
invms=inv(ms-.5*rho*b*b*p2);
ans1=-invms*(ks-q*p0);
ans2=-invms*(bs-.5*rho*b*vel*p1);
ans3=q*invms*p3;
ans4=q*invms*p4;
ans5=q*invms*p5;
ans6=q*invms*p6;
for ii=1:nn
for jj=1:nn
state(ii,jj+nn)=iden(ii,jj);
state(ii+2*nn,jj+nn)=iden(ii,jj);
state(ii+3*nn,jj+nn)=iden(ii,jj);
state(ii+4*nn,jj+nn)=iden(ii,jj);
state(ii+5*nn,jj+nn)=iden(ii,jj);
state(ii+nn,jj)=ans1(ii,jj);
state(ii+nn,jj+nn)=ans2(ii,jj);
state(ii+nn,jj+2*nn)=ans3(ii,jj);
state(ii+nn,jj+3*nn)=ans4(ii,jj);
state(ii+nn,jj+4*nn)=ans5(ii,jj);
state(ii+nn,jj+5*nn)=ans6(ii,jj);
state(ii+2*nn,jj+2*nn)=-(vel/b)*gam1*iden(ii,jj);
state(ii+3*nn,jj+3*nn)=-(vel/b)*gam2*iden(ii,jj);
state(ii+4*nn,jj+4*nn)=-(vel/b)*gam3*iden(ii,jj);
state(ii+5*nn,jj+5*nn)=-(vel/b)*gam4*iden(ii,jj);
end
end
state=state+temp;
eig(state);
for ii=1:6*nn;
if imag(ans(ii)) >= -1.0e-4,
if abs(real(ans(ii))) >= 1.0e-4,
if real(ans(ii)) <= 50.0,
if real(ans(ii)) >= -500.0,
iter=iter+1;
vsol(iter)=vel;
xsol(iter)=real(ans(ii));
ysol(iter)=imag(ans(ii));
end
end
figure(3);
plot(xsol,ysol,'.r',xopn,yopn,'.g'),
xlabel('Real Part'),ylabel('Imag. Part'),
title('3 Degree of Freedom, Open/Closed Loop System'),grid
%clg;
figure(4);
plot(xsol,ysol,'+r',xopen,yopen,'og',xclse,yclse,'*b'),
axis([-300 50 0 400])
xlabel('Real Part'),ylabel('Imag. Part'),
title('3 Degree of Freedom, Closed Loop System'),grid
axis;
%pause
figure(5);
subplot(221),plot(xopen,yopen,'og',xclse,yclse,'*b',xsol,ysol,'.r'),
axis([-150 50 0 400]),xlabel('Real Part'),ylabel('Imag. Part'),grid;
subplot(222),axis('off');
text(0.0,0.85,'Closed Loop Flutter Analysis','sc'),
text(0.0,0.75,'3 Degree of Freedom','sc'),
text(0.0,0.65,'Roger Approx.','sc');
subplot(223),plot(vsol,xsol,'.r'),
axis([0 400 -80 20]),xlabel('Velocity'),ylabel('Real Part'),grid;
subplot(224),plot(vsol,ysol,'.r'),
In this section, a formulation for the unsteady aerodynamics in time domain is discussed.
In structural dynamic analysis, the dynamic behavior of the complex structures is often
reduced to a few degrees of freedom using normal mode analysis technique. Recently,
researchers expected that these techniques could be applied to unsteady aerodynamic
model. With the reduced order models, it might be possible to predict the unsteady
aerodynamic response of the system over a wide reduced frequency range. In this
section, we will develop an aeroelastic model using an aerodynamic eigen formulation.
A reduced-order model will be obtained by expanding the unsteady vortex into a sum of
first few aerodynamic eigenmodes. To account for the effects of truncated higher modes,
a static correction is included in the model. To get the system matrix with the real
We divide the bound vortex representing the airfoil into M elements, divide the free
vortex representing the traveling wake into (N-M) elements. The total number of vortex
elements is N. For an isolated flat airfoil in two-dimensional incompressible flow, the
kernel function is
1
K ij = (92.a)
2 π( x i 3 / 4 − ξ j )
where xi3/4 is the location of the i-th collocation, i.e., the three-quarter chord of each
element, and ξj is the location of the j-th point vortex, i.e., the quarter chord of each
element.
ξi (Point Vortex)
❊
Z xi (Collocation Point)
3/4
ξj (Point Vortex)
❊ ❊ ❊ ❊ .... ..... X
-b b
airfoil wake
{Γ }
{W3 / 4 } = [[ K 1 ] [ K 2 ]] 1 (92.b)
{Γ2 }
d b
dt ∫−b
γ ( x, t )dx = −Vγ TE
where b is the semichord, V is the velocity and γ is the vorticity distribution on the
airfoil. In the discrete-space domain,
Γ
− [ S1 ]{Γ&1} = M +1 V (93)
∆x
M
ΓMn++11 + ΓMn +1 = −2∑ (Γin+1 − Γin )
i =1
∂Γ Γ − Γi +1
Γ& i = −V i ≅ −V i −1 , (i = M + 2,..., N − 2)
∂x 2∆x
Γ + ( w − 1)ΓN
Γ& N ≅ −V N −1
∆x
However, the free wake convection is more conveniently described in discrete time
domain as follows.
The weighting factor w in Eqs. (94) and (95) is introduced to prevent sudden change in
the induced downwash due to the finite length of the wake vortex sheet. By assigning a
value near unity, one can accumulate all of the vortex strengths that would exist between
the last cutting point and infinity, thereby simulating the effect of these truncated
vorticities on the induced downwash. It can be shown that any w value equal to or larger
than unity would overestimate this effect. For example, w=1 will render all of the
truncated vortex strengths to be accumulated in the last vortex sheet element, i=N. Since
the location of this last vortex ξN is closer to a collocation point on the airfoil than any
other vortex locations behind, the resulting kernel function will yield an induced
downwash with a magnitude greater than that of true one. Hall suggests 0.95 < w < 1.
0 0 & [ K1 ] [ K 2 ] Γ W
− S1 0 0 Γ1 = V 1 − 3/ 4 (96)
Γ2 & 0 [ B ]
a Γ2 0
0 0 I N −M −1 ∆x
1
where [I N −M −1 ] is the (N-M-1) × (N-M-1) identity matrix, and [B ] matrix
∆x a
approximates the partial derivatives of free vortex elements in x, given in Eq. (94).
Hence,
− S1 −1 0 0 & V S
[ K1 K 2 ] + {Γ2 } = [ Ba ]{Γ2 } + 1 [ K 1 ] −1{W& 3 / 4 } (97)
0 0 I N − M −1 ∆x 0
− 2S1 −1
[ K 1 K 2 ] + [ I N − M ]{Γ2n +1 } =
0
(98)
− 2S1 −1 − 2 S1 2 S
[ K 1 K 2 ] + [C ]{Γ2n } + [ K 1 ] −1{W3n/+41 } + 1 [ K 1 ] −1{W3n/ 4 }
0 0 0
where
− 1 0 0 ... 0
1 0 0 ... 0
C=0 1 0 ... 0
.. .. .. ... ..
0 0 ... 1 w
Ba can be obtained either from the original continuous model given by Eqs. (93) and (94),
or from the discrete model given by Eq. (95). Since the discrete model given by Eq. (95)
describes the behavior of trailing wake adequately, it is recommended that the discrete
model be converted to a continuous one in the following manner. First, write the
continuous model given by Eq. (97) in the form
V
[ Aa ]{Γ& 2 } = [ Ba ]{Γ2 } + [C a ]{W& 3 / 4 } (99)
∆x
V
where the time step in this discrete model is ∆t = .
∆x
It should be emphasized that the downwash velocity vector {W& 3 / 4 } acts as an input to the
vortex systems. Inverting the homogeneous part of the continuous equation yields,
V
{Γ& 2 } = [ Aa ] −1 [ Ba ]{Γ2 } (101)
∆x
By integrating the Eq. (101) from tn to tn+1, one can relate the discrete model to the
continuous model as
1
{Γ2n +1 } = [ Aad ] −1 [ Bad ]{Γ2n } = exp( [ Aa ] −1 [ Ba ])∆t {Γ2n } (102)
∆t
Once Ba is determined, the unsteady lift and moment can be obtained as follows:
M M j
L = ρV ∑ Γ j + ρ ∑∑ Γ& k ∆x j (104)
j =1 j =1 k =1
M M j
M = − ρV ∑ (ξ j − ab)Γ j − ρ ∑ (ξ j − ab)∑ Γ& k ∆x j (105)
j =1 j =1 k =1
where ρ, ab denote the air density, distance from the midchord to the elastic axis,
respectively.
The homogeneous part of Eq. (99) (or Eq. (101)) allows an eigen analysis of the unsteady
vortex equation. Assuming a harmonic solution of the vortex in the from Γ2 = xe λt yields
V
λ[ Aa ]{x} = [ Ba ]{x} (106)
∆x
The solutions of Eq. (106) for λ are always stable, i.e., the real parts of the eigenvalues
are negative. This confirms the fact that the creation of wake vortices through unsteady
motion of the airfoil should be dissipative; the wake vortices are formed as a result of
bound vortices being shed at the trailing edge through viscous activity in the boundary
layer around the airfoil. It is seen that the eigenvalues λ are inversely proportional to the
factor ∆x/V, the time for a free vortex element to travel the distance ∆x. Thus, if λ i and
xi are an eigenvalue and the corresponding right eigenvector of the system
V
then the corresponding eigenvalue and the eigenvector of the system (106) are λ i and
∆x
xi , respectively. More generally, we can write the right eigenvector problem as
[ Aa ][ X ][ Λ ] = [ Ba ][ X ]
where Λ is a diagonal matrix containing the eigenvalue of the generalized problem given
by (107), and X is a matrix whose columns contain the corresponding right eigenvectors.
Similarly, for the left eigenvector problem,
T T
[ Aa ] [Y ][Λ ] = [Ba ] [Y ]
[Y ]T [ Aa ][ X ] = [ I ]
It can be shown that the eigenvalues of the continuous-time system λ i are related to the
~
eigenvalues of the discrete-time system, λ i as
~
λi = ln(λi ) (108)
while the eigenvectors of two systems remain the same. Thus, for our purpose, the
calculation of [Ba ] matrix given by Eq. (103) and the eigenvalues, eigenvectors of the
continuous-time system are all facilitated by obtaining the eigenvalues and eigenvectors
of the discrete-time system.
The equations of motion for classical 2-DOF wing model are used to conduct
aeroservoelastic analysis.
m mxθ d 2 h / dt 2 K h 0 h − L
mx 2 + = (109)
θ mrθ d 2α / dt 2 0 K α α M
h&& h Γ
[ M ] + [ K ] = [V ] 1 (110)
α&& α Γ2
2 2 ωh
where ω2h = K h / m , ωθ = Kα / mrθ , xθ = xθ / b , rθ = rθ / b , h = h / b , R = . (•) now
ωθ
denotes a derivative with respect to the nondimensional time τ = ωθt
And
− Vθ F1 − F2
= [Vθ V1 V2 ]
1
V = V G
πρrθ 2 θ 1 G 2
[ F1 ] = [1 1 .... 1]
[ F2 ] = ∆x [M M − 1 ... 1]
[
[G1 ] = − (ξ 1 − a ) (ξ 2 − a ) .... (ξ M − a ) ]
[G2 ] = − ∆x [h1 h2 ... hM ]
M
hk = ∑ ξ j − ( M − k + 1)ab
j =k
For an airfoil undergoing plunging and pitching motion, the nondimensional downwash
vector is related to the plunging and pitching degrees of freedom via
h& h
{W3 / 4 } = [ E1 ] + Vθ [ E 2 ] (111)
α& α
E1 = [1 ( x3 / 4 − e )],E 2 = [0 1] (112)
Here x3 / 4 and a a are the vectors containing nondimensional locations of the three-
quarter points of vortex elements and elastic axis of the airfoil aft of midchord.
Combining Eqs. (92), (94), and (110), and eliminating Γ1 from the equation, we can get
the following contracted equations:
Γ& 2 Γ
& Vθ [ B ] [0] [0] h
2
[ Aa ] Vθ [ Ac12 ] [ Ac13 ] h ∆x a
[0] α
[ I ] [ 0 ] α = [ 0 ] [ 0 ] [ I ]
2 & 2
[ Ac 31 ] Vθ [ Ac 32 ] [ Ac 33 ] h && V [ B ] − [ K ] + Vθ [ Bc 32 ] Vθ [ Bc 33 ] h&
2
θ c 31
α&& α&
(113)
where
We decompose the unsteady solution of vortex into two parts; a modal expansion part
which is the sum of a few of the aerodynamic eigenmodes, and a static correction part:
Here X R is a (N-M)×NR matrix where NR << (N-M) whose columns are the NR right
eigenvectors corresponding to the first NR eigenvalues of Eq. (106) that are nearest to the
origin, c is the generalized coordinate vector. The modal expansion part approximates
the solution by spanning an NR-dimensional subspace of the complete (N-M)-dimensional
space, and therefore does not include the effects of all the remaining (N-M-NR)
aerodynamic modes. The role of the static correction part Γs is to account for the
missing effects by providing at least the quasi-static contribution from the truncated
higher modes. It can be shown that the static correction is obtained as
Although the reduced-order model can be used to predict the open-loop flutter and
divergence by solving the complex generalized eigenvalue problem, it is not appropriate
To overcome such difficulty and make all elements of the matrix equation real, we
introduce a modal decomposition technique which transforms the aerodynamic matrix
into a canonical modal form where a pair of complex conjugate eigenvalues appear in a
(2×2) block on the diagonal and the real eigenvalues appear on the diagonal. For the
V
aerodynamic system Eq. (101) (without the factor of θ ) that has m pairs of complex
∆x
conjugate eigenvalues − σ i ± jωi and n real eigenvalues -λi (N-M=2m+n), the modal
matrix is
Vα
0= [ Ba ]{Γ2 s } + [C a ]{W& 3 / 4 } (119)
∆x
(120)
V
= − α [ AcanR ] −1 [QR ]T [ Aa−1C a ]{W& 3 / 4 }
∆x
where AcanR is a NR×NR submatrix whose nonzero entries are those of Acan corresponding
to the NR retained eigenvalues, and QRT is a matrix whose rows contain the corresponding
NR left eigenvectors.
Therefore,
∆x
{Γs } =
Vθ
{ }
− [ Ba ] −1 + [ PR ][ AcanR ] −1 [QR ]T [ Aa ] −1 [C a ]{W& 3 / 4 } (121)
With the static correction as obtained above, a new reduced-order aeroservoelastic model
can be obtained:
q& q
& Vθ
[ I NR ] Vθ [ Ac12 ] [ Ac13 ] h [ AcanR ] [0] Vθ [ Bc13 ] h
∆x
α
[ 0 ] [ I ] [ 0 ] α
= [ 0 ] [ 0 ] [ I ]
2 & 2
[ Ac 31 ] Vθ [ Ac 32 ] [ Ac 33 ] h&& Vθ [ Bc 31 ] − [ K ] + Vθ2 [ Bc 32 ] Vθ [ Bc 33 ] h&
α&& & (122)
α
[Q R ]T [ K s ][ Ac13 ]
∆x &h&&
+ [ 0 ]
Vθ
[ Ac 31 ][ K s ][ Ac13 ] α
&&&
where
As discussed in this section, static correction is adopted during the order reduction in
order to provide the quasistatic contribution from the truncated higher modes. Therefore,
the terms containing (&h&& α
&&&) are appeared in the reduced order model. When we design
the controller, these terms will not be accounted; they might be assumed as the structural
uncertainty. If the magnitude of the structural uncertainty is small, the robust stability of
the closed loop system is not degraded even though the controller is designed with the
model that neglects the uncertainty. As a matter of fact, it was found that the effects of
those terms are negligibly small, these terms are not considered in the control system
design. Note that the reduced modes of the aerodynamic model are retained in the
reduced order model, and both models (full order model and reduced order model) use
same physical coordinates for the structural modes.
It has to be noted that the nondimensional divergence speed of the system, VθDiv , can be
obtained by solving the eigenvalue problem of the following equation;
h
[−[K ] Vθ2Div [Bc 32 ]] = {0}
α
(123)
The typical section model is used in this study as shown in Figure. A model has two
degrees of freedom which are plunge and pitch. Linear and torsion springs at the elastic
Figure show the discrete time eigenvalues and continuous time eigenvalues for the typical
section model, respectively. For this analysis, ten vortex elements are used to model the
airfoil. The wake was modelled using 100 vortex elements, and the length of the wake
was taken to be 10 chord lengths. As shown in Figure, the magnitude of all the discrete
time eigenvalues is less than 1. These eigenvalues are mapped into the left in the
continuous time domain, which means that the system is stable.
0.8
3
0.6
2
0.4
1
Imaginary Part
Imaginary Part
0.2
0 0
-0.2
-1
-0.4
-2
-0.6
-3
-0.8
-1 -4
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 -0.5 -0.45 -0.4 -0.35 -0.3 -0.25 -0.2 -0.15 -0.1 -0.05 0
Real Part Real Part
Figure (a) Discrete Time Eigenvalues, (b) Continuous Time Eigenvalues of the
Unsteady Aerodynamics
The eigenmode information is used in order to compute the flutter speed in the typical
section model. For model reduction, total 20 eigenmodes from 100, which have the
nearest continuous time eigenvalues to the origin, are used in the reduced order model
along with the static correction.
0.2 2
1.8
0
1.6
1.4
( /ω )
θ
-0.2
1.2
Frequency Ratio ω
Damping
-0.4 1
0.8
-0.6
0.6
0.4
-0.8
0.2
-1 0
0 0.5 1 1.5 2 2.5 0 0.5 1 1.5 2 2.5
Nondimension Velocity (V/ ω θ b) Nondimension Velocity (V/ ω θ b)
0.2 2
1.8
0
1.6
1.4
( /ω )
-0.2
θ
1.2
Frequency Ratio ω
-0.4 1
g
0.8
-0.6
0.6
0.4
-0.8
0.2
-1 0
0 0.5 1 1.5 2 2.5 0 0.5 1 1.5 2 2.5
Velocity (V/ ωθ b) Velocity (V/ ωθ b)
Figure Frequency and Damping Plots of the Typical Section Model with the
Variation of the Reduced Velocity
Figure show the frequency( ω/ ωθ ), damping of the reduced order model against the
reduced velocity( V / ωθb ). For comparison, the results of V-g method are also plotted.
It should be noted that his system model is shown in the discrete time domain and has the
complex coefficient in the matrix equation. However, in this paper, the equations of
motion were derived on the continuous time domain, and the reduced order model with
the real constant was proposed using a modal decomposition technique. Therefore, the
current formulation can be directly used for the aeroelastic control system design. The
predicted divergence speed from V-g method is about 2.5.
Comparing the V-g method with given typical section model, the current method has a
disadvantage in the computational time for aerodynamic eigenvalues. However, the
situation will be different when the more realistic wing model is used for the aeroelastic
analysis. Currently, this method is being extended to analize the aeroservoelastic
characteristics of the 3D wing model using the unsteady vortex lattice method. It is
expected that there will be substantial CPU time savings compared to the existing
method, such as frequency domain analysis with the rational function approximation.
Matlab List
Test.m
close all
clear
e=-0.1;
xalpha=0.2;ralpha=0.5;
xmu=20.0;omegah=0.3; alpha=0.996;
% e=-0.2;
% xalpha=0.1;ralpha=0.5;
% xmu=20.0;omegah=0.4; alpha=0.996;
for i=1:n-m
aad(i,i)=aad(i,i)+1.0d00;
end
%
aad=inv(aad);
ad=aad*bad;
bd(1,1)=1.0;
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
d2cmr
msize=nrdc+4;
%
% Set desired speed for designing controller
%
if(iopen == 1)
opnfltr;
disp('Open Loop Analysis is Done !')
break
end
%
D2cmr.m
npar=nm; nmpar=nm;
nmode=20;
%
% converting routine by zero-order-hold approximation
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ts=1.0;err1=1.d-7 ;err2=1.d-10 ;
%
% construct system matrix for d2c
%
errchk=sqrt(errsum);
if errchk > err1,
disp('warning: accuracy of d2c conversion may be poor.')
end
a=real(cw2)/ts;
wk1=a;
[ceig2,phi,psi]=eign(wk1,eye(nm));
figure (2) ;
plot(real(ceig2), imag(ceig2),'r*'),
xlabel('Real Part'),ylabel('Imaginary Part'),
title('continous model');grid on;axis([-0.5 0 -4 4])
wk1=zeros(nm,nm);
ii=1;
for kk=1:nm
wr(ii)= real(ceig2(ii));wi(ii)=imag(ceig2(ii));
[vecr,vecl]= rmcomm2(npar,nm,ceig,phi,psi);
nrdc=nmode;
rvecr(1:nm,1:nmode)=vecr(1:nm,1:nmode);
rvecl(1:nm,1:nmode)=vecl(1:nm,1:nmode);
Opnfltr.m
icheck=0;
jcount=1;
disp('Working ......')
for u=ui:delu:uf
if(icheck == 0)
fluttrr;
ac0(1:msize,1:msize)=ac(1:msize,1:msize);
bc0(1:msize,1:msize)=bc(1:msize,1:msize);
icheck=1;
else
flutteru;
end
ac1(1:msize,1:msize)=ac(1:msize,1:msize);
bc1(1:msize,1:msize)=bc(1:msize,1:msize);
alf=eign(bc1,ac1);
for i=1:msize
if( (imag(alf(i)) > 0.0) & (imag(alf(i)) < 5.0)),
xxx=[u, real(alf(i)) imag(alf(i))];
sol(jcount,1:3)=xxx ;jcount=jcount+1;
end
end
end
figure(3)
plot(sol(:,1),sol(:,2),'b*'),grid,axis([0 2.5 -1.0 0.2]),
xlabel('Nondimension Velocity (V/\omega _\theta b)'),
ylabel('Damping'),
figure(4)
plot(sol(:,1),sol(:,3),'b*'),grid,axis([0 2.5 0 2.0])
xlabel('Nondimension Velocity (V/\omega _\theta b)'),
ylabel('Frequency Ratio (\omega / \omega _\theta)'),
In this chapter, aeroelastic analysis will be discussed of the high aspect ratio wing. Wing
can be modeled as a box beam with an assumption that the chordwise segments of the
wing are rigid. Wing skin is covered with a composite laminated plate. In this chapter,
we assume that the readers are familiar with the composite materials and the laminated
composite.
The wing structure is idealized as a box beam whose flexibility is due entirely to the
presence of upper and lower laminated cover sheets. It is also assumed that the
chordwise sections are rigid so that the wing deformation is a function of the spanwise
coordinate. Since the lamina are constrained to act as a unit, in a manner prescribed by
the Euler-Bernoulli deformation assumptions, the equivalent bending and torsion stiffness
may be computed.
The displacement of the box beam model can be represented by a bending deflection h
(positive, upward) along the spanwise axis and a rotation, α (postive, nose-up) about that
axis.
The reference axis is placed at the midchord of the airfoil section along the span. And it
is assumed that the upper and lower cover sheets are oriented symmetrically with respect
to the middle surface. In the case of slender swept composite beam of high aspect ration,
an effective root can be assumed as shown in figure. The y-axis is placed on the
midchord along the spanwise direction.
y’
Actual root y
x
x’
σ Q Q Q16 ε x
x 11 12
σ y = Q12 Q22 Q26 ε y (2)
σ xy Q16 Q26 Q66 ε xy
where Qij is the stiffness matrix of the lamina. Note that the stiffness matrix is function
of the ply orientation of lamina.
The moment resultants are given as the sum of the stress times the area over which they
act multiplied by the moment arm with respect to the midplane, M ij = ∫ σ ij zdz
Due to the symmetry with respect to the midplane, the moment equation can be reduced
as
M D D12 D16 κ x
x 11
M y = D12 D22 D26 κ y (3)
Mxy D16 D26 D66 κ xy
where Dij is the bending stiffness of the laminated composite. It has to be noted that Mij
is the moment per unit width of the box beam along the midplane.
N
1 3
Dij = ∫ Qij z 2 dz = ∑ Qij( p ) (t p + 3t p z 2p + 3 z p t 2p ) (5)
p =1 3
where tp is the thickness, zp is the coordinate of lower surface for the each lamina. Since
we are modeling a box beam, Mx=0 and the wing bending moment, M (positve upward),
and the torsion moment, T (positive nose-up), will have the following relations.
M = −cM y
(6)
T = 2cM xy
where c is the chord of the box beam segment. And the curvature will be expressed in
terms of the following variables.
∂2 w
κy = − = − h ′′
∂y 2
(7)
∂2 w
κ xy = −2 = 2α ′
∂x∂y
The equation for the bending and torsion moments of a composite box beam model will
be
By taking the inverse of the above equation, the flexibility relations are obtained.
−1
h ′′ EI − K M
=
α ′ − K GJ T
1 GJ K M
= 2 (10)
EI ⋅ GJ − K K EI T
1 g
EI (1 − kg ) EI (1 − kg ) M
=
g 1 T
EI (1 − kg ) GJ (1 − kg )
In this chapter, the finite element method will be used to develop an equation of motion
for aeroservoelastic analysis. The total strain energy of a laminated beam may be written
as follows;
1 L
U=
2 ∫0
[ EI (h′′) 2 + GJ (α ′) 2 − 2 Kh ′′α ′]dy (11)
The static equilibrium equation of the box beam are derived from the energy equation.
The coupled differential equations of the composite box beam model is expressed as
[ EI ⋅ h ′′ − K ⋅ α ′]′′ = 0
(12)
[− K ⋅ h ′′ − GJ ⋅ α ′]′ = 0
At y=0,
At y=l,
By applying the boundary conditions, the bending displacement, h and rotation,α can be
expressed in terms of the known nodal displacements, q1,…,q6.
6
h ( y ) = ∑ψ i ( y ) ⋅ q i
i =1
6
(13)
α ( y) = ∑ ϕ i ( y) ⋅ qi
i =1
1 − 3 + 2
l l
2y 2
y3
y − +
l l 2
0
ψi = 2 3 (14)
3 y − 2 y
l l
y 2
y3
− + 2
l l
0
y y2
6 g − 2 + 3
l l
y y 2
3 g − +
l l
y
1−
ϕi = l (15)
6 g y − y
2
l2 l3
2
3 g − y + y
l l
y
l
The beam element has six degrees of freedom where qi are the nodal displacements.
With these displacement and rotation functions, the shear force, V bending moment, M
and torsional moment, T at each end of the beam element also can be expressed in terms
of the nodal displacements.
V y =0 = EI ⋅ h ′y′′=0 − K ⋅ α ′y′=0
M y =0 = EI ⋅ h ′y′=0 − K ⋅ α ′y =0
T y =0 = GJ ⋅ α ′y =0 − K ⋅ h ′y′=0
(16)
V y =l = EI ⋅ h ′y′′=l − K ⋅ α ′y′=l
M y =l = EI ⋅ h ′y′=l − K ⋅ α ′y =l
T y =l = GJ ⋅ α ′y =l − K ⋅ h ′y′=l
where {Q} is the element force vector, [K] is the element stiffness matrix and {q} is the
nodal displacement vector.
ke(2,1)= ke(1,2);
ke(2,2)= EI*(1.0+3.0*(1.0-k*g))/el;
ke(2,3)=-K/el; ke(2,4)=-ke(1,2);
ke(2,5)=-EI*(1.0-3.0*(1.0-k*g))/el; ke(2,6)=-ke(2,3);
1
2 ∫∫∫
T= ρ w& 2 dxdydz
1 l 1 l (18)
= ∫ m (h& − xα α& ) 2 dy + ∫ I oα& 2 dy
2 0 2 0
where m is the mass of the wing cross section per span, xα is the distance from the
reference axis to the mass center of the wing cross section, and Io is the mass moment of
inertia of the wing cross section about the center of mass.
The kinetic energy can also be expressed in terms of the nodal displacements.
2 0
I o = I α − m xα2 (20)
where Iα = m rα2 is the mass moment of inertia about the reference axis and rα2 is the
radius of gyration.
1
T= q& [ M ]{q&} (21)
2
M ij = ∫ m {ψ i ( y ) − xα ϕ i ( y )}⋅ ψ j ( y ) − xα ϕ j ( y ) dy
l
+ ∫ I o {ϕ i ( y )}⋅ ϕ i ( y )dy
l
0
(22)
= ∫ m {ψ i ( y ) − xα ϕ i ( y )}⋅ ψ j ( y ) − xα ϕ j ( y ) dy
l
V z
xα
α x
mass center
ml
M ij = M ij (23)
420
me(1,1)= 156.0+rg*(420.0*xa/el+504.0*rg*ra2/el2);
me(1,2)= 22.0*el+rg*(147.0*xa+252.0*rg*ra2/el);
me(1,3)=-147.0*xa-210.0*rg*ra2/el; me(1,4)=54.0-504.0*rg2*ra2/el2;
me(1,5)=-13.0*el+rg*(63.0*xa+252.0*rg*ra2/el);
me(1,6)=-63.0*xa-210.0*rg*ra2/el;
The equation of motion of the composite box beam for the vibration analysis is expressed
in the following matrix form:
First, the free vibration analysis will be conducted and the equations of motion for flutter
analysis will be expressed in terms of the modal coordinates, {ξ}.
where
[M ] = [Φ]T [M][Φ]
(25)
[K ] = [Φ]T [K][Φ]
In order to calculate the unsteady aerodynamic coefficients for the three dimensional
wing model, incompressible 2 dimensional unsteady strip theory can be used. The strip
theory defines lift and moment forces along the midchord and acting on sections
perpendicular to the mid-chord line. As discussed in Chapter 3, the flow field is
represented by a noncirculatory component and a circulatory component. The vertical
displacement of the wing segment is expressed as
where h is the displacement of the midchord (positive up), α is the rotation of a wing
section measured perpendicular to the midchord (positive nose up), and x is the distance
from the reference axis (aft positive). The lift and moment are written in terms of a
circulatory part and non-circulatory part. Using modified strip theory, outlined by Yates,
the lift (positive up) per unit length is given as
L = −πρb 2 {h&& + Vnα& + Vnσ& tan Λ − ba (α&& + Vnτ& tan Λ )}nc − {C lα ,n ρVn bC (k )Q}c (26)
dh dα
where σ = , τ=
dy dy
The subscript nc indicates the circulatory part and c indicates the circulatory part of the
unsteady aerodynamic forces. And a is location of the reference axis with respect to the
midchord, as a fraction of the semi-chord b and ρ is the density, b is the semi chord, Vn
(=VcosΛ) is the airspeed measured perpendicular to the midchord, and Λ is the sweep
angle. C lα ,n is the section lift coefficient and Λ is the sweep angle. And C(k) is the
Theoderson function. Q is the downwash distribution defined by
C
Q = {h& + Vn α + Vn σ tan Λ − b( lα ,n + a cn − a )(α& + Vn τ tan Λ )}
2π
where acn is the location of the aerodynamic center with respect to the mid-chord as a
fraction of the semichord, b.
Similiary, the pitching moment (positive nose down) per unit length about the midchord
is
1
T = −πρb 4 {( + a 2 )(α&& + Vnτ& tan Λ ) + πρb 2Vn (h& + Vnσ tan Λ ) + πρb 3 a (h&& + Vnσ& tan Λ )
8
(27)
1 C lα ,n
+ πρb Vn (α − abτ tan Λ)}nc − 2πρb Vn [{ − (a − a cn )C (k )
2 2 2
}Q]c
2 2π
The virtual work due to a distributed lift and moment located at the reference axis is
written as
l c l
δW = ∫ ( ∫ pδwdx)dy = ∫ ( Lδh − Tδα )dy = ∑ Q j δq j (28)
0 0 0
j
It is assumed that the flow is irrotational and inviscid so that the flow meets the Kutta
The upwash normal to an oscillating lifting surface is expressed as {ref : Albano, E. and
Rodden, W.P., “A Doublet Lattice Method for Calculating Lift Distributions on
Oscillating Surfaces in Subsonic Flows,” AIAA Journal, Vol 7, Feb. 1969, pp279-285.}
w( x c , y c ) 1
U∞
=
8π ∫∫ K ( x c − x 0 , y c − y 0 , k , M )∆C p ( x 0 , y 0 )dx 0 dy 0 (29.a)
where k is the reduced frequency (=ωb/U∞) and M is the Mach number. K is called
Kernel function, which is actually the velocity field at (xc,yc) due to an elemental normal
force at (x0, y0).
w( x c , y c ) 1
U∞
=
8π
∑ (∆C
n
p )n ∫∫ K ( x c − x 0 ,y c − y 0 , k , M )dx 0 dy 0 (29.b)
element , n
The integration of Kernel function in the streamwise direction is done simply by lumping
the effect into a loaded line at the ¼ chord line of the element. The results is an unsteady
horseshoe vortex whose bound position lies along the ¼ chord line of the element. There
is one control or receiving point per element and the surface normalwash boundary
condition is satisfied at each of these points. The control point is centered spanwise on
the ¾ chord line of the element. The upwash equation can be written in matrix form;
In the matlab code attached at this book, DLM is used to calculated the unsteady
aerodynamic coefficient matrix, [AIC] and the result is saved for the further reduction
into the modal coordinate system.
qd is the dynamic pressure, a diagonal matrix [S] denotes the panel area. And δwc / 4 ,
{w}3c / 4 denote the virtual displacement at 1/4 chord, the downwash at 3/4 chord of the
panel, respectively. With harmonic motion assumption, the downwash is expressed as
the following;
ω
{w}3c / 4 = [α ij ]3c / 4 {q} − i [Wij ]3c / 4 {q} (32)
V
where
∂Z j
[α ]
ij 3c / 4 = −
∂x i ( 3c / 4 ) (33)
[W ]
ij 3c / 4 [ ]
= Zj i ( 3c / 4 )
ω
δW A = q d {δq}Z j Ti ( c / 4) [ S ][ AIC ] −1 [α ij ]3c / 4 − i [Wij ]3c / 4 {q}
V (35)
= q d {δq}[ A]{q}
It has to be noted that the aerodynamic forces, [A] is function of the reduced frequency
and Mach number.
List of unsdlm.dat : This input data is used in example. For input variables, refer
figure.
%%% Title : text
Composite wing with I/O Control Surfaces(DLM-GEN)
%%% warea,swep,taper,aspct,y1bar,y2bar,l1bar,l2bar,ftc1,ftc2
If model does not have control surfaces set ftc1, ftc2 to 0.2 !!
V
Lo
Control
Λ Surfaces
Yo
Li
Yi θ X
Matlab file, aero.m, will read the aerodynamic coefficient for various reduced
frequencies, and calculate the generalized aerodynamic forces in the modal coordinate
system using the procedure that we discussed in this section.
List of aero.m
%
function [ictrl,jnk,b0,rka,raero] = aero(igust,ndof,need)
% reads the unsteady aerodynamic influence coefficient matrix
% supplied by a doublet lattice method
%
% computes the generalized force matrix in modal coordinates
% using doublet lattice aerodynamics
%
%
fid_16= fopen('aeroshp.out','w');
file_20 = fopen(['dlmaero.mat']);
deg2rad=360.0d0/(2.0d0*pi);
hhc=zeros(100,10);
jk=sqrt(-1);
msize=need;
if(igust == 0), msize1=msize+ictrl; end
if(igust == 1), msize1=msize+ictrl+1; end
if(ictrl ~= 0),
for i=1:ictrl,
ipnl(i) = fscanf(file_20,'%d',1);
npnl=ipnl(i);
tmp= fscanf(file_20,'%d',npnl);
ipanel(i,1:npnl)=tmp';
%
% xhng, yhng : hinge locations of the control surfaces
%
% x1: x-coord of leading edge/root of the wing.
% x2: x-coord of trailing edge/root of the wing.
% x3: x-coord of leading edge/tip of the wing.
% x4: x-coord of trailing edge/tip of the wing.
% y1: y-coord of the wing root.
% y2: y-coord of the wing tip.
tmp= fscanf(file_20,'%g',6);
x1=tmp(1);x2=tmp(2);x3=tmp(3);x4=tmp(4);y1=tmp(5);y2=tmp(6);
tmp= fscanf(file_20,'%g',2);
xhng(i)=tmp(1);yhng(i)=tmp(2);
%
%
swpl=atan((x3-x1)/(y2-y1));
swpt=atan((x4-x2)/(y2-y1));
aswp(i)=(swpl+(swpt-swpl)*xhng(i))*deg2rad;
xl=x1+(x3-x1)*yhng(i);
xt=x2+(x4-x2)*yhng(i);
xhng(i)=xl+(xt-xl)*xhng(i);
yhng(i)=y1+(y2-y1)*yhng(i);
end
end
%
rkk2 = 1.;
tmp= fscanf(file_20,'%g',2);
nchrd=tmp(1);nspan=tmp(2);
tmp= fscanf(file_20,'%g',3);
ncll=tmp(1);jnk=tmp(2);b0=tmp(3);
b0 = b0/2.;
%
%
tmp= fscanf(file_20,'%g',2*ncll);
for m=1:ncll, xb(m)=tmp(2*m-1);yb(m)=tmp(2*m);end
% upwash & nosedown twist (h,r) w.r.t. 3/4 chord
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[h,r]=tranm(fid_16,msize,ncll,yb,xb);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for i = 1:ncll
for j = 1:msize
tpr(i,j)=r(i,j)+jk*h(i,j)/b0 ;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fprintf(fid_16,'reduced frequency %g \n',rk2);
fprintf(fid_16,'the upwash due to the control surface no %g \n',ic1);
fprintf(fid_16,'%10.5e %10.5e %10.5e %10.5e %10.5e %10.5e %10.5e
%10.5e %10.5e %10.5e\n',tpr(:,msize+ic1));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
end
end
%
tmp= fscanf(file_20,'%g',2*ncll);
for m=1:ncll, a(m)=tmp(2*m-1)+jk*tmp(2*m);end
for j =1:msize1,
hsb(i,j) = 0;
for k=1:ncll, hsb(i,j)=hsb(i,j)+a(k)*tpr(k,j);end
end
for j=1:msize1, hsb(i,j)=hsb(i,j)*ar(i);end
end
%
for i=1:msize,
for j=1:msize1,
hat(j) =0;
for k =1:ncll, hat(j)=hat(j)+h(k,i)*hsb(k,j);end
end
for j=1:msize1,
cain(i,j)=-hat(j);
raero(nt,i,j)=cain(i,j);
end
end
%
%
rkk2 = rk2;
end
fclose(file_20);
fclose(fid_16);
%
The goal of this chapter is to conduct an aeroservoelastic wing planform design by using
the control surfaces to suppress flutter and to reduce the gust response of the wing.
where {q&&} are the generalized modal coordinates, q d is the dynamic pressure. The
matrices [Qa ] , [Qc ] and [QG ] are the generalized aerodynamic forces due to flexible
modes, control surfaces deflection and gust, respectively. After vibration analysis, a
modal reduction is performed using the selected elastic modes.
The aerodynamic forces are approximated as the transfer functions of the Laplace
variable by a least square curve fit approximation in order to define the aeroservoelastic
equations of motion in a linear time invariant state-space form. As discussed in the
Chapter 3, Roger’s method approximates the unsteady aerodynamic forces in the
following form.
[ ]
where P = Pξ Pc Pg , s ' = ik = iωb / V = sb / V and s is the Laplace variable, k is the
reduced frequency, b is the semi-chord and V is the airspeed. The subscripts ξ, c and g
indicate elastic, control surface and gust modes, respectively and γ are the aerodynamic
poles that are usually preselected in the range of reduced frequencies of interest. In this
study, four terms of the aerodynamic poles are included for the rational functions
approximation. The augmented aerodynamic state is defined as follows.
ξ
{x ja } = s'
s '+γ j −2
[
]
Pjξ Pjc Pjg δ c , j=3,4,5,6. (38)
w
g
where
0 I 0 .. 0
~ −1
− M ~ −1 ~ −1 ~ −1
K −M B qd M I .. qd M I
V
[ As ] = 0 P3ξ − γ 1 I .. 0
b
.. .. .. .. 0
0 V
PNξ 0 0 − γ N − 2 I
b
0 0 0
~ −1 ~ −1 b ~ −1 b 2
q d M P0 c q d M P1c q d M P2 c
V V
[ Bs ] = 0 P3c 0
.. .. ..
0 PNc 0
0 0 0
~ −1 ~ −1 b ~ −1 b 2
q d M P0 g q d M P1g q d M P2 g
V V
[ BG ] = 0 P3 g 0
.. .. ..
0 PNg 0
2
~ b
M = M − q d P2ξ
V
~ b
B = B − q d P1ξ
V
~
K = K − q d P0ξ
{x s } = ξ T ξ& T xaT T
In the above equations, xa denotes the aerodynamic states and δ c is the control surface
deflection. The control surfaces actuator transfer functions can be expressed in a state
space form as follows.
The actuator transfer function for each of the control surfaces is fixed as follows.
{δ c } a a0
= (42)
{δ aileron } s + a s + a1 s + a 0
2
The gust state space model is included for random gust response calculations. The
vertical gust is modeled by a second order Dryden model;
3V V
w
s +
g L L 3
= σ wg
w (43)
V
2
s +
L
where σ wg is the RMS value of the gust velocity, L is the characteristic gust length and V
is the airspeed. When the low pass filter (a/(s+a)) is included, the state space equation of
the gust is expressed as follows.
x& g1 0 1 0 x g1 0
a x g 2 + 0 w
−2 −1
x& g 2 = − τ g − 2τ g
3
x& 0 0 − a x g 3 τ g 2 σ wg
−
g3
x
α 1 3τ g 0 g1
{wG } = & g = −1
α g − 3τ g 1 − 2 3 ( ) x
3τ g a g 2
xg3 (44)
L
where τ g = .
V
Or
By including the gust dynamics system and the actuator system for the control surface,
the following state space aeroservoelastic model is obtained.
where {x} = xsT xcT x Tg . The resulting state vector is consists of elastic modes,
T
aerodynamic states, actuator states and 3 gust states including low pass fiter.
For a given design airspeed, a controller for active flutter suppression is designed. The
performance index value (control effort) is used as a measure of control performance.
The following output feedback control law is introduced.
where [ ] denotes output feedback gain and {y} includes only structural information.
K
G
where {φc }i is the eigenvector of the closed-loop system corresponding to the eigenvalue
c
λi . The eigenvalues of the structural modes can be assigned to desired values by using a
pole placement technique.
The above problem can be solved by using any gradient-based nonlinear programming
algorithm. The homotopic nonlinear programming with minimum norm correction
algorithm is used. To enhance convergence, the linear homotopy map is generated. The
original eigenvalue assignment problem is replaced by the one-parameter α family as
follows.
where {pstart } is the initial starting value of the parameter vector. Sweeping α using a
suitably small increment generates a sequence of neighboring problems. These sequence
of problems are solved using the neighboring converged solutions to generate starting
iteratives for each subsequent problem. The desired solution is reached once solution for
α=1 is obtained. More details about this algorithm can be found in chapter 2.
J =∫
0
∞
{{y} [Q]{y} + {u} [R]{u}}dt
T T
(50)
where the positive definite weight matrices [Q] and [R] should be related to make the
integrands correspond to physical energy measures. Note that the first term in J is related
to the error energy of the structural modes and the second term is related to the control
energy. This objective function is obtained as follows
J = tr ([P ][ X 0 ]) (51)
where [X0] is an initial autocorrelation of the state and [P] is the solution of the following
Lyapunov equation.
The solution of the Lyapunov equation can be obtained by solving eigenvalue problem of
the closed-loop system matrix. However, it is unstable when the eigensystem is ill-
conditioned. Since aeroservoelastic system dealt with in this study is ill-conditioned,
Lyapunov solver, utilizing Schur decomposition, is used. This algorithm transforms the
closed-loop system matrix to Schur form by orthogonal similarity transformation,
computes the solution of the resulting triangular system and transforms this solution
back.
where [Qw] is the intensity matrix of the white noise. The square of the RMS of the
system outputs(the modes of the system) is computed as follows.
[
σ i2 = [C ][X ][C ]
T
] ,i = 1,2,.., Ns
ii
(55)
{δ c } 20 1.6 × 10 5
=
{δ aileron } s + 20 s 2 + 400s + 1.6 × 10 5
The modal reduction is conducted using first 6 vibration modes. The first 6 natural
frequencies of the mode are 6.1, 15.0, 26.8, 38.7, 53.6, 72.3 Hz, respectively. For RFA
using Roger’s method, 4 aerodynamic poles are defined. These are 0.2, 0.4, 0.6, and 0.8.
Therefore, the resulting aeroservoelatic state space model is 45th order including 6 elastic
modes, 24 aerodynamic states, 6 actuator states and 3 gust states.
For this wing model, open loop flutter analysis is conducted. Flutter occurs at 1850
feet/sec(fps) and is due to the second mode (13.5 Hz).
1 500
450
0.5
400
0
350
-0.5
300
Imaginary Part
Real Part
-1 250
200
-1.5
150
-2
100
-2.5
50
-3 0
0 500 1000 1500 2000 2500 0 500 1000 1500 2000 2500
Velocity Velocity
200
180
160
140
120
Imaginary Part
100
80
60
40
20
0
-3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1
Real Part
Table : Open Loop Eignvalues and Desired Closed Loop Eigen Values.
Columns 7 through 12
8.1452e-002 8.0865e-002 -1.3649e-002 -3.6692e-002 -2.3506e-003 1.2538e-003
-5.2469e-002 -7.4833e-002 2.1801e-002 5.8818e-002 1.3415e-002 -5.4627e-005
The RMS value of the gust response for the flexible modes can be used as a metric to
compare the control performance.
List of Test.m
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%
clear all
close all
save wingdvs swep taper aspct y1bar y2bar l1bar l2bar ftc1 ftc2
%
% composite laminated plate
% nl is the number of layer
nl=14;
%
layerdata =[ 1.0000 0.9920 -90.0000 0.0080
2.0000 0.9820 45.0000 0.0100
3.0000 0.9720 -45.0000 0.0100
4.0000 0.8680 -40.0000 0.1040
5.0000 0.8580 -45.0000 0.0100
6.0000 0.8480 45.0000 0.0100
7.0000 0.8400 -90.0000 0.0800
8.0000 -0.8480 -90.0000 0.0080
9.0000 -0.8580 45.0000 0.0100
10.0000 -0.8680 -45.0000 0.0100
11.0000 -0.9720 -40.0000 0.1040
12.0000 -0.9820 -45.0000 0.0100
13.0000 -0.9920 45.0000 0.0100
14.0000 -1.0000 -90.0000 0.0800 ];
%
% wti= non-structural weight of the wing per unit span
% wti is unit of slugs/in
wti=[0.01345
0.01111
0.01099
0.01172
0.01134
0.01051
0.00681
0.00502
0.00502
0.00502];
%
save dataprop nl layerdata wti
%
%
getinput
%
% create the mass and stiffness matrices
%
model
%
% solve eigenvalue problem
%
modes
%
% ================================
if(igust==0),
need1=need+ictrl;
elseif(igust==1),
need1=need+ictrl+1;
end
%
% rational function approximation: roger's method
%
xxx(1)=0.2;xxx(2)=0.4;xxx(3)=0.6;xxx(4)=0.8;
%
disp( 'writing rfa results .....')
[p0,p1,p2,p3,p4,p5,p6]=roger(igust,ictrl,need,jnk,xxx,rka,raero);
disp( 'rfa.==>done, assemble system matrix...')
%
% icls :0 for open loop , 1 for closed loop analysis
disp('icls :0 for open loop , 1 for closed loop analysis ')
icls=input('Do you want to design closed loop system ? (y/n)=(1/0)
');
%
%
% i0vel : initial velocity (ft/sec)
% j0vel : final velocity (ft/sec)
% istep : increament in velocity
%
if (icls == 0 ),
% open loop analysis
i0vel=100; j0vel=2500; istep=50;
elseif (icls == 1 ),
if (icls ==1),
save openloop ivel a_sys b_sys bw c_sys eivec gsystem
end
figure(1)
plot(solopn(:,1),solopn(:,2),'*r'),grid on,axis([0 2500 -3 1]),
xlabel('Velocity'),ylabel('Real Part')
figure(2)
plot(solopn(:,1),solopn(:,3),'*r'),grid on,axis([0 2500 0 500]),
xlabel('Velocity'),ylabel('Imaginary Part')
figure(3)
plot(solopn(:,2),solopn(:,3),'*r'),grid on,axis([-3 1 0 300]),
xlabel('Real Part'),ylabel('Imaginary Part')
if (icls ==1),
disp('open loop system data is creadted at ivel !')
disp('If you want to design a control system, just run clsdsn !')
end
List of Test.m
A=a_sys;B=b_sys;C=c_sys;
n=max(size(A));
% number of dsesired mode = elastic modes
neigd=6;
eigd=zeros(n,1);
[eigop,phi0,psi0]=eignsort(A);
[eigop,phi0,psi0]=select(eigop,phi0,psi0,neigd);
%
% set desired closed loop eigenvalues
%
for i=1:neigd;
eigd(2*i-1)=-abs(real(eigop(2*i-1)))+sqrt(-1)*imag(eigop(2*i-1));
if(i==1);
eigd(2*i-1)=-1.1*abs(real(eigop(2*i-1)))+sqrt(-1)*imag(eigop(2*i-1));
end;
if(i==2);
eigd(2*i-1)=-1.4*abs(real(eigop(2*i-1)))+sqrt(-1)*imag(eigop(2*i-1));
end;
eigd(2*i)=conj(eigd(2*i-1));
end
%
% design controller using nonlinear programming
G=polenlps(A,B,C,eigd,neigd);
[eigcl,phicl,psicl]=eignsort(A-B*G*C);
[eigcl,phicl,psicl]=select(eigcl,phicl,psicl,neigd);
%disp('open loop eigenvalues')
%disp([eigop(1:2*neigd)])
disp('desired and closed eigenvalues')
disp([eigd(1:2*neigd) eigcl(1:2*neigd)])
%[eigop eigcl]
disp('gain matrix is')
disp([G])
To prevent the static and dynamic instability in a composite wing, we can passively or
actively suppress the instability by a proper choice of ply orientation and actuating the
control surface. Recently, the application of piezoelectric materials to structural control
may provide a new dimension in design to eliminate the possibility of instability by
changing wing configuration to cause lift distribution variation. There has been a
considerable amount of research activity in using piezo sensor/actuators for the vibration
control of flexible structures. Since the piezoelectric materials exhibit elastic
deformation in proportion to the magnitude of an applied electric field and transfer
forces to the structure, piezoelectric materials that are bonded at proper locations of a
base structure can be used as actuators.
An analytic model for an induced strain actuator coupled with beams and plates has been
developed by many authors. The static and dynamic aeroelastic behavior of a wing
structure with piezo actuators has been studied. Ehlers and Weisshaar showed the effects
of the piezoelectric actuators on the static aeroelastic behavior such as lift effectiveness,
divergence, roll effectiveness. Lazarus, Crawley and Bohlmann used the typical section
to represent a wing model and performed an analytic study to find the optimal placement
and thickness of a piezo actuator for camber or twist control. Lazarus, Crawley and Lin
showed the ability of both articulated control surfaces and piezoelectric actuators to
control the dynamic aeroelastic systems. Heeg conducted an experimental study for
flutter suppression of a beam model and demonstrated the application of piezoelectric
materials for flutter suppression, which is affixed to a flexible mount system.
V
L
Y
2 4
C
3
θ
1
X
Z Piezoelectric Actuators
Y
Based on the classical laminated plate theory, the equations of motion of a model with
piezo actuators are formulated. The linear coupled electromechanical constitutive
relations of a piezoelectric materials can be written as;
{D} = [d ]T {T } + [ε t ]{e}
(1)
{S} = [ s e ]{T } + [d ]{e}
{S} is the strain, {T} is the stress, {D} is the electric displacement, and {e} is the electric
field intensity. [d],[εt],[se] denote the piezoelectric constant, dielectric constant, and
elastic compliance matrix, respectively. It is assumed that the "3" axis is associated with
the direction of poling and the mechanical property of the piezoelectric materials is
modeled as an isotropic material. For the thin plate shape of the piezoelectric materials,
we can rewrite Eq. (1).
σ1 Q p Q p12 0 ε1 d 31
11
σ 2 = Q p12 Q p 22 0 ε 2 − d 32 e3 (3.a)
σ 0 0 Q p 66 γ 12 0
12
or
[Qp] is the stiffness matrix of piezoelectric layer, {dij} is the piezoelectric strain
coefficient, and e3 is the applied electric field. This equation is similar to stress-strain
equation with thermal effects considering the fact that the piezoelectric strain Λ has the
same form as thermal strain α∆Τ.
Inplane forces and moments of laminated plate including the loads of the piezo actuators
are obtained by integrating the stresses over the ply thickness, and can be expressed as
follows,
where ε, κ are the midplane strain and curvature, respectively. [A], [D], and [B] are
extension, bending, and extension/bending coupling stiffness matrices, respectively.
These matrices are influenced by not only the ply orientations of the laminate but also the
{N Λ } = ∫ [Q p ]{Λ}dz (5)
zp
{M Λ } = ∫ [Q p ]{Λ}zdz (6)
zp
1 A B ε ε
U= ∫∫
2 A, A p
ε κ B D κ dxdy − ∫∫ N Λ M Λ κ dxdy
Ap
(7)
1
T= ∫∫
2 A, A p
ρ (u& 2 + v& 2 + w& 2 )dxdy (8)
where A, Ap represent the area of the composite plate and piezoelectric material,
respectively, u,v,w are displacements in x, y, z direction. These energies are the
functions of the ply orientations of the laminate and the piezoelectric parameters, which
are the actuator thickness, area, and locations.
It is impossible to obtain closed form solutions to the laminated plate due to the
complexity of equation, the arbitrary boundary conditions, and external forces such as
unsteady aerodynamic forces. In this study, the Rayleigh-Ritz method which is faster and
has the same accuracy as the finite element method is adopted for the structural analysis.
To apply the Rayleigh-Ritz method, we introduce displacement functions in generalized
coordinate system to represent displacements u, v, w
l +m+n
w( x, y, t ) = ∑Z
k = l + m +1
k ( x, y )q k (t )
where X(x,y), Y(x,y), Z(x,y) are shape functions which must be properly chosen so as to
satisfy the geometric boundary conditions of the wing structures. Using these
displacement expressions, equations for strain energy and kinetic energy are written in
matrix form,
1
U = {q}T [ K s ]{q} − QΛ {q}
2 (10)
1
T = {q&}T [ M s ]{q&}
2
For the design of suppression system of a symmetric laminated plate model with
piezoelectric actuators, the model is assumed to have the surface bonded piezoelectric
actuators on the opposite side of the plate at the same location. It is also assumed that the
same magnitude but the opposite direction of electric field is applied to the actuator in
order to create a pure bending moment for flutter suppression. With these assumptions,
the displacements in the x and y directions can be neglected. In order to express the
displacement in the z direction, we used the free-free beam vibration modes in the x
direction(chordwise direction) and the cantilever beam vibration modes in the y
direction(spanwise direction) as follows;
Z k ( x, y ) = Φ i ( x ) Ψ j ( y ) (11)
where
y y y y
Ψ j (y) = ( − cosα j + cosh α j ) − β i (sin α j + sinh α j ), i = 1,2,3.. (13)
l l l l
T
np
d 31
1 ts t
{QΛ } = 2∑ {( + t p ) 2 − ( s ) 2 }∫∫ [Q p ]d 32 {Z ' ' }dxdyV (i )
i =1 t p 2 2 Ap 0 (14)
= [ F p ]{u}
where
∂ 2 Z ∂ 2 Z ∂ 2 Z
{Z ' '}T = − 2 , 2 ,2
∂x ∂y ∂x∂y (15)
{u}T = V (1),V (2),...,V (np)
ts, tp are the thicknesses of the laminate and piezoelectric layer, respectively. [Fp] is the
control force per unit voltage, np is the number of surface bonded piezoelectric actuators,
V(i) is the applied voltage to the i-th piezoelectric actuator.
ω
{w}3c / 4 = [α ij ]3c / 4 {q} − i [Wij ]3c / 4 {q} (17)
V
where
∂Z j
[α ]
ij 3c / 4 = −
∂x i (3c / 4) (18)
[W ]ij 3c / 4 [ ]
= Zj i ( 3c / 4 )
{w}c / 4 = [ Z j ]i ( c / 4 ) {q}
ω
δW A = q{δq}Z j i ( c / 4) [ S ][ AIC ] −1 [α ij ]3c / 4 − i [Wij ]3c / 4 {q}
T
V (19)
= q{δq}[ A]{q}
It has to be noted that the aerodynamic forces, [A] is function of the reduced frequency
and Mach number.
After the vibration analysis, a model reduction can be performed to obtain a set of
equations of motion in the modal coordinates using first rm vibration modes.
where
[ M s ] = [Φ ]T [ M s ][Φ ]
[ K s ] = [Φ ]T [ K s ][Φ ]
(22)
[ A ] = [Φ ]T [ A][Φ ]
[ F p ] = [ Φ ]T [ F p ]
The classical aeroelastic analysis such as the V-g method and p-k method is performed
in the frequency domain using unsteady aerodynamic forces computed for simple
harmonic motion. As discussed in the previous section, in frequency domain, unsteady
aerodynamic forces can be obtained from the following equation by DLM.
ω
δW A = q{δq}Z j i ( c / 4 ) [ S ][ AIC ] −1 [α ij ]3c / 4 − i [Wij ]3c / 4 {q}
T
V (23)
= q{δq}[ A]{q}
[ Aap (s )] = [A0 ] + [A1 ]s + [A2 ]s 2 + [D' ][s I − R' ]−1 [E]s (24)
[ ]
s {xa } = [E ]s {ξ } + R ′ {x a } (25)
Therefore,
(27)
b &&
2
b
[ ]
M s − q A2 {ξ } = − C s − q A1 {ξ&} − [K s − q A0 ]{ξ } + q D ′ {x a } + [ F p ]{u} (28)
V V
where
[M~ ] = M
2
b
s − q A2
V
[]
~ b
C = C s − q A1
V
(30)
[]
~
K = [K s − q A0 ]
[ ] [ ]
Since s {xa } = E s {ξ } + R ′ {x a } , the aerodynamic state is expressed as
Using the state vector {x}, the linear time-invariant state space equations of motion
which include the effects of piezoelectric control forces are expressed as follows
where
matrix, the total number of states is (2*rm × m). It should be noted that the system
matrix [F] if function of airspeed.
Since the system matrix is a function of the dynamic pressure, it is necessary to choose
the design air speed for designing control system. By choosing the design air
speed(VDesign), the linear quadratic regulator(LQR) with output feedback is applied for
design of the flutter suppression system. The design speed, which is chosen arbitrarily is
usually larger than the open loop flutter speed.
The design procedure for LQR with output feedback is briefly summarized below.
The output matrix [H] is specified such that the aerodynamic states are excluded from the
state for feedback purpose. The admissible controls are output feedback of the form
where [KG] is an output feedback gain matrix, which consists of constant coefficients to
be determined by the design procedure. The performance index to be minimized is
selected as follows:
∞
J = ∫ [{ y}T [Q]{ y} + {u}T [ R]{u}]dt (35)
0
where [Q]≥0 and [R]>0 are symmetric weighting matrices. Since the initial state {x0}
may not be known, we adopt Athans and Levine's procedure that minimizes the expected
value of performance index
where the operator E{•} denotes the expected value over all possible initial conditions.
The symmetric matrices [P] and [X0] are defined by
[ X 0 ] = {x 0 }{x 0 }T (37)
∞
{ }
[ P] = ∫ e [ Fc ] t [ H ]T [Q] + [ K G ]T [ R ][ K G ] [ H ]e [ Fc ]t dt
0
T
(38)
where
[ Fc ] = [ F ] − [G ][ K G ][ H ] (39)
The usual assumption is that the initial states are uniformly distributed on the unit sphere;
then [X0] becomes identity matrix. It is well known that matrix [P] can be obtained by
solving the following Lyapunov equation
Note that Lyapunov equation is a symmetric linear matrix equation. The solution of the
Lyapunov equation can be obtained directly by solving simultaneous linear equations,
however this approach takes lots of computation time and storage. One of the most
∂ℜ ∂ℜ ∂ℜ
= [0], = [0], = [0] (42)
∂ [ P] ∂ [S ] ∂ [KG ]
Applying Eq.(42) to Eq.(41), necessary conditions for optimality are obtained as follows:
There exist several numerical approaches to solve Eqs. (43). Gradient-based routines can
be used with various optimization algorithms. Moerder and Calise proposed an efficient
iterative algorithm, which converges to a local minimum if the following conditions hold:
(i) there exists an output gain matrix [KG] such that [Fc] is stable,
Step 1: Choose [KG] such that [Fc] in Eq.(39) has all the eigenvalues with negative real
parts.
Step 2: With given [KG] and the corresponding [Fc], solve the Lyapunov Eqs.(43) for [P]
and [S], and compute current performance index value.
∆[ K G ] = [ R] −1 [G ]T [ P][ S ][ H ]T ([ H ][ S ][ H ]T ) −1 − [ K G ] (44)
The plate model containing four sets of piezoelectric actuators is used as a model for the
control system design. It is assumed that a set of actuators is bonded on both top and
bottom surfaces of the laminated plate in order to generate a pure bending force. The size
of each piezo actuator is 1.5 × 3.0 inch. The material properties used in this study are
given in Table 1.
ν12=0.28
The laminate has six symmetric layers, [105/ ±45]s. Each layer has uniform thickness,
which is 0.02 inch, respectively. The coordinates of the piezo actuators are pzx(i)=
{0.50, 0.50, 3.50, 3.50} inch and pzy(i)={1.00, 7.00, 1.00, 7.00} inch.
Unsteady aerodynamics are calculated using DLM for Mach 0.8. For calculation of the
pressure distribution on an oscillating plate-wing undergoing simple harmonic motion,
the plate-wing model is uniformly divided into total 100 panels arranged in 10 spanwise
direction and 10 chordwise direction.
The open loop flutter analysis of [105/±45]s laminate is conducted with the unsteady
aerodynamics transformed into Laplace domain through Minimum State method. The
result is shown in Figure. For the rational function approximation, a total of 6
components of the [R'] matrix are used for the RFA. Therefore, the dimension of the state
vector is 18.
The diagonal components of [R'] matrix are {-0.0072, -0.048, -0.197, -0.49, -0.67, -
0.98}, respectively. As in Figure, in [105/±45]s model without a control system, flutter
occurs at 620 fps by the 2nd mode, which is the 1st torsion mode dominant and the flute
frequency is about 59 Hz.
10 0
60 0
0
-10 0 50 0
-20 0
40 0
-30 0
30 0
-40 0
-50 0
20 0
-60 0
10 0
-70 0
-80 0 0
0 100 200 300 400 500 600 7 00 0 100 200 300 400 500 600 7 00
60 0
50 0
Open Loop Analysis Results
40 0
PZT actuators.
20 0
0
-200 -150 -100 -50 0 50 Flutter frequency = 59 Hz
Figure Open Loop Flutter Analysis Result of [105/ ±45]s Composite Plate-Wing
with Piezoelectric Actuators.
For the active control design, the design speed is set to be 800 fps, which is chosen
arbitrarily. At the design speed, the open loop system is unstable in the first torsion
mode, yielding unstable eigenvalues at (162.9 ± I 294.2). The open loop matrix equation
is supplemented with control term. The control input {u} is determined by LQR with
output feedback subject to minimize the performance index at the design speed. In order
to select the initial gain matrix, first we solve the full state LQR problem with
performance index, and construct initial stabilizing output gain matrix by choosing the
corresponding gain parameters to be used in the output feedback from the resulting LQR
The loci of the closed loop aeroelastic roots with increasing airspeed is plotted in Figure.
Above the design speed, the control law provides flutter mode control. The controller
push the unstable eigenalvues to (-124.8 ± I 315.5). And the model is stable until a
divergence occurs at about 900 fps.
20 0 70 0
10 0
60 0
0
-10 0 50 0
-20 0
40 0
-30 0
30 0
-40 0
-50 0 20 0
-60 0
10 0
-70 0
-80 0 0
0 100 200 300 400 5 00 60 0 700 800 900 1000 0 100 200 300 400 5 00 60 0 700 800 900 1000
60 0
[105/ ±45]s laminated composite with 4
50 0 PZT actuators.
40 0
30 0
Divergence speed = 900 ft/sec
20 0
10 0
0
-600 -500 -400 -300 -200 -100 0 1 00
Figure Closed Loop Flutter Analysis Result of [105/ ±45]s Composite Plate-Wing
with Piezoelectric Actuators.
In this chapter, a control system is designed is to suppress the flutter of a composite wing
using segmented piezoelectric actuators. The control system design, especially using
optimal output feedback design, is performed for the active flutter suppression. An
example model shows that the PZT actuators are capable of aeroelastic control. For the
aeroelastic control, the piezoelectric actuator must create substantial changes in surface
shape to generate the aerodynamic loads. The piezoelectric actuator location, size, and
thickness should be considered in the control system design since these parameters may
affect the structural properties as well as the control characteristics. The optimization
technique can be applied to find the best geometry of actuators for flutter control subject
to minimize the control performance index.
The closed loop damping ratios can be imposed in order that the control system has more
stability margin, therefore higher critical aeroelastic airspeed. However, heavy
constraints on the damping ratio may result in higher gain matrix and much control
efforts required for flutter suppression. As the optimization progresses, a trade-off
between the reduction of performance index and satisfaction of constraints on the closed
damping ratios is needed in order to determine the best geometry of the piezo actuators.
Also, the electric power requirement should be addressed.
10. Karpel, M., ”Design for Active Flutter Suppression and Gust Alleviation Using State-
Space Aeroelastic Modeling,” Journal of Aircraft, Vol.19, No.3, March 1982, pp.221-
227.
12. Levine, W.S., and Athans, M., ”On the Determination of the Optimal Constant
Output Feedback Gains for Linear Multivariable Systems,” IEEE Transactions on
Automatic Control, Vol. AC-15, No. 1, February 1970, pp. 44-48.
13. Moerder, D.D., and Calise, A.J., ”Convergence of a Numerical Algorithm for
Calculating Optimal Output Feedback Gains,” IEEE Transactions on Automatic Control,
Vol. AC-30, No. 9, September 1985, pp. 900-903.
14. Lewis, F.L., Applied Optimal Control and Estimation, Prentice-Hall, New Jersey,
1992.
15. Mueller, G.S., and Adeniyi, V.O., ”Optimal Output Feedback by Gradient Methods
with Optimal Stepsize Adjustment,” Proceedings of IEE, Control & Science, Vol. 126,
No. 10, October 1979.
19. Kirk, D.E., Optimal Control Theory, Prentice-Hall, New Jersey, 1970.