How to apply Heaviside function over external force?

2 ビュー (過去 30 日間)
Alireza Babaei
Alireza Babaei 2022 年 8 月 31 日
回答済み: Walter Roberson 2022 年 8 月 31 日
Dear all,
Suppose we have a harmonic external force in time-domain, and I need to apply this force for only 5 seconds and then get the system response for 100 seconds.
System is defied with all dynamic properties like mass, stuffness and damping ...,
  • there is easier way to handle it via Simulink, but we need to script the code in time-domain.
The code we have, applies the external force during the entire time interval which is not our interest. We want to apply the excitation only for a short time interval like 3-5 seconds but not more.
Any ideas?
m = 1; % mass
c1 = 0.5; % damping
k = 1; % stiffness
ccr = 2*sqrt(m*k); % critical damping
zeta1 = c1/ccr; % damping ratio
w = sqrt(k/m); % w stands for natural frequency
%% Bode plot and TF generation
mytf1 = tf([0,01],[1,2*zeta1*w,w^2]) % creating the T.F.
% time-domain
v0 = 0.5; %I.C. in velocity in m/s
y0 = 0.05; % I.C. initial displacement in meteres
t = linspace(0 , 100 , 1000);
wd = w*sqrt(1 - zeta1^2); % damped frequency
yh = exp(-zeta1.*w.*t).*(y0.*cos(wd.*t)+((v0+zeta1.*w.*y0)/wd).*sin(wd.*t));
% define the Harmonic Excitation
we = 0.25
% frequency of the system - Resonance
F0 = 0.1; % F0 is the amplitude of the harmonic excitations in meters
F = F0.*exp(1j.*we.*t);
yp = (F0 ./ (w^2 - we^2 + 2*zeta1*w*we)) .* exp(1j.*we.*t);
y = yh + yp;
figure(2)
plot(t , y , 'b');
hold on
plot(t , yp , 'r');
hold on
plot(t , yh , 'k');
hold off
% set(gca , 'FontSize' , 12)
legend({'both transient and steady-state' , 'steady-state' , 'transient'} , 'FontSize' , 12)
grid on
figure(3)
plot(t , yp)
figure(4)
plot(t , y)

採用された回答

Walter Roberson
Walter Roberson 2022 年 8 月 31 日
The laplace of a rectangular pulse can be written like s*(1-exp(-s*h)) where h is the width of the pulse. This can be written s=tf('s') and then the above expression with numeric h value, getting a ss model as a result. Multiply by your tf to get a windowed version of the model.

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMATLAB についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by