How to plot a trapezoidal pulse in Matlab?

37 次查看(过去 30 天)
I want to plot a trapezoidal pulse that has user defined rise time and fall time i.e. slope of the edges of the trapezoid can be set by me.
  6 个评论
ANWESHA
ANWESHA 2014-7-16
Can you please explain me how it is working, so that I can modify it according to my need. Actually i have to plot it with respect to time and continuous pulse so that it is the reverse in the next period of time like in the image given below
Nur Izzati Aliah
Nur Izzati Aliah 2022-6-29
Name = 'Pizza_Hut_Service';
Type = 'Mamdani';
Version = 2.0;
NumInputs = 2;
NumOutputs = 0;
NumRules = 0;
AndMethod = 'min';
OrMethod = 'max';
ImpMethod = 'min';
AggMethod = 'max';
DefuzzMethod = 'centroid';
Name = 'Arrival_Rate';
Range = [0 1];
x = [1 3 4 6];
NumMFs = 1;
MF1 = 'MF':'trapmf';[1 3 4 6]
MF1 = trapmf(x,[1 3 4 6]);
Can someone help with this to get the graph in trapezoidal graph? This is very urgent I really need help from all of you

请先登录,再进行评论。

采纳的回答

Jasmine
Jasmine 2014-7-16
function [] = trapezoidal_pulse (rise_time, fall_time, height, length)
pulse = zeros (2, 4);
pulse(1,2)=height;
pulse(2,2)=rise_time;
pulse(1,3)=height;
pulse(2,3)=pulse(2,2)+length;
pulse(2,4)=pulse(2,3)+fall_time;
plot(pulse(2,:),pulse(1,:))
  3 个评论
Jasmine
Jasmine 2014-7-17
I have managed to make it work for up to 2 cycles...
function [] = trapezoidal_pulse (initial_height, on_height, delay_time, rise_time, fall_time, time_on, period, cycles)
pulse(:,1) = [initial_height,0];
pulse(:,2) = [initial_height,delay_time];
pulse(:,3) = [on_height,pulse(2,2)+rise_time];
pulse(:,4) = [on_height,pulse(2,3)+time_on];
pulse(:,5) = [initial_height,pulse(2,4)+fall_time];
pulse(:,6) = [initial_height,period];
for i=2:cycles
pulse(:,3+(2*i)) = [initial_height,period*(i-1)];
pulse(:,4+(2*i)) = [initial_height,pulse(2,3+(2*i))+delay_time];
pulse(:,5+(2*i)) = [on_height,pulse(2,4+(2*i))+rise_time];
pulse(:,6+(2*i)) = [on_height,pulse(2,5+(2*i))+time_on];
pulse(:,7+(2*i)) = [initial_height,pulse(2,6+(2*i))+fall_time];
pulse(:,8+(2*i)) = [initial_height,period*i];
end
plot(pulse(2,:),pulse(1,:))

请先登录,再进行评论。

更多回答(4 个)

ANWESHA
ANWESHA 2014-7-17
Can please anyone help me to draw the pulse in matlab as given in the figure above?

vartan
vartan 2014-10-23
编辑:vartan 2014-10-23
This code should work for more than 2 cycles..
function [] = trap (initial_height, on_height, delay_time, rise_time, fall_time, time_on, period, cycles)
pulse(:,1) = [initial_height,0];
pulse(:,2) = [initial_height,delay_time];
pulse(:,3) = [on_height,pulse(2,2)+rise_time];
pulse(:,4) = [on_height,pulse(2,3)+time_on];
pulse(:,5) = [initial_height,pulse(2,4)+fall_time];
pulse(:,6) = [initial_height,period];
for i=2:cycles
pulse(:,1+(6*(i-1))) = [initial_height,period*(i-1)];
pulse(:,2+(6*(i-1))) = [initial_height,pulse(2,1+(6*(i-1)))+delay_time];
pulse(:,3+(6*(i-1))) = [on_height,pulse(2,2+(6*(i-1)))+rise_time];
pulse(:,4+(6*(i-1))) = [on_height,pulse(2,3+6*(i-1))+time_on];
pulse(:,5+(6*(i-1))) = [initial_height,pulse(2,4+6*(i-1))+fall_time];
pulse(:,6+(6*(i-1))) = [initial_height,period*i];
end
plot(pulse(2,:),pulse(1,:))
example:
trap (0, 1, 0, 1e-1, 1e-1,1 , 2, 5)

Jhon Lasso
Jhon Lasso 2017-11-2
buen dia necesito hacer un trapezoide en matlab en 2d como lo hago?

Seungmin Lee
Seungmin Lee 2018-7-5
编辑:Seungmin Lee 2018-7-5
i try to above same code...but the function code is error.
how to solve the problem...
function []= trap (0, 1, 0, 1e-1, 1e-1,1 , 2, 5,4)
pulse(:,1) = [initial_height,0];
pulse(:,2) = [initial_height,delay_time];
pulse(:,3) = [on_height,pulse(2,2)+rise_time];
pulse(:,4) = [on_height,pulse(2,3)+time_on];
pulse(:,5) = [initial_height,pulse(2,4)+fall_time];
pulse(:,6) = [initial_height,period];
for i=2:cycles
pulse(:,1+(6*(i-1))) = [initial_height,period*(i-1)];
pulse(:,2+(6*(i-1))) = [initial_height,pulse(2,1+(6*(i-1)))+delay_time];
pulse(:,3+(6*(i-1))) = [on_height,pulse(2,2+(6*(i-1)))+rise_time];
pulse(:,4+(6*(i-1))) = [on_height,pulse(2,3+6*(i-1))+time_on];
pulse(:,5+(6*(i-1))) = [initial_height,pulse(2,4+6*(i-1))+fall_time];
pulse(:,6+(6*(i-1))) = [initial_height,period*i];
end
plot(pulse(2,:),pulse(1,:))

Community Treasure Hunt

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

Start Hunting!

Translated by