利用matlab求零输入响应
时间: 2023-07-13 07:14:12 浏览: 111
求解零输入响应需要先知道系统的传递函数或差分方程,然后可以利用MATLAB进行求解。以下是两种方法:
方法一:利用LTI对象进行求解
假设已知系统的传递函数为H(s),可以通过以下步骤求解零输入响应:
1. 创建LTI对象:`sys = tf(H)`
2. 计算零输入响应:`zi = initial(sys)`
3. 绘制零输入响应曲线:`plot(zi)`
方法二:利用差分方程进行求解
假设已知系统的差分方程为y(n) = a1*y(n-1) + a2*y(n-2) + ... + b0*x(n) + b1*x(n-1) + b2*x(n-2) + ...,可以通过以下步骤求解零输入响应:
1. 定义差分方程系数:`a = [a1, a2, ...]`,`b = [b0, b1, b2, ...]`
2. 计算系统的单位脉冲响应:`h = impz(b, a)`
3. 定义输入信号,可以是任意形式的信号,比如阶跃信号、正弦信号等。
4. 计算零输入响应:`zi = filter(h, 1, x)`
其中x为输入信号。最后绘制零输入响应曲线即可。
下面给出一个例子:
假设有一个二阶系统,其传递函数为:
H(s) = (s+2) / (s^2 + 3s + 2)
现在要求系统对于一个阶跃输入的零输入响应。
MATLAB代码如下:
```
% 定义系统的传递函数模型
num = [1 2];
den = [1 3 2];
sys = tf(num, den);
% 计算零输入响应
zi = initial(sys);
% 绘制零输入响应曲线
plot(zi);
xlabel('Time (s)');
ylabel('Zero Input Response');
```
运行上述代码,即可得到系统的零输入响应曲线。
阅读全文