【故障检测】【风力涡轮机容错控制】支持向量机用于风力涡轮机的故障检测(Matlab代码、Simulink仿真)

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

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

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

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

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、Simulink、数据、文章


💥1 概述

文献1:

摘要:支持向量机(SVM)被用于故障检测和隔离变速水平轴风力涡轮机。该涡轮机由三个叶片和一个全变流器组成。SVM方法基于数据,因此对于过程知识是有鲁棒性的。此外,它基于结构风险最小化,可以增强概括能力,通过使用灵活的内核可以考虑过程的非线性。在这项工作中,径向基函数被用作内核。调查了过程的不同部分,包括执行器、传感器和过程故障。通过复制传感器,我们可以迅速检测到叶片俯仰位置、发电机和转子转速的传感器故障(对于固定值故障,需要2个样本周期),但在故障幅度方面有特定限制。变流器扭矩故障(一个执行器)可以在两个样本周期内检测到。无法检测到俯仰系统执行器的故障。过程故障主要涉及传动系统中的摩擦,可能会导致其损坏。在高幅度误差的限制下,可以检测出其故障。
关键词:故障检测、支持向量机、风力涡轮机。

文章2:

摘要:全球范围内安装的风力涡轮机的发电装机容量正在急剧增加,这意味着风力涡轮机的可靠性更加重要。其中一项任务是改进风力涡轮机的故障检测和容错方案。本文提出了一个基准模型,用于模拟故障检测和容错方案。该基准模型处理系统级别的风力涡轮机,包括俯仰系统、传动系统、发电机和变流器系统中的传感器、执行器和系统故障。

---------------------

故障诊断常用的方法可分为基于模型和基于数据两类。基于模型的方法需要系统的全面模型。基于数据的方法的成功取决于历史数据的重要性以及用于检测数据模式的数学方法。在工业系统中,大量数据定期存储且过程模型不可用时,首选使用统计方法。在故障检测和诊断的统计方法中,出现了人工神经网络、主成分分析以及最近的支持向量机(SVM)。支持向量机基于 1964 年由瓦普尼克(Vapnik)和切尔沃妮基斯(Chervonenkis)引入的统计学习理论中的结构风险最小化原理。仅在最近,支持向量机被引入为用于对来自两个不同类别的数据进行分类的机器学习算法。基本上,二元支持向量分类器构建了一个分离的超平面。超平面应具有最大间隔,即在击中任何数据点之前,边界能够在两侧延伸的宽度。这些接触点称为支持向量。为了允许对非线性可分离集进行分类,可以使用非线性核函数。因此,支持向量机与许多其他统计方法之间的主要区别在于:首先,结构风险最小化(传统分类器的训练通常只能最小化经验风险),这可以提高即使样本数量减少也能实现泛化能力并避免过拟合从而达到良好参数调整的效果。其次,支持向量机使用非线性核函数,这允许对非线性可分离数据进行分隔。支持向量机已被广泛用于解决许多领域的分类问题,包括面部、物体和文本检测与分类、信息和图像检索等。它们在故障检测方面的应用始于 1999 年,并发现可以提高检测准确性。Widodo 和 Yang(2007)提出了一篇关于支持向量机用于故障检测的文献综述。他们报道了关于这一主题的学术期刊上的 37 篇论文。如今,使用支持向量机进行故障检测的期刊论文数量几乎翻了一番。涉及的领域主要限制在机械设备上,例如滚子轴承、齿轮箱、动力传输系统、感应电动机、涡轮泵转子,但也扩展到其他领域,如电-机械设备、半导体、制冷系统、金属板冲压、空调系统,以及田纳西伊斯曼基准测试中的少量化工过程。

---------------------------

如今,风力涡轮机在全球能源生产中所占比例越来越大,同时标准涡轮机的尺寸也在增加。目前最常安装的兆瓦级风力涡轮机非常昂贵,因此这些涡轮机的可靠性至关重要,它们的停机时间应尽可能短。确保这一点的重要部分是在风力涡轮机中引入先进的故障检测、隔离和适应系统。在最先进的工业风力涡轮机中,故障检测和适应方案往往简单且保守。因此,使用先进的故障检测、隔离和适应方法可以提高涡轮机的可靠性,尽管对于某些故障,可能会导致产生有限的功率。或者,还可以使用条件监测来监测一些机械部件,如齿轮箱等 [Hameeda 等人(2009)]。关于基于模型的风力涡轮机故障检测、隔离和适应方面已经进行了一些研究。在[Wei等人(2008)]中,提出了一种基于观测器的方案来检测传动系统中的传感器故障。在[Dobrila和Stefansen(2007)]中,提出了一种基于奇偶方程的故障检测方案。[Odgaard等人(2009)]提出了一种用于检测风力涡轮机传动系统周围传感器故障的未知输入观测器。关于电力转换系统的故障检测可以在[Poure等人(2007)]中找到。

详细文章见第4部分。

📚2 运行结果

波形图比较多,就不一一展示。 

部分代码:
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
c3=10;c4=1000;P_r=4.8e6;
% Simple time and time
Ts=1/100;Time=Ts:Ts:4400;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Wind data
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
D_v_wind=[Time', 9+4*sin(0.01*Time)'];

load winddata
D_v_wind=[windtime windspeed];

