用MatlabSimulink学控制eWord文件下载.docx
- 文档编号:22654406
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:10
- 大小:159.50KB
用MatlabSimulink学控制eWord文件下载.docx
《用MatlabSimulink学控制eWord文件下载.docx》由会员分享,可在线阅读,更多相关《用MatlabSimulink学控制eWord文件下载.docx(10页珍藏版)》请在冰豆网上搜索。
设各参数取值分别为:
M=0.05kg,R=1Ω,L=0.01H,K=0.0001,g=9.8m/s,取h=0.01m〔假设此时的电流为1.4A〕,在其附近线性化系统:
其中,
,控制变量u为输入电压
,关心的输出为
,可以写出状态空间方程,从而确定A,B,C,D。
A=[010;
9800-2.8;
00-100];
B=[0;
0;
100];
C=[100];
2、分析数学模型
poles=eig(A)
执行后结果有一正值31.3050,表示开环系统不稳定。
可以验证:
t=0:
0.01:
2;
u=zeros(size(t));
x0=[0.0100];
sys=ss(A,B,C,0);
[y,t,x]=lsim(sys,u,t,x0);
plot(t,y)
title('
OPen-LoopResponsetoNon-ZeroINitialCondition'
)
xlabel('
Time(sec)'
ylabel('
BallPosition(m)'
3、使用极点位置设计控制器(ControlDesignUsingPolePlacement〕
如果我们能够知道各时刻各状态变量的值,即用传感器实时测量磁质质量块的位置、速度,电路中的电流,称为full-state。
设计控制器作用于原系统如下所示:
如上图,简化起见,暂时不考虑
那么
,闭环反应系统的状态空间方程变为:
这样系统的极点位置就变为
的特征值,因此我们可以通过改变矩阵K的值来得到目标极点,进而实现目标响应,而这就是状态空间法控制系统的关键。
Matlab提供了
place(A,B,P)
及
acker(A,B,P)
〔多个极点处于同一位置时使用〕函数来确定目标极点所对应的K值,其中P为目标极点向量。
p1=-20+20i;
p2=-20-20i;
p3=-100;
//为三阶系统确定两个主极点,近似为我们熟悉的二阶系统,便于分析
K=place(A,B,[p1p2p3]);
sys_c1=ss(A-B*K,B,C,0);
lsim(sys_c1,u,t,x0);
//绘制系统的零输入响应
)//轴标
由响应曲线可见,结果相当理想。
当然设置不同的极点会对应不同的动态响应,当动态响应不满足要求时,就要对应调节极点位置,比方动态响应过慢时,尝试向左移动主极点的位置,以得到更快的动态响应。
现在来考虑初始状态为0,输入信号为阶跃信号时的情况,为了使得系统的线性化有效,阶跃值应中选取的尽可能小,重写输入:
u=0.001*ones(size(t));
lsim(sys_c1,u,t);
axis([02-4E-60]);
执行上面的程序发现虽然系统稳定,但输出值并没有跟随阶跃信号。
可以通过前置控制量Nbar来解决这个问题:
Matlab中使用函数
来确定Nbar的适宜值,Nbar=
rscale(sys,K)
〔sys为原开环系统状态空间方程〕,现在:
Nbar=rscale(sys,K);
lsim(sys_c1,Nbar*u,t);
axis([0201.2*10^-3])
此时系统输出稳定在0.001。
当然,并非所有的系统都可以用这种方法来实现控制,系统具有可控性的充要条件是系统的可控性矩阵〔controllabiltymatrix,CO〕满秩。
Matlab提供了ctrb(A,B)
ctr(sys)
来得到可控性矩阵〔参数皆为原开环系统的〕。
而矩阵的秩可由rank函数得到。
如判断例子系统的可控性:
rank(ctrb(A,B))
结果为3,CO满秩,即系统可控。
4、设计观察器〔ObserverDesign)
在实际情况中我们常常不能获得所有状态量的当前值,这是就需要设计观察器来估计它们,如下所示:
上边观察器只适用于y=Cx即D=0的系统,观察器根本是控制系统的复制,它们有相同的输入,微分方程也根本相同。
这里先只考虑非0初始值,输入为0时的响应。
首先分析观察器,观察器的极点为
的特征值,由于我们需要观察器有比对象系统快得多的响应,我们将观察器传递函数的极点取的大五倍,使其有比系统快得多的响应。
通常观察器的初始状态为0,使得误差初始值与系统相等,即为x0,观察系统响应〔为了同时得到估计误差,此时将新的状态向量
定义为
,由此根据系统框图得到新的系统矩阵
输入矩阵
输出矩阵
〕:
op1=-100;
op2=-101;
op3=-102;
//观察器的极点
L=place(A'
C'
[op1op2op3])'
;
//由A,C,以及观察器极点确定L
At=[A-B*K,B*K;
zeros(size(A)),A-L*C];
Bt=[B*Nbar;
zeros(size(B))];
Ct=[C,zeros(size(C))];
//新的状态空间参数
sys=ss(At,Bt,Ct,0);
lsim(sys,zeros(size(t)),t,[x0x0]);
LinearSimulationResults(withobserver)'
)//标题、轴标
与可控性对应,系统是否具有可观性的充要条件是观测性矩阵〔observabilitymatrix,OB〕满秩。
Matlab提供了obsv(A,C)
obsv(sys)
来得到可观性矩阵〔参数皆为原开环系统的〕,如判断例子系统的可观性:
rank((obsv(A,C)))
结果为3,OB满秩,即系统可控。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 用Matlab Simulink学控制e Matlab Simulink 控制