0% found this document useful (0 votes)
100 views

Activity No. 1

1) This document provides an introduction and primer to using MATLAB for feedback and control systems laboratory work. 2) It reviews basic MATLAB commands and functions, using MATLAB to calculate Laplace transforms and inverse Laplace transforms, and implementing partial fraction expansions. 3) The primer covers MATLAB fundamentals like format, variables, expressions, commands, matrices, and character strings to prepare students to complete the learning objectives of the laboratory activity.

Uploaded by

Roland Batacan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
100 views

Activity No. 1

1) This document provides an introduction and primer to using MATLAB for feedback and control systems laboratory work. 2) It reviews basic MATLAB commands and functions, using MATLAB to calculate Laplace transforms and inverse Laplace transforms, and implementing partial fraction expansions. 3) The primer covers MATLAB fundamentals like format, variables, expressions, commands, matrices, and character strings to prepare students to complete the learning objectives of the laboratory activity.

Uploaded by

Roland Batacan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 18

ECE131L – FEEDBACK & CONTROL SYSTEMS LABORATORY

Laboratory Activity #1
MATLAB Basic Functions and Commands for Feedback & Control Systems

Name: Date Performed:


Section: Instructor:

I. Learning Objectives:
1. Review MATLAB basic commands and functions
2. Use MATLAB in solving for the Laplace transform of a time – domain function and
the inverse Laplace transform of s – domain function
3. Implement partial – fraction expansion with MATLAB

II. Primer:
MATLAB is a high level technical computing environment for high-performance numeric
computation and analysis. It integrates computation, visualization, and programming in an
easy-to-use environment where problems and solutions are expressed in familiar mathematical
notation. Applications such as modeling, data analysis, simulation, exploration, and visualization
can be done with this tool. For these reasons, MATLAB has been commonly employed in
Feedback Control Systems design. The name MATLAB stands for matrix laboratory. It uses the
functionality and versatility of matrices in order to perform complex computations.
MATLAB Familiarization
To start MATLAB, the MATLAB desktop appears, containing tools (graphical user
interfaces) for managing files, variables, and applications associated with MATLAB. The first
time MATLAB starts, the desktop appears as shown in Figure 1, although the Launch Pad may
contain different entries. The following important entities in the MATLAB user interface are
explained in detail.
• Command Window: This is where to input commands like entering values in variables, or
running scripts (m-files). M-files are scripts that simply execute a series of MATLAB statements,
or they can be functions that also accept arguments and produce output. The prompt >> is an
indicator where to input values, basic expressions and scripts.
• Command History: Lines entered in the Command Window are logged in the Command
History window. In the Command History, previously used functions can be viewed, and copied
and selected lines can be executed. The green text %-- 11:18 AM 4/04/04 --% indicates the
Timestamp in which the command was executed, while the succeeding texts indicate the
commands performed on that particular time.

CREDITS TO ENGR. RONEL V. VIDAL, PECE 1


• Launch Pad: MATLAB's Launch Pad provides easy access to tools, demos, and documentation.
Simulink and Control System Toolbox are the most common tools to be used for this course.
• Workspace: The MATLAB workspace consists of the set of variables (named arrays) built up
during a MATLAB session and stored in memory. You add variables to the workspace by using
functions, running M-files, and loading saved workspaces. To view the workspace and
information about each variable, use the Workspace browser, or use the functions “who” and
“whos”. Figure 2 shows the Workspace browser.

Figure 1. The MATLAB Environment Figure 2. MATLAB Workspace browser


MATLAB Fundamentals: Format, Variables, Expressions and Commands
Once you are familiar with the MATLAB environment, it is time to enter basic
expressions. In the command window, all commands are straightforward; just type the
expressions such as entering values in a variable or running an m-file.
Expressions and Variables
Expressions typed without a variable name are evaluated by MATLAB and the result is
stored and displayed by a variable called “ans”. The result of an expression can be assigned to a
variable name. Variable names consist of a letter, followed by any number of letters, digits, or
underscores. MATLAB uses only the first 31 characters of a variable name and MATLAB is case
sensitive. MATLAB is so straightforward that you may enter also mathematical expressions and
formulas as you enter the variables. Notice that MATLAB display the result with 5 significant
digits (default format: format short). The commands format short e, format long, and format
long e display 5 digits floating point, 15 digits fixed point, and 15 digits floating point,
respectively.
The first example shows a ‘no typed variable’ expressions, answer is automatically
stored in “ans”.

