绘制H(s)=(1-s)(1-2s)/(1+0.5s)(1+3s) 的相位上下界的matlab程序
时间: 2023-08-18 09:07:09 浏览: 44
以下是绘制 H(s) 相位上下界的 Matlab 程序:
```matlab
syms s
% 定义 H(s)
H = (1-s)*(1-2*s)/(1+0.5*s)/(1+3*s);
% 计算相位角
phi = angle(H);
% 计算相位上下界
phi_upper = pi/2 - atan(2*s);
phi_lower = -pi/2 - atan(0.5*s);
% 绘制相位角和相位上下界
fplot(phi, [-10, 10], 'LineWidth', 2);
hold on;
fplot(phi_upper, [-10, 10], '--', 'LineWidth', 2);
fplot(phi_lower, [-10, 10], '--', 'LineWidth', 2);
grid on;
legend('相位角', '相位上界', '相位下界');
xlabel('s');
ylabel('相位角(弧度)');
```
运行该程序,即可绘制出 H(s) 的相位角和相位上下界图像。
相关问题
H(s)=(1-s)(1-2s)/(1+0.5s)(1+3s) 的伯德图分析
首先,将 H(s) 表示为分子多项式和分母多项式的比值形式:
H(s) = (1 - s)(1 - 2s) / [(1 + 0.5s)(1 + 3s)]
然后,我们可以将分母多项式和分子多项式进行因式分解:
H(s) = [(1 - s)(1 - 2s)] / [(1 + 0.5s)(1 + 3s)]
= [(1 - s)(1 - 2s)] / [(1 + 0.5s)(1 + 3s)]
分母多项式中的两个一阶极点分别是 -2 和 -0.5,分母多项式中的一个二阶零点是 -1,分子多项式中的两个一阶零点分别为 1 和 0.5。
接下来,我们可以用伯德图来表示 H(s) 的频率响应。
首先,我们需要画出一个基准图,包括单位圆和正半轴,如下图所示:
![image.png](https://cdn.nlark.com/yuque/0/2021/png/286443/1632501659019-35f092c6-9a8b-475c-8a05-4a8d9cbe4ed9.png#clientId=u7e7a6dbf-22a0-4&from=paste&height=211&id=u70e5cbc3&margin=%5Bobject%20Object%5D&name=image.png&originHeight=211&originWidth=377&originalType=binary&ratio=1&size=5868&status=done&style=none&taskId=u2c9f13b9-cdb3-4c36-a0c9-fa216c9f183)
然后,我们将极点和零点的位置绘制在伯德图上。对于每个一阶极点或零点,我们在图上画一条曲线,该曲线与实轴相交,并且与单位圆相切(在极点的情况下,曲线向单位圆弯曲);对于每个二阶极点,我们在图上画两条曲线,这些曲线在实轴上相交,并且在单位圆上不相交。下图显示了 H(s) 的伯德图:
![image.png](https://cdn.nlark.com/yuque/0/2021/png/286443/1632501690207-42e67fbb-5d06-4763-a2a1-6b3f9d3fc5f1.png#clientId=u7e7a6dbf-22a0-4&from=paste&height=229&id=u1d9ccf76&margin=%5Bobject%20Object%5D&name=image.png&originHeight=229&originWidth=398&originalType=binary&ratio=1&size=8031&status=done&style=none&taskId=u2c9f13b9-cdb3-4c36-a0c9-fa216c9f183)
从伯德图中可以看出,H(s) 有两个极点(一个在实轴左侧,一个在实轴右侧)和两个零点(一个在实轴左侧,一个在实轴右侧)。极点和零点的位置决定了 H(s) 的频率响应。在伯德图中,我们可以看到 H(s) 在 0 处有一个零点,因此在低频时增益为 0;在 1 和 0.5 处有两个零点,因此在这两个频率处增益为最大值;在 -0.5 处有一个极点,因此在该频率处具有一个陡峭的下降;在 -2 处有一个极点,因此在高频时增益趋于 0。
已知一负反馈控制系统,其中K(s)=K/(2s+1)(s+1)(0.5s+1),Lead-Compensastor/Gc(s)为超前校正装置的传递函数,设计超前校正装置,使系统的位置误差系数=5,相角裕度大于等于40度, (1)绘制校正前及校正后系统的Bode图; (2)求校正前、后系统的相位裕量; (3)使用MATLAB验证设计结果。
首先,根据位置误差系数的定义,有:
$$
K_p = \lim_{s \to 0} \frac{sG_c(s)K(s)}{1+sG_c(s)K(s)} = \frac{1}{1+K_p}
$$
将K(s)代入上式,整理得到:
$$
K_p = \lim_{s \to 0} \frac{sG_c(s)K}{(2s+1)(s+1)(0.5s+1)+sG_c(s)K} = \frac{1}{1+K_p}
$$
化简得到:
$$
K_p^2 + K_p = \frac{K}{K_1}
$$
其中,$K_1 = (1/2)(1)(1/2) = 1/4$。
因为位置误差系数要求为5,所以$K_p = 4$,代入式子求得$K = 63.75$。
接下来考虑相角裕度。首先,根据Bode图的知识,可以知道,超前校正器的传递函数为:
$$
G_c(s) = \frac{aTs+1}{Ts+1}
$$
其中,$T$为超前时间常数,$a$为增益。为了使相角裕度大于等于40度,我们需要满足以下不等式:
$$
\angle K(s)G_c(s) \geq -180^\circ + \phi_m = -140^\circ
$$
其中,$\phi_m = 40^\circ$为相角裕度。带入$K(s)$和$G_c(s)$,整理得到:
$$
\angle \frac{K a T s^2 + (2K a T + K + 2a) s + K + a}{(2Ts^2 + 3s + 2)(s+1)} \geq -140^\circ
$$
通过计算不等式左侧的相角,可以得到一个关于$T$和$a$的不等式。为了满足不等式,我们可以选择$T$和$a$的某些值进行设计。
为了简化计算,我们可以先选择一个$a$的值,然后根据不等式求出对应的$T$的范围,再在这个范围内选择一个$T$的值。
假设$a=2$,则不等式化简为:
$$
\angle (8T^2s^2 + 33Ts + 23) - \angle (2s+1) - \angle (s+1) - \angle (0.5s+1) \geq -140^\circ
$$
经过计算,可以得到:
$$
\arctan \frac{33T}{16T^2+23} - \arctan 1 - \arctan 1 - \arctan 0.5 \geq -140^\circ
$$
通过求解上述不等式,可以得到:
$$
1.02 \leq T \leq 1.95
$$
在这个范围内选择一个$T$的值,然后带入$G_c(s)$和$K(s)$,求得校正后系统的传递函数$G(s)$。最后,绘制校正前及校正后系统的Bode图,求出相位裕量,并使用MATLAB验证设计结果。