matlab 调用vb 数组,怎样把matlab程序改为vb程?

根据以上灰色关联理论分析,改进的灰色关联算法实现如下:

Private Function Gray(data) As String

Dim Dmax As Single, Dmin As Single, ed As Single, Dv As Single, p As Single

Dim X(1 To 55), XX(1 To 11) As String, Y() As Single, sum As Single, dik(1 To 5, 1 To 55) As Single, r(1 To 5, 1 To 55) As Single

Dim d0(1 To 55) As Single, epsita(1 To 11) As Single, sorted() As Single

''x1--正常序列

X(1) = Array(46。

1321, 21。4828, 61。5295, 15。8202, 1。1675)

X(2) = Array(46。1321, 21。4828, 61。5295, 15。8202, 1。1675)

X(3) = Array(48。4532, 24。

7842, 62。0583, 13。1575, 0。0000)

X(4) = Array(50#, 23#, 55#, 12#, 0)

X(5) = Array(40#, 18#, 66#, 14#, 2#)

XX(1) = "正常"

'x2--受潮局部放电----------------------------------------

X(6) = Array(93。

7791, 35。3962, 24。2789, 39。4007, 0。9241)

X(7) = Array(99。4579, 56。7376, 33。3333, 9。9291, 0)

X(8) = Array(87。2663, 51。049, 40。

5594, 8。3916, 0)

X(9) = Array(85。8653, 49。5327, 31。7757, 18。6916, 0)

X(10) = Array(75。7225, 78。7143, 19。2857, 2#, 0)

XX(2) = "受潮局部放电"

'x3--低能放电序列\

X(11) = Array(58#, 44。

9, 11#, 20。6, 23。5)

X(12) = Array(69。1286, 37。1243, 18。68, 17。9729, 26。2227)

X(13) = Array(44。9775, 20。1635, 23。1608, 4。

9046, 51。7711)

X(14) = Array(67。4387, 40。795, 7。4268, 28。2427, 23。5356)

X(15) = Array(51。2941, 48。5507, 7。7295, 17。3913, 26。

3285)

XX(3) = "低能放电"

''x4--高能放电序列----------------------------------------------

X(16) = Array(43。7, 30。2, 3。7, 46。6, 19。

4)

X(17) = Array(32。5967, 22。9508, 7。377, 57。377, 12。2951)

X(18) = Array(39。2157, 15。4839, 4。5161, 37。7419, 42。2581)

X(19) = Array(45。

7026, 16。8342, 4。5226, 35。9296, 42。7136)

X(20) = Array(20。3852, 21。5726, 2。2177, 31。0484, 45。1613)

XX(4) = "高能放电"

''x5--低温过热 ----------------------------------------------

X(21) = Array(35。

3516, 79。1541, 12。3867, 8。4592, 0)

X(22) = Array(20。8031, 33。598, 36。0415, 28。1002, 2。2602)

X(23) = Array(10。6054, 15。6698, 70。

2422, 13。4454, 0。6426)

X(24) = Array(38。1862, 50。1931, 12。7413, 37。0656, 0)

X(25) = Array(7。1028, 17。0221, 65。4728, 16。

9416, 0。5634)

XX(5) = "低温过热"

''X6--中温过热故障序列序列----------------------------------------------

X(26) = Array(15。3, 26。2, 21#, 52。

8, 0#)

X(27) = Array(7。8105, 32。9776, 18。844, 47。0653, 1。1131)

X(28) = Array(33。5617, 50。5157, 13。8918, 35。361, 0。2315)

X(29) = Array(3。

342, 39。3508, 26。72, 33。3412, 0。588)

X(30) = Array(6。0815, 47。6063, 17。3851, 35。0086, 0)

XX(6) = "中温过热"

''x7--高温过热故障-------------------------------------------------

X(31) = Array(11。

3, 24。6, 12。7, 59。9, 2。8)

X(32) = Array(15。8275, 21。0731, 21。8836, 56。7353, 0。308)

X(33) = Array(17。3184, 37。8378, 12。1622, 50#, 0#)

X(34) = Array(24。

0346, 25。9154, 8。7451, 64。5574, 0。7821)

X(35) = Array(14。8352, 14。8387, 14。8387, 70。3226, 0#)

XX(7) = "高温过热"

''X8--围屏树枝状放电序列(爬电)----------------------------------------

X(36) = Array(44。

964, 14。7059, 1。9608, 34。3137, 49。0196)

X(37) = Array(62。4224, 29。7521, 4。9587, 26。4463, 38。843)

X(38) = Array(58。5683, 30。

541, 4。8866, 26。178, 38。3944)

X(39) = Array(68。3097, 40。5748, 7。0161, 27。8952, 24。5139)

X(40) = Array(49。7696, 16。8196, 4。

2813, 38。5321, 40。367)

XX(8) = "围屏树枝状放电"

''x9--匝间层间故障序列----------------------------------------

X(41) = Array(28。8, 28。

2, 3。9, 34。4, 33。4)

X(42) = Array(25。7143, 51。9231, 3。8462, 38。4615, 5。7692)

X(43) = Array(39。1898, 18。1912, 2。3473, 27。

9254, 51。5361)

X(44) = Array(24。3207, 21。6227, 2。2019, 39。873, 36。3023)

X(45) = Array(17。1429, 30。5419, 2。4631, 31。0345, 35。

9606)

XX(9) = "匝间层间故障"

''x()--分接开关故障序列----------------------------------------

X(46) = Array(13。6, 21。6, 10。8, 58。1, 9。

5)

X(47) = Array(3。9435, 23。1317, 8。3358, 68。1866, 0。3459)

X(48) = Array(16。3397, 28。4934, 7。125, 60。7774, 3。6042)

X(49) = Array(16。

6667, 20#, 8。2857, 68。8571, 2。8571)

X(50) = Array(5。3435, 19。2876, 8。7366, 70。5645, 1。4113)

XX(10) = "分接开关故障"

''x()--铁心接地故障序列----------------------------------------

X(51) = Array(11。

2, 30。8, 11。6, 56。2, 1。4)

X(52) = Array(9。8159, 45。6195, 10。3486, 43。906, 0。1259)

X(53) = Array(23。9973, 33。2454, 8。0915, 58。

3993, 0。2639)

X(54) = Array(16。137, 28。6284, 12。0849, 58。3128, 0。9738)

X(55) = Array(15。6285, 32。7381, 10。3945, 56。6809, 0。

1866)

XX(11) = "铁心接地故障"

'--------------------------------------------------

'待诊断数据归一化,将H2/(H2+CH4+C2H6+C2H4+C2H2)*100'------CH4/(CH4+C2H6+C2H4+C2H2)*100',-----------------------------

'-----C2H4/(CH4+C2H6+C2H4+C2H2)*100',---------C2H2/(CH4+C2H6+C2H4+C2H2)*100',--------C2H6/(CH4+C2H6+C2H4+C2H2)*100',

On Error Resume Next

Y = data

'Y(1) = 14。

7

'Y(2) = 3。8

'Y(3) = 10。5

'Y(4) = 2。7

'Y(5) = 0。2

sum = 0

For i = 1 To 5

sum = sum + CSng(Y(i))

Next

If sum = 0 Then

Gray = "数据异常,无法得出结论!"

Exit Function

End If

For i = 2 To 5

Y(i) = 100 * CSng(Y(i)) / (sum - CSng(Y(1)))

Next

Y(1) = 100 * CSng(Y(1)) / sum

'-------------------------------------------------

'------计算灰色关联系数----------------------------

'计算Dmin/Dmax/Dik

Dmin = 100

Dmax = 0

sum = 0

For i = 1 To 55

For k = 1 To 5

dik(k, i) = Abs(CSng(X(i)(k)) - Y(k))

sum = sum + dik(k, i)

If dik(k, i) >= Dmax Then

Dmax = dik(k, i)

End If

If dik(k, i) mmm Then

mmm = d0(m + k)

End If

Next

epsita(i) = mmm

Next

sorted = sort(epsita)

Gray = XX(sorted(1, 2)) & " 关联度:" & Format(sorted(1, 1), "0。

0000")

End Function

该函数的参数为5种特征气体的含量数组,返回值为故障类型以及相应的关联度。

全部

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值