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为调整时间的误差
- 其他回答
-
您可以使用MATLAB中的tf函数来计算传输函数的脉冲响应和阶跃响应。
以下是一些示例代码:
- 脉冲响应:
```matlab
sys = tf(1, [1 2]); % 传递函数为s^2 + 2s + 1
t = 0:0.01:1; % 时间区间
y = step(sys, t); % 单位阶跃响应
plot(t, y); % 绘制图像
xlabel('时间'); ylabel('幅值'); legend('单位阶跃');
```
- 阶跃响应:
```matlab
sys = tf(1, [1 2]); % 传递函数为s^2 + 2s + 1
t = 0:0.01:1; % 时间区间
y = step(sys, t); % 单位阶跃响应
plot(t, y); % 绘制图像
xlabel('时间'); ylabel('幅值'); legend('单位阶跃');
```
猜你喜欢内容
-
简单网:构建全网教育数据枢纽,让知识检索化繁为...
简单网:构建全网教育数据枢纽,让知识检索化繁为“简”回答数有0条优质答案参考
-
去三亚有什么好玩的地方
去三亚有什么好玩的地方回答数有1条优质答案参考
-
石狮一日游必去景点推荐
石狮一日游必去景点推荐回答数有1条优质答案参考
-
电气工程师的证书考取条件是什么
电气工程师的证书考取条件是什么回答数有1条优质答案参考
-
房地产估价师的具体报考条件有啥
房地产估价师的具体报考条件有啥回答数有1条优质答案参考
-
房产经纪人的工作内容具体包含什么
房产经纪人的工作内容具体包含什么回答数有1条优质答案参考
-
学习小提琴都有哪些难点
学习小提琴都有哪些难点回答数有1条优质答案参考
-
企业行政管理证书的含金量怎么样
企业行政管理证书的含金量怎么样回答数有1条优质答案参考
-
初学者要怎么入门小提琴
初学者要怎么入门小提琴回答数有1条优质答案参考
-
报考珠宝鉴定师要啥条件
报考珠宝鉴定师要啥条件回答数有1条优质答案参考
