CREDITS TO ENGR. RONEL V. VIDAL, PECE 2


The first expression involves direct value in a variable, while the second one shows a direct
mathematical expression using the function cos. Further explanations on Math functions are
explained in Elementary Mathematics Functions.
>> 13
ans =
13
>> cos(3.1416/3)
ans =
0.49999787927255

The second example shows an expression with values stored in variables “a” and “b”.

>> a= 234.56778
a=
2.3457e+002
>> b=3.1416*(cos(3.1416/6))+2
b=
4.7207e+000

In displaying answers and expressions, the % indicates that any typed expression is
converted into a comment while typing a semicolon, ;, after a mathematical expression, omits
the MATLAB response or does not display the result. An example is shown in basic display
manipulation. The first expression does not display the value of a1 but it is still in the workspace
while the second expression is converted into a comment.
>> a1=3.5445/64;
>> % a1=3.5445/64
Using the command fprintf you can directly manipulate the format of the output of an
expression or function. This command displays the result with a desired format on the screen or
to specified filename. The %8.4f, indicates that the output value is a float number that has 4
decimal values and has 8 characters in length, if length of characters is less than 8 (7 in the
example) the 8th would be a space. All expressions inside the single quote sign are the ones to
be displayed. The \n indicates that the next output to be displayed (if there’s any) would be on
the next line. The expression to be evaluated is typed after the comma , sign.

CREDITS TO ENGR. RONEL V. VIDAL, PECE 3


>> fprintf('Area of a circle is %8.4f Square meters\n', 3.1416*3^2)
Area of a circle is 28.2744 Square meters

MATLAB has several predefined variables and are listed below. Try the following
variables in the Command Window to check their functionality.
Special Variables and Commands
ans : most recent answer
eps : floating point relative accuracy
i, j : imaginary unit
inf : infinity
NaN : not – a – number
pi :π

There are several commands that perform specific functions. These commands are
listed below. It is recommended to try them to see how it works.
Special Commands
clc : clears the screen
clear “variable” : clears the content and the variable itself
exit : exits MATLAB
help “command” : asks help on a particular command
who : displays variables in workspace
who “variable” : displays the number of elements in a variable

Character String
A sequence of characters in single quotes is called a character string or text variable.
Characters can be augmented or combined by using a vector “[‘first character’,’second
character’]” An example is shown below.
>> c='Manila'
c=
Manila
>> cs=[c,',Philippines']
cs =
Manila,Philippines

CREDITS TO ENGR. RONEL V. VIDAL, PECE 4


Matrix Fundamentals
MATLAB treats the single value element, like in the first and second example earlier on
Expressions and Variables as a single element matrix. From the word ‘MATLAB’ which means
Matrix Laboratory, it explains why values are treated as matrices. Matrices are entered into
MATLAB by listing the elements of the matrix and enclosing them within a pair of brackets,
“[ ].” Elements of a single row are separated by commas or blanks, and rows are separated by
semicolons or carriage return.
A single row matrix is entered in MATLAB in two ways, either using spaces or using
commas.
>> A= [4 3 2 31 5]
A=
4 3 2 31 5
>> A= [4,3,2,31,5]
A=
4 3 2 31 5

A single column matrix is entered in MATLAB by using semicolons or carriage returns


(in this example, using semicolons).

>> B = [3; 4; 5]
B=
3
4
5

Combining the single column and single row matrix instructions can create an m x n
matrix. To create a matrix, it is entered in MATLAB by using spaces or commas with semicolons
or carriage returns, as shown below.
>> C = [1 2;3 4]
C=
1 2
3 4
>>

CREDITS TO ENGR. RONEL V. VIDAL, PECE 5


The entire row or column can be addressed using colon, ;. For example, to get the first
row of matrix C, follow the example below. The number 1 denotes ‘first’ and its location tells
whether it is a column or row. If the number is placed on the first position, then it denotes that
the output is an entire row and if it is placed in the second position, it denotes an entire
column. In the example, the number 1 is placed on the first position; therefore its output is the
first row. Try to interchange the colons and numbers to see the corresponding change on the
output.
>> frow = C(1,:)
frow =
1 2

