系统传递函数g(s)=6(s+3)/s2+3s+2,画出系统的单位跃迁响应和0极点图
时间: 2023-12-19 07:07:04 浏览: 27
好的,我知道了。首先,我们来绘制单位跃迁响应图。为了绘制单位跃迁响应图,我们需要将系统传递函数进行部分分式分解,得到其形式如下:
```
g(s) = 3/(s+1) - 2/(s+2)
```
现在,我们可以使用拉普拉斯逆变换来计算系统的单位跃迁响应。根据拉普拉斯逆变换的定义,我们有:
```
y(t) = L^-1{G(s)} = L^-1{3/(s+1)} - L^-1{2/(s+2)}
```
计算每个项的拉普拉斯逆变换,我们得到:
```
y(t) = 3*e^(-t) - 2*e^(-2t)
```
因此,系统的单位跃迁响应为:
```
y(t) = 3*e^(-t) - 2*e^(-2t)
```
现在,我们来绘制0极点图。系统传递函数的分母为二次方程,其根可以使用求根公式求解。我们有:
```
s = (-3 ± sqrt(1))/2
s1 = -2
s2 = -1
```
因此,系统的极点为s1=-2和s2=-1。同时,系统传递函数的分子为6(s+3),因此系统的零点为s=-3。将这些点绘制在s平面上,我们得到以下0极点图:
```
x
|
x-----o-----o
-3 | -1
|
```
其中,圆点表示极点,x表示零点。
相关问题
自定义一个函数求1+1/2+1/3+……+1/n,编写程序,在主函数中求s=s1+s2+s3的值,其中: s1=1+1/2+1/3+……+1/5 s2=1+1/2+1/3+……+1/10 s3=1+1/2+1/3+……+1/20
这道题目需要自定义一个函数来求1+1/2+1/3+……+1/n的和,然后在主函数中分别计算s1、s2、s3的值。下面是一个可能的解法:
```
#include <stdio.h>
// 自定义函数,用于求1+1/2+1/3+……+1/n的和
float sum(int n){
float s = 0;
for(int i=1; i<=n; i++){
s += 1.0/i;
}
return s;
}
int main(){
float s1, s2, s3;
s1 = sum(5);
s2 = sum(10);
s3 = sum(20);
printf("s1=%f\ns2=%f\ns3=%f\n", s1, s2, s3);
return 0;
}
```
在这个程序中,我们定义了一个名为sum的函数,用于求1+1/2+1/3+……+1/n的和。在主函数中,我们分别调用sum函数来计算s1、s2、s3的值,并将结果打印出来。
编写函数计算s=1+1/2!+1/3!+…+1/n!
函数sum可以计算s=1+1/2!+1/3!+…+1/n!,其中n由终端输入,n!的计算在函数fac中实现。函数sum的代码如下:
```
double sum(int n) {
double s = 1.0;
for (int i = 2; i <= n; i++) {
s += 1.0 / fac(i);
}
return s;
}
```
其中,fac函数的定义如下:
```
int fac(int n) {
int f = 1;
for (int i = 2; i <= n; i++) {
f *= i;
}
return f;
}
```