Systems and methods for using artificial neurons and spike neurons to model nonlinear dynamics and control systems
By employing neuromorphic computing devices with ANs and SNs, the challenges of training conventional ANNs are overcome, enabling efficient, explainable, and reliable modeling of nonlinear dynamics and control systems.
Patent Information
- Application Number
- PCT/US2024/049308
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-09-29
- Filing Date
- 2024-09-30
- Publication Date
- 2025-04-03
AI Technical Summary
Conventional artificial neural networks (ANNs) are costly and time-consuming to train, lack explainability, and are unreliable for safety-critical applications, particularly in modeling nonlinear dynamics and control systems.
The use of neuromorphic computing devices configured with artificial neurons (ANs) and spike neurons (SNs) to model nonlinear dynamics and control systems, allowing for real-time learning and reduced power consumption compared to digital implementations.
This approach provides a reliable, tractable, and explainable method for modeling nonlinear dynamics and control systems, eliminating the need for large training datasets and reducing computational resource and energy costs.
Smart Images

Figure US2024049308_03042025_PF_FP_ABST
Abstract
Description
Atty Docket No. OU-24125WO SYSTEMS AND METHODS FOR USING ARTIFICIAL NEURONS AND SPIKE NEURONS TO MODEL NONLINEAR DYNAMICS AND CONTROL SYSTEMS FIELD OF THE INVENTION
[0001] The present invention relates to systems and methods for modeling nonlinear dynamics and control systems, and more particularly, to analog-based neuromorphic computing devices that use artificial neurons (ANs) and spike neurons (SNs) to model nonlinear dynamics and control systems in order to predict system states and changes over time. This provides information that may be used to perform one or more autonomous or semi-autonomous tasks associated with motion control applications and / or safety-critical applications. BACKGROUND OF THE INVENTION
[0002] Artificial intelligence (AI) and machine learning has evolved in recent years. Neural networks, such as artificial neural networks (ANNs) are used in a litany of different fields, including image recognition, speech recognition, natural language processing, and autonomous vehicle control. ANNs can be characterized as systems of interconnected “neurons” which compute values from inputs. However, conventional ANNs are trained using a large data set which is both costly and time consuming. Further, conventional ANNs are often a black box, making them incomprehensible, unexplainable, unverifiable, unreliable, untraceable, and validatable. As such, there is a heightened need for explainability, traceability, and reliability in neural networks, especially in safety-critical applications such as applications in Cyber Physical Systems (CPS). A CPS depends on the seamless integration of computation and physical components in autonomous and / or real-time systems.
[0003] The concept of “explainable AI” was first proposed in a DARPA program in 2015 with the goal to help end users understand, trust, and manage AI systems. These discussions were based on research regarding tractable probabilistic models, Bayesian teachings, state machine methods based on deep reinforcement learning, visual saliency maps, and network and GAN dissection. However, most results involved the virtual computational world.
[0004] In the physical world, ANNs have been adopted to solve certain dynamic systemAtty Docket No. OU-24125WO problems, such as the three-body problem. See, P.G. Breen, C. N. Foley, T. Boekholt, and S.P. Zwart, “Newton versus the machine: solving the chaotic three-body problem using deep neural networks,” Monthly Notices of the Royal Astronomical Society, vol. 494, no.2, pp.2465-2470, 2020. AI researchers have noted that providing better “fitted” data does not necessarily mean that the neural network will reveal the nature of the dynamic system in the physical world. The precise approximation of the end-to-end neural network is typically based on a multitude of factors. S.L. Brunton, in proposing the sparse identification of nonlinear dynamics, provides a trained regression network that learns nonlinear dynamics using a group of possible functions, such that the model equations are sparse in that functional space. This was used in the study of fluid dynamics, discrepancy modeling, and extracting a physical model from raw data of free fall objects. S. L. Brunton, J. L. Proctor, and J. N. Kutz, “Discovering governing equations from data by sparse identification of nonlinear dynamical systems,” Proceedings of the national academy of sciences, vol.113, no.15, pp.3932-3937, 2016.
[0005] Brunton’s work is inspired by the idea of using trajectory linearized control (TLC), discrepancy modeling, and a cerebellum-type neural network to create a dynamic model that can be constructed by a nominal model, a perturbation model, and a disturbance model. The nominal model represents a known and verified mathematical model of a dynamic system. The perturbation model is the unknown part of the dynamic system. The disturbance model is typically a model that considers the impact of the external environment on the dynamic system.
[0006] Conventional ANN’s are trained using large quantities of training data (often referred to as “big data”). However, training a model using big data requires obtaining large amounts of data and can be computationally expense to train the ANN on the data. To truly simulate the activity of a human brain, what is needed is an ANN with a configuration that is based on known, verified mathematical equations that define behavior in, or characteristics of, an external real- world environment (e.g., such as mathematical equations derived from laws of physics). This would allow the ANN to train or learn in real-time, much in the same way a human does, and would eliminate the need to train the ANN before the ANN is deployed to the end user.
[0007] Some ANNs have been implemented using neuromorphic computing systems. Neuromorphic computing refers to a branch of computing where hardware and systems mimic theAtty Docket No. OU-24125WO structure and functionality of the human brain. These systems replicate the brain’s neurons and synapses. The human brain processes many tasks simultaneously, and neuromorphic computing devices attempt to replicate this by parallelizing computations.
[0008] One implementation of neuromorphic computing involves the use of analog circuits. In this scenario, artificial neurons (ANs) are designed to emulate biological neurons. Neurons in the brain work by integrating incoming signals (from synapses) and generating a signal spike when the input exceeds a threshold. Analog circuits mimic this behavior using operational amplifiers (op-amps), capacitors, and resistors. When the voltage input to an AN reaches a certain threshold, the AN generates an action potential (referred to as a spike) which is similar to that of a biological neuron. Often times, ANs are designed using spike neural networks (SNNs) which replicate the “firing mechanism” and post-spike recovery of biological neurons.
[0009] In neuromorphic computing systems, synapses connect ANs and control the strength of the connection using weights. Analog circuitry can be used to simulate synaptic behavior by modifying the current flow between neurons, analogous to the way that biological synapses transmit electrical signals. Synaptic weights can be implemented using memristors (i.e., resistors with memory) which change their resistance based on the voltage applied. This allows them to “learn” by adjusting the weights over time, which is analogous to how synapses strengthen or weaken in the brain through processes such as Hebbian learning.
[0010] Some neuromorphic computing systems utilize an error back-propagation technique, which is costly in terms of computational resources and energy. Accordingly, the back- propagation learning operation tends to be implemented in systems with high computing capacity. Other learning techniques have also been proposed, including unsupervised, real-time machine learning methods in spike timing-dependent plasticity (STDP) architectures. In ideal conditions, where there is an absence of noise or other disturbances, some of these techniques show promise. However, in practical, real-world conditions, achieving reliable, accurate learning in STDP-based neuromorphic computing devices has been elusive.
[0011] It is an object of the present invention to overcome one or more of the problems described above. For example, it is an object of the present invention to provide a neuromorphicAtty Docket No. OU-24125WO computing device that is configured with a ANs and SNs that are used as part of one or more neural networks to model nonlinear dynamics and control systems in a way that is a reliable, tractable, and explainable, and that does not require training the network on large quantities of training data. By realizing the neural networks / models using analog circuitry, power consumption is greatly reduced relative to digital realizations of neural networks. SUMMARY OF THE INVENTION
[0012] In an aspect of the invention, a method is provided for using one or more neuromorphic computing device to realize a nonlinear state equation model of a nonlinear dynamics and control system. The method includes configuring, on the one or more neuromorphic computing devices, a first neural network to include a first plurality of artificial neurons (ANs) interconnected by a first plurality of artificial synapses. Respective ANs, of the first plurality of ANs, are configured with a summation function and an activation function. The plurality of synapses are configured with a first set of weights such that respective weights are applied to corresponding state values that are part of a state vector (x). The first plurality of ANs collectively approximate a vector field (f̂ (x, u)) that processes the state vector and a control input vector (u) to compute an instantaneous rate of change (ẋ) of the state vector (x). The method further includes configuring, on the one or more neuromorphic computing devices, at least one spike neuron (SN) to receive the instantaneous rate of change (ẋ) of the state vector (x) from the first plurality of ANs. The at least one SN is further configured to include an integrator (1 / s) that integrates the instantaneous rate of change (ẋ) of the state vector (x) over time to compute an updated state vector (x). A spike causes the updated state vector (x) to be provided to a second neural network. The method further includes configuring, on the one or more neuromorphic computing devices, the second neural network to receive the control input vector (u) and the updated state vector (x). The second neural network is further configured to include a second plurality of ANs interconnected by a second plurality of artificial synapses. Respective ANs, of the second plurality of ANs, are configured with another summation function and another activation function. The second plurality of synapses are configured with a second set of weights such that respective weights are applied to corresponding state values that are part of the updated state vector (x). The second plurality of ANs collectively approximate a measurement function (ĥ (x, u)) that computes a final output vector (y) based on the updated state vector (x) and the control input vector (u).Atty Docket No. OU-24125WO
[0013] In an embodiment of the invention, the at least one SN is further configured to provide the updated state vector (x) as an input to an AN that is part of the first plurality of ANs, whereby providing the updated state vector (x) to the AN creates a feedback loop so as to continuously update the state vector (x) over time.
[0014] In another embodiment of the invention, the first set of weights and the second set of weights are configured by storing respective weights in memory located on analog circuitry of respective neuromorphic computing devices of the one or more neuromorphic computing devices.
[0015] In another embodiment of the invention, the nonlinear state equation model is a nominal model and the vector field (f̂ (x, u)) is further configured with verified mathematical equations defining behavior in, or characteristics of, an external real-world environment.
[0016] In another embodiment of the invention, the method further comprises configuring an approximation of a perturbation function f^^^^^that represents a perturbation model that accounts for parasitic effects not accounted for by the nominal model.
[0017] In another embodiment of the invention, the nonlinear dynamics and control system is for a controllable object for the purpose of modeling a state of the controllable object such that modeled state provides information used to perform one or more autonomous or semi-autonomous tasks associated with controlling the object. In this embodiment, the final output vector (y) represents a prediction as to a manner in which state values of the updated state vector (x) change over time.
[0018] In another embodiment of the invention, the other activation function of the respective ANs of the second plurality of ANs is a rectified linear unit (ReLU) activation function, where the ReLU activation function outputs a value of zero if the value of the updated state vector (x) is negative and outputs the updated state vector (x) if the value is positive.
[0019] In another embodiment of the invention, one or more nonlinear relationships exist between the state vector (x) and the control input vector (u). The other activation function of the respective ANs of the second plurality of ANs is a rectified linear unit (ReLU) activation function and is one of multiple ReLU activation functions of the respective ANs. Each of the multipleAtty Docket No. OU-24125WO ReLU activation functions are assigned a bias to form multiple linear segments that collectively are used to approximate the one or more nonlinear relationships between the state vector (x) and the control input vector (u).
[0020] In another embodiment of the invention, the nonlinear dynamics and control system is for a controllable object. In this embodiment, the respective ANs of the first plurality of ANNs are configured with one or more functions associated with kinematic and / or rotational motion, the one or more functions including at least one of: a function for modeling translational kinematics, a function for modeling translational dynamics, a function for modeling rotational kinematics, or a function for modeling rotational dynamics.
[0021] In another aspect of the invention, a system is provided. The system comprises one or more neuromorphic computing devices and a plurality of sensor devices. The one or more neuromorphic computing devices respectively comprise one or more routing devices and a neuromorphic core network comprising a plurality of neuromorphic cores interconnected by the one or more routing devices. Each neuromorphic core in the plurality is to implement a first neural network that includes a first plurality of artificial neurons (ANs) interconnected by a first plurality of artificial synapses, at least one spiking neuron (SN), and a second neural network that includes a second plurality of ANs interconnected by a second plurality of artificial synapses. Respective ANs in the first neural network are configured with a first set of weights such that respective weights are applied to corresponding state values that are part of a state vector (x). The first plurality of ANs collectively approximate a vector field (f̂ (x, u)) that processes the state vector (x) and a control input vector (u) to compute an instantaneous rate of change (ẋ) of the state vector (x). The at least one SN is configured to receive the instantaneous rate of change (ẋ) of the state vector (x) from the first plurality of ANs. The at least one SN is further configured to include an integrator (1 / s) to integrate the instantaneous rate of change (ẋ) of the state vector (x) over time to compute an updated state vector (x). A spike causes the updated state vector (x) to be provided to the second neural network. Respective ANs, of the second plurality of ANs, are configured with another summation function and another activation function. The second plurality of synapses are configured with a second set of weights such that respective weights are applied to corresponding state values that are part of the updated state vector (x). The second plurality of ANs collectively approximate a measurement function (ĥ (x, u)) that computes a final output vector (y) based onAtty Docket No. OU-24125WO the updated state vector (x) and the control input vector (u). The plurality of sensor devices are adapted to obtain sensor data and to transmit the sensor data to at least one of the one or more neuromorphic computing devices such that the sensor data is converted to voltage signals representing the state values of the state vector (x).
[0022] In another aspect of the invention, a neuromorphic computing device for realizing a state equation model of a nonlinear dynamics and control system is provided. The neuromorphic computing devices comprises a neuromorphic core network that includes one or more routing devices and a plurality of neuromorphic cores. Respective neuromorphic cores in the plurality include a first group of one or more neural networks, at least one spike neuron (SN), and a second group of one or more neural networks. Respective neural networks in the first group include a first plurality of artificial neurons (ANs) interconnected by a first plurality of artificial synapses. Respective ANs, of the first plurality of ANs, are configured with a summation function and an activation function. The plurality of synapses are configured with a first set of weights such that respective weights are applied to corresponding state values that are part of a state vector (x). The first plurality of ANs collectively approximate a vector field (f̂ (x, u)) that processes the state vector (x) and a control input vector (u) to compute an instantaneous rate of change (ẋ) of the state vector (x). The at least one spike neuron (SN) is configured to receive the instantaneous rate of change (ẋ) of the state vector (x) from the first plurality of ANs. The at least one SN is further configured to include an integrator (1 / s). The integrator (1 / s) integrates the instantaneous rate of change (ẋ) of the state vector (x) over time to compute an updated state vector (x). A spike causes the updated state vector (x) to be provided to a second group of one or more neural networks. Respective neural networks in the second group include a second plurality of ANs interconnected by a second plurality of artificial synapses. Respective ANs, of the second plurality of ANs, are configured with another summation function and another activation function. The second plurality of synapses are configured with a second set of weights such that respective weights are applied to corresponding state values that are part of the updated state vector (x). The second plurality of ANs collectively approximate a measurement function (ĥ (x, u)) that computes a final output vector (y) based on the updated state vector (x) and the control input vector (y).
[0023] The above and other objects and advantages of the present invention shall be made apparent from the accompanying drawings and the description thereof.Atty Docket No. OU-24125WO BRIEF DESCRIPTION OF THE DRAWINGS
[0024] Fig.1A illustrates an environment in which systems and / or methods described herein may be implemented.
[0025] Fig.1B illustrates another example environment in which the systems and / or methods described herein may be implemented.
[0026] Fig.2A illustrates a block diagram of an example neuromorphic computing device.
[0027] Fig.2B illustrates a block diagram of a neuromorphic core that is part of a network of neuromorphic cores of the neuromorphic computing device.
[0028] Fig.3A illustrates analog circuitry used to perform the functions of an artificial neuron (AN) of the neuromorphic core.
[0029] Fig.3B illustrates analog circuitry used to perform the functions of a spike neuron (SN) of the neuromorphic core.
[0030] Fig.4A illustrates a diagram of the inputs to an AN and of the functions performed by the AN.
[0031] Fig.4B illustrates a diagram of the inputs to the SN and of the functions performed by the SN.
[0032] Fig. 5A illustrates a block diagram of a neural network driven realization of a state equation model for a nonlinear dynamics and control system.
[0033] Fig.5B illustrates a block diagram of a neural network driven realization of an affine state equation model for a nonlinear dynamics and control system.
[0034] Fig. 5C illustrates a block diagram of a neural network driven realization of a state equation model and a perturbation model for a nonlinear dynamics and control system.
[0035] Fig. 6A illustrates a graph that combines two or more rectified linear unit (ReLU) activation functions to create piecewise linear segments, where each segment can be stacked toAtty Docket No. OU-24125WO form a linear spline that approximates smaller portions of a more complex function.
[0036] Fig. 6B illustrates a graph that uses the piecewise linear segments to approximate a complex nonlinear continuous function.
[0037] Fig.7 illustrates a graph that uses a neural network with ReLU activation functions and linear splines to approximate the nonlinear function f(x) = ^^.
[0038] Fig. 8 illustrates a graph that approximates the quadratic function y = ^^over the domain [0, π / 5].
[0039] Fig. 9 illustrates a graph representing basic functions for cubic splines with the receptive field [0, π / 5].
[0040] Fig. 10 illustrates a structure of a neural network that uses a multilayer spline to approximate functions such as the sine function.
[0041] Fig. 11A illustrates a graph for a neural network that uses a multilayer spline to approximate functions such as the sine function.
[0042] Fig.11B illustrates a graph of weighted polynomial basis components that contribute to a spline approximation of the sine function within the receptive field.
[0043] Fig. 12 illustrates a block diagram of the use of multiplication operations in a neural network framework with multivariable functions, such as by using a complimentary metal-oxide- semiconductor (SMOS) transistor as a voltage-controlled resistor.
[0044] Fig.13 illustrates a block diagram where neural networks are used to model a nonlinear dynamics and control system with three degrees of freedom (3DoF) for motion control of a ground vehicle.
[0045] Fig.14A illustrates a first part of a block diagram of a multiloop trajectory linearization controller (TLC) that uses neural networks to model a nonlinear dynamics and control system with six degrees of freedom (6DoF) motion control.Atty Docket No. OU-24125WO
[0046] Fig. 14B illustrates a second part of a block diagram of a multiloop trajectory linearization controller (TLC) that uses neural networks to model a nonlinear dynamics and control system with six degrees of freedom (6DoF) motion control.
[0047] Fig.15 illustrates a trajectory linearization controller (TLC) model interpretation of a CNNC model.
[0048] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments of the invention and, together with a general description of the invention given above, and the detailed description of the embodiments given below, serve to explain the principles of the invention. DETAILED DESCRIPTION OF THE INVENTION
[0049] Fig. 1A illustrates an environment 10 in which systems and / or methods described herein may be implemented. Environment 10 includes a control target 12 and a neuromorphic computing device 14 that are part of an application system 16, one or more sensor devices 18, one or more data sources 20, one or more other application system(s) 18 hosted within a cloud computing environment 24, one or more user devices 26, and / or a network 28.
[0050] In the description that follows, devices of environment 10 are described as receiving, storing, processing, and / or transmitting application-related data. As used herein, the term application-related data refers to any data associated with a specific application or service provided by the application system 22. For example, application-related data may include sensor data, IoT data, data output by a neuromorphic computing device of the neuromorphic computing device 12, data stored by data sources 20, and / or data provided by application system 22. Specific example applications, and the corresponding data used in those applications, is provided further herein.
[0051] Control target 12 includes an object capable of being controlled by the neuromorphic computing device 14 and / or application system 13. For example, control target 12 may include a vehicle (e.g., a ground vehicle, an aerial vehicle, a watercraft, etc.), a robot, or another type of motion control device. In an exemplary embodiment, control target 12 is a vehicle that is capable of being controlled using neuromorphic computing device 14 and / or application system 13. ThisAtty Docket No. OU-24125WO embodiment is further shown and described in connection with Fig.1B.
[0052] Neuromorphic computing device 12 includes one or more neuromorphic computing devices capable of receiving, storing, processing, and / or transmitting application-related data. The neuromorphic computing devices may receive data from sensor devices 18, data sources 20, application system 22, and / or user devices 26. The neuromorphic computing devices may be configured with one or more neural networks (e.g., artificial neural networks (ANNs)) that include artificial neurons (ANs) and may be further configured with one or more spike neurons (SNs). The precise configuration of these networks and / or neurons is described further herein. The purpose of the neural networks and / or neurons is to model a current state of a nonlinear dynamics and control system, and in particular, to model a current state of the control target 12. Modeling the current state provides information that may be used to perform one or more autonomous or semi- autonomous tasks associated with controlling the object. Several illustrative examples are disclosed further herein. An example architecture of the neuromorphic computing devices is shown and described in connection with Figs.2A and 2B.
[0053] Application system 16 includes one or more devices capable of receiving, storing, processing, and / or providing application-related data. Application system 16 may include all components of an overall system used to control and / or manage the control target 12. In some embodiments, application system 16 is a cyber physical system (CPS) or another physical system. In some embodiments, application system 16 may include one or more vehicle systems or subsystems described in connection with Fig.1B. For example, if control target 16 is a vehicle, application system 16 may include onboard circuitry, wheels, components to actuate the wheels, and / or any other physical components relating to operation or control of the control target 12. In some embodiments, the application system 16 also hosts the neuromorphic computing device 14. For example, the application system 16 may include all on-board circuitry of a vehicle and the neuromorphic computing device 14 may also be hosted on the vehicle as part of the application system 16.
[0054] In some embodiments, application system 16 may include a safety critical application, such as applications relating to autonomous ground vehicles (AGVs), industrial robotic arms, aerial drones, marine vessels, gimbal systems, precision computer numerical control (CNC)Atty Docket No. OU-24125WO machines, spacecraft attitude control, hyperloop and Maglev trains, and / or the like. Additionally, or alternatively, application system 16 may include motion control applications, such as applications relating to the control of autonomous and semi-autonomous vehicles, aircraft flight control systems, medical robotics and surgical systems, nuclear reactor control, industrial automation in hazardous environments, aerospace launch and re-entry systems, autonomous rail systems, medical monitoring and life support systems, unmanned aerial vehicles (UAVs), submarine control systems, and / or the like. Additionally, or alternatively, the application system 16 may include chemical-related applications and other applications relating to dynamic process control systems that are based on proven mathematical or empirical dynamic models.
[0055] Sensor devices 18 include one or more devices capable of detecting and / or measuring characteristics of a real world environment, generating sensor data describing characteristics of the environment, and / or providing the sensor data to one or more other devices in the environment 10. The sensor devices 18 may include a position sensor, a velocity sensor, an acceleration sensor, an inertial measurement unit (IMU), a wheel sensor, a motion sensor, a light detection and ranging (LIDAR) sensor, a camera, a force sensor (e.g., a force-torque sensor, a steering angle sensor, etc.), and / or any other sensor necessary to detect and / or measure characteristics of a real world environment that are pertinent to the application provided by the application system 22. The sensor devices 18 may be configured to detect or measure characteristics such as movement, weight, physical contact, temperature, wind, humidity, noise, light, computer communications, wireless signals, and / or the like. The sensor data generated may be text data, audio data, image data, and / or video data.
[0056] In some embodiments, the sensor devices 18 may generate sensor data that is relevant to controlling and operating an object or vehicle. For example, assume a vehicle is to be controlled autonomous or semi-autonomously. In this case, the sensor data may be measure translational and rotational movements. Specifically, the sensors 18 may include a global positioning system (GPS) sensor, an IMU, a wheel sensor or encoder, a LIDAR sensor and camera, and / or force sensors. It is to be understood that this is provided by way of example. In practice, the sensors 18 may generate sensor data pertaining to any measurable or detectable characteristic of an environment.
[0057] Data storage devices 20 include one or more devices capable of receiving, storing,Atty Docket No. OU-24125WO processing, and / or transmitting application-related data. Data storage devices 20 may include one or more server devices or other cloud storage devices. Data storage devices 20 may have access to one or more databases which store application-related data. In some embodiments, data storage devices 20 may receive application-related data from, or transmit application-related to, neuromorphic computing device 12, application system 16, sensor devices 18, other application system(s) 22, and / or user devices 26.
[0058] Other application system(s) 22 include one or more devices capable of receiving, storing, processing, and / or transmitting application-related data. Other application system(s) 22 may include one or more server devices or other cloud storage devices. Other application system(s) 22 may be configured to receive application-related data from one or more other devices in environment 10.
[0059] In some embodiments, other application system(s) 22 may include other CPS’s or physical systems. In an exemplary embodiment, other application system 22 may include a vehicle-to-everything (V2X) system. In this embodiment, application system 16 may be a system of a vehicle, such as a ground vehicle, aerial vehicle, watercraft, and / or the like, and the other application system 22 is a V2X system capable of communicating with application system 16 over network 28.
[0060] Other application system(s) 22 may be hosted within cloud computing environment 24. Cloud computing environment 24 includes an environment that hosts the other application system(s) 22. Cloud computing environment 24 may provide computation, software, data access, storage, and / or services that do not require end-user knowledge of a physical location and configuration of system(s) and / or device(s) that hosts the application system(s) 22.
[0061] In some embodiments, the cloud computing environment 24 includes a group of computing resources. A computing resource includes one or more personal computers, workstation computers, server devices, or another type of computation and / or communication device. The cloud resources may include compute instances executing in the computing resource, storage devices provided in the computing resource, data transfer devices provided by the computing resource, and / or the like. A computing resource may communicate with otherAtty Docket No. OU-24125WO computing resources via wired connections, wireless connections, or a combination of wired and wireless connections. In some embodiments, computing resources may include a group of cloud resources, such as one or more applications, one or more virtual machines, virtualized storage, one or more hypervisors, and / or the like.
[0062] User devices 26 includes one or more devices capable of receiving, storing, processing, and / or transmitting application-related data. For example, user device 26 may include a device, such as a tablet computer (e.g., an iPad, etc.), a mobile phone (e.g., a smart phone, a radiotelephone, etc.), a laptop computer, a handheld computer, a server computer, a gaming device, a wearable communication device (e.g., a smart wristwatch, a pair of smart eyeglasses, etc.), or a similar type of device. In some embodiments, user device 26 may display application-related data on a user interface.
[0063] Network 28 includes one or more wired and / or wireless networks. For example, network 28 may include a cellular network (e.g., a fifth generation (5G) network, a fourth generation (4G) network, such as a long-term evolution (LTE) network, a third generation (3G) network, a code division multiple access (CDMA) network, a public land mobile network (PLMN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a telephone network (e.g., the Public Switched Telephone Network (PSTN)), a private network, an ad hoc network, an intranet, the Internet, a fiber optic-based network, a cloud computing network, or the like, and / or a combination of these or other types of networks.
[0064] The number and arrangement of devices and networks shown in Fig.1A are provided as an example. In practice, there may be additional devices and / or networks, fewer devices and / or networks, different devices and / or networks, or differently arranged devices and / or networks than those shown in Fig.1A. Furthermore, two or more devices shown in Fig.1A may be implemented within a single device, or a single device shown in Fig. 1A may be implemented as multiple, distributed devices. Additionally, or alternatively, a set of devices (e.g., one or more devices) of environment 10 may perform one or more functions described as being performed by another set of devices of environment 10.
[0065] Fig.1B illustrates a block diagram 30 in which the systems and / or methods describedAtty Docket No. OU-24125WO herein may be implemented. For example, block diagram 30 includes a cognitive guidance and control system for a vehicle. The cognitive guidance and control system includes a cognitive guidance subsystem 32, a motion control subsystem 34, a vehicle subsystem 36, and a navigation subsystem 38. These subsystems interact with the environment 40, sensors of the navigation subsystem 38, and / or an operator of the vehicle to achieve vehicle control and to make control related decisions for the vehicle.
[0066] The cognitive guidance subsystem 32 generates a trajectory that the motion control subsystem 34 follows. The cognitive guidance subsystem 32 also informs the operator of a current state of the vehicle and interacts with external systems. The cognitive guidance subsystem includes a communication human-machine interface (HMI) 42, a cognitive state machine 44, a learning memory component 46, a 3-D visual or peripheral perception component 48, a geographical situation map 50, and / or a trajectory planner 52.
[0067] As shown by reference number 66, everything-to-vehicle (X2V) communications may be received by the communication HMI 42. This allows information to be received from other vehicles or systems (e.g., other application system 22). As shown by reference number 68, the communication HMI 42 may also communicate with devices external to the device using vehicle- to-everything (V2X) communications. For example, the communication HMI 42 may communicate with external infrastructure devices such as other vehicles, road sensors, lights, and / or the like. The HMI 42 may gather and send information between an operator and external systems. The HMI may send information to one or more other components of the system, such as the cognitive state machine 44 and / or the trajectory planner 52.
[0068] The cognitive state machine 44 processes current events (e.g., speed limits, collision warnings, etc.), the motion states of the vehicle, and health information. Cognitive state machine 44 makes logical decisions based on these events. For example, if the vehicle exceeds a speed limit or an obstacle is detected, cognitive state machine 44 will generate a decision or corrective action based on predefined logic.
[0069] The memory learning component 46 stores past decisions data, sensor data, and actions data. This allows the system to learn from past experiences. This data can be used to improve theAtty Docket No. OU-24125WO decision making process of the cognitive state machine 44 over time, adapting the system’s behavior based on historical patterns.
[0070] The 3-D visual or peripheral perception component 48 collects data from external and / or internal sensors such as motion sensors 64 and / or environment sensors 64. In some embodiments, the 3-D visual or peripheral perception component 48 records and / or interprets sensor data to provide a detailed understanding of the environment 40, including the position of the vehicle and its surroundings.
[0071] The geographical situation map 50 continuously updates the vehicle’s position. In some embodiments, the geographical situation map 50 integrates GPS data and other location inputs. The geographical situation map 50 is configured to communicate with the trajectory planner 52.
[0072] The trajectory planner 52 generates a trajectory or path for the vehicle to follow. The trajectory planner 52 receives data indicative of physical parameters and further receives decision data made by the cognitive state machine 44. For example, the trajectory planner 52 receives data from the geographical situation map and data relating to obstacles, events, road conditions, and so forth, and uses these inputs to generate a trajectory. In some embodiments, the trajectory planner 52 is implemented using neuromorphic computing device 14.
[0073] The motion control subsystem 34 subsystem is configured to receive the planned trajectory from the cognitive guidance subsystem 32 and using the planned trajectory to control the vehicle’s movement. The motion control subsystem 34 includes a nominal controller 54 and a feedback controller 56. Nominal controller 54 follows the planned trajectory. For example, nominal controller 54 computes the necessary control inputs (steering, throttle, braking, etc.) based on the vehicle’s current state and the desired trajectory. In some embodiments, nominal controller 54 is implemented using neuromorphic computing device 14, allowing the nominal controller 54 to handle dynamic, complex inputs in real-time. Feedback controller 56 adjusts the control inputs based on real-time feedback from the vehicle dynamics and motion sensors. If the vehicle deviates from the trajectory or encounters perturbations, the feedback controller 56 will make corrections to keep the vehicle on the desired path. In some embodiments, the feedback controller 56 may beAtty Docket No. OU-24125WO implemented using neuromorphic computing device 14.
[0074] Nominal control subsystem 34 includes a summation function 67 that adds the inputs received from the cognitive guidance subsystem 32 and from the navigation subsystem 38. These summed inputs are provided to the feedback controller 56. Furthermore, inputs received from the cognitive guidance subsystem 32 (e.g., from trajectory planner 52) are provided to the nominal controller 54.
[0075] The vehicle subsystem 36 includes physical components from which the physical vehicle dynamics and the vehicle’s health state can be derived. For example, the vehicle will have a mass, a moment of inertia, maximum speed, maximum traction force, how speed changes based on steering ratio and related factors, and so forth, and these physical characteristics are represented in Fig. 1B as vehicle dynamics 58. The vehicle subsystem 36 further includes a vehicle health state component 60 which represents a state of one or more physical components of the vehicle. As a vehicle ages, certain components deteriorate. The state of these components is represented in Fig. 1B using vehicle health state 60. In some embodiments, one or more physical characteristics and / or health characteristics can be represented digitally using data and / or using one or more functions or models described herein.
[0076] The navigation subsystem 38 includes a set of motion sensors 62 and a set of environment systems 64. Motion sensors 62 may provide real-time data about a speed, an acceleration, a yaw rate, and / or any other dynamic parameters of the vehicle. Environment sensors 64 may collect information about the external environment, such as weather conditions, road conditions, obstacles, other vehicles, and / or the like. Additionally, or alternatively, the navigation subsystem 38 may include one or more vehicle health sensors, one or more temperature sensors, one or more voltage sensors, and / or any other sensor capable of detecting other characteristics of a vehicle and / or a state of the vehicle (or state of one or more components of the vehicle).
[0077] The environment 40 represents the physical environment that is external to the vehicle.
[0078] The number and arrangement of devices and networks shown in Fig.1B are provided as an example. In practice, there may be additional devices and / or networks, fewer devices and / or networks, different devices and / or networks, or differently arranged devices and / or networks thanAtty Docket No. OU-24125WO those shown in Fig.1B. Furthermore, two or more devices shown in Fig.1B may be implemented within a single device, or a single device shown in Fig. 1B may be implemented as multiple, distributed devices. Additionally, or alternatively, a set of devices (e.g., one or more devices) of the environment shown in Fig. 1B may perform one or more functions described as being performed by another set of devices of the environment of Fig.1B.
[0079] Fig.2A illustrates a block diagram of an example neuromorphic computing device 14. Neuromorphic computing device 14 utilizes analog circuits that combine thousands, even millions, of transistors and other components on a single chip, in order to mimic neuro-biological architectures present in the human nervous system. Neuromorphic computing device 14 may include an input interface 70, an output interface 72, and a network 74 of neuromorphic cores 80 that are interconnected using one or more routing devices 82. Interfaces 70, 72 each include a processor 76 and a memory 78.
[0080] Processor 76 includes a central processing unit (CPU), a graphics processing unit (GPU), an accelerated processing unit (APU), a microprocessor, a microcontroller, a digital signal processor (DSP), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), and / or another type of processing component. In some embodiments, processor 76 includes one or more processors capable of being programmed to perform a function. Memory 78 includes a random-access memory (RAM), a read only memory (ROM), and / or another type of dynamic or static storage device (e.g., a flash memory, a magnetic memory, and / or an optical memory) that stores information and / or instructions for use by processor 76.
[0081] The interfaces 70, 72 may include communication interfaces for inter- and intra- device communications. For example, interfaces 70, 72 may include a transceiver-like component (e.g., a transceiver and / or a separate receiver and transmitter) that enables the neuromorphic computing device 14 to communicate with other devices, such as via a wired connection, a wireless connection, or a combination of wired and wireless connections. Interface 70, 72 may permit neuromorphic computing device 14 to send information to and / or receive information from another neuromorphic computing device 14 or another device in environment 10. Interfaces 70, 72 may include an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency (RF) interface, a universal serial bus (USB) interface, a Wi-Fi interface, a cellularAtty Docket No. OU-24125WO network interface, an application programming interface (API), and / or the like.
[0082] In some embodiments, the interfaces 70, 72 (which each include a processor 76 and a memory 78) may be used to manage global attributes affecting the network 74 of neuromorphic cores 80 and routing devices 82. In some embodiments, the processor 76, memory 78, and / or interfaces 32 may be used to manage access to memory 32 (e.g., which may be a global memory for the device) and / or to manage interconnections within the device. In some embodiments, the processor 76, memory 78, and / or interfaces 32 may be used to define and / or provision routing tables of routing devices 82 in the network 74. Routing tables may, for example, be used to store weights that are used as part of the one or more neural networks described herein. In some embodiments, the interfaces 32 may include a programming interface allowing a user or system to define a neural network that is to be applied (e.g., using one or more routing tables and / or properties of certain neurons). For example, a developer may provide an input to the programming interface which is used to generate corresponding routing tables and to populate local memory of individual neuromorphic cores 80 with the specified parameters to implement a customized network of neurons (e.g., ANs and SNs) implemented by the neuromorphic cores 80.
[0083] Neuromorphic cores 80 and routing devices 82 are capable of communicating via short packetizes spike messages sent over the network. Neuromorphic cores 80 may include processing and memory resources to implement primitive non-linear temporal computing elements, such as ANs and SNs. These are shown and described in connection with Fig. 2B. Routing devices 82 may enable connections, or artificial synapses (referred to hereafter as simply “synapses”) to be defined between any two neurons defined using the network 74. Similarly, other routing devices 82 (not shown) may enable connections, or synapses, to be defined between any two neurons that are part of the same neuromorphic core 80. While the description that follows discusses a neuromorphic core 80 with at least two ANs and at least one SN, in practice, the network 74 may implement tens or thousands, hundreds or thousands, or even millions of neurons in accordance with the principles of the present disclosure.
[0084] In Fig.2A, a portion of an example mesh of the network 74 is provided for illustration purposes. In the example shown, groups of neuromorphic cores 80 are interconnected using the routing devices 82. In practice, a different mesh topology may be implemented, and any numberAtty Docket No. OU-24125WO of neuromorphic cores 80 may be interconnected using any number of routing devices 82.
[0085] The neuromorphic computing device 14 shown in Fig. 2A is provided by way of example. In practice, the neuromorphic computing device 12 may include any number of neuromorphic computing devices 26 needed to implement a given application (e.g., an application supported by application system 22). Further, the architecture shown is also provided by way of example. In practice, the neuromorphic computing device 14 may have any number of different device architectures used in neuromorphic computing, so as to utilize a device architecture that is optimal for a given application.
[0086] Fig. 2B illustrates a block diagram of the neuromorphic core 80 that is part of the network 74 of the neuromorphic computing device 14. Neuromorphic core 80 includes a first set of ANs 84, at least one SN 86, a second set of ANs 88, an input interface 70, and an output interface 72. Each neuron, whether artificial or spiking, includes dendrites and a soma, which are analogous to biological neurons.
[0087] Each AN 84 may be implemented to process input signals and to perform operations such as summation, activation, and signal transformation. In Fig.2B, respective ANs 84 can be seen as having dendrites 90 and a soma 92. Each dendrite 90 represents a hardware-implemented process that receives input signals such as signals indicative of synaptic weights and computes a weighted summation of these input signals from one or more sources. Soma 92 represents a hardware-implemented process that receives accumulated input signals and determines whether the accumulated input signals exceed a certain threshold, causing the AN 84 to “fire” or to generate an output signal.
[0088] In some embodiments, each AN has a processor (or processing capabilities) and a memory (or information retainment capabilities). The processor may be used to carry out one or more of the functions described herein. The memory may store weights (i.e., weight values) using a data structure, such as an array, a matrix, or another type of data structure known in the art.
[0089] The SN 86, like biological neurons, fire discrete spikes when a threshold is reached. Spikes represent critical information such as state changes or signals requiring rapid transmission. SN 86 includes one or more dendrites 94 and a soma 96. Each dendrite 94 collects input signals.Atty Docket No. OU-24125WO In some embodiments, when implemented using an analog circuit, these signals may be currents or voltages corresponding to external sensor data or other neuronal outputs. The soma 96 determines when the collected inputs result in a spike. This firing mechanism is a key aspect of spiking neural networks (SNNs), which process data based on the timing of spikes, rather than via continuous signal values. As will be described further herein, the SN 86 may be configured using an integrator (or in the context of analog circuitry, with a circuit design that utilizes an op-amp with a capacitor). In this way, the precise timing of a spike results in encoded information. This is useful for dynamic and controls systems where temporal patterns are important, such as in control systems for non-linear processes.
[0090] Once the SN 86 fires, the processed signals are provided to the AN(s) 88. The AN(s) 88 include one or more dendrites 98 and a soma 100. The dendrites 98 and soma 100 may perform further non-linear transformations or adjustments to the input, refining the signal to produce the final control and / or state signals.
[0091] The input interface 70 collects external data (e.g., sensor data, control signals, etc.) and forwards the data to other neurons. For example, external data such as velocity data, position data, data indicative of external forces, and so forth, may be provided to the neuromorphic core 80 via the input interface 70. The output interface 72 obtains processed signals from the second set of ANs 88 and sends the processed signals to neurons in other neuromorphic cores and / or to one or more devices external to the network 74.
[0092] The configuration shown in Fig.2B (e.g., using the first set of ANs 84, at least one SN 86, and the second set of ANs 88) can be realized using analog circuitry (such as that shown in Figs.3A and 3B) to model and control non-linear dynamics and control systems based on known, verifiable mathematical models that define behavior in, or characteristics of, an external real-world environment.
[0093] In some embodiments, the known, verifiable mathematical models may include functions or equations representative of known laws of physics. For example, the models may include functions or equations relating to Newton’s laws of motion, functions or equations relating to kinematics (e.g., equations for translation and rotational kinematics), functions or equationsAtty Docket No. OU-24125WO relating to the conversation of momentum, functions or equations relating to Euler’s equations of motion (e.g., rigid body dynamics), functions or equations relating to aerodynamic drag and lift, functions or equations relating to Bernoulli’s principle, functions or equations relating to Lagrangian and Hamiltonian mechanics, functions or equations relating to control theory (e.g., proportional-integral-derivative (PID) control, state-space models, etc.), functions or equations relating to Ohm’s law and Kirchhoff’s laws, and / or the like.
[0094] Fig.3A illustrates analog circuitry 102 that uses operational amplifiers (op-amps) and resistors to perform the functions of an AN (e.g., AN 84, AN 88, etc.) of the neuromorphic core 80.
[0095] As shown, a set of input voltages 104 (e.g., V0, V1, V2, …, Vn) are provided to analog circuitry 102. Analog circuitry 102 includes a first set of resistors 106 (e.g., R0, R1, R2, …, Rn), a first op-amp 108, a feedback resistor 110 (Rf), a resistor 72 (Rb), a second op-amp 114, and a resistor 116 (Ra). The respective op-amps 108, 114 are connected in sequence to mimic the behavior of an AN with a rectified linear unit (ReLU) activation function.
[0096] The input voltages 104 (e.g., V0, V1, V2, …, Vn) are provided to the analog circuitry 102 from sensor devices 18. The input voltages 104 represent the inputs to an AN. Each input voltage is associated with a resistance applied by a respective resistor 106. Each resistor 106 controls the weighting contribution of a respective input voltage 104 to the final output voltage 132. In some embodiments, synapses between ANs or synapses between ANs and an SN can be implemented using resistors 106. For example, the resistors 106 may be programmable resistors or memristors to model learning or adaptivity in the system. In this case, the resistors 106 can adjust a weight or resistance level based on the inputs, thereby allowing the weights to be adjusted in real-time.
[0097] The first op-amp 108 may be configured as a summing amplifier and may take the input voltages and produce a weighted sum to manage the weighted summation of input voltages. Several power supply connections are also shown. For example, the first op-amp 108 include a positive voltage supply terminal 118 (VDD) and a negative voltage supply terminal 120 (VSS). These voltages are important for controlling the output range of the first op-amp 108. These valuesAtty Docket No. OU-24125WO are also represented using VS+ and VS- and provide the necessary power for the first op-amp 108 to function and establish the range of the summed and weighted output voltage 122 (V^^^).
[0098] In some embodiments, the first op-amp 108 may represent an activation function, such as a ReLU activation function, a hyperbolic tangent activation function, a sigmoid activation function, and / or the like. For example, the first op-amp 108 may represent a ReLU activation function. In this case, negative voltage supply terminal 120 (VSS) of the op-amp 108 has a ground connection 124. This essentially sets a lower bound voltage limit of the op-amp 108 to 0 volts. This means the output cannot go below 0 volts, thereby mimicking the behavior of a ReLU activation function which sets negative values to zero.
[0099] Feedback resistor 110 (Rf) provides feedback from the output back to the inverting input of the op-amp 108. The feedback resistor 110 (Rf) determines the overall gain of the first op-amp 108, affecting how much influence each input voltage has on the output.
[0100] The relationships between inputs and outputs for op-amp 108 can be represented using the following equation: ^ ^ (1) ^^^^^= ReLU (^^^^^^) ^ ^^^ ^^
[0101] In equation (1), the input resistors 106. The ^ variable ^^, represents the input voltages 104. The variables ^^^^ represent the summation ^^^^104 (^^). The input resistors 106 control the weight of each input. A smaller ^^value means that the corresponding ^^value has a larger influence on the sum. The fraction^^^^^^represents the gain applied to the summation of the inputs. The resistors ^^, ^^, and ^^control how much the summed input signals are amplified or attenuated by the op-amp circuit 68. For example, ^^controls the gain of the op-amp 108 by feeding a portion of the output back to the inverting signal. ^^and ^^determine how the output is scaled.
[0102] The first op-amp 108 provides the output voltage 122 (V^^^) to the second op-amp 114Atty Docket No. OU-24125WO using resistor 112 (R^) as an intermediary. Resistor 112 (R^) serves as a signal conditioning element between the respective op-amps 108, 114, helping to adjust signal strength, isolate the two stages, and to ensure stable operation by limiting current and preventing feedback issues.
[0103] The second op-amp 114 receives the output voltage 122 (e.g., which may have been adjusted by resistor 112 (R^)) and performs an activation function. In some embodiments, the activation function may be a ReLU activation function. In some embodiments, another activation function by used, such as a hyperbolic tangent activation function, a sigmoid activation function, and / or the like.
[0104] Similar to the first op-amp 108, the second op-amp 114 includes a positive voltage supply 126 (VDD) and a negative voltage supply 128 (VSS). These values are also represented using VS+ and VS-. In the example shown, the negative supply terminal 128 is connected to a grounded connection 130 (i.e., 0V), effectively preventing the output from dropping below zero. This mimics the behavior of a ReLU function. If V^^^is positive, the second op-amp 114 will output V^^^. If V^^^is negative, the second op-amp 114 will output 0V. Specifically, to perform the activation function, the second op-amp 114 includes feedback resistor 116 (Ra) which outputs zero for negative inputs or outputs a voltage value for positive values. The final output voltage 132 (V^^^) represents the ReLU-activated result of the weighted sum of input voltages. This output can be provided to other neurons or used as the final result in a network, depending on the overall circuit design being implemented.
[0105] Fig. 3B illustrates analog circuitry 134 to perform the functions of the SN 86 of the neuromorphic core 80. The analog circuitry 134 that performs the functions of the SN 86 is similar to the analog circuitry 102 described in connection with Fig. 3A. However, in analog circuitry 134, a capacitor 136 is used in place of the feedback resistor 110 shown in Fig.3A. This allows the analog circuitry 134 to perform an integration of the input signals over time. This is essential for spike generation. The capacitor 136 accumulates charge as inputs are provided, causing an output voltage of the first op-amp 108 to gradually increase. Once the accumulated voltage exceeds a predefined threshold, the first op-amp 108 generates a spike. The presence of capacitor 136 introduces a time-dependent component to the analog circuitry 134. The speed at which the capacitor 136 charges will depend on the capacitance value and the magnitude of the input signals.Atty Docket No. OU-24125WO After the first op-amp 108 fires, the capacitor 136 discharges, either naturally over time or through a designed reset mechanism, allowing the analog circuitry 134 to integrate new inputs and repeat the process.
[0106] Analog circuitry 102 may be scaled to represent thousands, even millions, of ANs constructed to carry out the ANNs described herein. Similarly, analog circuitry 134 can be scaled to account for multiple different SNs. U.S. Patent Publication No. US 2013 / 0318020 (the ‘020 Application) discloses an analog circuitry hardware architecture. In some embodiments, the analog circuit architecture disclosed in the ‘020 Application may be implemented, or used as the basis for implementing the neuromorphic computing device 14 so as to carry out the principles of the present disclosure.
[0107] Figs.1, 2A and 2B, and 3A and 3B, collectively represent a hardware architecture that can be used to implement the neural networks described herein. Figs. 4A and 4B represent a summary of the functionality provided by ANs and SNs within the neural networks described herein. The principles of the present disclosure are intended to be applied to nonlinear dynamics and control systems. Dynamic systems, such as nonlinear dynamics and control systems, can be mathematically represented using state equations. Embodiments discussing the use of neural networks, ANs, and SNs, to model these state equations, are described in Figs.5A-5C.
[0108] Fig. 4A illustrates an example diagram 138 of the inputs to an AN (e.g., AN 84, AN 88, etc.) and of the functions performed by the AN. As shown in Fig. 4A, the AN receives, as inputs, a set of input values 140 (shown as 1, x1, x2, …, xn). The set of input values 140 may be inputs received from another neuron in the network 74 or may be the input voltages 104 shown in Fig.3A (which correspond to the sensor data generated by the sensors 18 of Fig.1).
[0109] The set of input values 140 may include state values (collectively referred to herein as a state vector) and input control values (collectively referred to herein as a control input vector). The state vector and control input vector may include values specific to a given application. For example, in a 3 degrees of freedom (3DoF) model of a ground vehicle, the state vector may include position values, velocity values, yaw angle values, and / or the like. The control input vector may include steering input values, acceleration or braking input values, and / or the like.Atty Docket No. OU-24125WO
[0110] Each input of the input values 140 corresponds to a weight (shown as a set of weights 142, which are also shown as Wo, W1, W2, …, Wn). Summation function 144 is configured to total the inputs using a configured equation, such as ∑^^^^w^x^. This is similar to the way the soma of a biological neuron processes inputs from dendrites and computes a total. After the summation, the result is provided to an activation function 146 (ϕ(⋅)). The activation function 146 determines whether the AN is to fire, and may be a ReLU activation function, a sigmoid activation function, a tanh activation function, and / or the like. The result of the activation function is the output 148 (y). Output 148 may be passed to other neurons in the neuromorphic core 80 (and / or to neurons in other neuromorphic cores 80 that are part of network 74).
[0111] In some embodiments, the AN may be part of a large set of ANs that form an ANN. The ANN includes an input layer, a set of hidden layers, and an output layer. The input layer may, for example, receive the set of inputs 102. The set of hidden layers may include a large number of interconnected ANs that are used to process the inputs, such as by weighting the inputs, summing the inputs, and performing the activation function described herein. As will be described further herein, in some embodiments, a first portion of the ANs may determine a vector field (f̂ (x, u) and a second portion of the ANs may determine a final output vector 148 (sometimes referred to using the variable y) using a measurement function (ĥ (x, u). As used herein, the term “vector field (f̂ (x, u))” refers to a function or computation that defines the dynamics of the state of the system. The term “measurement function (ĥ (x, u)” refers to a function that computes an output vector y based on the current state vector x and to the control input vector u.
[0112] Fig. 4B illustrates a diagram 150 of the inputs to an SN (e.g., SN 86) and of the functions performed by the SN. Diagram 150 of the SN is substantially similar to diagram 138 of the AN, except the summation function 144 is replaced with an integrator 152. The integrator 152 represents the soma 96 shown in Fig.2B.
[0113] In SN 86, instead of instantaneously summing the received inputs, SN 86 integrates the inputs over time, allowing them to accumulate continuously. When the value of the inputs exceed that of a configured threshold, the SN “fires”, causing the integrator 152 to compute the final output 148. The final output 148 is provided to one or more other neurons in the network. An additional description of the integrator 152 is described in connection with Figs.5A-5C. In someAtty Docket No. OU-24125WO embodiments, a number of SN’s implemented may correspond to a number of state variables in a state vector. For example, in a motion state, every motion state variable will need its own SN.
[0114] Fig.5A illustrates a block diagram 154 of a neural network driven realization of a state equation model for a nonlinear dynamics and control system. The non-linear dynamics and control system may include dynamical systems or processes, systems utilizing inverse dynamics, systems utilizing dynamic feedback controllers such as observers or PID controllers, and / or the like. Neural network realization of the state equation model includes a vector field (f̂ (x, u)) approximated by a first ANN 156, an integrator realized by SN 160, and a measurement function (ĥ (x, u)) approximated by ANN 158. Different from data driven ANNs, the designed ANNs 156, 158 and SN 160 are constructed based on known, validated mathematical models, such as models based on known laws of physics.
[0115] The state equation model for a nonlinear dynamics and control system may be designed to model how the state of a moveable object evolves based on certain control inputs. For example, assume the state equation model is a three degrees of freedom (3DoF) model of a ground vehicle. A 3DoF model can model how a position of the ground vehicle changes over time based on the control inputs. A similar 6DoF model could be provided to model how a position of an aerial vehicle changes over time based on the control inputs. These are provided by way of example. In practice, other relationships applicable to the control of a vehicle (e.g., ground, aerial, etc.) may be modeled. Further, the state equation model may be approximated for any nonlinear dynamic system, including nonlinear dynamic systems pertaining to the example motion control applications discussed in connection with Fig.1.
[0116] As shown in Fig. 5A, a control input vector 162 (shown using the variable u) and a state vector 164 (shown using the variable x) are provided as inputs to the first ANN 156. The control input vector 162 represents external inputs or actions that influence the behavior of the system. For example, in a 3DoF model of a ground vehicle, the control input vector 162 may include throttle values, brake input values, steering angle values, and / or the like. The state vector 164 represents all values that describe the current state of the system. For example, in the 3DoF model of the ground vehicle, the state vector 164 may include x, y coordinate position values, velocity values, yaw angle values, and / or the like. To provide an example of how the control inputAtty Docket No. OU-24125WO vector 162 influences the behavior of the system, a throttle or brake input value may affect the velocity and acceleration of the ground vehicle, and the steering angle input values may affect the yaw rate (i.e., how quickly the vehicle turns). Each of the values included in the control input vector 162 and in the state vector 164 are measured by the sensors 18 and provided as inputs to the neuromorphic core 80.
[0117] It is noted that the control input vector values and state vector values described above are provided by way of example. In practice, any number of different values may be included in the control input vector 162 and state vector 164. Additional examples are provided in the description of sensors 18, but ultimately these values will depend on the particular model or functions being approximated.
[0118] The first ANN 156 includes a plurality of ANs (e.g., ANs 84, ANs 138) interconnected by a plurality of artificial synapses. The plurality of ANs collectively approximate the vector field f̂ (x, u). The vector field (f̂ (x, u)) is used to process the control input vector 162 and the state vector 164 to compute an instantaneous rate of change 166 (shown using the variable ẋ) of the state vector 164. The instantaneous rate of change 166 is also a vector. That is to say, the instantaneous rate of change 166 is a vector identifying an instantaneous rate of change for each state variable included in the state vector 164.
[0119] It is noted that while the first ANN 156 computes an instantaneous rate of change 166 of the state vector 164, the first ANN 156 does not explicitly consider how this rate evolves or changes over time (that is predicted by SN 160). This is because modeling the actual evolution of the state requires an integration over time.
[0120] To provide an example of how the first ANN 156 approximates the vector field (f̂ (x, u)) f̂ (x, u), assume the state equation model is a three degrees of freedom (3DoF) model of a ground vehicle. In this case, vector field (f̂ (x, u)) f̂ (x, u) will be approximated to model how a position and an orientation of a vehicle changes over time. The state vector 164 may include x$, x^, v, and %, where x$represents a position in the x direction, x^represents a position in the y direction, v represents a velocity of the vehicle, and % represents a yaw angle (e.g., an orientation of the vehicle). The control input u may include throttle or brake inputs (e.g., which affect velocityAtty Docket No. OU-24125WO and acceleration) and steering angle inputs (e.g., which affect yaw rate, i.e., how quickly a vehicle turns). In this example, the vector field f̂ (x, u) is a nonlinear dynamic function that may be configured to account for how vehicle position, velocity, and orientation change based on inputs. For example, the activation function may account for how the throttle or brake inputs affect velocity and acceleration, how the steering angle changes yaw rate, and so forth. The output of the vector field f̂ (x, u) is the instantaneous rate of change 166 (shown as ẋ) of the state vector 164. The instantaneous rate of change 166 (shown as ẋ) of the state vector 164 is then provided to SN 160.
[0121] The SN 160 models time-dependent behavior to capture temporal dynamics. The SN 160 includes an integrator ($^) used to integrate the instantaneous rate of change of the state vector 164 over a period of time (e.g., from current time t to future time t+1). In the Laplace domain, the integrator may be represented as$^, where s is the complex frequency variable representing differentiation with respect to time and 1 / s represents integration with respect to time.
[0122] In control systems, and in particular in dynamic models of mechanical control systems (or systems involving other physical phenomena), integration is used to transform the rate of change of a state variable into the state itself. To provide an example, the instantaneous rate of change of acceleration can be integrated to produce a velocity. That is to say, if acceleration at each moment is known, it can be integrated to find the total change in velocity over a time interval. To provide another example, the instantaneous rate of change of velocity can be integrated to produce a position. That is to say, if the velocity at each moment in time is known, then it can be integrated to find the total change in position over a time interval.
[0123] The integration results in the SN 160 producing an updated state vector 168 (also shown using the variable ^$). Updated state vector 168 represents a predicted state of the system based on the integration of the instantaneous rate of change 166 over time.
[0124] As more time passes, the SN 160 accumulates the instantaneous rates of change 166 that are received from the ANN 156. For example, an instantaneous rate of change 166 may be received at each of times &$, &^, …, &^. When a first instantaneous rate of change 166 is received at time &$, the SN 160 uses the integrator to compute a first updated state vector (130), which is aAtty Docket No. OU-24125WO derivative of the first instantaneous rate of change 166. When a second instantaneous rate of change 166 is received at time &^, the SN 160 uses the integrator to compute a second updated state vector 168, which is a derivative of the second instantaneous rate of change 166. When an accumulation of instantaneous rates of change 166 satisfy a configured threshold or spike condition (e.g., when a state vector value exceeds a certain limit), the SN 160 spikes and provides the most current updated state vector to the second ANN 158.
[0125] The state vector 164 that is provided as an input to the first ANN 156 represents a current state of the system at a specific point in time, and may include values indicative of position, velocity, orientation, and so forth. Comparatively, the updated state vector 168 output by the SN 160 is the result of integrating the rate of change 166 of the state vector 164 over time. This represents an evolution of the state as time progresses, capturing how the system’s state changes dynamically.
[0126] The control input vector 162 and the updated state vector 168 are provided as input to the second ANN 158. The ANs of the second ANN 158 are used to approximate measurement function ĥ (x, u). The measurement function ĥ (x, u) describes how a final output vector 170 (also shown using the variable y) depends on the input control vector 162, the updated state vector 168, and time. The final output vector 170 represents measured, observed, and / or predictive values that can be used by downstream systems. For example, the output vector 170 may include values indicative of a set of measurable and / or predictive quantities such as vehicle position, velocity, orientation, and / or the like. Unlike the vector field approximated by the first ANN 156, the measurement function is typically nonlinear. This means the relationship between the state and control inputs and the outputs is complex, and the second ANN 158 uses the nonlinearity in the activation functions of the ANs to approximate this complexity. The measurement function ĥ (x, u) might model how velocity changes under the influence of engine power, how position changes based on velocity, how steering affects orientation of the ground vehicle, and so forth.
[0127] To provide a specific example, assume the updated state vector 168 for a 3DoF model of a ground vehicle includes the following: position: 15 m, velocity: 5.5 m / s, yaw angle: 0.12 radians. Further assume the control input vector 162 includes the following: throttle: 30%, steering angle: 5 degrees. In this case, the second ANN 158 will process these inputs and approximate theAtty Docket No. OU-24125WO measurement function to compute the final output vector 170. The final output vector 170 may include the following: predicted position after a certain period of time: 16 m, predicted speed based on throttle input: 5.6 m / s, yaw rate based on steering input: 0.15 rads, and so forth.
[0128] In some embodiments, the first ANN 156 may be an ANN and the second ANN 136 may be a recurrent neural network (RNN). For example, the updated state vector 168, which is output by the SN 160, may be fed back into the network to the first ANN 156, allowing the input to influence future outputs. This feedback loop allows the RNN to model sequential data or time- dependent processes. Unlike feedforward neural networks, RNNs maintain a memory of previous inputs, allowing them to capture temporal dependencies in the data.
[0129] Fig. 5B illustrates a block diagram 172 of a neural network driven realization of an affine state equation model for a nonlinear dynamics and control system. As shown in Fig. 5B, four ANNs (e.g., ANs 174, 178, 180, 182) and an SN (e.g., SN 160) are used to approximate an affine state equation model for a nonlinear dynamics and control system. In control systems, an affine state-space model represents a nonlinear dynamics and control system in a form that separates the control input contributions from the state dynamics. In these models, the control input u may be an affine control input u that affects the system in a linear or near-linear manner.
[0130] The affine state equation model may include function ĝ(x), function f̂(x), an integrator, function d̂(x), and function ĥ(x). The function f̂(x) represents the state dynamics that depend on the current state vector x. The function ĝ(x) represents the influence of control input u on the state vector x. The function ĥ(x) represents an output function based on the current state vector x. The function d(x) represents the influence of the control inputs u on the final output vector y.
[0131] The first ANN 174 approximates the function ĝ(x) to model how the control input u affects the current state vector x, where the control input u enters the system linearly or near linearly, and where the current state vector x affects the system nonlinearly. For example, assume the current state vector x may include a position value, a velocity value, and a yaw angle value. In this case, the function ĝ(x) may be a scaling function that adjusts how much the control input u affects the system dynamics based on the current velocity v. For example, this function may be applied to determine that as the car's velocity increases, the impact of the control input u (e.g.,Atty Docket No. OU-24125WO throttle) on the velocity decreases.
[0132] The second ANN 178 approximates the function f̂(x) to model the state dynamics of the system that depend on the current state vector x alone. f̂(x) represents the state evolution in the absence of external inputs. It describes how the state changes due to internal dynamics, such as how a vehicle’s momentum affects its motion. In a 3DoF vehicle model, f̂(x) could represent the vehicle’s dynamics based on its current velocity and yaw rate, even without active throttle or steering control inputs.
[0133] Summation node 184 receives the output vector 188 from the first ANN 174 and the output vector 192 from the second ANN 178. This provides the rate of change of the state vector x. The summation node 184 then provides the rate of change (shown using reference number 190) of the state vector x as an input to the SN. The SN behaves in the same or substantially same way as that described in connection with Fig.5B. That is to say, the SN uses an integrator to integrate the rate of change of the state vector x over time so as to compute an updated state vector x that is a derivative of the rate of change of the original state vector x.
[0134] The third ANN 180 approximates the function d̂(x) to model how the control inputs u affect the output vector y in a linear way. This function maps the state vector x to a function that accounts for the control input u, representing the contribution of the control input to the system’s output. In a 3DoF ground vehicle model, d̂(x) could represent how steering or acceleration inputs directly affect the vehicle’s observable position and orientation.
[0135] The fourth ANN 182 approximates the function ĥ (x) to model an output vector based on the current state vector x. The function ĥ (x) represents the system’s output based on its current state vector x. Summation node 186 combines the outputs of the third ANN 180 and fourth ANN 182 and generates a final output vector y.
[0136] In some embodiments, the state equation model of Fig.5B may be represented using the equation: ẋ = f(x) + g(x)u + d̂(x), where f(x) represents the nonlinear system dynamics, g(x)u is the affine control term, where the control input u affects the system in a linear manner, and where d̂(x) approximates how the input affects the output in a linear way. Then, ĥ (x) represents the output function, allowing the system to generate the final output y based on the current stateAtty Docket No. OU-24125WO vector x.
[0137] The first ANN 174, second ANN 178, and summation node 184 may collectively represent the first ANN 156 of Fig. 5A. The third ANN 180, fourth ANN 182, and summation node 186 may collectively represent the second ANN 158 of Fig.5A.
[0138] Fig.5C illustrates a block diagram 194 of a neural network driven realization of a state equation model and a perturbation model for a nonlinear dynamics and control system. The purpose of the perturbation model is to account for unmodeled dynamics that affect the system. The portions of Fig.5C which are shown in Fig.5A represent a nominal model that can be designed and thus do not require data driven insights or training. For example, the vector field of the nominal model is designed based on known physical laws and predicts the rate of change (ẋ) of the state vector x, but does not capture every possible nuance of the system’s behavior. Unmodeled dynamics can be accounted for by training the perturbation model. For example, perturbation model can be trained in real time while a ground vehicle is being operated. The perturbation model is shown in Fig.5C as a third ANN 196.
[0139] A perturbation model may be realized by using the third ANN 196 to approximate a perturbation vector field ('^^^^(u, y)) to compute a correction term 198 (shown as ẋ)that is added to the instantaneous rate of change ẋ of the state vector x. To provide an example, the rate of change of the state vector may be computed using the following equation: ẋ = f̂ (x, u) + ('^^^^(u, y)), where f̂ (x, u) is the instantaneous rate of change ẋ computed by the first ANN, and where ('^^^^(u, y)) is a correction term 198 (shown as ẋ)) output by the third ANN 196 and which accounts for unmodeled dynamics of the system. Examples of unmodeled dynamics that are not accounted for in the nominal model, in the context of a 3DoF model for a ground vehicle, include tire slippage, friction variations, nonlinearities or other dynamic effects that were not explicitly modeled during the design of the nominal model, and / or the like.
[0140] In some embodiments, a summation node may be configured between the first ANN 156 and the SN 160. In this case, the first ANN 156 may output ẋ^to the summation node. The third ANN 196 may output ẋ)to the summation node. The summation node may sum these values and may output the corrected or adjusted instantaneous rate of change ẋ of the state vector x.Atty Docket No. OU-24125WO
[0141] As shown in Figs. 5A-5C, the ANs and SNs are realized using analog neuromorphic computing devices, whose synaptic weights are designed based on mathematical models of the underlying dynamical and control system. The perturbations (modeling errors) between the mathematical model and the underlying dynamical and control system is compensated with another neural network and comprises ANs by way of data-driven machine learning techniques.
[0142] Fig.6A illustrates a graph 200 that combines two or more rectified linear unit (ReLU) activation functions to create piecewise linear segments, where each segment can be stacked to form a linear spline that approximates smaller portions of a more complex function. ReLU activation functions can be defined using the following equation: f(x) = max (0, x), which outputs the input if the input is positive and outputs zero otherwise. Each line in the figure represents a shifted ReLU function with different biases. The first ReLU activation function shown in the graph shows that the function is shifted using a bias value of one, meaning it outputs positive values only when x is greater than one. The second ReLU activation function shown in the graph shows that function is shifted by using a bias value of three, meaning it outputs positive values only when x is greater than three. The third ReLU activation function shown in the graph shows that the function is shifted by negative two, meaning it starts producing positive values when x is greater than negative two.
[0143] By combining these different ReLU functions, a linear spline can be constructed. Each segment of the curve is linear and the slope changes at the points where the individual ReLU functions activate (i.e., where a function starts producing a non-zero output). This helps the neural network (such as those described herein) create a piecewise linear approximation to any target function.
[0144] Fig.6B illustrates a graph 202 that uses the piecewise linear segments to approximate a complex nonlinear continuous function. The uppermost curved line in the graph represents a target function, which is a smooth nonlinear function that the network is trying to approximate. The shaded regions represent linear splines created by combining multiple ReLU functions. Each spline segment is a straight line and the network adjusts the positions and slopes of these line segments to approximate the target function as closely as possible. It is noted that the splines form a “staircase” approximation of the curve representing the target function. While each segment isAtty Docket No. OU-24125WO linear, their combined effect results in a close approximation to the overall curve. Approximation using multiple ReLU activation functions provides an efficient representation of nonlinear functions, avoids the negative side effect of vanishing gradients, requires only sparse activation, and are capable of universal approximation.
[0145] Fig.7 illustrates a graph 204 that uses a neural network (such as those described herein) with ReLU activation functions and linear splines to approximate the nonlinear function f(x) = ^^. With a ReLU activated neural cell, the linear splines can be designed to approximate any function f(x). According to numerical theory, the approximation error of 0^norm can be estimated as O = (4(^2^)$^56'′′ (ζ)), where [a, b] is the approximation domain of F(x). N is the number of intervals in the domain [a, b] and ζ ∈ [a, b].
[0146] Fig.8 illustrates a graph 206 that approximates the quadratic function y = ^^over the domain [0,9:]. In this specific case, the approximation domain is [a, b], ^^= a, ^;= b. This domain is separated into n intervals. Thus, the interval length is represented as h = ^^- ^^2$. The slope of each interval can be expressed using the following equation: 62= (^2$)6(2) <(^2$)==>? = ^^+ ^^2$, <^= 0, n ∈ N
[0147] With the conditions above, a neural network with ReLU activation functions can be designed with weights @^= <^2$- <^with a bias A^= −^^. The neural network expression is provided below: (3) ŷ = C52$^^^ReLU (@^∗ (x + A^))
[0148] The error to approximation domain and the number of linear intervals in the domain. This means that for better approximation, the width of the domain needs to be restricted. In some embodiments, a multilayer spline with different receptive fields can be implemented to overcome this problem. This deep multilayer structure can exponentially increase the precision of the previous layers approximation. For instance, in a multi- layer network, if the deepest layer doubles the of neurons, this means doubling the number of intervals of the approximation domain such that the receptive field will be halved. For the previousAtty Docket No. OU-24125WO layer, even without increasing the number of neurons, the number of intervals in the halved domain is equivalent to being doubled. Since the error is inversely proportional to the square of the number of intervals, the precision is increased exponentially in the previous layer.
[0149] To design a multilayer spline network, neurons can be configured as a set of polynomial splines in the first layer then the next layer can utilize the polynomial splines to construct more complicated functions. In one example, assume there are two layers in the neural network, with a ReLU based polynomial as the first layer and a cubic polynomial spline as a second layer that is designed to approximate a sine function to demonstrate the method. Since the sine function is periodical function, the approximation domain is chosen to be [-π, π]. For the cubic polynomial splines layer, the domain is separated into ten intervals with a width of9: .
[0150] For the polynomial layer, the inherited receptive field is [0,9:]. Twenty ReLU neurons are designed to separate the receptive field into twenty intervals. Since creating ^^has been demonstrated by using the ReLU neural cell, the cubic polynomial ^Ican be constructed in the same way. The result of using twenty ReLU neurons to approximate the cubic function is shown in Fig.9.
[0151] Fig. 9 illustrates a graph 208 representing basic functions for cubic splines with the receptive field [0,9:]. These polynomial functions can be used as functions for the second layer. Referring back to the second layer, the cubic polynomial splines layer can utilize these polynomial functions to construct the sine function. The structure of this designed neural network is shown in Fig.10.
[0152] Fig. 10 illustrates a structure of a neural network 210 that uses a multilayer spline to approximate functions such as the sine function. In Fig. 10, an input layer is provided in the receptive field. This is where inputs from the network are received (e.g., x values in the range [- π, π]). The middle layers represent polynomial spline basis functions of different degrees (e.g., 0th, 1st, 2nd, and 3rdorder polynomials). Each layer processes the input using these polynomial functions and generates an output based on these. The output layer is where the results of the spline approximation are combined. The network generates a cubic polynomial spline that approximates the sine function. In some embodiments, the cubic polynomial spline equation mayAtty Docket No. OU-24125WO be represented using the equation shown in Fig.1. In this equation, J$, A$, K$, L$, are coefficients ffor the cubic polynomial spline, and ^$is the interval breakpoint (sometimes referred to as a knot).
[0153] Fig. 11A illustrates a graph 212 for a neural network that uses a multilayer spline to approximate functions such as the sine function (e.g., f(x) = sin(x)). The two lines are nearly identical, indicating that the approximation is very close to the true sine function. The approximation is performed over the interval [-π, π], with 20 ReLU neurons in the first layer dividing the domain into smaller intervals. The table below displays approximation errors calculated using various norms. L1 measures the absolute differences. L2 measures the square of the differences. L (infinite) measures the maximum absolute difference. The errors are very small, in the range of 102;, indicating a highly accurate approximation.
[0154] Fig. 11B illustrates a graph 214 of weighted polynomial basis components that contribute to a spline approximation of the sine function within every receptive field. Single variable (one dimensional) functions can be achieved in this way. Specifically, Fig. 11B shows the individual polynomial basis components that contribute to the spline approximation of the sine function within the receptive field. The lines represent the different polynomial basis functions of 0thorder, 1storder, 2ndorder, and 3rdorder used to approximate the sine function. The vertical sections represent how the weight of each basis function changes in each interval (receptive field). Each segment corresponds to how a portion of the sine function is approximated by combining these weighted polynomial components. For instance, different parts of the sine wave are approximated using combinations of these polynomials, weighted appropriately for each section.
[0155] Fig.12 illustrates a block diagram 216 of the use of multiplication operations in a neural network framework with multivariable functions, such as by using a complimentary metal-oxide- semiconductor (SMOS) transistor as a voltage-controlled resistor. In some embodiments, multivariable functions, such as two variables addition or multiplication are approximated. Multivariable addition can be realized by the summation nature of the artificial neuron. For designing a solution utilizing a multiplication operation, there are three options. The first option is to design a set of two dimensional splines. The second option is to implement a Log-Exp operation utilizing analog circuitry. The third option is to use a CMOS as a voltage controlled resistor to control the gain of the amplifier to achieve multiplication. In Fig.12, the third optionAtty Docket No. OU-24125WO is selected so as to exemplify the proposed neural realization of a complex physical dynamics and control system.
[0156] In the example shown, the input variables u and v need to be multiplied. The figure shows components of a rotation matrix. The terms cos(ψ) and sin(ψ) represent trigonometric functions that multiply with the inputs. These cosine and sine functions are connected in a way that they process the inputs and rotate the vectors in a 2D space. In CMOS controlled multiplication, the CMOS transistors function as voltage-controlled resistors, where the input signals u and v control the gain (amplification) of the system. Each transistor controls the gain of its corresponding amplifier. This configuration allows the network to multiply the inputs with the cos(ψ) and sin(ψ) values to produce the outputs ẋ and ẏ. In the navigation framework, ẋ may represent a longitudinal velocity of the vehicle and ẏ may represent latitudinal velocity of the vehicle. Overall, the multiplication operation is achieved by controlling the gain of the amplifiers using the inputs u and v. This is possible because CMOS transistors act as voltage-controlled resistors, adjusting the amplification based on the input signals. The cosine and sine components shown are indicative of the fact that this multiplication is applied in a rotational context, meaning the output may represent a rotated version of the inputs, such as transforming one coordinate system to another.
[0157] Fig. 13 illustrates a block diagram 218 where neural networks are used to model a nonlinear dynamics and control system with three degrees of freedom (3DoF) for motion control of a ground vehicle. The vehicle model comprises four parts: translational kinematics, translational dynamics, rotational kinematics, and rotational dynamics.
[0158] Translational kinematics can be expressed using the following matrices equation: KOPψ PRSψ V (4)ẋẏ = N−PRSψ KOPψT UWX
[0159] In equation (4), ẋ and ẏ represent rates of change of the position of a vehicle in the x and y directions, respectively. The matrix includes the trigonometric functions cos(ψ) and sin(ψ) which account for the orientation of the vehicle (rotation by angle ψ) in a 2D plane. The inputs u, v represent translational velocities along the body axes of the vehicle.Atty Docket No. OU-24125WO
[0160] Translational dynamics can be expressed using the following matrices equation: (5)u̇v̇= U 0 \ V $ ] −\ 0X UWX +^N=]^T
[0161] In equation (5), theindicating how the velocity of the vehicle in one direction affects its velocity in the other due to rotation. ]=and ]^ represent external forces acting on the vehicle which are scaled by the vehicle’s mass (m).
[0162] Rotational kinematics can be expressed using the following equation: (6) ψ = r
[0163] In equation (6), the rotational velocity r represents the rate of change of the vehicle orientation angle ψ.
[0164] Rotational dynamics can be expressed using the following equation: (7) ṙ =$_``a^
[0165] In equation (7), ṙ is the ratethe rotational velocity, bccis the moment of inertia, and a^is the applied torque.
[0166] Referring back to Fig.13, the input variables u, v, and r are the vehicle’s velocities and rotational rate. Orientation angle ψ is computed using the WrapToPi block (or Modulo pi) to ensure the value remains within a valid range [-π, π]. As shown in Figs.13 and 13A, two neural networks approximate the cosine and sine functions of ψ. There are two separate sub-networks labeled cosine neural network and sine neural network which compute the trigonometric components for the given angle ψ. The final layer of the network multiplies the computed sine and cosine values with the velocities u and v, producing the outputs ẋ and ẏ which represent the translational velocities in the global coordinate system. Fig.13 further shows that the output data may be sent to an XY graph so as to plot the vehicle’s trajectory.
[0167] Figs.14A and 14B illustrate a block diagram 220 of a multiloop trajectory linearization controller (TLC) that uses neural networks to model a nonlinear dynamics and control system withAtty Docket No. OU-24125WO six degrees of freedom (6DoF) motion control. In some embodiments, the TLC handles complex dynamics of motion in 3-D space, including controlling both translational and rotational movements (e.g., pitch, yaw, roll) of an object, such as a drone, spacecraft, robotic arm, and so forth. As shown, the system uses four nested feedback loops, where each nested feedback loop manages a different level of control. Each part of the system is interconnected and provides feedback to refine control signals and achieve precise trajectory following.
[0168] The trajectory input represents where the desired trajectory or path is provided to the controller. The trajectory defines where the objects needs to move in terms of position and orientation. The trajectory is sent to the error dynamics feedback block and also provides information to subsequent control layers.
[0169] The first loop, or error dynamics feedback loop, computes the difference between the desired trajectory and the actual position and orientation. The error dynamics feedback provides corrective signals to minimize the error and adjust the system’s response accordingly. This ensures the system stays on rack by constantly adjusting based on the discrepancy between the desired and current motion states.
[0170] The second loop, or artificial outer loop, includes an artificial outer loop controller to refine the trajectory correction from loop 1 and to manage outer loop dynamics like angular velocity and linear velocity adjustments. This outer loop controller also receives feedback from attitude and velocity estimator that assess the system’s current state, helping to further refine control signals based on actual performance data.
[0171] The third loop, or artificial inner loop, handles finer control, focusing on more immediate corrections related to force and torque outputs. This loop takes feedback from sensors monitoring the object’s internal motion dynamics and uses it to ensure stability and responsiveness in the control outputs.
[0172] The fourth loop, or actuation commands and motor cortex, sends signals to the motor cortex which directly controls the actuators (motors or thrusters) responsible for the object’s physical movement. The motor cortex translates the high-level control signals into actionable commands that the motors or other physical systems can execute to produce the requiredAtty Docket No. OU-24125WO movement or rotation.
[0173] The navigation block provides additional information such as positional and orientation data (e.g., using sensors like GPS< IMU, or visual sensors) to help adjust the trajectory and motor commands based on real-time measurements. The system also includes feedback for handling external disturbances, which may affect the object’s motion, such as wind or other external forces that could alter the intended trajectory.
[0174] Fig.15 illustrates a trajectory linearization controller (TLC) model interpretation of a CNNC model. The CNNC model includes a feedforward nominal controller responsible for long- term motor skill learning and an integral feedback controller for short-term precision motion. The nominal controller takes the NT as input and generates a nominal (coarse) motor control signal. The SE signal is mainly utilized by the I-control to eliminate steady state motion error. The ME signal is utilized by the climbing fibers to facilitate long-term learning in the nominal controller and medium-term learning in the I-control gain adaptation. Aspects of this model have been implemented according to the principles of the present disclosure.
[0175] While the present invention has been illustrated by a description of various embodiments and while these embodiments have been described in considerable detail, it is not the intention of the applicants to restrict or in any way limit the scope of the appended claims to such detail. Additional advantages and modifications will readily appear to those skilled in the art. The invention in its broader aspects is therefore not limited to the specific details, representative apparatus and method, and illustrative example shown and described. Accordingly, departures may be made from such details without departing from the spirit or scope of applicant's general inventive concept.
[0176] It will be apparent that systems and / or methods, described herein, may be implemented in different forms of hardware, firmware, and / or a combination of hardware and software. The actual specialized control hardware or software code used to implement these systems and / or methods is not limiting of the embodiments. Thus, the operation and behavior of the systems and / or methods were described herein without reference to specific software code – it being understood that software and hardware can be used to implement the systems and / or methodsAtty Docket No. OU-24125WO based on the description herein.
[0177] Some embodiments are described herein in connection with thresholds. As used herein, satisfying a threshold may, depending on the context, refer to a value being greater than the threshold, more than the threshold, higher than the threshold, greater than or equal to the threshold, less than the threshold, fewer than the threshold, lower than the threshold, less than or equal to the threshold, equal to the threshold, etc., depending on the context.
[0178] No element, act, or instruction used herein should be construed as critical or essential unless explicitly described as such. Also, as used herein, the articles “a” and “an” are intended to include one or more items and may be used interchangeably with “one or more.” Furthermore, as used herein, the term “set” is intended to include one or more items (e.g., related items, unrelated items, a combination of related and unrelated items, etc.), and may be used interchangeably with “one or more.” Where only one item is intended, the phrase “only one” or similar language is used. Also, as used herein, the terms “has,” “have,” “having,” or the like are intended to be open- ended terms. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise.
Claims
Atty Docket No. OU-24125WO WHAT IS CLAIMED IS:
1. A method for using one or more neuromorphic computing device to realize a nonlinear state equation model of a nonlinear dynamics and control system, the method comprising: configuring, on the one or more neuromorphic computing devices, a first neural network to include a first plurality of artificial neurons (ANs) interconnected by a first plurality of artificial synapses, wherein respective ANs, of the first plurality of ANs, are configured with a summation function and an activation function, wherein the plurality of synapses are configured with a first set of weights such that respective weights are applied to corresponding state values that are part of a state vector (x), and wherein the first plurality of ANs collectively approximate a vector field (f̂ (x, u)) that processes the state vector and a control input vector (u) to compute an instantaneous rate of change (ẋ) of the state vector (x); configuring, on the one or more neuromorphic computing devices, at least one spike neuron (SN) to receive the instantaneous rate of change (ẋ) of the state vector (x) from the first plurality of ANs, wherein the at least one SN is further configured to include an integrator (1 / s) that integrates the instantaneous rate of change (ẋ) of the state vector (x) over time to compute an updated state vector (x), and wherein a spike causes the updated state vector (x) to be provided to a second neural network; and configuring, on the one or more neuromorphic computing devices, the second neural network to receive the control input vector (u) and the updated state vector (x), wherein the second neural network is further configured to include a second plurality of ANs interconnected by a second plurality of artificial synapses, wherein respective ANs, of the second plurality of ANs, are configured with another summation function and another activation function, wherein the second plurality of synapses are configured with a second set of weights such that respective weights are applied to corresponding state values that are part of the updated state vector (x), and wherein the second plurality of ANs collectively approximate a measurement function (ĥ (x, u)) that computes a final output vector (y) based on the updated state vector (x) and the controlAtty Docket No. OU-24125WO input vector (u).
2. The method of claim 1, wherein the at least one SN is further configured to provide the updated state vector (x) as an input to an AN that is part of the first plurality of ANs, whereby providing the updated state vector (x) to the AN creates a feedback loop so as to continuously update the state vector (x) over time.
3. The method of claim 1, wherein the first set of weights and the second set of weights are configured by storing respective weights in memory located on analog circuitry of respective neuromorphic computing devices of the one or more neuromorphic computing devices.
4. The method of claim 1, wherein the nonlinear state equation model is a nominal model and the vector field (f̂ (x, u)) is further configured with verified mathematical equations defining behavior in, or characteristics of, an external real-world environment.
5. The method of claim 4, wherein the method further comprises: configuring an approximation of a perturbation function f^^^^^that represents a perturbation model that accounts for parasitic effects not accounted for by the nominal model.
6. The method of claim 1, wherein the nonlinear dynamics and control system is for a controllable object for the purpose of modeling a state of the controllable object such that modeled state provides information used to perform one or more autonomous or semi- autonomous tasks associated with controlling the object, and wherein the final output vector (y) represents a prediction as to a manner in which state values of the updated state vector (x) change over time.
7. The method of claim 1, wherein the other activation function of the respective ANs of the second plurality of ANs is a rectified linear unit (ReLU) activation function, where the ReLU activation function outputs a value of zero if the value of the updated state vector (x) is negative and outputs the updated state vector (x) if the value is positive.Atty Docket No. OU-24125WO 8. The method of claim 1, wherein one or more nonlinear relationships exist between the state vector (x) and the control input vector (u), wherein the other activation function of the respective ANs of the second plurality of ANs is a rectified linear unit (ReLU) activation function and is one of multiple ReLU activation functions of the respective ANs, and wherein each of the multiple ReLU activation functions are assigned a bias to form multiple linear segments that collectively are used to approximate the one or more nonlinear relationships between the state vector (x) and the control input vector (u).
9. The method of claim 1, wherein the nonlinear dynamics and control system is for a controllable object, wherein the respective ANs of the first plurality of ANNs are configured with one or more functions associated with kinematic and / or rotational motion, the one or more functions including at least one of: a function for modeling translational kinematics, a function for modeling translational dynamics, a function for modeling rotational kinematics, or a function for modeling rotational dynamics.
10. A system, comprising: one or more neuromorphic computing devices respectively comprising: one or more routing devices; a neuromorphic core network comprising a plurality of neuromorphic cores interconnected by the one or more routing devices, wherein each neuromorphic core in the plurality is to implement a first neural network that includes a first plurality of artificial neurons (ANs) interconnected by a first plurality of artificial synapses, at least one spiking neuron (SN), and a second neural network that includes a second plurality of ANs interconnected by a second plurality of artificial synapses, wherein respective ANs in the first neural network is configured with a first set of weights such that respective weights are applied to corresponding state values that are part of a state vector (x), and wherein the first plurality of ANs collectively approximate a vector field (f̂ (x, u)) that processes the state vector (x) and a control input vector (u) to compute an instantaneous rate of change (ẋ) of the state vector (x),Atty Docket No. OU-24125WO wherein the at least one SN is configured to receive the instantaneous rate of change (ẋ) of the state vector (x) from the first plurality of ANs, and wherein the at least one SN is further configured to include an integrator (1 / s) to integrate the instantaneous rate of change (ẋ) of the state vector (x) over time to compute an updated state vector (x), and wherein a spike causes the updated state vector (x) to be provided to the second neural network, and wherein respective ANs, of the second plurality of ANs, are configured with another summation function and another activation function, wherein the second plurality of synapses are configured with a second set of weights such that respective weights are applied to corresponding state values that are part of the updated state vector (x), and wherein the second plurality of ANs collectively approximate a measurement function (ĥ (x, u)) that computes a final output vector (y) based on the updated state vector (x) and the control input vector (u); and a plurality of sensor devices adapted to obtain sensor data and to transmit the sensor data to at least one of the one or more neuromorphic computing devices such that the sensor data is converted to voltage signals representing the state values of the state vector (x).
11. A neuromorphic computing device for realizing a state equation model of a nonlinear dynamics and control system, comprising: a neuromorphic core network that includes one or more routing devices and a plurality of neuromorphic cores, wherein respective neuromorphic cores in the plurality include: a first group of one or more neural networks, wherein respective neural networks in the first group include a first plurality of artificial neurons (ANs) interconnected by a first plurality of artificial synapses, wherein respective ANs, of the first plurality of ANs, are configured with a summation function and an activation function, wherein the plurality of synapses are configured with a first set of weights such that respective weights are applied to corresponding state values that are part of a state vector (x), and wherein the first plurality of ANs collectively approximate a vector field (f̂ (x, u)) that processes the state vector (x) and a control input vector (u) to compute an instantaneous rate of change (ẋ) of the state vector (x); at least one spike neuron (SN) to receive the instantaneous rate of change (ẋ) ofAtty Docket No. OU-24125WO the state vector (x) from the first plurality of ANs, wherein the at least one SN is further configured to include an integrator (1 / s), wherein the integrator (1 / s) integrates the instantaneous rate of change (ẋ) of the state vector (x) over time to compute an updated state vector (x), and wherein a spike causes the updated state vector (x) to be provided to a second group of one or more neural networks; and the second group of one or more neural networks, wherein respective neural networks in the second group include a second plurality of ANs interconnected by a second plurality of artificial synapses, wherein respective ANs, of the second plurality of ANs, are configured with another summation function and another activation function, wherein the second plurality of synapses are configured with a second set of weights such that respective weights are applied to corresponding state values that are part of the updated state vector (x), and wherein the second plurality of ANs collectively approximate a measurement function (ĥ (x, u)) that computes a final output vector (y) based on the updated state vector (x) and the control input vector (y).
12. The neuromorphic computing device of claim 11, wherein the respective neural networks in the first group include: a first neural network to model an influence of the control input vector u on the state vector x, a second neural network to model state dynamics that depend on a current state of the system, a third neural network to model an influence of the control input vector u on the final output vector, and a fourth neural network to model an output function based on the updated state vector (x).
Citation Information
Patent Citations
Critical Branching Neural Computation Apparatus and Methods
US20100312736A1
Stochastic spiking network learning apparatus and methods
US20130325768A1
Computed synapses for neuromorphic systems
US20150046382A1
Cited By
Distributed formation control method driven by recursive balance network under communication attack
CN121008593A
Multilayer nonlinear optical neural network computing system based on linear signal recoding
CN122154797A