Matrix / Vector Basic Operations


Arithmetic operations on arrays are done element-by-element. This means that addition
and subtraction are the same for arrays and matrices, but that multiplicative and division
operations are different. Basic operations such as addition and subtraction on matrices with the
same dimensions can be done. If they are conformable, two matrices can be multiplied and
divided. For element-by-element multiplication and division or array operations, MATLAB uses
a dot, or decimal point, as part of the notation for multiplication and division. Element by
element operations are listed in Table 3. Given two matrices C and D, multiplication can be
done by typing >> C*D, element by element multiplication can be one by typing >> C.*D, >> C\D
is equivalent to C-1D, and >> C/D is equivalent to CD-1.
The inverse of a matrix, denoted by C-1 can be done by using the command >> inv(C). An
example is shown below.
>> C = [1 2; 3 4]
C=
1 2
3 4
>> D = [5 6; 7 8]
D=
5 6
7 8
>> C*D
ans =
19 22
43 50

CREDITS TO ENGR. RONEL V. VIDAL, PECE 6


>> C\D
ans =
-3.0000 -4.0000
4.0000 5.0000
>> inv(C)*D
ans =
-3.0000 -4.0000
4.0000 5.0000
>> C.*D
ans =
5 12
21 32

Element by Element Math Operations


+ Addition
– Subtraction
.* Element-by-element multiplication
./ Element-by-element division
.\ Element-by-element left division
.^ Element-by-element power
.’ Unconjugated array transpose

An n vector is a row vector or a column array of n numbers. In MATLAB, elements


enclosed by brackets and separated by semicolon generate a column vector. The transpose of a
row vector is a column vector, and vice versa. This can be done in MATLAB using the symbol ‘
(apostrophe). An example is shown below, the transpose of matrix D is E.

>> E=D'
E=
5 7
6 8

Vectors can be generated by just specifying the first, last and the increment desired for
each element. For example, to create a row vector with a first element of ‘1’ and a last element
of 9’ and an increment of ‘1’, use the syntax in the example below. The default increment is ‘1’
so even without the second parameter ‘1’, >>F = (1:9), still the result is the same. Try to
experiment and change the increment, and see what happens.

CREDITS TO ENGR. RONEL V. VIDAL, PECE 7


>> F = (1:1:9)
F=
1 2 3 4 5 6 7 8 9
>> F = (1:9)
F=
1 2 3 4 5 6 7 8 9

Special matrices can be generated given in the table below.

Elementary Matrices
eye Identity Matrix
meshgrid X and Y arrays for 3-D plots
ones Ones matrix
zeros Zeros matrix
rand niformly distributed random numbers
randn Normally distributed random numbers

Elementary Mathematics Functions and Operators in MATLAB

Elementary Math functions and operators in MATLAB are very easy to use since they are
basic and straightforward in nature. Basic operations like addition, subtraction, multiplication,
division can be represented by “ + , - , * , /” respectively. In order to raise a number to a certain
exponent, just insert ^ after the number and before the exponent. For example, to evaluate 26,
just type >>2^6. For matrices or arrays, operations are different (for exponents, multiplication
and division) as stated earlier.
Some MATLAB basic math functions automatically operate element by element on an
array. Functions that operate element by element are given below.

Elementary Math Functions


abs :Absolute value angle : Phase angle
acos :Inverse cosine asin : Inverse sine
acosh :Inverse hyperbolic cosine asinh : Inverse hyperbolic sine
atan :Inverse tangent atanh : Inverse hyperbolic tangent
conj :Complex conjugate cos : Cosine
exp : Exponential cosh :Hyperbolic cosine
floor : Round towards infinity fix : Round towards zero
imag : Complex Imaginary part log : Natural logarithm

CREDITS TO ENGR. RONEL V. VIDAL, PECE 8


log10 : Common logarithm real : Complex real part
rem : remainder after division round : Round towards nearest integer
sign : Signum function sinh : Hyperbolic sine
sqrt : Square root tan : Tangent
tanh : Hyperbolic tangent

Polynomial Functions

