CN117786537B - Distributed fault diagnosis method of Boltzmann machine voting network based on FPGA - Google Patents
Distributed fault diagnosis method of Boltzmann machine voting network based on FPGA Download PDFInfo
- Publication number
- CN117786537B CN117786537B CN202410211486.7A CN202410211486A CN117786537B CN 117786537 B CN117786537 B CN 117786537B CN 202410211486 A CN202410211486 A CN 202410211486A CN 117786537 B CN117786537 B CN 117786537B
- Authority
- CN
- China
- Prior art keywords
- voting
- fpga
- boltzmann machine
- matrix
- core
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000003745 diagnosis Methods 0.000 title claims abstract description 33
- 239000011159 matrix material Substances 0.000 claims abstract description 61
- 239000013598 vector Substances 0.000 claims abstract description 26
- 238000012549 training Methods 0.000 claims abstract description 24
- 230000004913 activation Effects 0.000 claims abstract description 12
- 238000012545 processing Methods 0.000 claims abstract description 5
- 238000004891 communication Methods 0.000 claims description 10
- 238000013528 artificial neural network Methods 0.000 claims description 7
- 230000005540 biological transmission Effects 0.000 claims description 7
- 238000007667 floating Methods 0.000 claims description 7
- 238000004806 packaging method and process Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 7
- 239000004973 liquid crystal related substance Substances 0.000 claims description 5
- 239000002245 particle Substances 0.000 claims description 3
- 238000004140 cleaning Methods 0.000 claims 1
- 230000003993 interaction Effects 0.000 claims 1
- 238000004378 air conditioning Methods 0.000 abstract description 10
- 238000010438 heat treatment Methods 0.000 abstract description 10
- 238000009423 ventilation Methods 0.000 abstract description 10
- 238000011161 development Methods 0.000 description 10
- 238000004088 simulation Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 239000002699 waste material Substances 0.000 description 4
- 238000012360 testing method Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000004134 energy conservation Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005057 refrigeration Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000241 respiratory effect Effects 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
The invention discloses a distributed fault diagnosis method based on a Boltzmann machine voting network, which comprises the following steps: constructing a Boltzmann machine voting network platform; based on a training data set of an air conditioner sensor, training a Boltzmann machine voting network platform in a core FPGA, and sending the obtained optimal credibility matrix to a non-core FPGA; the non-core FPGA is adopted to respectively call the corresponding credibility vector to multiply with the voting value calculated by the activation function so as to obtain the voting edge weight between the sensor nodes, and the voting edge weight is sent to the core FPGA; integrating the voting value matrix, carrying out symmetry processing on the voting value matrix to obtain a symmetric Boltzmann machine, iterating the state of the Boltzmann machine to obtain a state value of each sensor node of the Boltzmann machine, and displaying the state value by the non-core FPGA. The invention can accurately determine the fault position and diagnosis of each sensor in the heating ventilation air conditioning system.
Description
Technical Field
The invention belongs to the technical field of air conditioning unit sensor fault detection, and particularly relates to a distributed fault diagnosis method of a Boltzmann machine voting network based on an FPGA.
Background
The intelligent building of the new era is more and more widely used in daily use of people, and the heating ventilation air conditioning system is one of the most widely used representatives of the intelligent building clusters. It is counted that about 42% of refrigeration energy consumption and 26% of maintenance cost in the hvac system are caused by equipment faults, and the fault diagnosis of hvac can reduce the energy waste rate to below 15%. Besides energy waste, equipment faults of heating ventilation and air conditioning can cause that the system can not meet the requirements of people on temperature, humidity, air quality and the like, so that people feel uncomfortable. The fault diagnosis of the heating ventilation air conditioning equipment can reduce energy waste to a great extent, and meet the requirements of people on comfortable indoor environment and respiratory health. Therefore, as one of the important research points of intelligent building energy conservation, the fault diagnosis of the heating ventilation air conditioner has extremely important practical significance. However, the fault is very costly to artificially add to the real hvac during the diagnosis process, which can result in unnecessary energy waste and discomfort to the person. If a simulation method is adopted, the problem of insufficient accuracy of a simulation model can be faced.
Disclosure of Invention
The technical problems to be solved are as follows: the invention discloses a distributed fault diagnosis method of a Boltzmann machine voting network based on an FPGA, which comprises the steps of constructing a sensor in a simulation unit based on the FPGA, connecting the node by taking the FPGA as a node and combining a constraint equation corresponding to a target sensor, constructing a Boltzmann machine voting network platform, and carrying out voting diagnosis on a fault component; the invention can accurately determine the fault position and diagnosis of each sensor in the heating ventilation air conditioning system.
The technical scheme is as follows:
A distributed fault diagnosis method of a boltzmann machine voting network based on an FPGA, the distributed fault diagnosis method comprising the steps of:
Step A, preparing n+1 FPGAs, wherein one FPGA is defined as a core FPGA, and the other n FPGAs are defined as non-core FPGAs; respectively representing n sensor nodes by n non-core FPGA, and combining constraint equation connection nodes corresponding to air conditioner sensors to construct a Boltzmann machine voting network platform; n is a positive integer greater than 1;
Step B, training a Boltzmann machine voting network platform in a core FPGA based on a training data set of an air conditioner sensor, and transmitting the obtained optimal credibility matrix to n non-core FPGAs;
Step C, n non-core FPGAs are adopted to respectively call corresponding credibility vectors to multiply voting values calculated by an activation function so as to obtain voting edge weights among the sensor nodes, and the voting edge weights are sent to the core FPGAs;
And D, integrating all voting edge weights into a voting value matrix by using a core FPGA, carrying out symmetrical treatment on the voting value matrix to obtain a symmetrical Boltzmann machine, iterating the Boltzmann machine state to obtain a state value of each sensor node of the Boltzmann machine, transmitting the state value of each sensor node to a non-core FPGA corresponding to the sensor node, and calling a tool library function to display the state value after the non-core FPGA receives the state value.
Further, in the step B, jupyterNotebook called by a double ARM Cortex-A9 kernel at a PS end of pynq-z2 is adopted to upload a training data set of a py file and an air conditioner sensor of the Boltzmann machine neural network into JupyterNotebook; the boltzmann machine neural network py file trains the boltzmann machine voting network platform.
Further, in step B, based on the training data set of the air conditioner sensor, the process of training the boltzmann machine voting network platform in the core FPGA includes the following steps:
Step B1, calculating the kth fault feature Average value of/>Standard deviation is; Wherein/>Is the ith sample of the kth fault signature corresponding to the data in the normal state in the training set,/>The number of samples of data in the normal state, which is the kth fault signature;
step B2, obtaining the confidence interval upper bound of the kth fault feature by adopting a 3-sigma statistical control method ; Using an activation function/>Converting the fault characteristics into voting values among the sensor nodes;
Step B3, adopting an n-by-n credibility matrix C to represent the credibility of votes among different sensor nodes, wherein the elements of the ith row and the jth column in the matrix Representing the reliability of the vote from sensor node i to sensor node j; let the initial value of the credibility matrix C be/>;
Step B4, substituting the activation function in the step B2 into the value of the confidence interval and then passing through the formula(t) =Obtaining the voting value/>, of the sensor node i to the sensor node j at the moment t(T), wherein/>Is a set of all fault signatures associated with both sensor node i and sensor node j; /(I)Is a vote value based on the fault feature k; /(I)The number of fault signatures associated with both sensor node i and sensor node j;
Step B5, combining the voting values into a voting matrix V (t) = Multiplying the reliability value C to be used as the edge weight of the Boltzmann machine;
Step B6, symmetry processing is carried out on the voting matrix V (t), so that W=V, and the matrix after the symmetry processing is The input of the new boltzmann machine is:
; obtaining the edge weight value/>, of the newly added node Substituting the edge weight of the newly added node into the voting matrix W to obtain a corresponding symmetrical Boltzmann machine;
where w i,j represents the voting result of the sensor node i on the sensor node j, i=1, 2, …, n, j=1, 2, …, n; voting results for each sensor node i and other nodes in the new boltzmann machine respectively; v i is the state value corresponding to the sensor node i; /(I) Representing the offset vector/>, for each node i A node deviation vector matrix composed of equal to 0; /(I)Representing a state value matrix corresponding to a new Boltzmann machine formed by combining state values of the new nodes to be equal to 1;
step B7, performing state iteration on the sensor nodes of the symmetrical Boltzmann machine until the iteration converges;
and B8, taking the reliability matrix C as a decision variable, adopting a particle swarm algorithm to continuously update the reliability matrix, repeating the steps B4 to B7 to obtain the fault diagnosis precision and the optimal reliability matrix C, and storing the data on the core FPGA in a csv format.
Further, in step B, the data transmission method based on UDP communication transmits the obtained optimal reliability matrix to n non-core FPGAs, and the transmission process includes the following steps:
Importing numpy libraries, and converting the optimal credibility matrix into column vectors by using ravel () functions;
The server binds a target IP address and a port number and sets a floating point number list to be sent; the server creates a UDP socket for network communication;
Setting the length of the fragmented data packet as IPv4 header length, UDP header length and voting value column vectors of corresponding nodes;
defining a UDP data packet header, wherein the UDP data packet header comprises a source address port number, a destination address port number, a data packet length and a checksum;
Defining a data load and a sequence stamp, packaging the data load and voting value column vector data to be transmitted by using a pack () function of a struct library of python, and transmitting the set data according to a big-end byte order;
decoding 20 floating point numbers in the original matrix data in a binary format, and packaging according to byte order;
and inputting the IP and port numbers of the source address and the target address, packaging the UDP data packet header and the data load by using the sendto () function of the socket library to generate a UDP data packet, and sending the UDP data packet to the non-core FPGA corresponding to the target address.
Further, in JupyterNotebook environments, network communication is performed using a socket module of Python; specifically, a socket object is created on each FPGA, the protocol type of the socket object is set to be UDP, and the socket object is bound to a specific address and a port allocated for each FPGA; the weight vector v ij data is sent and received for each sensor node I i using sendto () and recvfrom () functions, causing the data to be transferred to the corresponding uncore FPGA.
Further, in step C, after the ith uncore FPGA receives the data, the ith uncore FPGA is activated according to the function formula=Calculating a voting value, calling the jth credibility multiplication in the corresponding credibility vector, calculating the Boltzmann machine edge weight m ij from the ith non-core FPGA to the jth non-core FPGA, integrating the edge weight m ij into a matrix m i of 1*n, binding the IP address and port number of the ith non-core FPGA, and transmitting a UDP data packet to the core FPGA through a sendto () function; where x represents the absolute value of the kth fault signature based on the current fault signature, which can be expressed as/>;/>Fault signature absolute value/>, representing the kth fault signatureThe corresponding upper limit of the current confidence interval, the upper label ub, indicates up boundary.
Further, in the step D, the process of obtaining the state value of each sensor node of the boltzmann machine includes the following steps:
performing state iteration on the sensor nodes of the boltzmann machine to obtain a state value S of each sensor node of the boltzmann machine, wherein the state value S i,Si = of the ith non-core FPGA ,i=1,2,3,…n。
Further, in step D, the core FPGA sends the status value of each sensor node to the non-core FPGA of the corresponding sensor node, calls the lcdpackage.py file burned in pynq-z2, and interacts with the liquid crystal display screen through the Arduino interface on the PYNQ board to initialize the LCD, display the IP address, communicate the LCD, and clear the LCD; the LCDPACKAGE library is named as lcd when called, and the lcd.lcd_string () function is used to display the state value S i of each non-core FPGA on the corresponding liquid crystal display.
The beneficial effects are that:
The invention discloses a distributed fault diagnosis method of a Boltzmann machine voting network based on an FPGA, which comprises the steps of constructing a sensor in a simulation unit based on the FPGA, connecting the node by taking the FPGA as a node and combining a constraint equation corresponding to a target sensor, constructing a Boltzmann machine voting network platform, and carrying out voting diagnosis on a fault component; the invention can accurately determine the fault position and diagnosis of each sensor in the heating ventilation air conditioning system.
Drawings
FIG. 1 is a schematic diagram of a Boltzmann machine voting network;
Fig. 2 is a schematic diagram of the structure of a UDP packet;
FIG. 3 is a flow chart of a distributed fault diagnosis method of an FPGA-based Boltzmann machine voting network in an embodiment of the invention;
fig. 4 is a schematic diagram of a simulation system corresponding to a distributed fault diagnosis method based on a boltzmann machine voting network according to an embodiment of the present invention.
Detailed Description
The following examples will provide those skilled in the art with a more complete understanding of the invention, but are not intended to limit the invention in any way.
The embodiment of the invention discloses a distributed fault diagnosis method of a Boltzmann machine voting network based on an FPGA, which comprises the following steps:
Step A, preparing n+1 FPGAs, wherein one FPGA is defined as a core FPGA, and the other n FPGAs are defined as non-core FPGAs; respectively representing n sensor nodes by n non-core FPGA, and combining constraint equation connection nodes corresponding to air conditioner sensors to construct a Boltzmann machine voting network platform; n is a positive integer greater than 1;
Step B, training a Boltzmann machine voting network platform in a core FPGA based on a training data set of an air conditioner sensor, and transmitting the obtained optimal credibility matrix to n non-core FPGAs;
Step C, n non-core FPGAs are adopted to respectively call corresponding credibility vectors to multiply voting values calculated by an activation function so as to obtain voting edge weights among the sensor nodes, and the voting edge weights are sent to the core FPGAs;
And D, integrating all voting edge weights into a voting value matrix by using a core FPGA, carrying out symmetrical treatment on the voting value matrix to obtain a symmetrical Boltzmann machine, iterating the Boltzmann machine state to obtain a state value of each sensor node of the Boltzmann machine, transmitting the state value of each sensor node to a non-core FPGA corresponding to the sensor node, and calling a tool library function to display the state value after the non-core FPGA receives the state value.
The embodiment establishes a simulation system of heating ventilation and air conditioning based on a plurality of Xilinx FPGA PYNQ-Z2 development boards of element companies. In this system, each FPGA development board characterizes one sensor. Based on the programmability, parallel computing capability and pynq-z2 development board software of the FPGA, the simulation of the FPGA on the heating ventilation and air conditioning system is realized by importing measured data of the heating ventilation and air conditioning in two projects of ASHRAE RP-1312 and ASHRAE RP-1043 into the FPGA, so that the fault position and diagnosis are determined.
Referring to fig. 3 and 4, the distributed fault diagnosis method based on the boltzmann machine voting network according to the embodiment of the present invention includes the steps of:
1. the n+1 block Xilinx pynq-z2 development board is prepared, and the distributed fault of this embodiment is performed in two stages, namely a training stage and a testing stage. In the training stage, 1 piece pynq-z2 development board is to be used as a core FPGA, the core FPGA is named as I 0, the other n pieces pynq-z2 development boards are used as uncore FPGAs, the uncore FPGAs are respectively named as I i (i=1, 2,3 …, n), the training of the Boltzmann machine voting neural network is carried out, and the training data set of the Py file and the air conditioner sensor of the Boltzmann machine neural network is uploaded to JupyterNotebook by using JupyterNotebook called by a PS end double ARM Cortex-A9 kernel of pynq-z 2.
The boltzmann machine neural network is executed in the core FPGA I 0. Py file completes the following steps:
a. calculating the average value of the kth fault feature |rk| as Standard deviation is; Wherein/>Is the ith sample of the kth fault feature corresponding to the data in the normal state in the training set,/>Is the number of samples of data in the normal state of the kth fault signature.
B. the step aAnd/>Obtaining confidence interval upper bound/>, of kth fault feature through 3-sigma statistical control method. Using an activation function/>The fault signature is translated into a vote value between the sensor nodes.
C. For votes between different sensor nodes with different credibility, we initially use an n x n credibility matrix c=To represent the credibility of votes between different sensor nodes, wherein the element of the ith row and jth column in the matrix/>Representing the reliability of the vote from sensor node i to sensor node j.
D. Bringing the activation function in step b to the value of the confidence interval by the formulaObtaining the voting value/>, of the sensor node i to the sensor node j at the moment t(T), wherein/>Is a set of all fault signatures associated with both sensor node i and sensor node j; /(I)Is a vote value based on the fault feature k; /(I)Is the number of fault signatures associated with both sensor node i and sensor node j.
E. After the vote values are obtained in the training phase, the vote values are combined to form a vote matrix V (t) =And multiplies the reliability value C as the edge weight of the Boltzmann machine.
F. the voting matrix V (t) is symmetric, W=V, and the matrix after the symmetric treatment isInput of new boltzmann machine. Thus, the edge weight/>, of the newly added node can be obtainedSubstituting the edge weight of the newly added node into the voting matrix W to obtain a corresponding symmetrical Boltzmann machine; where w i,j represents the voting result of node sensor i on node sensor j; a i is the mutual voting result between the new node and each other in the new Boltzmann machine respectively defined by initialization; v i is a state value corresponding to the sensor node i in the new boltzmann machine; /(I)Representing the offset vector/>, for each node i A node deviation vector matrix composed of equal to 0; /(I)And representing a state value matrix corresponding to the new Boltzmann machine formed by combining the state values of the new nodes to be equal to 1.
G. And (3) starting state iteration by the nodes of the symmetrical Boltzmann machine, and determining the node state after convergence, namely realizing fault positioning. In order to obtain an optimal reliability matrix, the reliability matrix C is used as a decision variable, a particle swarm algorithm is adopted to continuously update the reliability matrix, and then the process is repeated to obtain fault diagnosis precision. Finally, an optimal credibility matrix C is obtained, and data is stored on the core FPGA I 0 in a csv format. The training phase ends up here. Fig. 1 is a schematic diagram of a boltzmann machine voting network.
2. The rest n pynq-z2 development boards are used for building the sensor of the Boltzmann machine voting network in the test stage, and each FPGA is used as one sensor node in the sensor corresponding voting network and is numbered as I i (i=1, 2,3, … n). The ith row credibility matrix trained in the training stage is sent to the corresponding FPGA node according to the following data transmission method based on UDP communication:
a. a numpy library is imported, and the matrix is converted into column vectors using ravel () function.
B. The method comprises the steps that a server side firstly binds a target IP address and a port number, and sets a floating point number list to be sent; the server creates a UDP socket for network communication.
C. The IPv4 packet includes an IPv4 header, a UDP header, and a data payload, and the fragmentation length of the network layer is determined by the MTU (maximum transmission unit), and defaults to 1500 bytes, including an IPv4 header (typically 20 bytes) and a UDP header (8 bytes). The length of the fragmented packet is set to be the IPv4 header length, the UDP header length, and the voting value column vector of the corresponding node (double-precision floating point number type column vector with length of n, total length of 8n bytes).
D. referring to fig. 2, defining a header portion of 8 bytes in length includes:
Source address port number;
destination address number;
Packet length (including UDP header and total length of data in bytes);
checksum (detects whether a packet has an error in the transmission process).
E. A data payload is defined in which sequence control (sequence stamp) is customized and packed with voting value column vector data to be transmitted using the pack () function of the struct library of python, with the data being set to be transmitted in big-end byte order (MSB).
F. And decoding 20 floating point numbers in the original matrix data in a binary format, and packaging according to byte order.
G. The fields include a UDP packet header (including a source address port number, a destination address port number, a length, and a checksum), a data payload (including a sequence stamp), and a sendto () function of a socket library is used to automatically generate a UDP packet by inputting the IP and port numbers of the source address and the destination address, and send the packet to the FPGA corresponding to the destination address, where the destination is node I i.
H. in the JupyterNotebook environment, network communication is implemented using a socket module of Python.
I. And creating a socket object on each FPGA, setting the protocol type of the socket object as UDP, and binding the socket object to a specific address and a port allocated for each FPGA.
J. the weight vector v ij data is sent and received for each corresponding node I i using sendto () and recvfrom () functions, ensuring that the data is properly transferred to the corresponding uncore FPGA.
3. In JupyterNotebook, the ith non-core FPGA receives and stores the ith row in the reliability matrix in the UDP packet sent by the core FPGA I0 at each moment. Py file of voting network after receiving data from ith non-core FPGA, according to formula of activation function in the py fileCalculating a voting value, then calling the j-th credibility in the corresponding credibility vector to multiply, calculating the Boltzmann machine edge weight m ij from the I-th non-core FPGA to the j-th non-core FPGA, integrating the edge weight into a matrix m i of 1*n, binding the IP address and port number of the I i development board, repeating the steps a-j of the step 2, and sending the UDP data packet to the core FPGA I 0 through a sendto () function.
4. After receiving all the edge weights, the core FPGA can form an asymmetric Boltzmann machine, and then the step 1f is repeated to obtain newly added node edge weights, and the symmetric Boltzmann machine is obtained through symmetry.
5. The states of the boltzmann machine may be iterated according to the edge weights to obtain a state value S of each node of the boltzmann machine, e.g., a state value S i(i=1,2,3,…n),Si =of the i-th non-core FPGA。
6. The state S i (i=1, 2,3, … n) repeats the steps a-k in the step 2 through the main development board I 0, sends the data to be transmitted to the remaining n development boards again in the form of UDP data packets, and calls the lcdpackage.py file which is burned in pynq-z2 in advance, and interacts with the 16x2 Liquid Crystal Display (LCD) through the Arduino interface on the PYNQ board to initialize the LCD, display the IP address, communicate the LCD, and clear the LCD.
7. The LCDPACKAGE library call time was named lcd, and the final state value S i was displayed on the lcd devices on the n non-core FPGAs in the test phase using the lcd.lcd_string () function.
The above is only a preferred embodiment of the present invention, and the protection scope of the present invention is not limited to the above examples, and all technical solutions belonging to the concept of the present invention belong to the protection scope of the present invention. It should be noted that modifications and adaptations to the invention without departing from the principles thereof are intended to be within the scope of the invention as set forth in the following claims.
Claims (8)
1. The distributed fault diagnosis method of the Boltzmann machine voting network based on the FPGA is characterized by comprising the following steps of:
Step A, preparing n+1 FPGAs, wherein one FPGA is defined as a core FPGA, and the other n FPGAs are defined as non-core FPGAs; respectively representing n sensor nodes by n non-core FPGA, and combining constraint equation connection nodes corresponding to air conditioner sensors to construct a Boltzmann machine voting network platform; n is a positive integer greater than 1;
Step B, training a Boltzmann machine voting network platform in a core FPGA based on a training data set of an air conditioner sensor, and transmitting the obtained optimal credibility matrix to n non-core FPGAs;
Step C, n non-core FPGAs are adopted to respectively call corresponding credibility vectors to multiply voting values calculated by an activation function so as to obtain voting edge weights among the sensor nodes, and the voting edge weights are sent to the core FPGAs;
And D, integrating all voting edge weights into a voting value matrix by using a core FPGA, carrying out symmetrical treatment on the voting value matrix to obtain a symmetrical Boltzmann machine, iterating the Boltzmann machine state to obtain a state value of each sensor node of the Boltzmann machine, transmitting the state value of each sensor node to a non-core FPGA corresponding to the sensor node, and calling a tool library function to display the state value after the non-core FPGA receives the state value.
2. The distributed fault diagnosis method of the boltzmann machine voting network based on the FPGA according to claim 1, wherein in the step B, a JupyterNotebook called by a double ARM Cortex-A9 kernel at a PS end of pynq-z2 is adopted to upload a training data set of a file py and an air conditioner sensor of the boltzmann machine neural network into JupyterNotebook; the boltzmann machine neural network py file trains the boltzmann machine voting network platform.
3. The distributed fault diagnosis method of the boltzmann machine voting network based on the FPGA according to claim 1, wherein in the step B, the process of training the boltzmann machine voting network platform in the core FPGA based on the training data set of the air conditioner sensor comprises the steps of:
Step B1, calculating the kth fault feature Average value/>Standard deviation of; Wherein/>Is the ith sample of the kth fault signature corresponding to the data in the normal state in the training set,/>The number of samples of data in the normal state, which is the kth fault signature;
step B2, obtaining the confidence interval upper bound of the kth fault feature by adopting a 3-sigma statistical control method ; Using an activation function/>Converting the fault characteristics into voting values among the sensor nodes;
Step B3, adopting an n-by-n credibility matrix C to represent the credibility of votes among different sensor nodes, wherein the elements of the ith row and the jth column in the matrix Representing the reliability of the vote from sensor node i to sensor node j; let the initial value of the credibility matrix C be/>;
Step B4, substituting the activation function in the step B2 into the value of the confidence interval and then passing through the formula(t) =Obtaining the voting value/>, of the sensor node i to the sensor node j at the moment t(T), wherein/>Is a set of all fault signatures associated with both sensor node i and sensor node j; /(I)Is a vote value based on the fault feature k; /(I)The number of fault signatures associated with both sensor node i and sensor node j;
Step B5, combining the voting values into a voting matrix V (t) = Multiplying the reliability value C to be used as the edge weight of the Boltzmann machine;
Step B6, symmetry processing is carried out on the voting matrix V (t), so that W=V, and the matrix after the symmetry processing is The input of the new boltzmann machine is:
; obtaining the edge weight value/>, of the newly added node Substituting the edge weight of the newly added node into the voting matrix W to obtain a corresponding symmetrical Boltzmann machine;
where w i,j represents the voting result of the sensor node i on the sensor node j, i=1, 2, …, n, j=1, 2, …, n; voting results for each sensor node i and other nodes in the new boltzmann machine respectively; v i is the state value corresponding to the sensor node i; /(I) Representing the offset vector/>, for each node i A node deviation vector matrix composed of equal to 0; /(I)Representing a state value matrix corresponding to a new Boltzmann machine formed by combining state values of the new nodes to be equal to 1;
step B7, performing state iteration on the sensor nodes of the symmetrical Boltzmann machine until the iteration converges;
and B8, taking the reliability matrix C as a decision variable, adopting a particle swarm algorithm to continuously update the reliability matrix, repeating the steps B4 to B7 to obtain the fault diagnosis precision and the optimal reliability matrix C, and storing the data on the core FPGA in a csv format.
4. The distributed fault diagnosis method of the boltzmann machine voting network based on the FPGA according to claim 1, wherein in step B, the data transmission method based on UDP communication transmits the obtained optimal reliability matrix to n non-core FPGAs, and the transmission process includes the steps of:
Importing numpy libraries, and converting the optimal credibility matrix into column vectors by using ravel () functions;
The server binds a target IP address and a port number and sets a floating point number list to be sent; the server creates a UDP socket for network communication;
Setting the length of the fragmented data packet as IPv4 header length, UDP header length and voting value column vectors of corresponding nodes;
defining a UDP data packet header, wherein the UDP data packet header comprises a source address port number, a destination address port number, a data packet length and a checksum;
Defining a data load and a sequence stamp, packaging the data load and voting value column vector data to be transmitted by using a pack () function of a struct library of python, and transmitting the set data according to a big-end byte order;
decoding 20 floating point numbers in the original matrix data in a binary format, and packaging according to byte order;
and inputting the IP and port numbers of the source address and the target address, packaging the UDP data packet header and the data load by using the sendto () function of the socket library to generate a UDP data packet, and sending the UDP data packet to the non-core FPGA corresponding to the target address.
5. The distributed fault diagnosis method of the boltzmann machine voting network based on the FPGA according to claim 1, wherein in JupyterNotebook environments, network communication is performed by using socket modules of Python; specifically, a socket object is created on each FPGA, the protocol type of the socket object is set to be UDP, and the socket object is bound to a specific address and a port allocated for each FPGA; the weight vector v ij data is sent and received for each sensor node I i using sendto () and recvfrom () functions, causing the data to be transferred to the corresponding uncore FPGA.
6. The distributed fault diagnosis method for an FPGA-based boltzmann machine voting network according to claim 1, wherein in step C, after the ith uncore FPGA receives the data, it uses an activation function formula=Calculating a voting value, calling the jth credibility multiplication in the corresponding credibility vector, calculating the Boltzmann machine edge weight m ij from the ith non-core FPGA to the jth non-core FPGA, integrating the edge weight m ij into a matrix m i of 1*n, binding the IP address and port number of the ith non-core FPGA, and transmitting a UDP data packet to the core FPGA through a sendto () function; where x represents the absolute value of the kth fault signature based on the current fault signature,/>Fault signature absolute value/>, representing the kth fault signatureThe corresponding upper limit of the current confidence interval.
7. The distributed fault diagnosis method of the boltzmann machine voting network based on the FPGA according to claim 1, wherein in the step D, the process of obtaining the state value of each sensor node of the boltzmann machine includes the steps of:
performing state iteration on the sensor nodes of the boltzmann machine to obtain a state value S of each sensor node of the boltzmann machine, wherein the state value S i,Si = of the ith non-core FPGA ,i=1,2,3,…n。
8. The distributed fault diagnosis method of the boltzmann machine voting network based on the FPGA according to claim 1, wherein in the step D, the core FPGA sends the state value of each sensor node to the non-core FPGA of the corresponding sensor node, and the LCDpackage file recorded in pynq-z2 is called to realize the functional processes of initializing LCD, displaying IP address, LCD communication and cleaning LCD through the interaction between the Arduino interface on the PYNQ board and the liquid crystal display; the LCDPACKAGE library is named as lcd when called, and the lcd.lcd_string () function is used to display the state value S i of each non-core FPGA on the corresponding liquid crystal display.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410211486.7A CN117786537B (en) | 2024-02-27 | 2024-02-27 | Distributed fault diagnosis method of Boltzmann machine voting network based on FPGA |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410211486.7A CN117786537B (en) | 2024-02-27 | 2024-02-27 | Distributed fault diagnosis method of Boltzmann machine voting network based on FPGA |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117786537A CN117786537A (en) | 2024-03-29 |
CN117786537B true CN117786537B (en) | 2024-04-30 |
Family
ID=90382058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410211486.7A Active CN117786537B (en) | 2024-02-27 | 2024-02-27 | Distributed fault diagnosis method of Boltzmann machine voting network based on FPGA |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117786537B (en) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103197231A (en) * | 2013-04-03 | 2013-07-10 | 湖南大学 | Field programmable gate array (FPGA) device for diagnosing and predicting artificial circuit faults |
CN107451091A (en) * | 2017-08-02 | 2017-12-08 | 上海金融期货信息技术有限公司 | High speed information interactive system based on FPGA CPU mixed architectures |
CN111259834A (en) * | 2020-01-20 | 2020-06-09 | 武汉大学 | Transformer fault diagnosis method and system based on integrated deep belief network |
CN114004374A (en) * | 2021-10-22 | 2022-02-01 | 南京信息工程大学 | Air conditioning unit sensor fault diagnosis method based on Boltzmann machine voting |
CN115289608A (en) * | 2022-07-31 | 2022-11-04 | 南京信息工程大学 | Air conditioning unit fault diagnosis method based on supervised voting mechanism |
CN116720549A (en) * | 2023-07-03 | 2023-09-08 | 北京航空航天大学 | FPGA multi-core two-dimensional convolution acceleration optimization method based on CNN input full cache |
CN116842998A (en) * | 2023-05-25 | 2023-10-03 | 同济大学 | Distributed optimization-based multi-FPGA collaborative training neural network method |
CN117521752A (en) * | 2023-11-08 | 2024-02-06 | 电科云(北京)科技有限公司 | Neural network acceleration method and system based on FPGA |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11122118B2 (en) * | 2019-10-31 | 2021-09-14 | Elasticsearch B.V. | Node clustering configuration |
-
2024
- 2024-02-27 CN CN202410211486.7A patent/CN117786537B/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103197231A (en) * | 2013-04-03 | 2013-07-10 | 湖南大学 | Field programmable gate array (FPGA) device for diagnosing and predicting artificial circuit faults |
CN107451091A (en) * | 2017-08-02 | 2017-12-08 | 上海金融期货信息技术有限公司 | High speed information interactive system based on FPGA CPU mixed architectures |
CN111259834A (en) * | 2020-01-20 | 2020-06-09 | 武汉大学 | Transformer fault diagnosis method and system based on integrated deep belief network |
CN114004374A (en) * | 2021-10-22 | 2022-02-01 | 南京信息工程大学 | Air conditioning unit sensor fault diagnosis method based on Boltzmann machine voting |
CN115289608A (en) * | 2022-07-31 | 2022-11-04 | 南京信息工程大学 | Air conditioning unit fault diagnosis method based on supervised voting mechanism |
CN116842998A (en) * | 2023-05-25 | 2023-10-03 | 同济大学 | Distributed optimization-based multi-FPGA collaborative training neural network method |
CN116720549A (en) * | 2023-07-03 | 2023-09-08 | 北京航空航天大学 | FPGA multi-core two-dimensional convolution acceleration optimization method based on CNN input full cache |
CN117521752A (en) * | 2023-11-08 | 2024-02-06 | 电科云(北京)科技有限公司 | Neural network acceleration method and system based on FPGA |
Non-Patent Citations (2)
Title |
---|
Nano Ballot Box: A Low Power, Thermal Resistant FPGA Based Electronic Voting Machine;Prashant Kudesia等;2021 International Conference on Simulation, Automation & Smart Manufacturing (SASM);20220801;1-6 * |
基于投票机制的暖通空调空气处理单元传感器故障诊断;严颖等;电子与信息学报;20230220;第46卷(第01期);258-266 * |
Also Published As
Publication number | Publication date |
---|---|
CN117786537A (en) | 2024-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kirichek et al. | Internet of things laboratory test bed | |
Liu et al. | Simulation modeling of large-scale ad-hoc sensor networks | |
CN109164707A (en) | A kind of indoor environment negative-feedback regu- lation system based on artificial neural network algorithm | |
CN110889509A (en) | Joint learning method and device based on gradient momentum acceleration | |
CN112532746A (en) | Cloud edge cooperative sensing method and system | |
Etman et al. | Aggregate modeling of semiconductor equipment using effective process times | |
CN109740026A (en) | Smart city edge calculations platform and its management method, server and storage medium | |
CN112929218A (en) | System and device for automatically generating virtual and real environments of industrial control target range | |
CN117786537B (en) | Distributed fault diagnosis method of Boltzmann machine voting network based on FPGA | |
CN111935767B (en) | Network simulation system | |
Saeed et al. | An IoT-Based Network for Smart Urbanization | |
Chellaboina et al. | On system state equipartitioning and semistability in network dynamical systems with arbitrary time-delays | |
CN107688878B (en) | Air Quality Forecast method and device | |
Jamil et al. | Technological innovation capability evaluation of high-tech firms using conjunctive and disjunctive belief rule-based expert system: a comparative study | |
CN116868219A (en) | System and user interface for generating a recipe of a curable composition | |
Simões et al. | Improving energy efficiency of cyber physical systems using multi-agent based control | |
CN108156258A (en) | A kind of general agricultural data acquisition system based on Internet of Things | |
Matabuena et al. | Educational platform for communications using the MQTT protocol | |
Gilpin et al. | Co-simulation solutions using AA4MM-FMI applied to smart space heating models | |
Rast et al. | Transport-independent protocols for universal AER communications | |
Schwefel et al. | Adaptive caching strategies for context management systems | |
WO2022209047A1 (en) | Information management method and information management system | |
CN110084358A (en) | A kind of smart home multi-Sensor Information Fusion Approach neural network based | |
Tabib et al. | Modelling and prediction of internet time-delay by feed-forward multi-layer perceptron neural network | |
CN113656952B (en) | Modeling tool for cloud edge computing environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |