$$
$$
其中
$ \ theta $:联合变量。
$ \ tau $:关节扭矩
$ m $:质量
$ L $:中心质量与关节之间的距离。
$ d $:粘滞摩擦系数
$ l $:在旋转轴上看到的惯性。
我现在想使用P(比例)控制器。
$$
\ tau = -K_ {p}(\ theta-\ theta_ {d})
$$
我的Matlab代码是
clear all
clc
t = 0:0.1:5;
x0 = [0; 0];
[t, x] = ode45('ODESolver', t, x0);
e = x(:,1) - (pi/2); % Error theta1
plot(t, e);
title('Error of \theta');
xlabel('time');
ylabel('\theta(t)');
grid on
用于求解微分方程
function dx = ODESolver(t, x)
dx = zeros(2,1);
%Parameters:
m = 2;
d = 0.001;
L = 1;
I = 0.0023;
g = 9.81;
T = x(1) - (pi/2);
dx(1) = x(2);
q2dot = 1/I*T - 1/I*d*x(2) - 1/I*m*g*L*sin(x(1));
dx(2) = q2dot;
误差是
我的问题是为什么随着时间的流逝,误差不会接近零?问题在于调节轨迹,因此误差必须接近零。
#1 楼
如果仅使用比例力,则在某些时候它会受到重力的平衡-您的误差将收敛于该平衡,而不是零。以补偿重力的质量。臂,则需要添加一个积分力项。随着时间的流逝,这将增加以抵消恒定的重力。
另请参见:关于积分项的答案。
#2 楼
我现在想使用P(比例)控制器。
比例控制器永远不会使您的误差保持在0。控制器的作用就像没有阻尼的弹簧。查看您编写的控制器方程式:
τ= -K(θ-θd)
并将其与弹簧方程式进行比较:
F=Kx or F=K(x1-x2)
您的控制器的作用就像弹簧一样,将扭矩施加到关节上,使其偏离参考点。您必须至少使用PI(比例和积分)控制器来消除振荡。
控制器的集成部分是使振荡消失并使稳态误差接近0的原因。这会使您的系统变慢,但是您必须调整控制器的性能
如果确实需要使用P控制器,则必须在系统上包括一个阻尼器。
#3 楼
控制器类型更精确的错误处理方法。
假设您有一个如上所述的闭环系统。等式为:
$ \ hspace {2.5em} $ $ Y(s)= \ frac {G(s)C(s)} {1 + G(s)C(s}} R(s)$
误差方程为:
$ \ hspace {2.5em} $ $ E(s)= R(s)-Y(s)$
$ \ hspace {2.5em} $ $ E(s)= \ frac {1} {1 + G(s)C(s)} R(s)$ $ \ hspace {2.5em } [1] $
最终值定理指出:
$ \ hspace {2.5em} $ $ e(\ infty)= \ lim_ {s \ rightarrow 0 } sE(s)$ $ \ hspace {2.5em} [2] $
在$ [2] $中使用$ [1] $:
$ \ hspace { 2.5em} $ $ e(\ infty)= \ lim_ {s \ rightarrow 0} s \ frac {1} {1 + G(s)C(s)} R(s)$
好!现在,我们可以得出一些很酷的东西。
假设$ R(s)= \ frac {1} {s} $:
$ \ hspace { 2.5em} $ $ e(\ infty)= \ lim_ {s \ rightarrow 0} \ frac {1} {1 + G(s)C(s)} $ $ \ hspace {2.5em} $来自微积分,是等同于:
$ \ hspace {2.5em} $ $ e(\ infty)= \ frac {1} {1+ \ lim_ {s \ rightarrow 0}(G(s)C(s ))} $
$ \ hspace {2.5em} $ $ e(\ infty)= \ frac {1} {1 + G(0)C(0)} $
如果$ C(s)= K $,其中$ K $是比例增益,$ G(0)$具有有限的DC增益,则您的系统将负责有限的最终项。但是,但是,您可以应用PD控件$ C(s)= \ frac {K} {s} $。
$ \ hspace {2.5em} $ $ C(0)= \ lim_ {s \ rightarrow 0} \ frac {K} {s} = \ infty $
然后:
$ \ hspace {2.5em} $ $ e(\ infty)= \ frac {1} {1 + G(0)(\ infty)} = 0 $
这就是简历,为什么只有比例增益才能获得空错误。
评论
$ \ begingroup $
拉普拉斯变换只能在线性系统中使用。但是,我认为了解原理非常有用。
$ \ endgroup $
–leCrazyEngineer
16年1月17日在21:57
评论
$ \ begingroup $
你是对的。我已经实现了PID控制器,它解决了这个问题。
$ \ endgroup $
– Croco
14-10-25在13:26