概述
文章目录
- 0. 受控对象与设计要求
- 0.1 受控对象
- 0.2 设计要求
- 1. 开环冲激响应
- 2. 开环阶跃响应
- 3. 引用
0. 受控对象与设计要求
这里列出上一篇文章的结果
0.1 受控对象
P
p
e
n
d
(
s
)
=
Φ
(
s
)
U
(
s
)
=
m
l
q
s
s
3
+
b
(
I
+
m
l
2
)
q
s
2
−
(
M
+
m
)
m
g
l
q
s
−
b
m
g
l
q
[
r
a
d
N
]
P_{pend}(s) = frac{Phi(s)}{U(s)}=frac{frac{ml}{q}s}{s^3+frac{b(I+ml^2)}{q}s^2-frac{(M+m)mgl}{q}s-frac{bmgl}{q}} qquad [ frac{rad}{N}]
Ppend(s)=U(s)Φ(s)=s3+qb(I+ml2)s2−q(M+m)mgls−qbmglqmls[Nrad]
P
c
a
r
t
(
s
)
=
X
(
s
)
U
(
s
)
=
(
I
+
m
l
2
)
s
2
−
g
m
l
q
s
4
+
b
(
I
+
m
l
2
)
q
s
3
−
(
M
+
m
)
m
g
l
q
s
2
−
b
m
g
l
q
s
[
m
N
]
P_{cart}(s) = frac{X(s)}{U(s)} = frac{ frac{ (I+ml^2)s^2 - gml } {q} }{s^4+frac{b(I+ml^2)}{q}s^3-frac{(M+m)mgl}{q}s^2-frac{bmgl}{q}s} qquad [ frac{m}{N}]
Pcart(s)=U(s)X(s)=s4+qb(I+ml2)s3−q(M+m)mgls2−qbmglsq(I+ml2)s2−gml[Nm]
其中:
q
=
[
(
M
+
m
)
(
I
+
m
l
2
)
−
(
m
l
)
2
]
q=[(M+m)(I+ml^2)-(ml)^2]
q=[(M+m)(I+ml2)−(ml)2]
0.2 设计要求
对于倒立摆,当小车受到1Nsec的冲激响应的时候:
- θ的稳定时间 < 5s
- |θ-θ0| < 0.05 radians
对于整个系统,当小车收到0.2m的阶跃信号的时候:
- x 与 θ 的稳定时间 < 5s
- x 的上升时间 < 0.5s
- |θ-θ0| < 0.05 radians (也就是20°)
- 对于x和θ来说,稳态误差 < 2%
1. 开环冲激响应
首先定义我们的系统
M = 0.5;
m = 0.2;
b = 0.1;
I = 0.006;
g = 9.8;
l = 0.3;
q = (M+m)*(I+m*l^2)-(m*l)^2;
s = tf('s');
P_cart = (((I+m*l^2)/q)*s^2 - (m*g*l/q))/(s^4 + (b*(I + m*l^2))*s^3/q - ((M + m)*m*g*l)*s^2/q - b*m*g*l*s/q);
P_pend = (m*l*s/q)/(s^3 + (b*(I + m*l^2))*s^2/q - ((M + m)*m*g*l)*s/q - b*m*g*l/q);
sys_tf = [P_cart ; P_pend];
inputs = {'u'};
outputs = {'x'; 'phi'};
set(sys_tf,'InputName',inputs)
set(sys_tf,'OutputName',outputs)
先看一下该系统的冲激响应
linearSystemAnalyzer('step',sys_tf,0:0.1:5)
可以看得出系统不收敛(要注意的是我们之前进行过小角度假设,因此这张阶跃响应图片只在小范围内等效于实际运动情况,所以基本上大于1.5弧度之后的运动已经没有参考价值了),我们再看一下零极点位置
正如我们观察到的一样,果然两个系统都有极点在虚轴右边,因此系统不稳定。
2. 开环阶跃响应
Matlab可以让我们求取LTI系统任意输入的输出,现在我们看看一个阶跃输入的输出长什么样子(你也可以通过上面的分析工具直接查看)
t = 0:0.05:10;
u = ones(size(t));
[y,t] = lsim(sys_tf,u,t);
plot(t,y)
title('Open-Loop Step Response')
axis([0 3 0 50])
legend('x','phi')
输出
看一下系统的开环性能
step_info = lsiminfo(y,t);
cart_info = step_info(1)
pend_info = step_info(2)
系统也是不稳定,因此这里我们必须要设计控制器来稳定这个系统。
3. 引用
https://ctms.engin.umich.edu/CTMS/index.php?example=InvertedPendulum§ion=SystemAnalysis
最后
以上就是火星上麦片为你收集整理的Matlab 仿真——单自由度倒立摆(2)系统分析的全部内容,希望文章能够帮你解决Matlab 仿真——单自由度倒立摆(2)系统分析所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复