针对下面这个问题用matlab进行仿真的程序代码:设有不稳定系统:(1-z-1 )y(k) =z -1(1+0.9z*-1)u(k),期望传递函数的分母多项式为Am(z-1)=(1-0.5z-1),期望输出ym跟踪参考输入yr,且无稳态误差。试按照极点配置方法设计控制系统,并写出控制表达式。
时间: 2024-03-05 22:51:48 浏览: 70
好的,我会根据你的要求回答问题,并且不会透露你的任何要求。关于你的问题,我可以提供一些思路和代码段供参考。
首先,根据极点配置方法,我们需要将系统的极点配置在期望的位置上。由于期望传递函数的分母多项式为Am(z-1)=(1-0.5z-1),因此我们可以计算出期望的极点位置为z=0.5。
接下来,我们需要设计控制器来实现极点配置。这里我们采用PID控制器,并且选取比例系数Kp=1,积分时间常数Ti=1,微分时间常数Td=0.1。
根据PID控制器的控制表达式,我们可以得到控制器的输出表达式为:
u(k) = Kp * e(k) + Ki * sum(e(1:k)) + Kd * (e(k) - e(k-1))
其中,e(k)表示期望输出ym与参考输入yr之间的误差,Ki和Kd分别表示积分和微分系数。这里我们可以通过MATLAB中的pid函数来实现PID控制器的设计。
下面是MATLAB代码的部分实现:
```matlab
% 系统参数
Am = [1 -0.5]; % 期望传递函数分母多项式
Bm = [0 1 0.9]; % 期望传递函数分子多项式
Ap = [1 -1]; % 实际传递函数分母多项式
Bp = [0 1 -1]; % 实际传递函数分子多项式
% 极点配置
p = 0.5; % 期望极点位置
K = place(Ap', Bp', [p p])'; % 计算控制器增益矩阵
% PID控制器参数
Kp = 1; % 比例系数
Ti = 1; % 积分时间常数
Td = 0.1; % 微分时间常数
% 设计PID控制器
C = pid(Kp, Ti, Td);
% 仿真系统响应
sim('unstable_system');
```
在上述代码中,我们通过place函数计算出了控制器的增益矩阵K,并且通过pid函数设计了PID控制器C。最后,我们通过sim函数进行系统的仿真,得到系统的响应结果。
需要注意的是,上述代码只是一个简单的示例,实际应用中可能需要根据具体情况进行调整和优化。
阅读全文