Matlab中impulse函数的语法是什么?

MATLAB中impulse函数的语法详 在MATLAB控制系统工具箱中,impulse函数用于计算和绘制线性时不变LTI系统的单位冲激响应,是分析系统动态特性的重要工具。其语法结构多样,可满足不同场景下的调用需求,以下从基础到进阶依次说明。 一、基本调用格式 impulse(sys)

此为最常用形式,直接绘制LTI系统模型sys的单位冲激响应曲线。其中,sys需为LTI对象,可通过tf传递函数、ss状态空间、zpk零极点增益等函数创建。

示例:创建传递函数 ( G(s) = frac{1}{s^2 + 3s + 2} ) 并绘制冲激响应: ```matlab sys = tf([1], [1, 3, 2]); impulse(sys); ``` 二、指定时间范围的调用 impulse(sys, t)

通过参数t自定义时间范围,t需为单调递增的向量单位:秒。函数将在t指定的时间点上计算并绘制冲激响应,适用于需要聚焦特定时域区间的场景。

示例:在0至10秒内,以0.1秒为间隔绘制响应: ```matlab t = 0:0.1:10; impulse(sys, t); ``` 三、返回响应数据不绘图 [y, t] = impulse(sys)

仅返回冲激响应数据而不自动绘图,其中y为响应值矩阵每行对应一个系统输出,t为自动生成的时间向量。多输出系统中,y的列数等于系统输出数量。

示例:获取2输出状态空间系统的响应数据: ```matlab A = [-1, -2; 3, -4]; B = [1; 0]; C = [0, 1; 1, 0]; D = 0; sys = ss(A, B, C, D); % 2输出LTI系统 [y, t] = impulse(sys); % y为2列矩阵每列对应1个输出 ``` 四、多输入系统处理 impulse(sys, t, iu)

针对多输入系统,通过iu指定输入通道索引整数,仅绘制该输入通道的单位冲激响应。若省略t,时间范围自动生成;若省略iu,默认绘制所有输入通道的响应分图显示。

示例:绘制2输入1输出系统的第2输入响应: ```matlab sys = tf({[1], [1, 2]}, {[1, 1], [1, 3, 2]}); % 2输入1输出传递函数矩阵 impulse(sys, [], 2); % 第2输入通道的冲激响应[]表示默认时间 ``` 五、自定义绘图属性 impulse(..., 'PropertyName', PropertyValue)

通过附加参数设置曲线的颜色、线型、线宽等绘图属性,支持MATLAB图形对象的标准属性。常见属性包括'Color'颜色、'LineStyle'线型、'LineWidth'线宽。

示例:绘制红色虚线、线宽为2的冲激响应: ```matlab impulse(sys, 'r--', 'LineWidth', 2); ```

以上为impulse函数的核心语法形式,涵盖基础绘图、时间控制、数据获取、多输入处理及自定义样式等场景。使用时需确保sys为合法LTI模型,且时间向量t满足单调递增,以确保结果准确。

延伸阅读: