状态观测控制器设计与仿真验证
创始人
2024-05-27 11:32:57
0

【无限嚣张(菜菜)】:hello您好,我是菜菜,很高兴您能来访我的博客,我是一名爱好编程学习研究的菜菜,每天分享自己的学习,想法,博客来源与自己的学习项目以及编程中遇到问题的总结。

座右铭:尽人事,听天命

个人主页:无限嚣张(菜菜)

目录

  • 状态观测器的提出
  • 状态观测器定义
  • 状态观测器的设计原理
  • 状态观测器的设计
  • 状态观测器的仿真验证

状态观测器的提出

        并不是所有系统的状态变量都是很容易能直接检测得到的,大多系统的状态变量都是不容易直接检测到的,有些状态变量甚至根本无法检测。这样,就提出了所谓的状态观测和状态重构问题,由龙伯格(Luenberger)提出的状态观测器理论,所以也叫Luenberger观测器。通过系统的输入和输出来估计状态,从而解决了在确定性条件下受控系统的重构问题,从而使状态反馈成为一种可实现的控制率。

状态观测器定义

        设线性定常系统\sum =(A,B,C)的状态矢量x不能直接检测。如果动态系统\hat{\sum }\sum的输入u和输出y作为其输入量,能产生一组输出量\hat{x}渐近于x,即\lim\limits_{t\to+\infty} |x-\hat{x}|=0,则称\hat{\sum }\sum的一个状态观测器。

        根据状态观测器的的定义,我们可以知道构造观测器的原则是:

        (1)观测器\hat{\sum }应以观测器\hat{\sum }的输入u和输出y作为输入量。

        (2)为了满足\lim\limits_{t\to+\infty} |x-\hat{x}|=0\hat{\sum }必须完全能观,或其不能观子系统是渐进稳定的。

        (3)\hat{\sum }的输出\hat{x}应以足够的速度渐进与x,即\hat{\sum }应有足够宽的频带。但从抑制干扰角度看,又希望频带不要太宽。因此,要根据具体情况予以兼顾。

        (4)\hat{\sum }在结构上要尽量简单。即具有尽可能低的维数,以便于物理实现。

状态观测器的设计原理

        给出单输入单输出系统如下,假设给出的系统是能观(rank(C,CA,...,CA^{n-1})^T)=n)的,如果不能观,我们设计降阶观测器,观测他一部分状态。

                                               \begin{cases}\dot{x}=Ax+Bu\\ y = Cx \end{cases}                                                              

        根据观测器的设计原则,闭环观测器的的状态方程设计如下:

\dot{\hat{x}} = A\dot{x}+Bu+G(y-C\hat{x})

      我们可以很容易知道闭环观测器的误差状态 

                                                    ​​​​​​ ​​​​​   \begin{cases} e = x-\hat{x}\\ \dot{e} = \dot{x}-\dot{\hat{x}} =(A-GC)e\end{cases}                                            

        证明确定使\hat{x}渐进与x的条件:

对误差求导,我们可以得到如下解:

e = e^{(A-GC)t}e(0)=e^{(A-GC)t}[\dot{x}_{0}-x_{0}]

由上式可知,当(A-GC)的特征值均为负实部,才能满足\lim\limits_{t\to+\infty} |x-\hat{x}|=0

状态观测器的设计

        假设一个线性系统如下:

\begin{cases} \dot{x}_{1} = x_{2}\\ \dot{x}_{2}=m_{1}x_{1}+m_{2}x_{2}+5u\\y=5x_{1} \end{cases}       

将上式写成状态空间的形式如下,设x = [x_{1},x_{2}]^{T}

                                                                                                                

