CN117786537A - 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
- CN117786537A CN117786537A CN202410211486.7A CN202410211486A CN117786537A CN 117786537 A CN117786537 A CN 117786537A CN 202410211486 A CN202410211486 A CN 202410211486A CN 117786537 A CN117786537 A CN 117786537A
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 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 25
- 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
- 230000008569 process Effects 0.000 claims description 9
- 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
- 238000013528 artificial neural network Methods 0.000 claims description 6
- 239000004973 liquid crystal related substance Substances 0.000 claims description 6
- 239000002245 particle Substances 0.000 claims description 3
- 238000004140 cleaning Methods 0.000 claims 1
- 238000004378 air conditioning Methods 0.000 abstract description 11
- 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
- 238000012360 testing method Methods 0.000 description 4
- 239000002699 waste material Substances 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000009977 dual effect Effects 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
- 238000002360 preparation method Methods 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.
In the step B, a JupyterNotook called by a PS end double ARM Cortex-A9 kernel 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 the JupyterNotook; 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 featureAverage value of +.>Standard deviation isThe method comprises the steps of carrying out a first treatment on the surface of the Wherein->Is the ith sample of the training set corresponding to the kth fault signature of the data under normal conditions,/for the data under normal conditions>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 methodThe method comprises the steps of carrying out a first treatment on the surface of the Use of 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 matrixRepresenting the reliability of the vote from sensor node i to sensor node j; let the initial value of the confidence 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 a voting value of a sensor node i to a 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; />Is a vote value based on the fault feature k; />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 isThe input of the new boltzmann machine is: />The method comprises the steps of carrying out a first treatment on the surface of the Obtaining the edge weight 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;
wherein w is i,j Representing the voting result of sensor node i on 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 The state value corresponding to the sensor node i; />Representing the offset vector for each node> i A node deviation vector matrix composed of equal to 0; />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 a numpy library, and converting the optimal credibility matrix into a column vector by using a radial () function;
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 the jupyternotbook environment, network communication is performed by 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; with sendto () and recvfrom () functions, for each sensor node I i Transmit and receive weight vector v ij And transmitting the data to the corresponding non-core 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, and calculating the Boltzmann machine edge weight m from the ith non-core FPGA to the jth non-core FPGA ij And the edge weight m ij Matrix m integrated as 1*n i Binding the IP address and port number of the ith non-core FPGA, and sending the UDP data packet to the core FPGA through sendto () function; wherein 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 +.>The 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 of the ith non-core FPGA i ,S i =,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 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; wherein, the LCDpackage library is named as lcd when being called, and the lcd.lcd_string () function is used to store the state value S of each uncore FPGA i And displaying on the corresponding liquid crystal display screen.
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 heating ventilation and air conditioning simulation system 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 control of the pynq-z2 development board software on the hardware structure of the FPGA, 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 fault positions 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 preparation of an n+1 block Xilinx pynq-z2 development board, the distributed fault of this embodiment, is performed in two phases, the training phase and the testing phase, respectively. 1 pynq-z2 development board was intended to be used as the core FPGA during the training phase, which was designated as I 0 The remaining n pynq-z2 development boards were designated as non-core FPGAs, respectively as I i (i=1, 2,3 …, n) training of boltzmann machine voting neural network, the process uses jupyterNotook called by PS-side dual ARM Cortex-A9 kernel of pynq-z2 to upload the jupyttmann machine neural network's file and training dataset of air conditioning sensors into jupyterNotook.
In core FPGA I 0 The py file completes the following steps:
a. calculating the average value of the kth fault feature |rk| asStandard deviation isThe method comprises the steps of carrying out a first treatment on the surface of the Wherein->Is the ith sample of the kth fault signature corresponding to data in normal state in the training set,/for the training set>Is the number of samples of data in the normal state of the kth fault signature.
b. The step aAnd->Confidence of kth fault feature is obtained through 3-sigma statistical control methodZone upper bound->. Use of 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 row i and column j 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 a voting value of a sensor node i to a 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; />Is a vote value based on the fault feature k; />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 isThe input of the new boltzmann machine is +.>. Thus, the edge weight +.>Substituting the edge weight of the newly added node into the voting matrix W to obtain a corresponding symmetrical Boltzmann machine; wherein w is i,j A voting result of the node sensor i to the node sensor j is shown; a, a i Defining the mutual voting results of the new node and other nodes in the new boltzmann machine for initialization; v i The state value corresponding to the sensor node i in the new boltzmann machine is formed; />Representing the offset vector for each node> i A node deviation vector matrix composed of equal to 0; />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 the data is stored in a core FPGA I in a csv format 0 And (3) upper part. To this endThe training phase ends. Fig. 1 is a schematic diagram of a boltzmann machine voting network.
2. In the test stage, the rest n pynq-z2 development boards are used for building the sensor of the Boltzmann machine voting network, 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 to column vectors using the radial () 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 comprise a UDP data packet head (comprising a source address port number, a target address port number, a length and a checksum), a data load (comprising a sequence stamp), a sendto () function of a socket library is used, a UDP data packet is automatically generated by inputting the IP and the port numbers of the source address and the target address, the data packet is sent to an FPGA corresponding to the target address, and the target is node I i 。
h. In the jupyternotbook environment, network communication is implemented using socket modules 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. For each corresponding node I, a sendto () and recvfrom () function is utilized i Transmit and receive weight vector v ij And the data can be ensured to be correctly transmitted to the corresponding non-core FPGA.
3. And the n-block pynq-z2 development boards in the test stage also need to upload voting network, and the py file is uploaded to the JupyterNotebook, and the ith non-core FPGA receives and stores the ith row in the credibility matrix in the UDP data 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 multiplication in the corresponding credibility vector to calculate the Boltzmann machine edge weight m from the i-th non-core FPGA to the j-th non-core FPGA ij And integrates the edge weight into a matrix m of 1*n i Binding I i Developing the IP address and port number of the board, repeating the steps a-j of the step 2, and transmitting the UDP data packet to the core FPGA I through sendto () function 0 。
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 state of the boltzmann machine can be based on the edgesThe weight is iterated to obtain the state value S of each node of the Boltzmann machine, such as the state value S of the ith non-core FPGA i (i=1,2,3,…n),S i =。
6. State S i (i=1, 2,3, … n) through the main development board I 0 And (3) repeating the steps a-k in the step (2), sending the data to be transmitted to the rest n development boards in a UDP data packet, calling the LCDpackage file recorded in the PYNQ-z2 in advance, and realizing the functional processes of initializing the LCD, displaying the IP address, communicating the LCD and clearing the LCD by interacting with a 16x2 Liquid Crystal Display (LCD) through an Arduino interface on the PYNQ board.
7. The LCDpackage library call time is named lcd, and the final state value S is obtained by using an lcd.lcd_string () function i And displaying on the liquid crystal display devices on the n non-core FPGAs in the test stage.
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 training data set of a file and an air conditioner sensor of the boltzmann machine neural network is uploaded into the jupyternotibook by using jupyternotibook called by a PS-end double ARM Cortex-A9 kernel of the pynq-z 2; 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 featureMean value of>Standard deviation->The method comprises the steps of carrying out a first treatment on the surface of the Wherein->Is the ith sample of the training set corresponding to the kth fault signature of the data under normal conditions,/for the data under normal conditions>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 methodThe method comprises the steps of carrying out a first treatment on the surface of the Use of 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 matrixRepresenting the reliability of the vote from sensor node i to sensor node j; let the initial value of the confidence 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 a voting value of a sensor node i to a 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; />Is a vote value based on the fault feature k; />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 isThe input of the new boltzmann machine is: />The method comprises the steps of carrying out a first treatment on the surface of the Obtaining the edge weight 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;
wherein w is i,j Representing the voting result of sensor node i on 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 The state value corresponding to the sensor node i; />Representing the offset vector for each node> i A node deviation vector matrix composed of equal to 0; />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 a numpy library, and converting the optimal credibility matrix into a column vector by using a radial () function;
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 a jupyterNotook environment, network communication is performed by 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; with sendto () and recvfrom () functions, for each sensor node I i Transmit and receive weight vector v ij And transmitting the data to the corresponding non-core 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, and calculating the Boltzmann machine edge weight m from the ith non-core FPGA to the jth non-core FPGA ij And the edge weight m ij Matrix m integrated as 1*n i Binding the IP address and port number of the ith non-core FPGA, and sending the UDP data packet to the core FPGA through sendto () function; wherein x represents the absolute value of the kth fault signature based on the current fault signature, +.>Fault signature absolute value +.>The 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 of the ith non-core FPGA i ,S i =,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, the LCDpackage file burnt in the PYNQ-z2 is called, and the functional processes of initializing LCD, displaying IP address, LCD communication and cleaning LCD are realized by interacting with a liquid crystal display screen through an Arduino interface on the PYNQ board; wherein, the LCDpackage library is named as lcd when being called, and the lcd.lcd_string () function is used to store the state value S of each uncore FPGA i And displaying on the corresponding liquid crystal display screen.
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 true CN117786537A (en) | 2024-03-29 |
CN117786537B 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 (9)
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 |
US20210136146A1 (en) * | 2019-10-31 | 2021-05-06 | Elasticsearch B.V. | Node Clustering Configuration |
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 |
-
2024
- 2024-02-27 CN CN202410211486.7A patent/CN117786537B/en active Active
Patent Citations (9)
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 |
US20210136146A1 (en) * | 2019-10-31 | 2021-05-06 | Elasticsearch B.V. | Node Clustering Configuration |
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 (3)
Title |
---|
PRASHANT KUDESIA等: "Nano Ballot Box: A Low Power, Thermal Resistant FPGA Based Electronic Voting Machine", 2021 INTERNATIONAL CONFERENCE ON SIMULATION, AUTOMATION & SMART MANUFACTURING (SASM), 1 August 2022 (2022-08-01), pages 1 - 6 * |
YF869778412: "云中的机器学习:FPGA 上的深度神经网络", Retrieved from the Internet <URL:https://www.cnblogs.com/chengqi521/p/8184712.html> * |
严颖等: "基于投票机制的暖通空调空气处理单元传感器故障诊断", 电子与信息学报, vol. 46, no. 01, 20 February 2023 (2023-02-20), pages 258 - 266 * |
Also Published As
Publication number | Publication date |
---|---|
CN117786537B (en) | 2024-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230039182A1 (en) | Method, apparatus, computer device, storage medium, and program product for processing data | |
CN109164707A (en) | A kind of indoor environment negative-feedback regu- lation system based on artificial neural network algorithm | |
CN108665089B (en) | Robust optimization model solving method for site selection problem | |
CN113096787A (en) | Combined decision-making system and method for data-driven epidemic situation detection and medical resource allocation | |
CN112929218B (en) | System and device for automatically generating virtual and real environments of industrial control target range | |
CN108399470B (en) | Indoor PM2.5 prediction method based on multi-example genetic neural network | |
Norgaard et al. | Neural network prediction of new aircraft design coefficients | |
CN109740026A (en) | Smart city edge calculations platform and its management method, server and storage medium | |
CN115344883A (en) | Personalized federal learning method and device for processing unbalanced data | |
CN113312177B (en) | Wireless edge computing system and optimizing method based on federal learning | |
Etman et al. | Aggregate modeling of semiconductor equipment using effective process times | |
CN105869181A (en) | Body joint distributed information consistency estimation method based on interacting multiple models | |
CN115775085A (en) | Smart city management method and system based on digital twin | |
CN117786537B (en) | Distributed fault diagnosis method of Boltzmann machine voting network based on FPGA | |
CN113543026B (en) | Multi-floor indoor positioning method based on radial basis function network | |
Saeed et al. | An IoT-Based Network for Smart Urbanization | |
Jamil et al. | Technological innovation capability evaluation of high-tech firms using conjunctive and disjunctive belief rule-based expert system: a comparative study | |
CN113537613B (en) | Temporal network prediction method for die body perception | |
CN115310727A (en) | Building cooling, heating and power load prediction method and system based on transfer learning | |
CN114065646A (en) | Energy consumption prediction method based on hybrid optimization algorithm, cloud computing platform and system | |
CN114841361A (en) | Model training method and related equipment thereof | |
CN110084358A (en) | A kind of smart home multi-Sensor Information Fusion Approach neural network based | |
CN113822000B (en) | Flow field real-time prediction system and method based on edge calculation | |
CN113852349B (en) | Remote monitoring method and system for 5G photovoltaic power station | |
CN116700049B (en) | Multi-energy network digital twin real-time simulation system and method based on data driving |
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 |