【状态估计】用于描述符 LTI 和 LPV 系统的分析、状态估计和故障检测的算法(Matlab代码实现)

news/2025/1/3 8:10:34/
💥 💥 💞 💞 欢迎来到本博客 ❤️ ❤️ 💥 💥


🏆 博主优势: 🌞 🌞 🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。


座右铭:行百里者,半于九十。

📋 📋 📋 本文目录如下: 🎁 🎁 🎁
目录
💥1 概述
📚2 运行结果
🎉3 参考文献
🌈4 Matlab代码、数据、文章讲解

💥1 概述

文献来源:

摘要:本文讨论了在LTI或LPV描述子框架中建模的系统的MATLAB/SCILAB工具箱的开发。给出了正则性、可解性、可控性和可观测性。包括全阶观测器和降阶观测器,比例观测器和比例积分观测器。其中一些观察人士考虑了未知的输入。可以作为基于状态估计和故障检测的观测器的辅助工具。这些观察者已经从最近发表的几篇论文中得到了考虑。通过建立观测库来实现故障的检测和隔离。这些观察者库可以通过选择输入/输出矩阵来建立,也可以使用所提出的算法自动建立。

许多系统都可以用非线性微分方程来建模,但是监控系统的设计是一项困难的任务。因此,对非线性系统进行线性化以获得线性时不变(LTI)系统是非常常见的,但这种表示在一个平衡点或工作点附近是有效的。

改进模型表示的一种方法是包含一些限制。如果限制是模型的一部分,那么系统就变成了描述符- lti (DLTI)表示。DLTI系统的主要优点是集成了静态关系(例如物理约束)和动态关系。这些考虑允许对广泛的过程进行建模,例如,在Dai, 1989;段,2010)。

Luenberger观测者存在的充分条件在(Hou and Muller, 1999;Darouach和Boutayeb, 1995)。(Darouach等人,1996)的作者提出了一种降阶未知输入观测,类似于(Chen和Patton, 1999)中研究的LTI系统的观测器。

详细文章讲解及数学模型见第4部分。

📚2 运行结果

部分代码:

xe=[ 1 5 3 0]'% intial stimated states

ye(:,1)=C*xe % compute the initial output

t(1)=0;% initial time

u(1)=0;

% observer gains

% % if the system is observable then compute the restricted system equivalence systems by QR descomposition

disp('Simulation')

for k=1:50/Te

% Time counter

t(k+1)=t(k)+Te;

% input

if t(k)<7

u(k+1)=1;

else

u(k+1)=5;

end

% % the differentials equations can be solved by runge-kuta of four order

x1=x1+Te*(x3);

x2=x2+Te*(x1);

x4=x1;

x3=-x2-x4+u(k);

xx(:,k+1)=[x1 x2 x3 x4]';

y(:,k+1)=C*xx(:,k+1); % system output

% Observer

yi=[-Be1*u(k);y(:,k)]; % auxiliar for compute the observer

% Reduced order observer

% $z=Piz+Lyi+H*u $

% $\hat{x}=Mz+Fyi$

z(k+1)=z(k)+Te*(Pi*z(k)+L*yi+H*u(k)); %

xe(:,k+1)=M*z(k)+F*yi;

ye(:,k+1)=C*xe(:,k+1); % stimated output

% Generation of residuos

end

disp('PLOTS')

pause

figure(2);

cla();

plot(t,y',t,ye')

legend('output', 'stimated')

n=size(A,1);

m=size(B1,2);

p=size(C,1);

if flag==1

P=sdpvar(n,n);

Y=sdpvar(m,n,'full');

Q=sdpvar(1,n,'full');

sdpvar g

% g=0.1

alpha=0;

Con=[P>=0,g>=0];

LMI=blkvar();

LMI(1,1)= (P*E'+S*Q)'*A'+Y'*B1'+A*(P*E'+S*Q)+B1*Y+B*B'+2*alpha*P;

LMI(1,2)=E*P'*C'+Q'*S'*C'+Y'*B2';