Plots
MATLAB can create high-resolution, publication-quality 2-D, 3-D, linear, log, semilog,
polar, bar chart and contour plots on plotters, dot-matrix printers, and laser printers. Some of
the 2-D graph types are plot, loglog, semilogx, semilogy, polar, and bar. The command grid adds
a grid to the graph, and the command title(‘text’), xlabel(‘text’), ylabel(‘text’), and text(‘text’)
can be used for labeling and placing text on the graph. MATLAB provides automatic scaling. The
function axis([xmin, xmax, ymin, ymax])enforces manual scaling.
As an example, to plot a sinusoidal function, let y = 2sinx, where x is the abscissa (an
angle) and y is the ordinate. Take note that angles are in radians. The listing is shown below.
>> x = (0:1/1000:2*pi);
>> y = 2*sin(x);
>> plot(x,y), title('Sinusoidal waveform'),
Sinusoidal Waveform
2.5

1.5

0.5

-0.5

-1

-1.5

-2

-2.5
0 1 2 3 4 5 6

CREDITS TO ENGR. RONEL V. VIDAL, PECE 9


MATLAB for Control Systems Analysis and Design

The functions to be presented are basic and are commonly used in Control Systems
applications. These functions are not used directly for solving Control System problems but
rather application of these commands will greatly help in solving them.

Complex numbers
In MATLAB, imaginary numbers are represented using i or j. Mathematical operations
are straightforward, similar to operations in real numbers.

Given: (25+j65) and (30+j80) (addition and division)

>> %Addition
>> (25+65j) + (30+80j)
ans =
5.5000e+001 +1.4500e+002i
>> %Division
>> (25+65j)/(30+80j)
ans =
0.8151 - 0.0068i

Some parameters of the complex numbers can be also extracted like the magnitude and
phase angle, real part and imaginary part. , we need to get the magnitude and phase angle of
the complex number (25+j65). We have to convert the angle in degrees so we multiplied 180/
to the answer of angle (always in radians).
>> abs(25+65j)
ans =
69.6419
>> angle(25+65j)*180/pi
ans =
68.9625
>> real(25+65j)
ans =
25
>> imag(25+65j)
ans =
65

CREDITS TO ENGR. RONEL V. VIDAL, PECE 10


Other basic functions for control engineering applications

Function Syntax Description


syms arg1 arg2 ...
syms Shortcut for constructing symbolic objects
syms arg1 arg2 ... real
pretty The pretty function prints symbolic output in a
pretty(s)
format that resembles typeset mathematics
r = simple(S) tries several different algebraic
simplifications of the symbolic expression S,
simple r = simple(S) displays any that shorten the length of S's
representation, and returns the shortest.

d = det(X) returns the determinant of the square


det d = det(X) matrix X. If X contains only integer entries, the
result d is also an integer.
L = laplace(F) is the Laplace transform of the
function F with default independent variable t.
laplace(F) The default return is a function of s. The Laplace
laplace laplace(F,t) transform is applied to a function of t and returns
laplace(F,w,z) a function of s.

F ( s ) =∫ f ( t ) e− st dt
0
ilaplace ilaplace(L) F = ilaplace(L) is the inverse Laplace transform of
ilaplace(L,y) the function symbolic object L with default
ilaplace(L,y,x) independent variable s. The default return is a
function of t. The inverse Laplace transform is
applied to a function of s and returns a function of
t.
c+i ∞
1
f ( t )= ∫ F ( s ) e st ds
2 πi c−i ∞

Partial – Fraction Expansion with MATLAB

The MATLAB is capable of converting polynomial ratio into partial fraction expansion.
Consider:
n n−1
B ( s ) Num b0 s +b 1 s +…+b n
= = n
A ( s ) Den s +a 1 sn−1 +… a n
Num = [b 0, b 1, ….b n] – coefficient of the numerator
Den = [1,a 1,a 2, …… a n] – coefficient of the denominator

CREDITS TO ENGR. RONEL V. VIDAL, PECE 11


The command [ r , p , k ] =residue ( Num , Den ) finds the residue( r ) , poles( p ), and direct
B (s ) r (1) r (2) r ( n)
terms ( k ) of a partial – fraction expansion. = + +…+ +k
A ( s ) s−p ( 1 ) s− p ( 2 ) s− p ( n )

