How to plot a trapezoidal pulse in Matlab?
48 次查看(过去 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 个评论
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
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
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 个)
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)
0 个评论
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,:))
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!