I want to envelope the damped curve with an exponential function passing through the peak points. Can someone please help?

8 views (last 30 days)
X = A1(exp(-alpha*t)).*cos(wd*t)+ A2*(exp(-alpha*t)).*sin(wd*t)* is the equation of the damped curve.
The parameters are t=0:0.000050:0.1; A1 = 12.87701558; A2 = -12.70012814; alpha = 67.91641; wd = 4770.680551
The equation of the enveloping curve is I = Io * exp(-67.91641*t)
where Io is the peak values of the damped curve
I am attaching the image of damped curve as well as its enveloping curve through peak points.

Accepted Answer

Ameer Hamza
Ameer Hamza on 21 Jun 2018
Since it is a second-order system, the envelop parameter Io can be analytically expressed as a function of A1 and A2. The following function follows from the trigonometric identities.
Io = sqrt(A1^2+A2^2);
Try the following code,
t=0:0.000050:0.1;
A1 = 12.87701558;
A2 = -12.70012814;
alpha = 67.91641;
wd = 4770.680551;
X = A1*(exp(-alpha*t)).*cos(wd*t)+ A2*(exp(-alpha*t)).*sin(wd*t);
Io = sqrt(A1^2+A2^2);
I = Io * exp(-67.91641*t);
plot(X);
hold on;
plot(I, 'Color', 'r')
plot(-I, 'Color', 'r')
  6 Comments
Neha Sinha
Neha Sinha on 25 Jun 2018
envelop = @(parameter, t) parameter(1)*exp(-parameter(2)*tPeak);
envelopErrorFcn = @(parameter) sum(abs((envelop(parameter, t) - peakValues)));
solution = fmincon(envelopErrorFcn, [0 0], [], []);
plot(t, i, tPeak, envelop(solution, tPeak), 'r-+', tPeak, -envelop(solution, tPeak), 'r-+')
Can you please explain me what's parameter here and how are these codes working?
Ameer Hamza
Ameer Hamza on 25 Jun 2018
The line
envelop = @(parameter, t) parameter(1)*exp(-parameter(2)*tPeak);
define the equation you want the data to fit. The parameters are the constant values of your model. Compare it with your equation of I to see what are parameter(1) and parameter(2).
The next line defines an error function,
envelopErrorFcn = @(parameter) sum(abs((envelop(parameter, t) - peakValues)));
We want such values of parameters which minimize the difference between predicted and actual values. In the next step, we can use a numerical optimizer (fmincon) to find the values of parameter.

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!