Polynomials (Num & Den) Creation from the Partial – Fraction Expansion
The syntax [ Num , Den ] =residue ( r , p , k ) converts a partial fraction expansion back to
polynomial ratio.

 Example #1: Partial fraction Expansion


B ( s ) 2 s 3 +5 s 2+ 3 s+ 6
=
A ( s ) s3 +6 s2 +11 s+6
The MATLAB program:

>> %partial - fraction expansion of polynomials(Num & Den)


>> Num = [2 5 3 6]; %coefficient of the numrator
>> Den = [1 6 11 6]; %coefficient of the denominator
>> [r,p,k] = residue(Num,Den)
r=
-6.0000
-4.0000
3.0000
p=
-3.0000
-2.0000
-1.0000
k=
2

Therefore, the partial – fraction expansion of B(s)/A(s):


B ( s ) −6 −4 3
= + + +2
A (s ) s+3 s +2 s +1

 Example #2: Polynomial creation from partial fraction expansion


Consider:

CREDITS TO ENGR. RONEL V. VIDAL, PECE 12


B ( s ) −6 −4 3
= + + +2
A ( s ) s+3 s +2 s +1

Convert this back to a polynomial ratio.

>> %Converts the Partial - fraction Expansion Back to the Polynomial Ratio B(s)/A(s)
>> r = [-6 -4 3];
>> p = [-3 -2 -1];
>> k = 2;
>> [Num,Den] = residue(r,p,k);
>> printsys(Num,Den,'s')
num/den =
2 s^3 + 5 s^2 + 3 s + 6
-----------------------
s^3 + 6 s^2 + 11 s + 6

B ( s ) 2 s 3 +5 s 2+ 3 s+ 6
The ploynomial ratio is =
A ( s ) s3 +6 s2 +11 s+6

 Example #3: Laplace Transform


Given x ( t )=2+3 e−2 t −2 t e−2 t−t 2, find its Lapalce transform.

>> %Laplace Transform


>> syms t
>> x = 2 + 3*exp(-2t) - 2*t*exp(-2t) - t^2
>> laplace(x)
ans =
2/s+3/(s+2)-2/(s+2)^2-2/s^3
>>

The Laplace transform is


2 3 2 2
X ( s )= + − − 3
s ( s+2 ) ( s +2 ) s
2

 Example # 4: Laplace Transform


Givenf ( t )=4 cos ( 4 t ), find its Laplace transform.

CREDITS TO ENGR. RONEL V. VIDAL, PECE 13


>> %Laplace Transform of Cosine
>> syms t
>> f = 4*cos(4*t);
>> laplace(f)
ans =
4*s/(s^2+16)

The Laplace transform is


4s
F ( s) = 2
s +16
 Example #5: Inverse Laplace
Given the F ( s ) below, find its inverse Laplace.
2 3 2 2
F ( s) = + − − 3
s ( s+ 2 ) ( s+2 ) s
2

>> % Inverse Laplace of 2/s+3/(s+2)-2/(s+2)^2-2/s^3


>> syms s
>> f = 2/s+3/(s+2)-2/(s+2)^2-2/s^3;
>> ilaplace(f)
ans =
2+3*exp(-2*t)-2*t*exp(-2*t)-t^2

The inverse Laplace is f ( t )=2+3 e−2 t −2t e−2 t−t 2.

 Example #6: Inverse Laplace


4s
F( s )= 2
Given s +16 , find its inverse Laplace.

>> % Inverse Laplace of 4*s/(s^2+16)


>> syms s
>> F = 4*s/(s^2+16);
>> f = ilaplace(F);
>> pretty(f)
4 cos(4 t)

The inverse Laplace isf ( t )=4 cos ( 4 t ).

 Example #7: Transfer Function


Use MATLAB to generate the transfer function below in the following ways:

CREDITS TO ENGR. RONEL V. VIDAL, PECE 14


a) Ratio of polynomials
b) Ratio of factors
s 4+ 25 s 3+ 20 s2 +15 s+ 42
G ( s )= 5
s +13 s 4 +9 s3 +37 s2 +35 s +50

>> % Transfer Function


