数据可能不超过2个维度!

时间:2011-05-25 06:22:01

标签: matlab controls analysis

我正在尝试在某些控制系统中进行开环分析。

首先,我分析PT1,它工作正常!

% Assigning the variables
Ksys = 0.8667;
T1 = 1.65;

% PT1 modeling
num = [0 Ksys];
den = [T1 1];
PT1 = tf(num, den);

% Step Response
t = 0:0.01:10;
y = 4.5 * step(PT1, t);

% Plotting
plot(t, y);
ylim([0, 6]);

但是当我分析高阶植物时:

% Assigning the variables
Ksys = 0.8667;
Tc = 1.65;
Td = 0.25;

% PTn modeling
num = [0 Ksys];
den = [Tc 1];
PT1 = tf(num, den);
sh = pade(Td, 2);
PTn = PT1 * sh;

% Step Response
t = 0:0.01:10;
y = 4.5 * step(PTn, t);

% Plotting
plot(t, y);
ylim([0, 6]);

它出现以下错误:

??? Error using ==> plot
Data may not have more than 2 dimensions

Error in ==> TestProject at 25
plot(t, y);

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

plot给出错误的原因是因为y是一个3D数组并且它需要一个2D矩阵。 y中的第二个维度是单个维度,并且可以删除所有目的。使用函数squeeze来摆脱单例维度。请尝试以下方法:

plot(t',squeeze(y))

答案 1 :(得分:0)

好吧,我想出了问题,它是在pade()函数中。这是最终的代码:

% Assigning the variables
Ksys = 0.8667;
Tc = 1.65;
Td = 0.25;

% PTn modeling
num = [0 Ksys];
den = [Tc 1];
PT1 = tf(num, den);
[nums, dens] = pade(Td, 2);
sh = tf(nums, dens);
PTn = PT1 * sh;

% Step Response
t = 0:0.01:10;
y = 4.5 * step(PTn, t);

% Plotting
plot(t, y);
ylim([0, 6]);