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 PDF

Info

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
Application number
CN202410211486.7A
Other languages
Chinese (zh)
Other versions
CN117786537A (en
Inventor
周颖
严颖
宋睿
袁蕴宸
章伟杰
陈心云
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University of Information Science and Technology
Original Assignee
Nanjing University of Information Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing University of Information Science and Technology filed Critical Nanjing University of Information Science and Technology
Priority to CN202410211486.7A priority Critical patent/CN117786537B/en
Publication of CN117786537A publication Critical patent/CN117786537A/en
Application granted granted Critical
Publication of CN117786537B publication Critical patent/CN117786537B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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

Distributed fault diagnosis method of Boltzmann machine voting network based on FPGA
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.
CN202410211486.7A 2024-02-27 2024-02-27 Distributed fault diagnosis method of Boltzmann machine voting network based on FPGA Active CN117786537B (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11122118B2 (en) * 2019-10-31 2021-09-14 Elasticsearch B.V. Node clustering configuration

Patent Citations (8)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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