kp1 = 50; ki1 = 0.02; kd1 = 0; kp2 = 200; ki2 = 10; kd2 = 0.5; s = tf('s'); P = 1/(s^2); C1 = pid(kp1,ki1,kd1); C2 = pid(kp2,ki2,kd2); T = feedback(C2*P,C1); t = 0:0.01:10; x0 = [0.1;0]; [y,t,x] = initial(T,x0,t); plot(t,y) title('aaa') xlabel('time') ylabel('rad') 错误使用 DynamicSystem/initial 仅状态空间模型支持初始条件响应。 出错 contest (第 14 行) [y,t,x] = initial(T,x0,t);
时间: 2023-11-26 19:05:10 浏览: 100
这段代码使用了MATLAB的Control System Toolbox中的函数,其中 `initial` 函数只能用于状态空间模型。根据错误信息,似乎 `T` 是一个传递函数模型,因此不能使用 `initial` 函数。
如果你想要使用传递函数模型进行初始条件响应分析,可以使用 `initial` 函数的替代品 `lsim`。你可以将 `T` 作为输入,对其进行初始条件响应分析,如下所示:
```matlab
t = 0:0.01:10;
x0 = [0.1; 0];
[y, t, x] = lsim(T, 0, t, x0);
plot(t, y);
title('aaa');
xlabel('time');
ylabel('rad');
```
这样,你就可以得到传递函数 `T` 的初始条件响应了。如果你还有其他问题,请随时提出。
阅读全文