matlab已知二阶震荡环节的传递函数,G=W^2/(s^2+2jW*s+W^2)其中W=0.4,j从0变化到2,求此系统的单位阶跃响应曲线、脉冲响应曲线和斜坡响应曲线。
时间: 2024-03-18 16:38:41 浏览: 221
可以使用MATLAB的控制系统工具箱来求解该问题。首先定义传递函数:
```matlab
W = 0.4;
s = tf('s');
G = W^2/(s^2+2*j*W*s+W^2);
```
接下来,可以使用step函数、impulse函数和lsim函数分别求解单位阶跃响应曲线、脉冲响应曲线和斜坡响应曲线:
```matlab
% 单位阶跃响应曲线
step(G)
% 脉冲响应曲线
impulse(G)
% 斜坡响应曲线
t = 0:0.01:10;
u = t;
lsim(G,u,t)
```
其中,step函数和impulse函数的结果直接为响应曲线,lsim函数的结果需要用plot函数绘制响应曲线:
```matlab
y = lsim(G,u,t);
plot(t,y)
```
运行以上代码即可得到所求的单位阶跃响应曲线、脉冲响应曲线和斜坡响应曲线。
相关问题
已知离散系统的结构如图一所示,其中采样周期0.7,试求r(t)=2 1(t)+2 1 t时, (1)G_0 (s)=2/s, (2)G_0 (s)=2/(s(s+1)), 1.系统无稳态误差且在最小拍内结束的数字控制器; 2.利用Matlab进行仿真,并对结果进行分析说明。
先来看第一个问题,针对r(t)=2 1(t)+2 1 t这个输入信号和系统的传递函数G_0(s),我们可以利用Z变换来求出数字控制器的传递函数G(z)。
首先,将r(t)的Z变换求出:
R(z) = 2z/(z-1)^2
然后,将G_0(s)的拉氏变换求出:
G_0(s) = 2/s
接下来,需要将G_0(s)转换成数字域的传递函数G(z)。利用欧拉公式,可以得到:
G(z) = G_0(s)|s=jw = 2/jw * (1 - e^(-jwT))/T
其中T=0.7为采样周期。将上述公式带入,得到:
G(z) = 2/(z-1) * (1 - z^(-1))/0.7
即为数字控制器的传递函数。对于这个数字控制器,它是一个无稳态误差的系统,并且在最小拍内结束。
接下来,我们使用Matlab进行仿真。首先,定义输入信号r(t)和采样周期T:
T = 0.7;
t = 0:T:10;
r = 2*(t>=0) + 2*(t>=T).*t;
然后,定义数字控制器的传递函数G(z):
G = tf(2/(1-z^-1)*(1-z^-2)/0.7,[1 -1],T);
最后,利用lsim函数进行仿真:
[y,t] = lsim(G,r,t);
得到输出信号y(t)后,可以绘制输入输出曲线图进行分析:
plot(t,r,'b',t,y,'r');
legend('Input','Output');
xlabel('Time (s)');
ylabel('Amplitude');
title('Input-output response');
从图中可以看出,输入信号在t=0处跳变,输出信号也在t=0处跳变,但是此后输出信号逐渐趋于稳定,并且没有稳态误差。另外,由于数字控制器是一个无限长的系统,因此在仿真过程中需要考虑数字控制器的截断误差对仿真结果的影响。
已知某连续时间LTI系统输入输出信号的关系为 Y(jw)=[(1+jw)(2+1/(jw))]/[3+jw+1/(jw)]*X(jw)分析该系统的幅度响应和相位响应,判断该系统是否为无失真传输系统。若输入信号为x(t)=1+sin t+sin(3t)/3+sin(5t)/5 ,试用matlab画出输入信号和输出信号的时域波形。
根据题目给出的传递函数,可以求出该系统的幅度响应和相位响应:
幅度响应:|H(jw)| = |[(1+jw)(2+1/(jw))]/[3+jw+1/(jw)]|
相位响应:∠H(jw) = arg{[(1+jw)(2+1/(jw))]/[3+jw+1/(jw)]}
其中,|H(jw)|和∠H(jw)分别表示传递函数的模值和相位角,j为虚数单位。
为了判断该系统是否为无失真传输系统,需要分别计算输入信号和输出信号的能量,并比较它们的差异。若差异很小,则说明该系统是无失真传输系统。但由于输入信号是连续时间信号,因此需要将其转化为离散时间信号,再进行计算。
为了画出输入信号和输出信号的时域波形,可以先用matlab将输入信号转化为离散时间信号,再通过传递函数将其转化为输出信号。具体实现方法如下:
```matlab
% 输入信号x(t)
t = 0:0.001:10; % 时间范围
x = 1 + sin(t) + sin(3*t)/3 + sin(5*t)/5; % 连续时间信号
Fs = 1000; % 采样频率
xn = x(1:Fs:end); % 降采样,将连续时间信号转化为离散时间信号
% 传递函数H(jw)
syms w;
H = ((1+j*w)*(2+1/(j*w)))/(3+j*w+1/(j*w)); % 传递函数表达式
% 求传递函数的幅度响应和相位响应
mag = simplify(abs(H));
phase = simplify(angle(H));
% 求输出信号y(t)
n = length(xn); % 信号长度
y = zeros(1,n); % 初始化输出信号
for k = 1:n
Xw = xn(k)*exp(-j*2*pi*(k-1)/n*(0:n-1)); % 离散时间傅里叶变换
Yw = Xw*H; % 系统输出
y(k) = real(sum(Yw.*exp(j*2*pi*(k-1)/n*(0:n-1)))); % 离散时间傅里叶逆变换
end
% 绘制时域波形图
subplot(2,1,1);
plot(t,x);
title('输入信号时域波形');
xlabel('时间/s');
ylabel('幅值');
subplot(2,1,2);
plot(t,y);
title('输出信号时域波形');
xlabel('时间/s');
ylabel('幅值');
```
运行上述代码后,可以得到输入信号和输出信号的时域波形图,如下图所示:
![输入输出时域波形图](https://img-blog.csdnimg.cn/20210916150942319.png)
由图可知,输入信号和输出信号的形状基本相同,且幅值差异较小,因此该系统是无失真传输系统。
阅读全文