6.状态空间设计法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
控制器的状态空间设计法
在这个部分,我们将展示如何用状态空间(时域)的方法设计控制器并观察。
本教程中用到的MTALAB关键命令有:eig,ss,lsim,place,acker
目录
•建模
•稳定性
•可控性和可观性
•用极点配置控制
•引入参考输入
•观测器的设计
建模
Introduction: System Modeling系统建模部分。
对于单输入单输出系统,这状态空表示如下:
这球的垂直位置是h,i是通过电磁铁的电流,V是电压,M是球的质量,g是重力加
稳定性
其我们想要做的第一件事情就是分析开环系统(不带任何控制)是否稳定。
正如所讨论的介绍:系统分析部分,系统矩阵的特征值,A(相当于传递函数的极点)确定的稳定性。
A矩阵的特征值是det(sI—A)=0的s的值。
poles =
31.3050
-31.3050
-100.0000
其中一个极点在又半平面,换言之,有正实数部分说明系统开环不稳定。
检查一下这个不稳定的系统,当有一个非零初始条件下,添加以下代码到您的m文件
可控性和可观性
如果存在一个控制输入u(t)那么一个系统是可控的,在有限的时间内系统的任何状态转移到零。
它可以表明,当且仅当其可控性矩阵,CO,具有满秩(即,如果CO的秩等于 n,其中n是状态的数量)。
LTI模型的可控性矩阵的秩可以用MATLAB命令rank (ctrb(A,B))或者rank(ctrb(sys))确定。
可控性和可观测性的双重概念。
一个系统(A,B)是可控的当且仅当一个系统(A’,C,B’,D)的观察。
当我们设计一个观察的这事有用的,正如我们下面将看到。
用极点配置控制
让我们采用极点配置为系统建立一个控制器。
一个完整的状态反馈系统的原理图如下
所示。
采用全状态,我们的意思是说,对于控制器任何时间所有的状态变量是已知的。
例如,在这个系统中,我们需要一个传感器测量球的位置,一个测量速度,和电磁铁的电流
测量。
为简单起见,我们假设R = 0。
输入是
超调量太大(传递函数中德零点可以增加超调量,在状态空间形式下你看不到零点)。
引入参考输入
现在,控制系统如上述定义并且应用一个阶跃输入(选择一个小的阶跃值,因此我们能留在线性化有效的区域)。
替换你m文件中的t,|u|和lsim,如下所示:
系统一点也没有跟随这个阶跃,不但幅值不是1,还是负的。
回想上图表,我们没有比较输出和参考。
我们测量所有的状态量,乘以乘以向量K,然后被参考量减去。
没有理由期待K*x等于期待的输出量。
为了解决这个问题,我们可以扩大参考输入使它等于K*x的稳定状态。
这比例因素是Nbar,如下表所示:
我可以得到Nbar从MTALAB中通过用函数rscale
Nbar =
-285.7143
注意这不是MATLAB中的标准函数。
你可以下载它,rscale.m,并保存到你当前的工作空间。
现在,在状态反馈和引入参考的情况下,你想找到系统的响应,注意着点输入被乘以新的因子,Nbar:
观测器的设计
当我们不能测量所有的状态变量x(经常这样),我们经常会建立一个观察器来评估他们,只测量输出 y=Cx。
对于磁悬浮球的例子,我们可以添加三个新的,评估的状态到系统中。
这表格如下。
观察期基本是原系统的复制,它有相同的输入和几乎相同的微分方程。
一个额外的环节是比较实际测量的输出y和评估的输出y_hat;这会令评估的状态量hat{x}接近实际的状态量x。
观察器的动态误差有(A-LC)的极点给出。
首先,我们选择观察器的增益L。
因为我们想让观察器的动态比系统本身更快,我们需要将系统的极点放置在主导极点左侧5倍更远的地方。
如果我们想用place,我们需要把观察器的极点放置在不同的位置。
由于可控性和可观测性之间的二元性,我们可以用发现控制矩阵的同样的方法,但是用矩阵C代替矩阵B并且把每个矩阵转置。
上面方程的图框里有hat{x}。
系统和观察器常规的组合方程是用原始状态x加上误差状态:e=x-hat{x}。
状态反馈为u=-K*hat{x}。
经过代数运算,我们得到状态和误差方程。
看一下初始值不为零,没有参考输入的情况,添加如下命令到你的m文件。
我们猜想观察期开始是零状态,hat{x}=0。
误差的初始状态等于初始状态。
所有状态变量的响应图如下。