>> Num = [1 25 20 15 42];
>> Den = [1 13 9 37 35 50];
>> 'Ratio of Polynomials'
>> Ftf = tf(Num,Den)
>> 'Ratio of Factors'
>> Fzpk = zpk(Ftf)
>>
ans =
Ratio of Polynomials
Ftf =
s^4 + 25 s^3 + 20 s^2 + 15 s + 42
-----------------------------------------
s^5 + 13 s^4 + 9 s^3 + 37 s^2 + 35 s + 50
Continuous-time transfer function.
ans =
Ratio of Factors
Fzpk =
(s+24.2) (s+1.35) (s^2 - 0.5462s + 1.286)
------------------------------------------------------
(s+12.5) (s^2 + 1.463s + 1.493) (s^2 - 0.964s + 2.679)
Continuous-time zero/pole/gain model.

II. Laboratory Exercises:

CREDITS TO ENGR. RONEL V. VIDAL, PECE 15


1. Determine the determinant and coefficients w, x, y, z
Given: w – 12x +13y – 7z = 23
2w + 15x + 16y + 12z = 19
4w – 10x + y + 17z = 24
3w + 2x – 3y + 2z = 14

2. Add, subtract, divide and multiply the two polynomials below


f ( x )=x 4 −3 x 3−6 x−5
g ( x )=x 3+ 2 x 2−x +4

3. Find the roots of the given polynomials below


h ( x )=4 x 4−3 x 3−7 x 2 +2 x + 4
p ( x ) =2 x 3 +3 x 2−2 x +5

4. Use MATLAB and the Symbolic Math Toolbox to find the Laplace transform of the following
time functions:
a) f ( t )=2 t 3 e 2 t
b) f ( t )=10 e−3 t cosh ( 5t )
c) f ( t )=9u ( t ) +5 e−3t
d) f ( t )=8 t 2 cos ( et+ 45 ° )
e) f ( t )=3 t e−2t sin ( 4 t+ 60° )

5. Obtain the partial fraction expansion and then use the result to find the inverse Laplace
transform for the following s – domain functions using MATLAB and the Symbolic Math
Toolbox.
10
a ¿ . F ( s )= 2
s ( s +2 )( s+3 )
3 s+1
b ¿ . F ( s )= 2
s +2 s+ 9
10 ( s+7 )
c ¿ . F ( s )=
( s+ 3 )( s+ 6 )
8 ( s+ 1 )( s+3 )
d ¿ . F ( s )=
( s+ 2 )( s+ 4 ) ( s+6 )2
5 ( s+2 )
e ¿. F ( s ) = 2
s ( s +8 s+15 )

CREDITS TO ENGR. RONEL V. VIDAL, PECE 16


6. Express as factors in the numerator divided by factors in the denominator the given transfer
function, G ( s ) below.
s 4 +17 s3 +99 s2 +223 s+140
G ( s )= 5
s +32 s 4 +363 s 3+ 2092 s2 +5052 s+ 4320

7. Use MATLAB to generate the partial fraction expansion of the following function:
104 ( s +5 ) ( s+ 70 )
G ( s )= 2 2
s ( s+ 45 ) ( s +55 ) ( s + 7 s+ 110 ) ( s +6 s+95 )

References:
1. Emmanuel A. Gonzalez, Martin Christian G. Leonor, Feedback Control Systems Engineering
Using MATLAB, gonzaleze@dlsu.edu.ph (2006)
2. Katsuhiko Ogata, MATLAB for Control Engineers, New Jersey, Pearson Education (2008)
3. Norman Nise, Control Systems Engineering, 5th ed., New Jersey, John Wiley & Sons (2008)
4. Richard C. Dorf, Robert Bishop, Modern Control Systems, 8th ed., California, Addison –
Wesley (1998)

CREDITS TO ENGR. RONEL V. VIDAL, PECE 17


Laboratory Exercise No.

Program Codes:

Insert Screenshots of the code used to execute laboratory activity. Make it readable.

Program Response:

Insert Screenshots of the response of each command executed in the laboratory activity.

Final Answer:

Please TYPE the final answer printed by the system. Use appropriate subscripts and superscripts
if needed. If possible, utilize the equation in the insert tab of MS Word.

CREDITS TO ENGR. RONEL V. VIDAL, PECE 18

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy