用MatlabSimulink学控制.docx
- 文档编号:15036372
- 上传时间:2023-06-29
- 格式:DOCX
- 页数:11
- 大小:159.52KB
用MatlabSimulink学控制.docx
《用MatlabSimulink学控制.docx》由会员分享,可在线阅读,更多相关《用MatlabSimulink学控制.docx(11页珍藏版)》请在冰点文库上搜索。
用MatlabSimulink学控制
控制器设计中的状态空间法
目录一览
系统
1、建模
2、分析
控制
3、PID
4、根轨迹
5、频率
6、状态空间
7、数字化
Simulink
8、建模
9、控制
控制器设计中的状态空间法(State-SpaceMethodsforControllerDesign)
控制器设计中的频率分析法就是在频域中分析系统的一些特征,而状态空间法就是在时域中分析、设计系统。
下面通过一个例子来学习状态空间法设计控制器。
1、建立数学模型
由牛顿定律与KVL建立有:
设各参数取值分别为:
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);//绘制系统的零输入响应
xlabel('Time(sec)')
ylabel('BallPosition(m)')//轴标
由响应曲线可见,结果相当理想。
当然设置不同的极点会对应不同的动态响应,当动态响应不满足要求时,就要对应调节极点位置,比如动态响应过慢时,尝试向左移动主极点的位置,以得到更快的动态响应。
现在来考虑初始状态为0,输入信号为阶跃信号时的情况,为了使得系统的线性化有效,阶跃值应当选取的尽可能小,重写输入:
u=0、001*ones(size(t));
lsim(sys_c1,u,t);
axis([02-4E-60]);
执行上面的程序发现虽然系统稳定,但输出值并没有跟随阶跃信号。
可以通过前置控制量Nbar来解决这个问题:
Matlab中使用函数 rscale、m来确定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]);//绘制系统的零输入响应
title('LinearSimulationResults(withobserver)')
xlabel('Time(sec)')
ylabel('BallPosition(m)')//标题、轴标
与可控性对应,系统就是否具有可观性的充要条件就是观测性矩阵(observabilitymatrix,OB)满秩。
Matlab提供了obsv(A,C) 及 obsv(sys) 来得到可观性矩阵(参数皆为原开环系统的),如判断例子系统的可观性:
rank((obsv(A,C)))
结果为3,OB满秩,即系统可控。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 用Matlab Simulink学控制 Matlab Simulink 控制