% (P*E'+S*Q)'*C'+Y'*B2';

LMI(2,2)=-g*eye(p);

LMI=sdpvar(LMI);

Con=[Con, LMI<=0]

op=sdpsettings('verbose',0,'solver','sedumi','sedumi.eps',1e-5);

solvesdp(Con,[],op)

P=double(P);

Y=double(Y);

Q=double(Q);

g=double(g);

% K=Y/((P*E'+S*Q))

K=Y/((P*E'+S*Q))

lamda=deig(A+B1*K,E)

% [Ccon, Rcon, Icon]=dcontr (E,A+B*K,B)

elseif flag==2

% g=0.01100

cvx_begin sdp

cvx_precision default

cvx_solver sedumi

variable g

variable P(n,n) symmetric

variable Y(m,n)

variable Q(1,n)

minimize g

P >= 0

[ (P*E'+S*Q)'*A'+Y'*B1'+A*(P*E'+S*Q)+B1*Y+B*B' E*P'*C'+Q'*S'*C'+Y'*B2' ; ...

(E*P'*C'+Q'*S'*C'+Y'*B2')' -g*eye(p)] <= 0

cvx_end

gamma = sqrt(g)

K=Y/((P*E'+S*Q));

lamda=deig(A+B1*K,E)

else

setlmis([]);

% create a blank LTI framework

P=lmivar(1,[n 1]); % declare X as a 3 脳 3 symmetrical matrix

Y=lmivar(2,[m n]); % declare Y as a n x n

Q=lmivar(2,[1 n]); % declare

lmiterm([1 1 1 P],A,E','s') % A*P*E' + *

lmiterm([1 1 1 Q],A*S,1,'s') % A*S*Q+*

lmiterm([1 1 1 Y],B1,1,'s') % B*Y+*

lmiterm([1 1 1 0],B*B') % B*B'+*

lmiterm([1 1 2 P'],E,C') % E*P'*C'

lmiterm([1 1 2 Q'],1,S'*C') % Q'*S'*C'

lmiterm([1 1 2 Y'],1,B2') % E*P'*C'

% lmiterm([1 1 1 P],2*5,1,'s') % B*Y+*

lmiterm([-2 1 1 P],1,1,'s') % P>0

% lmiterm([-3 1 1 Q],1,1) % P>0

Con=getlmis;

% c = mat2dec(Con,eye(3),eye(3),eye(1,n));

% options = [1e5,0,0,0,0];

% [copt,b] = mincx(Con,c,options);

[tmin b]=feasp(Con);

% [tmin b]=mincx(Con,-trac);

P=dec2mat(Con,b,P);

Y=dec2mat(Con,b,Y);

Q=dec2mat(Con,b,Q);

K=Y/((P*E'+S*Q));

lamda=deig(A+B*K,E);

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

🌈4 Matlab代码、数据、文章讲解


http://www.ppmy.cn/news/48164.html

相关文章

3、公司法规 - 开公司创业系列文章

法律内容 第一章 总 则 第一条 为了规范公司的组织和行为&#xff0c;保护公司、股东和债权人的合法权益&#xff0c;维护社会经济秩序&#xff0c;促进社会主义市场经济的发展&#xff0c;制定本法。 第二条 本法所称公司是指依照本法在中国境内设立的有限责任公司和股份有限…

ijkplayer编译支持x264编码器

ijkplayer作为一款基于ffmpeg在移动端比较流行的播放器&#xff0c;并没有集成编码器。如果使用ffmpeg且需要音视频编码功能的话就需要自己手动集成。 编译支持x264编码器的流程主要参考了 ijkplayer支持x264编译 - 简书 原理与ijkplayer编译支持openssl的流程类似。 1 下载x…

SSeg总体思路

1&#xff1a;在train中加载train和test数据集。 2&#xff1a;指定数据集为kitti&#xff0c;确定训练验证的batchsize。 3&#xff1a;提前定义好数据预处理&#xff0c;首先是几何变换&#xff0c;包括随机裁切等。 4&#xff1a;然后是外观变换&#xff0c;包括高斯滤波…

标准C库函数之memcpy(内存函数)

memcpy函数 memcpy函数是C标准库&#xff08;string.h库&#xff09;中一个非常重要且常用的函数。它用于将一段内存区域的内容复制到另一个内存区域。这个函数在底层使用内存操作进行数据复制&#xff0c;通常比逐个元素的复制更高效。 memcpy函数的原型如下&#xff1a; #in…

PCB阻焊桥存在的DFM(可制造性)问题,华秋一文告诉你

PCB表面的一层漆&#xff0c;称为阻焊油墨&#xff0c;也就是PCB线路板阻焊油墨。阻焊油墨是PCB线路板中非常常见、也是主要使用的油墨&#xff0c;一般90%都是绿色&#xff0c;但也有杂色油墨&#xff1a;红色、蓝色、黑色、白色、黄色等。 阻焊油墨的作用就是绝缘&#xff0…

AI绘画——ControlNet扩展安装教程

目录 1.ControlNet安装 2.预处理模型安装 预处理模型&#xff08;annotator&#xff09;下载链接&#xff1a; 预处理模型安装地址&#xff1a; 3.ControlNet模型下载 Controlnet模型下载地址&#xff1a; Controlnet模型安装目录&#xff1a; 注&#xff1a;&…

English Learning - L2 语音作业打卡 语音语调四步法 Day59 2023.4.20 周四

English Learning - L2 语音作业打卡 语调四步法 Day59 2023.4.20 周四 &#x1f48c;发音小贴士&#xff1a;&#x1f48c;当日目标音发音规则/技巧:&#x1f36d; Part 1【热身练习】&#x1f36d; Part2【练习内容】&#x1f36d;【练习感受】&#x1f36d; Part3【存在问题…

JDBC使用

目录 1.JDBC常用接口和类 1 JDBC API 2 数据库连接Connection 1.通过DriverManage 2.通过DataSource对象获取 3.Statement对象 4.ResultSet对象 2.步骤 3.代码 1.JDBC常用接口和类 1 JDBC API 在Java JDBC编程中对数据库的操作均使用JDK自带的API统一处理&#xff0c;…