| 楼主的方法不错,怎么会控制不好呢。我帮你写了两个函数。你看看是不是和你的心意。 function y = ramp_input(t, A, Tr, Td)
 % Version: 06.03.2007
 % Author: Wang,Lei
 % This function can be used to generate a ramp signal
 % Input
 % - t           time
 % - A           amplitude
 % - Tr          rise time
 % - Td          delay
 % Output
 % - y           y = A/Tr * ( t - Td );
 % init output variable y
 y = zeros(size(t));
 % generate y
 temp_index = find(t>Td);                            % find 0
 y(temp_index) = A/Tr * ( t(temp_index) - Td );      % rise
 temp_index = find(y>A);                             % find the saturated region
 y(temp_index) = A;                                  % set the end value
 
 function y = pulse_input( t, A, Tr, Tf, Tdr, Tdf )
 % Version: 06.03.2007
 % Author: Wang,Lei
 % This function can be used to generate a ramp signal
 % Input
 % - t           time
 % - A           amplitude
 % - Tr          rise time
 % - Tf          fall time
 % - Tdr         delay at rising edge
 % - Tdf         delay at falling edge
 % Output
 % - y           y = ramp_input(t, A, Tr, Tdr) - ramp_input(t, A, Td, Tdf);
 y =  ramp_input(t, A, Tr, Tdr) - ramp_input(t, A, Tf, Tdf);
 |