使用倍频程从测量步骤定义适当的传递函数

Defining proper transfer function from measuring step using Octave

提问人:Embed101 提问时间:11/2/2023 最后编辑:Embed101 更新时间:11/2/2023 访问量:37

问:

我遇到了 Octave 的颠簸。 我正在电机/系统上工作。我放了放大器,速度就出来了。我通过施加 1A 来迈出一步,电机开始运行。我记录了它的速度,在 0 到 2 秒之间,响应有点好用下面的代码中描述的 y 描述。现在很容易将这个系统描述为一阶系统。在绘制 y 和单步执行时H_sys1th它们看起来有些相同。希望得到更好的结果,我要求八度对H_sysd进行阶跃响应,但结果看起来一点也不像。我做错了什么?我的目标是在 S 域中有一个传递函数,表示尽可能接近的 y。

% Import the Control package
pkg load control

% function written as Y = ax^3 + bx^2 + cx + d
% edit below values:
a = 20;
b = -90;
c = 200;
d = -10;
dt = 0.001; % sample frequency of controller (1Khz) = 0.001
t_sim = 2; % step response length

% Transfer function Plant:
t = 0 : dt : t_sim;     % Time Vector [s]
y = a*t.^3 + b*t.^2 + c*t + d;
H_sys = tf([0, d, c, 2*b, 6*a],[1, 0, 0, 0, 0])
H_sysd = c2d(H_sys, 0.001);

% First order transfer funciton
K = 160;
T = 0.9;
E = 1;
H_sys1th = tf ([K], [T, E])

subplot(1,2,1)
plot(t, y)
title('Function System')

subplot(1,2,2)
step(H_sysd, 'b', H_sys1th, 'r', t)
title('Step Transfer Function System')

Image 1, Left Y, right red = first order TF, blue = 3th order TF

图像 1,左 Y,右红色 = 一阶 TF,蓝色 = 三阶 TF

MATLAB 倍频程

评论

0赞 Nick J 11/2/2023
你能附加你目前得到的情节图像吗?
0赞 Embed101 11/2/2023
舒尔的东西,纵轴的刻度是不一样的。我的问题是右侧蓝线的触角。
0赞 Nick J 11/4/2023
只是验证我使用 Matlab 获得了相同的输出,因此八度函数似乎按预期执行。

答: 暂无答案