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

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

💥 💥 💞 💞 欢迎来到本博客 ❤️ ❤️ 💥 💥



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



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


📋 📋 📋 本文目录如下: 🎁 🎁 🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

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

💥1 概述

文献来源:


b70dff7328168935f3c3221bf711d627.png


摘要:本文讨论了在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 运行结果


26943fb6d5ac962eb88d182621f9f4fd.png

393abeecbc27a64bc4d566292a35f8a5.png

8753486db1b3c06f57c4ab8b3f2a8ce0.png

bce3d166e38ddee9c363e8b4773b77d8.png

51d7a60cdda7721cddb0a45bdc0fe6f1.png

a87a8708845858b5df03a931d3d3cdc6.png

cca3c4d0cbe5527c975d49998c2758a3.png

7e255c9136525a06b2b7030bc807fb5a.png


部分代码:

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代码、数据、文章讲解

相关文章
|
23天前
|
算法 BI Serverless
基于鱼群算法的散热片形状优化matlab仿真
本研究利用浴盆曲线模拟空隙外形,并通过鱼群算法(FSA)优化浴盆曲线参数,以获得最佳孔隙度值及对应的R值。FSA通过模拟鱼群的聚群、避障和觅食行为,实现高效全局搜索。具体步骤包括初始化鱼群、计算适应度值、更新位置及判断终止条件。最终确定散热片的最佳形状参数。仿真结果显示该方法能显著提高优化效率。相关代码使用MATLAB 2022a实现。
|
23天前
|
算法 数据可视化
基于SSA奇异谱分析算法的时间序列趋势线提取matlab仿真
奇异谱分析(SSA)是一种基于奇异值分解(SVD)和轨迹矩阵的非线性、非参数时间序列分析方法,适用于提取趋势、周期性和噪声成分。本项目使用MATLAB 2022a版本实现从强干扰序列中提取趋势线,并通过可视化展示了原时间序列与提取的趋势分量。代码实现了滑动窗口下的奇异值分解和分组重构,适用于非线性和非平稳时间序列分析。此方法在气候变化、金融市场和生物医学信号处理等领域有广泛应用。
|
7天前
|
算法
基于ACO蚁群优化的UAV最优巡检路线规划算法matlab仿真
该程序基于蚁群优化算法(ACO)为无人机(UAV)规划最优巡检路线,将无人机视作“蚂蚁”,巡检点作为“食物源”,目标是最小化总距离、能耗或时间。使用MATLAB 2022a版本实现,通过迭代更新信息素浓度来优化路径。算法包括初始化信息素矩阵、蚂蚁移动与信息素更新,并在满足终止条件前不断迭代,最终输出最短路径及其长度。
|
10天前
|
机器学习/深度学习 算法
基于心电信号时空特征的QRS波检测算法matlab仿真
本课题旨在通过提取ECG信号的时空特征并应用QRS波检测算法识别心电信号中的峰值。使用MATLAB 2022a版本实现系统仿真,涵盖信号预处理、特征提取、特征选择、阈值设定及QRS波检测等关键步骤,以提高心脏疾病诊断准确性。预处理阶段采用滤波技术去除噪声,检测算法则结合了一阶导数和二阶导数计算确定QRS波峰值。
|
10天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于PSO粒子群优化的GroupCNN分组卷积网络时间序列预测算法matlab仿真
本项目展示了一种结合粒子群优化(PSO)与分组卷积神经网络(GroupCNN)的时间序列预测算法。该算法通过PSO寻找最优网络结构和超参数,提高预测准确性与效率。软件基于MATLAB 2022a,提供完整代码及详细中文注释,并附带操作步骤视频。分组卷积有效降低了计算成本,而PSO则智能调整网络参数。此方法特别适用于金融市场预测和天气预报等场景。
|
14天前
|
算法
基于极大似然算法的系统参数辨识matlab仿真
本程序基于极大似然算法实现系统参数辨识,对参数a1、b1、a2、b2进行估计,并计算估计误差及收敛曲线,对比不同信噪比下的误差表现。在MATLAB2022a版本中运行,展示了参数估计值及其误差曲线。极大似然估计方法通过最大化观测数据的似然函数来估计未知参数,适用于多种系统模型。
|
16天前
|
机器学习/深度学习 算法
基于小波神经网络的数据分类算法matlab仿真
该程序基于小波神经网络实现数据分类,输入为5个特征值,输出为“是”或“否”。使用MATLAB 2022a版本,50组数据训练,30组数据验证。通过小波函数捕捉数据局部特征,提高分类性能。训练误差和识别结果通过图表展示。
|
1月前
|
算法
基于模糊控制算法的倒立摆控制系统matlab仿真
本项目构建了一个基于模糊控制算法的倒立摆控制系统,利用MATLAB 2022a实现了从不稳定到稳定状态的转变,并输出了相应的动画和收敛过程。模糊控制器通过对小车位置与摆的角度误差及其变化量进行模糊化处理,依据预设的模糊规则库进行模糊推理并最终去模糊化为精确的控制量,成功地使倒立摆维持在直立位置。该方法无需精确数学模型,适用于处理系统的非线性和不确定性。
基于模糊控制算法的倒立摆控制系统matlab仿真
|
24天前
|
资源调度 算法
基于迭代扩展卡尔曼滤波算法的倒立摆控制系统matlab仿真
本课题研究基于迭代扩展卡尔曼滤波算法的倒立摆控制系统,并对比UKF、EKF、迭代UKF和迭代EKF的控制效果。倒立摆作为典型的非线性系统,适用于评估不同滤波方法的性能。UKF采用无迹变换逼近非线性函数,避免了EKF中的截断误差;EKF则通过泰勒级数展开近似非线性函数;迭代EKF和迭代UKF通过多次迭代提高状态估计精度。系统使用MATLAB 2022a进行仿真和分析,结果显示UKF和迭代UKF在非线性强的系统中表现更佳,但计算复杂度较高;EKF和迭代EKF则更适合维数较高或计算受限的场景。
|
25天前
|
算法
基于SIR模型的疫情发展趋势预测算法matlab仿真
该程序基于SIR模型预测疫情发展趋势,通过MATLAB 2022a版实现病例增长拟合分析,比较疫情防控力度。使用SIR微分方程模型拟合疫情发展过程,优化参数并求解微分方程组以预测易感者(S)、感染者(I)和移除者(R)的数量变化。![]该模型将总人群分为S、I、R三部分,通过解析或数值求解微分方程组预测疫情趋势。