%% Wind Model
seed1 = 256;
seed2 = 894;
turbulence_seeds=[seed1 seed2];
R=57.5;
H=87;
k =4.7;
a=2.2;
alpha = 0.1;
D_rotor=2*R;
r = D_rotor/2;
m = 1+alpha*(alpha-1)*R^2/(8*H^2);
Length_scale = 600; %[m]
L=Length_scale;
Turbulence_intensity = 12;
turb_int=Turbulence_intensity;
T_sample=0.05;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Pitch and Blade Model
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
omega_n=11.11;xi=0.6;rho=1.225;
R=57.5;r0 = 1.5;

% cq table
load AeroDynamics

% Fault models
% Fault 6
xi2=0.45;omega_n2=5.73;
% Fault 7
xi3=0.9;omega_n3=3.42;

%transfers to ss models
[Apb,Bpb,Cpb,Dpb]=tf2ss([omega_n^2],[1 2*xi*omega_n omega_n^2]);
[Apb1,Bpb1,Cpb1,Dpb1]=tf2ss([omega_n2^2],[1 2*xi2*omega_n2 omega_n2^2]);
[Apb2,Bpb2,Cpb2,Dpb2]=tf2ss([omega_n3^2],[1 2*xi3*omega_n3 omega_n3^2]);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Drive Train Model
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
B_dt=775.49;
B_r=7.11;
B_g=45.6;
N_g=95;
K_dt=2.7e9
eta_dt=0.97;
J_g=390
J_r=55e6

Addt=[-(B_dt+B_r)/J_r B_dt/N_g/J_r -K_dt/J_r; eta_dt*B_dt/N_g/J_g -(eta_dt*B_dt/N_g^2+B_g)/J_g eta_dt*K_dt/N_g/J_g; 1 -1/N_g 0];
Bddt=[1/J_r 0; 0 -1/J_g;0 0];
Cddt=[1 0 0;0 1 0];
Dddt=[0 0;0 0];

% Fault models
% Fault 9
eta_dt2=.91

Addt2=[-(B_dt+B_r)/J_r B_dt/N_g/J_r -K_dt/J_r; eta_dt2*B_dt/N_g/J_g -(eta_dt2*B_dt/N_g^2+B_g)/J_g eta_dt2*K_dt/N_g/J_g; 1 -1/N_g 0];
Bddt2=[1/J_r 0; 0 -1/J_g;0 0];
Cddt2=[1 0 0;0 1 0];
Dddt2=[0 0;0 0];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Generator & Converter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
alpha_gc=1/20e-3;
eta_gc=0.98;

%Fault models
%fault 8
Constant_tau_gc=100;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Controller
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
K_opt=.5* rho* pi*R^2*eta_dt*R^3*0.4554/(N_g*8)^3

K_i=1;
K_p=4;
Omega_nom=162;
Omega_delta=5;
P_r=4.8e6;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Sensors
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
m_vw=1.5;
sigma_vm=0.5;
m_omega_r=0;
sigma_omega_r=0.004*2*pi;
m_omega_g=0;
sigma_omega_g=0.05;
m_tau_g=0;
sigma_tau_g=90;
m_P_g=0;
sigma_P_g=1e3;
m_Beta=0;
sigma_Beta=0.2;

%% Load SVM models of the various faults
% Load the svm model of the sensor fault beta1m1 type fixed value
load model_cap1_beta1m1 

% Load the svm model of the sensor fault beta1m2 type fixed value
load model_cap1_beta1m2 

% Load the svm model of the sensor fault beta2 type gain factor
load model_cap_beta2_t2

% Load the svm model of the sensor fault omega_r_m1 type fixed value
load model_cap1_wr1 

% Load the svm model of the sensor fault omega_r_m2 type fixed value
load model_cap1_wr2 

% Load the svm model of the sensor fault omega_r_m2 type gain factor
load model_cap_wr2_t2 

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

🌈4 Matlab代码、Simulink、数据、文章

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
KPCA(核主成分分析)和SVM支持向量机)是一种在故障诊断中常用的机器学习方法,可以通过分析和分类输入数据来诊断系统的故障。 KPCA是一种非线性降维技术,可以将高维数据映射到低维空间,以提取数据的关键特征。它通过使用核函数将输入数据映射到一个高维特征空间中,并在该空间中进行主成分分析。这样做的好处是可以处理非线性关系,从而能够更好地区分不同的故障模式。 SVM是一种监督学习算法,可以根据已知的标记样本来训练分类模型,并将未知样本分配到不同的类别中。在故障诊断中,SVM可以使用已知故障模式的数据训练模型,并将未知数据分类为不同的故障类型。SVM通过寻找一个最优的超平面来最大化不同类别间的间隔,从而实现分类的目的。 Matlab是一种常用的科学计算软件,拥有丰富的机器学习工具包。在故障诊断中,我们可以使用Matlab实现KPCA和SVM算法。我们可以使用Matlab的统计和机器学习工具箱来进行数据预处理、特征提取、模型训练和预测。通过结合KPCA和SVM,我们可以构建一个有效的故障诊断程序,可以用于判断不同故障类型并进行预测。 总之,KPCA和SVM是一种常用的故障诊断方法,结合Matlab可以实现一个完整的故障诊断程序。这种程序可以帮助我们更准确地诊断故障,并采取适当的措施来维护和修复系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荔枝科研社

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值