MATLAB建立控制系统的零极点增益模型G(s)=1/s(s-1)(s²+s+1)
时间: 2024-09-09 20:16:06 浏览: 172
MATLAB是一种广泛用于信号处理和控制系统设计的高级编程环境。要建立给定的控制系统传递函数G(s),我们可以使用其内置的系统建模工具。对于传递函数G(s) = 1 / (s * (s - 1) * (s^2 + s + 1)),它是一个典型的4th阶线性环节,可以按照以下步骤创建:
1. 首先,将传递函数转换成零、极点形式。这个传递函数的零点是z1=0, z2=1, 极点是p1=-0.5±j*0.866(复数极点),p2=0。
2. 使用`zpk`函数来创建零极点模型。语法如下:
```
G = zpk(zeros, poles, gains)
```
其中 `zeros` 是零点向量,`poles` 是极点向量,`gains` 是每个极点处的比例因子(在这个例子中,所有的极点比例因子都是1,因为G(s)没有明显的分母系数)。
3. 应用上述信息:
```matlab
zeros = [0 1]; % 零点
poles = [-0.5 + 0.866i -0.5 - 0.866i 0]; % 复数极点
G = zpk(zeros, poles, ones(size(poles))); % 极点比例因子全为1
```
4. 现在,变量`G`就是一个表示给定传递函数的LTI(线性时间不变)系统对象。你可以进一步分析它的特性,绘制Bode图,或者进行控制器设计等操作。
相关问题
只用matlab完成以下实验:非单位反馈控制系统的传递函数为:G(s)=104(s²+8s+20)/s(s+4),H(s)=0.2/(s+2),绘制系统的根轨迹,确定具有最小阻尼比的放大系数 A,并用零、极点、增益形式表示闭环传递函数。
在MATLAB中完成这个非单位反馈控制系统的根轨迹分析和闭环传递函数设置,你可以按照以下步骤操作:
1. **定义系统传递函数**:
```Matlab
G = tf(104, [1, 8, 20]);
H = tf(0.2, [1, 2]);
```
这里`tf()`函数用于创建传递函数模型。
2. **计算开环传递函数**:
```Matlab
openLoopTF = G * H;
```
3. **绘制根轨迹图**:
```Matlab
[rts, k] = root locus(openLoopTF);
plot(rts)
xlabel('Root location in complex plane')
ylabel('Magnitude of K')
title('Root Locus for the System')
```
运行`root locus()`会生成根轨迹图,找出最大增益`k`对应的阻尼比。
4. **找到最小阻尼比的放大系数A**:
根轨迹图上,阻尼比最小的位置对应的是最小衰减率的闭环系统。通过观察图形或利用`minreal()`函数找到阻尼比最小的闭合回路的闭环传递函数,假设最小阻尼比下`A`的值为`A_min`。
5. **求取闭环传递函数**:
```Matlab
A_min = minreal(A_min, openLoopTF);
closedLoopTF = feedback(G*H*A_min, 1);
```
`feedback()`函数用于构建闭环控制系统。
6. **展示闭环传递函数的形式**:
```Matlab
num_clo, den_clo = closedLoopTF.num, closedLoopTF.den;
disp(['闭环传递函数为: ', num2str(num_clo), ' / (', num2str(den_clo), ')']);
```
这将显示闭环系统的零极点增益表达式。
阅读全文