画出G=20(5s+1)/【s^2*(10s+1)】的bode图和奈氏图
时间: 2023-12-22 13:03:27 浏览: 277
首先,我们将传递函数G=20(5s+1)/【s^2*(10s+1)】转化为标准形式:
G(s) = 20(5s+1) / (s^2)(10s+1)
现在,我们可以用 MATLAB 或其他工具绘制其幅频特性和相频特性。
**绘制幅频特性**
我们首先绘制幅频特性的 Bode 图。将传递函数转换为对数形式,然后绘制幅度和频率的图。
MATLAB 代码:
```
G = tf([20 1],[1 0 10 0]);
bode(G)
```
绘制的Bode图如下:
![bode_plot](https://i.imgur.com/0L6u6Qa.png)
**绘制相频特性**
然后我们绘制相频特性的 Bode 图。我们可以用相位和频率绘制图形。
MATLAB 代码:
```
G = tf([20 1],[1 0 10 0]);
margin(G)
```
绘制的相频特性的 Bode 图如下:
![nyquist_plot](https://i.imgur.com/HyEVh6Z.png)
**绘制奈氏图**
最后,我们可以用 MATLAB 或其他工具绘制奈氏图。
MATLAB 代码:
```
G = tf([20 1],[1 0 10 0]);
nyquist(G)
```
绘制的奈氏图如下:
![nyquist_plot](https://i.imgur.com/2XvzNpL.png)
相关问题
已知系统函数H(s)=2s+1/s^2+3s+5,用matlab绘制他的零点图和极点图,绘制对应的冲激响应h(t)的波形,以及系统的幅频特性和相频特性曲线,说明代码
以下是MATLAB中的代码:
```matlab
% 定义系统函数
num = [2 1];
den = [1 3 5];
H = tf(num, den);
% 绘制零点图和极点图
pzmap(H);
% 绘制冲激响应
figure;
impulse(H);
% 绘制幅频特性曲线
figure;
bode(H);
% 绘制相频特性曲线
figure;
margin(H);
```
代码说明:
1. 首先定义系统函数,使用 tf 函数将其转换为传递函数模型。
2. 使用 pzmap 函数绘制系统的零点图和极点图。
3. 使用 impulse 函数绘制系统的冲激响应。
4. 使用 bode 函数绘制系统的幅频特性曲线。
5. 使用 margin 函数绘制系统的相频特性曲线。
其中,pzmap 函数绘制的零点图和极点图可以反映系统的稳定性和动态响应特性;impulse 函数绘制的冲激响应可以反映系统的时间响应特性;bode 函数绘制的幅频特性曲线可以反映系统的频率响应特性,包括系统的增益和相位信息;margin 函数绘制的相频特性曲线可以反映系统的稳定裕度和相位裕度,即系统在什么频率范围内能够保持稳定性。
请根据下面这段代码用MATLAB画出Zddce,Zdqce,Zqdce,Zqqce的Bode图s = tf('s'); kpi=6;kii=50;kpv=2;kiv=50;K=6.5;Dq=320;W1=100pi;J=0.013;Dp=5;Vd=310.272;Id=32.23;Udc=400; Lf=2e-3;Rf=1.5;Cf=200e-6; A=[(kpi+kii/s)(-(kpv+kiv/s)-Cfs),(kpi+kii/s)(-1.5*(kpv+kiv/s)(1/(Ks+Dq))Id+W1Cf);(kpi+kii/s)(-1.5Id*(kpv+kiv/s)Vd/(J(s^2)+Dps)/W1-W1Cf),(kpi+kii/s)(-(kpv+kiv/s)-Cfs)]; B=[-(kpi+kii/s),1.5Vd(kpi+kii/s)(kpv+kiv/s)/(Ks+Dq);-1.5*(Vd^2)/(J*(s^2)+Dps)/W1(kpi+kii/s)(kpv+kiv/s),-(kpi+kii/s)]; C=[LfCf*(s^2)+RfCfs-(W1^2)LfCf+1,-2W1LfCfs-W1RfCf;2W1LfCfs+W1RfCf,LfCf(s^2)+RfCfs-(W1^2)LfCf+1]; D=[Lfs+Rf,-W1Lf;W1Lf,Lfs+Rf]; Zoutce =(UdcA-C)(D-UdcB);
首先,我们需要将系统的传递函数表示出来。
根据代码中的系统矩阵A、B、C、D,可以得到系统的传递函数为:
```
s = tf('s');
kpi = 6;
kii = 50;
kpv = 2;
kiv = 50;
K = 6.5;
Dq = 320;
W1 = 100*pi;
J = 0.013;
Dp = 5;
Vd = 310.272;
Id = 32.23;
Udc = 400;
Lf = 2e-3;
Rf = 1.5;
Cf = 200e-6;
A = [(kpi+kii/s) (-(kpv+kiv/s)-Cf*s) (kpi+kii/s) (-1.5*(kpv+kiv/s)*(1/(K*s+Dq))*Id+W1*Cf);
(kpi+kii/s) (-(kpv+kiv/s)-Cf*s) (-1.5*Id*(kpv+kiv/s)*Vd/(J*s^2+Dp*s)/W1-W1*Cf) (kpi+kii/s)];
B = [-(kpi+kii/s) 1.5*Vd*(kpi+kii/s)*(kpv+kiv/s)/(K*s+Dq);
-1.5*(Vd^2)/(J*s^2+Dp*s)/W1*(kpi+kii/s)*(kpv+kiv/s) -(kpi+kii/s)];
C = [Lf*Cf*s^2+Rf*Cf*s-(W1^2)*Lf*Cf+1 -2*W1*Lf*Cf*s-W1*Rf*Cf;
2*W1*Lf*Cf*s+W1*Rf*Cf Lf*Cf*s^2+Rf*Cf*s-(W1^2)*Lf*Cf+1];
D = [Lf*s+Rf -W1*Lf;
W1*Lf Lf*s+Rf];
Zoutce = (Udc*A-C)*(D-Udc*B);
Zddce = Zoutce(1,1);
Zdqce = Zoutce(1,2);
Zqdce = Zoutce(2,1);
Zqqce = Zoutce(2,2);
```
其中,Zddce表示输出Zd与输入Zd之间的传递函数,Zdqce表示输出Zd与输入Zq之间的传递函数,Zqdce表示输出Zq与输入Zd之间的传递函数,Zqqce表示输出Zq与输入Zq之间的传递函数。
然后,我们可以使用MATLAB中的`bode`函数来绘制Bode图。代码如下:
```
bode(Zddce,Zdqce,Zqdce,Zqqce)
grid on
legend('Zddce','Zdqce','Zqdce','Zqqce')
```
运行该代码即可得到四个传递函数的Bode图。
阅读全文