专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

matlab怎么求传输函数的脉冲响应和阶跃响应_CSS学习

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/4 4:35:55       共计:3624 浏览

matlab怎么求传输函数的脉冲响应和阶跃响应?

对于一个常规的传递函数,我们在进行了阶跃仿真后经常需要给出对应的响应指标,

sys = tf(1,[1 2 3])

y = step(sys)

figure

plot(y)

求解对应的阶跃指标结果

%% 求阶跃响应的典型指标

function [OverShoot, RiseTime, PeakTime, AdjustTime, SteadyStateError] = GetPerformanceOfStepResponse(t, y, stepvalue, gTolerance)

% 超调量Mp:最大超调量规定为在暂态期间输出超过对应于输入的终值的最大偏离量

% 上升时间tr:在暂态过程中,输出第一次达到对应于输入的终值的时间(从t=0开始计时)

% 峰值时间tp:对应于最大超调量发生的时间(从t=0开始计时)

% 调整时间ts:输出与其对应于输入的终值之间的偏差达到容许范围(一般取5%或2%)所经历的暂态过程时间(从t=0开始计时)

% 稳态误差err:给定输入与稳态输出的差值

% 超调量和峰值时间

[OSValue, OSIndex] = max(y);

OverShoot = (OSValue - stepvalue)/stepvalue*100;

PeakTime = t(OSIndex);

% 上升时间

index = find(y >= stepvalue, 1, 'first');

RiseTime = t(index);

% 调整时间和稳态误差

index1 = find(y <= stepvalue*(1 - gTolerance), 1, 'last'); % 容许范围由全局变量指定

index2 = find(y >= stepvalue*(1 + gTolerance), 1, 'last');

if isempty(index2) % 如果没有超调量,此值为空

index = index1;

else

index = max(index1, index2);

end

index = max(index1, index2);

AdjustTime = t(index);

SteadyStateError = mean(y(index:end)) - stepvalue; % 这里的稳态误差计算为调整时间后的数据平均值与给定输入的差,概念上是最后时刻的值与给定输入的差

end

其中 t为时间,y为响应结果,stepvalue为阶跃数值,gTolerance为调整时间的误差

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:Mht格式和Mhtml格式到底有什么不同_CSS学习 | ·下一条:华硕hdaudio怎么连_CSS学习

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有