当stepinfo函数在传递函数(即stepinfo(tf) )上运行时,典型结果是:
RiseTime: 52.2052 SettlingTime: 85.4916 SettlingMin: 0.9041 SettlingMax: 1.0012 Overshoot: 0.1192 Undershoot: 0 Peak: 1.0012 PeakTime: 132.8773 我对stepinfo进行了一些研究。似乎它返回一个结构。所以我将上述结果分配给一个变量,并使用size()检查了它的大小。这是一个1x1的矩阵。
这让我非常确信,如果不首先将其分配给字符串然后执行字符串操作,就无法从该结构中提取单个数据成员。
我需要Overshoot和PeakTime值,有人知道在不使用PO和Tp公式的情况下-并且没有巨大的字符串混乱的情况下获取这些值的最佳方法吗?
回答:
MATLAB中的所有内容均视为矩阵。单个结构元素(在示例中为
stepinfo返回的
stepinfo )是struct类型的1比1矩阵。您可以像这样访问结构的字段:
S = stepinfo(sys); %# Returns a structure, stored in variable S overShoot = S.Overshoot; %# Get the value in the Overshoot field peakTime = S.PeakTime; %# Get the value in the PeakTime field 有关使用结构的更多信息,请查看
此文档页面 。
更多&回答...