用MatlabSimulink学控制.docx

上传人:b****3 文档编号:600641 上传时间:2022-10-11 格式:DOCX 页数:9 大小:212.30KB
下载 相关 举报
用MatlabSimulink学控制.docx_第1页
第1页 / 共9页
用MatlabSimulink学控制.docx_第2页
第2页 / 共9页
用MatlabSimulink学控制.docx_第3页
第3页 / 共9页
用MatlabSimulink学控制.docx_第4页
第4页 / 共9页
用MatlabSimulink学控制.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

用MatlabSimulink学控制.docx

《用MatlabSimulink学控制.docx》由会员分享,可在线阅读,更多相关《用MatlabSimulink学控制.docx(9页珍藏版)》请在冰豆网上搜索。

用MatlabSimulink学控制.docx

用MatlabSimulink学控制

控制器设计中的状态空问法

目录一览

系统

1.建模

2.分析

控制

3.PID

4.根轨迹

5.频率

6.状态空间

7.数字化

Simulink

8.建模

9.控制

控制器设计中的状态空间法(State-SpaceMethodsforController

Design)

控制器设计中的频率分析法是在频域中分析系统的一些特征,而状态空

间法是在时域中分析、设计系统。

下面通过一个例子来学习状态空间法设计控制器

{■卜h护「di

甲丽二切一Tv=临亠川设各参数取值分别为:

M=0.05kg,R=1Q丄=0.01H,K=0.0001,g=9.8m/s,取h=0.01m(假设此时

的电流为1.4A),在其附近线性化系统:

,可以写出状态空间方程,从而确定A,B,C,D。

A=[010;9800-2.8;00-100];

B=[0;0;100];

C=[100];

2、分析数学模型

pole^石eig

pales-

31.3050

-31.3050

-100.0000

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)')

6

5

3

2

0

A

如上图,简

3、使用极点位置设计控制器(ControlDesignUsingPolePlacement)

如果我们能够知道各时刻各状态变量的值,即用传感器实时测量磁质质

量块的位置、速度,电路中的电流,称为full-state。

设计控制器作用于

原系统如下所示:

openJoopplant

 

X(A-MK)曲=(C-

Matlab

place(A,B,P)

acker(A,B,P)

 

 

pl=-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);//xlabel('Time(sec)')

由响应曲线可见,结果相当理想。

当然设置不同的极点会对应不同的动态响应,当动态响应不满足要求时,就要对应调节极点位置,比如动态响应过慢时,尝试向左移动主极点的位置,以得到更快的动态响应。

现在来考虑初始状态为0,输入信号为阶跃信号时的情况,为了使得系统的线性化有效,阶跃值应当选取的尽可能小,重写输入:

u=0.001*ones(size(t));

Isim(sys_c1,u,t);

执行上面的程序发现虽然系统稳定,但输出值并没有跟随阶跃信号。

以通过前置控制量Nbar来解决这个问题:

Matlab中使用函数rscale.m来确定Nbar的合适值,Nbar=rscale(sys,

K)(sys为原开环系统状态空间方程),现在:

lsim(sys_c1,Nbar*u,t);

axis([0201.2*107)

0.001

controllabiltymatrix,CO

CO=

rank(ctrb(A,B))

3CO

川".;Matlab

ctrb(A,B)

ctr(sys)

rank

4ObserverDesign)

1/S

A

4

observerwithperfectmodel

open-loopplant

上边观察器只适用于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*KB*Kzeros(size(A))A-L*C];

Bt=[B*Nbarzeros(size(B))];

Ct=[Czeros(size(C))];//

sys=ss(At,Bt,Ct,0);

lsim(sys,zeros(size(t)),t,[x0x0]);//

title('LinearSimulationResults(withobserver)')

xlabel('Time(sec)')

020.4a.61-1.2141.61,6

Tire(mc)Cseconds)

x10

10

8

LinearSiiTiJation尺esJtsfwithobserver)

6420s亡口嚼ods

与可控性对应,系统是否具有可观性的充要条件是观测性矩阵

(observabilitymatrix,OB)满秩。

^"_1JMatlab提供了obsv(A,C)及obsv(sys)来得到可观性矩阵

(参数皆为原开环系统的),如判断例子系统的可观性:

rank((obsv(A,C)))

结果为3,OB满秩,即系统可控。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1