其中A=(\begin{matrix} 0& 1 \\ m_{1} & m_{2} \\ \end{matrix}) ,\quad B=(\begin{matrix} 0 \\ 5 \\ \end{matrix}),\quad C=(\begin{matrix} 5 &0 \\ \end{matrix}),

        判断系统是否能观:R=(\begin{matrix} C \\ CA \\ \end{matrix})=(\begin{matrix} 5&0 \\ 0&5 \\ \end{matrix})=2,由此可知,此系统是满秩,所以能观,根据状态观测器的构造原则可知,可以构造观测器。

        原系统构建:若原系统渐进稳定,那么矩阵A满足Hurwitz条件,即系统A的所有特征值全部小于0.即

|\lambda I-A|=\lambda^{2}-\lambda m_{2}-m_{1}=0

因此特征值和积需满足:\lambda_{1}+\lambda_{2}=m_{2}<0,\lambda_{1}\lambda_{2}=-m_{1}>0,取m_{2}=-2,m_{1}=-1

        观测器构建:

\begin{cases} \dot{\hat{x}} = A\hat{x}+Bu+G(y-C\hat{x}) \\ y = C{x} \end{cases}

观测器的误差为:

\begin{cases} e = x-\hat{x}\\ \dot{e} = \dot{x}-\dot{\hat{x}} =(A-GC)e\end{cases}

我们最初目的是为了让\lim\limits_{t\to+\infty} |x-\hat{x}|=0,也就是目的让误差趋于0。此时我们需要让矩阵A-GC满足Hurwitz条件,即:

A-GC=(\begin{matrix} 0& 1 \\ m_{1} & m_{2} \\ \end{matrix}) -(\begin{matrix} 5g_{1}& 0 \\5g_{2} & 0 \\ \end{matrix})=(\begin{matrix} -5g_{1}& 1 \\ m_{1}-5g_2 & m_{2} \\ \end{matrix})

m_{2}=-2,m_{1}=-1带入上式中,我们并求det(\lambdaI-(A-GC)),使其满足Hurwitz条件

A-GC=(\begin{matrix} -5g_{1}& 1 \\ m_{1}-5g_2 & m_{2} \\ \end{matrix})=(\begin{matrix} -5g_{1}& 1 \\ -1-5g_2 & -2 \\ \end{matrix})

det(\lambdaI-(A-GC))=\lambda^{2}+(5g_{1}+2)\lambda +5g_{2}+2=0,

因此特征值和积需满足,\lambda_{1}+\lambda_{2}=-(5g_{1}+2)<0,\lambda_{1}\lambda_{2}=5g_{2}+2>0,取g_{2}=2,g_{1}=1

状态观测器的仿真验证

控制输入,也就是控制器,我们输入一个正弦函数

x1的状态,以及x1的状态观测

 x2的状态,以及x2的状态观测

 

代码:

clc 
clear all
close allstepLength = 0.002;                               
N = 100000;                                        
timeStart = 0;                                     
timeEnd = N * stepLength;                          
t = timeStart:stepLength:timeEnd ; 
u = sin(t);
k = 1;  % 迭代起始步数
x1 = zeros(size(t));
x2 = zeros(size(t));
x1(:,1) = 1;
x2(:,1) = 1;
x1_hat = zeros(size(t));
x2_hat = zeros(size(t));
x1_hat(:,1) = 0.2;
x2_hat(:,1) = 0.2;
for tt = timeStart : stepLength: (N-1)*stepLengthk% 原系统dx1 = x2(:,k);dx2 = -x1(:,k)-2*x2(:,k)+5*u(:,k);% 观测器dx1_hat = x2_hat(:,k)+5*(x1(:,k)-x1_hat(:,k));dx2_hat = -x1_hat(:,k)-2*x2_hat(:,k)+5*u(:,k)+2*5*(x1(:,k)-x1_hat(:,k));%% 更新坐标x1(:,k+1) = x1(:,k) + dx1 * stepLength;                                            x2(:,k+1) = x2(:,k) + dx2 * stepLength;  x1_hat(:,k+1) = x1_hat(:,k) + dx1_hat * stepLength;                                            x2_hat(:,k+1) = x2_hat(:,k) + dx2_hat * stepLength;  k = k+1;  
end
figure
plot(t,x1,'linewidth',1.5)
hold on
plot(t,x1_hat,'--red','linewidth',1.5)
hold on
xlabel('Time(Sec)')
legend('x_{1}','observe x_{1}')figure
plot(t,x2,'linewidth',1.5)
hold on
plot(t,x2_hat,'--green','linewidth',1.5)
hold on
xlabel('Time(Sec)')
legend('x_{2}','observe x_{2}')

        

