资源描述:
《用Matlab & Simulink学控制系统.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、控制器设计中的状态空间法目录一览系统1.建模2.分析控制3.PID4.根轨迹5.频率6.状态空间7.数字化Simulink8.建模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),在其附近线性化系统:其中,
2、,控制变量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(se
3、c)')ylabel('BallPosition(m)')3、使用极点位置设计控制器(ControlDesignUsingPolePlacement)如果我们能够知道各时刻各状态变量的值,即用传感器实时测量磁质质量块的位置、速度,电路中的电流,称为full-state。设计控制器作用于原系统如下所示:如上图,简化起见,暂时不考虑,则,闭环反馈系统的状态空间方程变为:这样系统的极点位置就变为的特征值,因此我们可以通过改变矩阵K的值来得到目标极点,进而实现目标响应,而这就是状态空间法控制系统的关键。Matlab提供了 place(A,B,P) 及 acker(A,B,P) (多个极点处于
4、同一位置时使用)函数来确定目标极点所对应的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)')//轴标由响应曲线可见,结果相当理想。当然设置不同的极点会对应不同的动态响应,当动态响应不满足要求时,就要对应调节极点位置,比如动态响应过慢时,尝试向左移
5、动主极点的位置,以得到更快的动态响应。现在来考虑初始状态为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
6、);axis([0201.2*10^-3])此时系统输出稳定在0.001。当然,并非所有的系统都可以用这种方法来实现控制,系统具有可控性的充要条件是系统的可控性矩阵(controllabiltymatrix,CO)满秩。Matlab提供了ctrb(A,B) 及 ctr(sys) 来得到可控性矩阵(参数皆为原开环系统的)。而矩阵的秩可由rank函数得到。如判断例子系统的可控性:rank(ctrb(A,B))结果为3,CO满秩,即系统可控。4、设计观察器(ObserverDesign)在实际情况中我们常常不能获得所有状态量的当前值,这是就需要设计观察器来估计它们,如下所示:上边观察器只适
7、用于y=Cx即D=0的系统,观察器基本是控制系统的复制,它们有相同的输入,微分方程也基本相同。这里先只考虑非0初始值,输入为0时的响应。首先分析观察器,观察器的极点为的特征值,由于我们需要观察器有比对象系统快得多的响应,我们将观察器传递函数的极点取的大五倍,使其有比系统快得多的响应。通常观察器的初始状态为0,使得误差初始值与系统相等,即为x0,观察系统响应(为了同时得到估计误差,此时将新的状态向量定义为,由此根据系统框图得到新的系统矩阵,输入矩阵,输出矩阵