相关内容

热门资讯

断情笔歌词完整版 断情笔歌词完整版  歌词是诗歌的一种,入乐的叫歌,不入乐的叫诗(或词)。入乐的歌在感情抒发、形象塑造...
游东莞人民公园400字作文 游东莞人民公园400字作文  今天我们一家去人民公园游玩,到了人民公园时,那里的人密密麻麻、人山人海...
会飞的木屋作文 会飞的木屋作文(精选25篇)  在平时的学习、工作或生活中,大家对作文都再熟悉不过了吧,借助作文可以...
学游泳作文400字 学游泳作文400字  在暑假里发生过许多有意义的事,有学游泳,学做菜,学拖地......其中最有意义...
春节习俗的作文800字 春节习俗的作文800字六篇  无论在学习、工作或是生活中,大家都经常接触到作文吧,通过作文可以把我们...
母亲节作文 精选母亲节作文五篇  在学习、工作、生活中,大家都有写作文的经历,对作文很是熟悉吧,作文要求篇章结构...
快乐的节日作文 快乐的节日作文(精选41篇)  在平平淡淡的日常中,大家都有写作文的经历,对作文很是熟悉吧,借助作文...
作文 八卦之旅系列 作文 八卦之旅(系列)  八卦之旅(1)  ——哪里来的狗尾巴草  “快点!假日山庄到了!”经历了不...
深圳下了雪作文(优秀篇)   你还好吗,蜗牛?  打下这一连串的字符时,心中或许还充满了一种担忧和恐惧。但我想,这样子的问候,...
重阳节的作文 【精品】重阳节的作文700字3篇  每年的九月九日就是我们的重阳节,重阳节是怎么来的呢?下面是小编帮...
中秋节的作文700字 中秋节的作文700字十篇  在学习、工作或生活中,许多人都写过作文吧,写作文可以锻炼我们的独处习惯,...
逍遥游优秀作文850字 逍遥游优秀作文850字  夜的静谧总是很容易让人联翩浮想的。  白天是一个难熬的节日,却又不舍得就这...
国庆节作文400字 关于国庆节作文400字(通用24篇)  无论在学习、工作或是生活中,大家总免不了要接触或使用作文吧,...
暑假见闻作文 暑假见闻作文(精选3篇)  在平时的学习、工作或生活中,说到作文,大家肯定都不陌生吧,作文要求篇章结...
情人节怎么过最浪漫 2015年情人节怎么过最浪漫  针对不同的情人,当然要准备不同的礼物,用不同的方式去度过才最浪漫。 ...
春节的作文 关于春节的作文(精选15篇)  在日常学习、工作和生活中,大家都写过作文吧,作文是人们把记忆中所存储...
在困难面前作文550字 在困难面前作文550字  世界上没有畅通无阻的公路,也没有永远平静无痕的河流。当然,人的一生也没有一...
新年的寄语 新年的寄语15篇  在我们平凡的日常里,大家都经常接触到寄语吧,寄语是所传的、寄托希望和希冀的话语。...
国庆节作文600字 关于国庆节作文600字(精选20篇)  在日常学习、工作或生活中,大家都经常接触到作文吧,借助作文人...
过春节的作文 有关过春节的作文(精选40篇)  在平时的学习、工作或生活中,大家都尝试过写作文吧,作文是一种言语活...