Hardware-based data management interface

Through the hardware-based data management interface, the problems of incoherent signal processing and limited controller throughput in EPS systems are solved, and efficient motor position and speed calculations are realized to meet the real-time requirements of advanced steering functions.

CN116279758BActive Publication Date: 2025-08-12STEERING SOLUTIONS IP HOLDING CORP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210806238.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-12-17
Filing Date
2022-07-08
Publication Date
2025-08-12
Estimated Expiration
2042-07-08

AI Technical Summary

Technical Problem

In the motor control, existing EPS systems have problems such as incoherent signal processing, limited controller throughput, signal path delay and insufficient software methods, which are difficult to meet the execution rate requirements of advanced steering functions.

Method used

Using a hardware-based data management interface, motor signal samples are captured through peripherals such as timers, quadrature signal decoders and analog-to-digital converters, and motor signal samples are captured and stored in memory buffers, snapshots are generated and synchronized between different domains at different times, and hardware-accelerated data management is realized independently of software interaction.

Benefits of technology

Improves controller throughput, reduces signal path delay, ensures signal cohesion, supports efficient motor position and speed calculations, and meets the real-time requirements of advanced steering capabilities.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116279758B_ABST
    Figure CN116279758B_ABST
Patent Text Reader

Abstract

A method includes capturing a first sample data signal associated with a first time domain, and storing a first value associated with the first sample data signal in a first element position of a first memory buffer. The method also includes, in response to completion of a sampling window and in response to a request from a data consumer, generating a snapshot of the values stored in the first memory buffer, and storing the snapshot of the values in a data consumer memory. The method also includes extracting, by the data consumer, at least one value from the snapshot of the values in a second time domain, and calculating, by the data consumer, at least one of a motor position of a motor and a motor speed of the motor using the at least one value from the snapshot of the values.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This patent application claims priority to Polish patent application No. P.439889 filed on December 17, 2021, the entire contents of which are incorporated herein by reference. Technical Field

[0003] The present disclosure relates to motor control, and in particular to systems and methods for providing motor control using a hardware-based data management interface. Background Art

[0004] Vehicles such as automobiles, transporters, sport utility vehicles, crossovers, minivans, boats, aircraft, all-terrain vehicles, recreational vehicles, or other suitable forms of transportation often include a steering system such as an electric power steering (EPS) system, a steer-by-wire (SbW) steering system, or other suitable steering systems. The steering system of such a vehicle often controls various aspects of the vehicle's steering, including providing steering assistance to the vehicle's operator, controlling the vehicle's steerable wheels, and the like. Summary of the Invention

[0005] The present disclosure relates generally to motor control.

[0006] One aspect of the disclosed embodiment includes a method for motor control. The method includes: capturing a first sample data signal at a first data producer, the first sample data signal being associated with a first time domain; and storing, by the first data producer, a first value associated with the first sample data signal in a first element position of a first memory buffer. The first element position of the first memory buffer corresponds to a timestamp of the first sample data signal. The method also includes, in response to completion of a sampling window and in response to a request from a data consumer, generating, by a controller, a snapshot of the values stored in the first memory buffer, and storing, by the controller, the snapshot of the values in a data consumer memory. The method also includes extracting, by the data consumer, at least one value from the snapshot of the values in a second time domain, and using, by the data consumer, at least one value from the snapshot of the values to calculate, by the data consumer, at least one of a motor position of a motor and a motor speed of the motor.

[0007] Another aspect of the disclosed embodiment includes a system for motor control. The system includes a first data producer configured to capture a first sample data signal associated with a first time domain; and store a first value associated with the first sample data signal in a first element position of a first memory buffer, the first element position of the first memory buffer corresponding to a timestamp of the first sample data signal. The system also includes a controller configured to generate a snapshot of the values stored in the first memory buffer in response to completion of a sampling window and in response to a request from a data consumer, and store the snapshot of the values in a data consumer memory. The data consumer is configured to extract at least one value from the snapshot of the values in a second time domain, and use the at least one value from the snapshot of the values to calculate at least one of a motor position of a motor and a motor speed of the motor.

[0008] Another aspect of the disclosed embodiment includes an apparatus for motor control. The apparatus includes a processor and a memory. The memory includes instructions that, when executed by the processor, cause the processor to: generate a snapshot of values stored in a first memory buffer associated with a first data producer in response to completion of a sampling window and in response to a request from a data consumer, the values stored in the first memory buffer being associated with corresponding sample data signals, and the corresponding sample data signals being associated with a first time domain; store the snapshot of values in a data consumer memory; generate another snapshot of values stored in a second memory buffer associated with a second data producer in response to completion of a sampling window and in response to another request from the data consumer, the values stored in the second memory buffer being associated with other corresponding sample data signals, and the other corresponding sample data signals being associated with a second time domain; store the another snapshot of values in the data consumer memory; receive at least one of a motor position of a motor and a motor speed of the motor; and selectively control the motor based on at least one of the motor position of the motor and the motor speed of the motor.

[0009] These and other aspects of the disclosure are disclosed in the following detailed description of the embodiments, the appended claims and the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] The present disclosure will be best understood from the following detailed description when read in conjunction with the accompanying drawings. It should be emphasized that, according to common practice, the various features of the drawings are not to scale. On the contrary, the dimensions of the various features are arbitrarily expanded or reduced for clarity.

[0011] Figure 1 A vehicle according to the principles of the present disclosure is generally shown.

[0012] Figure 2A motor control system according to the principles of the present disclosure is generally shown.

[0013] Figure 3 A schematic diagram of a motor control system according to the principles of the present disclosure is generally shown.

[0014] Figure 4 is a flow chart generally illustrating a motor control method according to the principles of the present disclosure. DETAILED DESCRIPTION

[0015] The following discussion is directed to various embodiments of the present disclosure. Although one or more of these embodiments may be preferred, the disclosed embodiments should not be interpreted or otherwise used as limiting the scope of the present disclosure (including the claims). In addition, it will be understood by those skilled in the art that the following description has broad application, and the discussion of any embodiment is merely meant as an example of that embodiment and is not intended to imply that the scope of the present disclosure (including the claims) is limited to that embodiment.

[0016] As described, vehicles such as automobiles, transporters, sport utility vehicles, crossovers, minivans, marine vessels, aircraft, all-terrain vehicles, recreational vehicles, or other suitable forms of transportation typically include a steering system such as an electric power steering (EPS) system, a steer-by-wire (SbW) steering system, or other suitable steering system. The steering system of such a vehicle typically controls various aspects of the vehicle's steering, including providing steering assistance to the vehicle's operator, controlling the vehicle's steerable wheels, etc.

[0017] Typically, fundamental aspects of an EPS system include efficient control of the EPS system's motor, such as a synchronous brushless DC (BLDC) motor or other suitable motor. This can be achieved using a field-oriented control (FOC) scheme for motor commutation. The core of FOC involves determining the electric field of a rotor (e.g., associated with a motor) and applying three-phase currents to align with the field of a stator (e.g., of a motor), the field of the stator being perpendicular to the field associated with the rotor. This typically requires high-quality motor position signals and phase current signals, which can include the use of advanced sensing hardware circuitry with processing elements (PEs) configured to be fully tuned to support all available features provided by the hardware. Furthermore, such a system can maintain a specific cohesive dependency between the two signals to prevent the introduction of errors in motor torque generation.

[0018] In addition to the above, a typical EPS system includes core functionality that includes acquiring raw samples (e.g., information or data from sensors) and processing the raw samples into signals of interest. The architectural implementation is typically a software-based approach that reads peripheral inputs, buffers the raw data, processes the raw data, and transmits the processed data to downstream motor control software components. This can significantly impact controller throughput and may be limited by any operating system interference, resulting in disturbances in time-critical synchronization events, which can cause measurement data incoherence. Furthermore, advanced steering functions impose more stringent conditions on execution rate and may cause signal path delays, which may make a pure software approach insufficient.

[0019] Therefore, systems and methods configured to provide a hardware-based data management interface (such as those described herein) are desirable. In some embodiments, the systems and methods described herein can be configured to acquire motor position samples and calculate motor speed signals while maximizing cohesion with phase current samples and / or any other control-related samples or signals. The systems and methods described herein can be configured to maintain the required signal-to-noise ratio and signal bandwidth of various traditional software methods. The systems and methods described herein can be configured to utilize hardware acceleration to increase controller throughput (e.g., by performing acquisition without software interaction and using preliminary data sorting and samples that are equally spaced in time).

[0020] The systems and methods described herein can be configured to execute independently of motor control service routines (e.g., while data coherence is maintained by hardware mechanisms). The systems and methods described herein can be configured to operate independently of pulse width modulation (PWM) dithering (e.g., using dedicated spread spectrum control of the signal). The systems and methods described herein can be configured to provide a configurable sample frequency (e.g., by configuring the measurement execution rate to match the maximum operating characteristics of the sensing hardware). The systems and methods described herein can be configured to provide reduced signal path latency (e.g., by synchronously acquiring position and phase current signals).

[0021] In some embodiments, the systems and methods described herein can be configured to maximize hardware utilization and support a unified technology for data access for EPS system functions. The systems and methods described herein can be configured to provide an improved method for collecting and presenting input data for motor speed calculations. The systems and methods described herein can be configured to use existing internal hardware peripherals, which can reduce controller (e.g., processor or processing element) workload by running in the background and creating conditions for executing faster calculation algorithms.

[0022] The systems and methods described herein can be configured to utilize timers, quadrature signal decoders, serial communication interfaces, analog-to-digital converters (ADCs), arbitrary serial interfaces, direct memory access, peripheral routing, and the like. Each peripheral unit can include specialized features to support various operations. The systems and methods described herein can be configured to connect peripherals so that signal processing using the peripherals can increase the throughput of the system. The systems and methods described herein can be configured to provide a hardware-accelerated data management interface for acquiring and distributing input signals within an embedded system of an EPS system or other suitable system.

[0023] In some embodiments, the systems and methods described herein can be configured to store each acquired motor signal sample in a dedicated memory space by the data producer, such as Figure 3 . The systems and methods described herein can be configured to store signals in element positions within a buffer. The element positions within the buffer can correspond directly to timestamps. The systems and methods described herein can be configured to, when a predefined sampling window is completed and a data consumer requests data for execution, generate a snapshot of the collected data set and move the snapshot to a specific memory for computational purposes (e.g., this can provide synchronization between two independent time domains for measuring and processing signals). The window size and frequency can be configurable (e.g., even during runtime), which can allow flexible adjustment to meet system requirements. The systems and methods described herein can be configured to execute all operations once set up without host controller interaction for the rest of the execution.

[0024] Refer again Figure 3 , quadrature signals are obtained from the Quadrature Encoder Pulse (QEP) decoder input channels A and B. It continuously monitors the incoming edge sequence and calculates a counter value that conveys the motor angular displacement. A predefined source of triggering events initiates the capture of the QEP counter. This can include a software or hardware mechanism that indicates a specific execution rate (for example, 50 microseconds (us), 100us, 200us, or other suitable rate). When the capture is completed, the value is automatically transferred to a dedicated random access memory (RAM) array by the memory access unit. The memory unit internally handles the indexing and sorting of elements according to the configured parameters (for example, element size, array size, current array utilization, etc.). The memory unit can autonomously implement a circular buffer concept. Memory management all happens in the background without the need for controller intervention, saving processor computational throughput for actual processing.

[0025] On the data consumer side, data extraction and processing can be performed. The data consumer starts with synchronization with the occurrence of the event, including copying certain parts of the circular buffer. This can be set to off by a hardware source (such as a peripheral transfer completion flag, a timer interrupt) or directly from software. When triggered, the memory access unit of the data consumer delivers the samples of interest required by the processing part of the algorithm (for example, executed by the data consumer). This can include all available samples or a subset of samples (for example, the most recent value - minimum acquisition delay of the signal, every nth value - downsampling of signal sample overlap - windowing of signal for further filtering, etc.).

[0026] In some embodiments, a "latch" mechanism enables the data consumer to operate at a different execution rate than the data producer and maintain synchronization between domains. Furthermore, software calculations can begin immediately after a transfer is complete, resulting in minimal signal path lag that affects the frequency response of the final result. The data producer functionality is implemented solely through hardware-accelerated features, while the data consumer includes both hardware extraction and software-based algorithm implementation. The signal generator portion is capable of reacting to different types of system events that drive the moment of data acquisition. Additionally or alternatively, specific scenarios may arise when the occurrence of a single system trigger can initiate a series of operations to acquire and buffer samples of various signals available for measurement.

[0027] In some embodiments, a dedicated front-end module converts different types of input into a common representation within the system. The end result can include a set of circular buffers that continuously fill with data at the designed signal rate. Additionally or alternatively, specific system functions can obtain data for processing through synchronous requests. All sampled events can be managed in a preconfigured order by a memory management unit, which inherently provides cohesion of the processed data.

[0028] The consumer endpoint accesses the data using available resources for signal processing without having to consider the coherence and synchronization of the data. The systems and methods described herein can be configured to use hardware accelerated acquisition to maintain a constant sampling rate of the rotor's position. All angle values can be equally spaced in time. The systems and methods described herein can be configured to provide a motor speed estimation technique that can account for specifications by simplifying the time-related aspects of various equations. By manipulating the original formula expressions to decouple the position and time variables, the systems and methods described herein can be configured to obtain a vector dot product form that is efficiently implemented in signal processing applications. This can be expressed as:

[0029]

[0030]

[0031] Where β represents the k (e.g., the expected velocity signal) i ) rate. Because x i is known a priori (e.g., for a certain sampling window size), so all β can be precomputed i The coefficients are stored in memory. Therefore, the motor position velocity can be estimated using a tap-delay linear filter structure.

[0032] The systems and methods described herein can be configured to provide a "finite impulse response (FIR) slope filtering" algorithm or other suitable filtering algorithms or other suitable algorithms. The basic mathematical operation behind it is convolution, which is implemented as a multiply and accumulate instruction set. Due to the native support of the hardware math unit for the multiply-accumulate (MAC) instruction, this type of calculation scheme can provide improvements in processing throughput.

[0033] In some embodiments, the systems and methods described herein can be configured to calculate motor speed with a relatively short execution time (e.g., ~4.27us*4). The systems and methods described herein can be configured to directly use steering system hardware, other vehicle hardware, or any suitable hardware (e.g., without executing an internal motor control service routine) to collect and buffer samples. The systems and methods described herein can be configured to use a buffer having a size of 48 bytes for collecting (e.g., with a window size of 24 samples) or other suitable size (e.g., a corresponding window size). It should be understood that although limited examples are provided herein, the systems and methods described herein can be configured to use any suitable signal and corresponding hardware to provide any suitable output in addition to or instead of those signals and corresponding hardware described herein.

[0034] In some embodiments, the systems and methods described herein can be configured to equally distribute (e.g., or allocate, collect, etc.) sample space at predetermined intervals (e.g., such as every 100 us or other suitable intervals). The systems and methods described herein can be configured to use the entire set of position signals (e.g., all collected or acquired) to estimate motor speed and / or position. The systems and methods described herein can be configured to support sample-to-sample signal estimation. The systems and methods described herein can be configured to estimate motor speed and / or position independently of the motor control service routine.

[0035] In some embodiments, the systems and methods described herein can be configured to control reactions to external factors and internal states for an EPS system or other suitable vehicle or non-vehicle system. The systems and methods described herein can be configured to provide a hardware-based universal interface for data management. The systems and methods described herein can be configured to provide: uniform data presentation and distribution in an EPS system or other vehicle or non-vehicle system; significantly reduced throughput of controllers (e.g., or processing elements); separation and synchronization of sampling and processing domains; and flexibility in acquisition rate configuration. The systems and methods described herein are configured to utilize resources commonly available within general-purpose microcontroller devices. The systems and methods described herein can be configured to adjust the configuration layer of the data producer to defined computational needs.

[0036] In some embodiments, the systems and methods described herein can be configured to capture arbitrary signal data samples by a data producer operating in a fixed time domain using dedicated hardware means specific to the signal properties. The fixed time domain can be associated with the measured signal. The systems and methods described herein can be configured to store data values in a memory buffer associated with the data producer using dedicated memory management hardware. The element position in the buffer can correspond to the timestamp of the sample data (with reference to the producer operating in the time domain).

[0037] The systems and methods described herein may be configured to generate, on demand, a snapshot of values stored in a memory buffer (e.g., associated with a data producer) by a storage management controller in response to completion of a sampling window and in response to a request from a data consumer. The systems and methods described herein may be configured to store the snapshot values in a memory buffer (e.g., associated with a requesting data consumer) by a storage management controller. The systems and methods described herein may be configured to extract data from a snapshot of values, arbitrarily selecting a value, by a data consumer operating in a fixed time domain (e.g., which time domain may be different from or the same as that of the associated data producer). The systems and methods described herein may be configured to execute an algorithm by a data consumer configured to process a signal captured by an associated data producer.

[0038] In some embodiments, the systems and methods described herein may be configured to use a data consumer to process the raw data associated with the various snapshots and generate final results (such as motor position, motor speed, etc.) It should be understood that, while limited examples are provided herein, the systems and methods described herein may be configured to generate any suitable results in addition to or different from those described herein.

[0039] In some embodiments, the systems and methods described herein can be configured to capture a first sample data signal at a first data producer. The first sample data signal can be associated with a first time domain. The first data producer can include a timer, a quadrature signal decoder, an analog-to-digital converter, any serial interface, other suitable peripherals or components, or a combination thereof. The systems and methods described herein can be configured such that the first data producer stores a first value associated with the first sample data signal in a first element position of a first memory buffer. The first element position of the first memory buffer can correspond to a timestamp of the first sample data signal.

[0040] The systems and methods described herein can be configured to generate, by a controller, a snapshot of the values stored in the first memory buffer in response to completion of a sampling window and in response to a request from a data consumer. The systems and methods described herein can be configured to store, by a controller, the snapshot of the values in a data consumer memory. The systems and methods described herein can be configured to extract, by a data consumer, at least one value from the snapshot of the values in a second time domain. The systems and methods described herein can be configured to calculate, by a data consumer, at least one of a motor position of a motor and a motor speed of a motor using at least one value from the snapshot of the values.

[0041] The systems and methods described herein can be configured to, in response to completion of the sampling window and in response to another request from the data consumer, generate, by the controller, another snapshot of the values stored in the second memory buffer associated with the second data producer. ... data consumer memory. The controller can continue to iteratively generate various snapshots of various data collected during various windows.

[0042] In some embodiments, the first time domain and the second time domain may include the same time domain or different time domains and / or the same or different characteristics. In some embodiments, the first sample data signal is further associated with a first rate, and the at least one value extracted by the data consumer is associated with a second rate. In some embodiments, the first rate and the second rate may include the same rate or different rates.

[0043] Figure 1 A vehicle 10 is generally shown in accordance with the principles of the present disclosure. Vehicle 10 may include any suitable vehicle such as an automobile, a transporter, a sport utility vehicle, a minivan, a crossover, any other passenger vehicle, any suitable commercial vehicle, or any other suitable vehicle. While vehicle 10 is shown as a passenger vehicle having wheels and intended for use on a road, the principles of the present disclosure may be applied to other vehicles such as airplanes, boats, trains, drones, or other suitable vehicles.

[0044] Vehicle 10 includes a vehicle body 12 and a hood 14. A passenger compartment 18 is at least partially defined by vehicle body 12. Another portion of vehicle body 12 defines an engine compartment 20. Hood 14 can be removably attached to a portion of vehicle body 12 such that when hood 14 is in a first, or open, position, hood 14 provides access to engine compartment 20, and when hood 14 is in a second, or closed, position, hood 14 covers engine compartment 20. In some embodiments, engine compartment 20 can be located at the rear of vehicle 10 (compared to what is generally shown).

[0045] The passenger compartment 18 may be positioned rearward of the engine compartment 20, but in embodiments where the engine compartment 20 is positioned at a rear portion of the vehicle 10, the passenger compartment 18 may be positioned forward of the engine compartment 20. The vehicle 10 may include any suitable propulsion system including an internal combustion engine, one or more electric motors (e.g., an electric vehicle), one or more fuel cells, a hybrid (e.g., a hybrid electric vehicle) propulsion system including a combination of an internal combustion engine, one or more electric motors, and / or any other suitable propulsion system.

[0046] In some embodiments, the vehicle 10 may include a gasoline engine or a gasoline fuel engine, such as a spark-ignition engine. In some embodiments, the vehicle 10 may include a diesel fuel engine, such as a compression-ignition engine. The engine compartment 20 houses and / or encloses at least some components of the propulsion system of the vehicle 10. Additionally or alternatively, propulsion control devices, such as an accelerator actuator (e.g., an accelerator pedal), a brake actuator (e.g., a brake pedal), a steering wheel, and other such components, are disposed in the passenger compartment 18 of the vehicle 10. The propulsion control devices may be actuated or controlled by the driver of the vehicle 10 and may be directly connected to corresponding components of the propulsion system, such as a throttle, brakes, axles, vehicle transmission, etc. In some embodiments, the propulsion control devices may transmit signals to a vehicle computer (e.g., a drive-by-wire vehicle computer), which in turn may control corresponding propulsion components of the propulsion system. Similarly, in some embodiments, the vehicle 10 may be an autonomous vehicle.

[0047] In some embodiments, vehicle 10 includes a transmission that communicates with the crankshaft via a flywheel, a clutch, or a fluid coupling. In some embodiments, the transmission comprises a manual transmission. In some embodiments, the transmission comprises an automatic transmission. In the case of an internal combustion engine or a hybrid vehicle, vehicle 10 may include one or more pistons that operate in conjunction with the crankshaft to generate power, which is transferred through the transmission to one or more axles, thereby rotating wheels 22. When vehicle 10 includes one or more electric motors, the vehicle battery and / or fuel cell provides energy to the electric motors to rotate wheels 22.

[0048] Vehicle 10 may include an automated vehicle propulsion system, such as cruise control, adaptive cruise control, automatic braking control, other automated vehicle propulsion systems, or combinations thereof. Vehicle 10 may be an automated or semi-automated vehicle, or other suitable type of vehicle. Vehicle 10 may include more or fewer features than generally shown and / or disclosed herein.

[0049] In some embodiments, the vehicle 10 may include an Ethernet component 24, a controller area network (CAN) bus 26, a media oriented system transport component (MOST) 28, a FlexRay component 30 (e.g., a brake-by-wire system, etc.), and a local interconnect network component (LIN) 32. The vehicle 10 may use the CAN bus 26, MOST 28, FlexRay component 30, LIN 32, other suitable networks or communication systems, or a combination thereof, to transmit various information from, for example, sensors within or outside the vehicle to, for example, various processors or controllers within or outside the vehicle. The vehicle 10 may include more or fewer features than generally shown and / or disclosed herein.

[0050] In some embodiments, the vehicle 10 may include a steering system such as an EPS system, a steer-by-wire steering system (e.g., the steer-by-wire steering system may include one or more controllers that control components of the steering system, or communicate with one or more controllers without using a mechanical connection between the steering wheel of the vehicle 10 and the wheels 22), or other suitable steering systems. The steering system may include an open-loop feedback control system or mechanism, a closed-loop feedback control system or mechanism, or a combination thereof. The steering system may be configured to receive various inputs, including but not limited to steering wheel position, input torque, one or more wheel positions, other suitable inputs or information, or a combination thereof. Additionally or alternatively, the input may include steering wheel torque, steering wheel angle, motor speed, vehicle speed, estimated motor torque command, other suitable inputs or a combination thereof. The steering system may be configured to provide steering functionality and / or control to the vehicle 10. For example, the steering system may generate an assist torque based on various inputs. The steering system may be configured to selectively control the motor of the steering system using the assist torque to provide steering assistance to the operator of the vehicle 10.

[0051] In some embodiments, the vehicle 10 may include a controller such as Figure 21 . The controller 100 is generally shown in FIG. The controller 100 may include any suitable controller, such as an electronic control unit or other suitable controller. The controller 100 may be configured to control, for example, various functions of the steering system and / or various functions of the vehicle 10. The controller 100 may include a processor 102 and a memory 104. The processor 102 may include any suitable processor, such as those described herein. Additionally or alternatively, the controller 100 may include any suitable number of processors in addition to or in addition to the processor 102. The memory 104 may include a single disk or multiple disks (e.g., a hard drive) and include a storage management module that manages one or more partitions within the memory 104. In some embodiments, the memory 104 may include flash memory, semiconductor (solid-state) memory, or the like. The memory 104 may include random access memory (RAM), read-only memory (ROM), or a combination thereof. The memory 104 may include instructions that, when executed by the processor 102, cause the processor 102 to control at least various aspects of the vehicle 10.

[0052] The controller 100 may receive one or more signals from various measurement devices or sensors 106 that are indicative of sensed or measured characteristics of the vehicle 10. The sensors 106 may include any suitable sensors, measurement devices, and / or other suitable mechanisms. For example, the sensors 106 may include one or more torque sensors or devices, one or more steering wheel position sensors or devices, one or more motor position sensors or devices, one or more position sensors or devices, other suitable sensors or devices, or combinations thereof. The one or more signals may indicate steering wheel torque, steering wheel angle, motor speed, vehicle speed, other suitable information, or combinations thereof.

[0053] In some embodiments, the controller 100 can be configured to operate in cooperation with a data producer 108 and a data consumer 110 to estimate the motor speed and / or motor position of a motor, such as one or more motors of a steering system of the vehicle 10 (e.g., an EPS system or other suitable steering system of the vehicle 10) or any other suitable system. The data producer 108 can include a timer, a quadrature signal decoder, an analog-to-digital converter, any serial interface, other suitable peripherals or components, or other suitable data producers, or a combination thereof. Although only the data producer 108 is shown generally, it should be understood that the controller 100 can operate in cooperation with any suitable number of data producers in addition to or in lieu of those described herein. The data consumer 110 can include any suitable data consumer configured to estimate the motor speed and / or motor position of a motor. Although only the data consumer 110 is shown generally, it should be understood that the controller 100 can operate in cooperation with any suitable number of data consumers in addition to or in lieu of those described herein.

[0054] The data producer 108 may capture a first sample data signal from one or more sensors 106. The first sample data signal may be associated with a first time domain and / or a first rate. The data producer 108 may store a first value associated with the first sample data signal in a first element position of a first memory buffer. The first element position of the first memory buffer may correspond to a timestamp of the first sample data signal.

[0055] The controller 100 may generate a snapshot of the values stored in the first memory buffer in response to completion of the sampling window and / or in response to a request from the data consumer 110 (e.g., requesting data for use in estimating motor speed and / or motor position). The controller 100 may store the snapshot of the values in a data consumer memory of the data consumer 110.

[0056] In some embodiments, data consumer 110 may request data from a memory buffer as described. Data consumer 110 may access data consumer memory to retrieve data from a snapshot of values. Data consumer 110 may extract at least one value from the snapshot of values in a second time domain and / or at a second rate. The first time domain and the second time domain may include the same time domain or different time domains. The first rate and the second rate may include the same rate or different rates. Data consumer 110 may calculate the motor position of the motor, the motor speed of the motor, or a combination thereof using the values arbitrarily selected from the snapshot of values using the equations described herein or other suitable equations or techniques.

[0057] The systems and methods described herein can be configured to, in response to completion of the sampling window and in response to another request from the data consumer, generate, by the controller, another snapshot of the values stored in the second memory buffer associated with the second data producer. ... data consumer memory. The controller can continue to iteratively generate various snapshots of various data collected during various windows.

[0058] In some embodiments, the controller 100 can perform the methods described herein. However, the methods described herein as being performed by the controller 100 are not intended to be limiting, and any type of software executed on a controller or processor can perform the methods described herein without departing from the scope of the present disclosure. For example, a controller (such as a processor executing software within a computing device) can perform the methods described herein.

[0059] Figure 4 is a flow chart generally illustrating a motor control method 300 according to the principles of the present disclosure. At 302, the method 300 captures a first sample data signal at a first data producer. For example, the data producer 108 may capture the first sample data signal. The first sample data signal may be associated with a first time domain.

[0060] At 304, method 300 may store, by the first data producer, a first value associated with the first sample data signal in a first element position of a first memory buffer. For example, the data producer 108 may store the first value associated with the first sample data signal. The first element position of the first memory buffer may correspond to a timestamp of the first sample data signal.

[0061] At 306, method 300 generates, by the controller, a snapshot of the values stored in the first memory buffer in response to completion of the sampling window and in response to a request from the data consumer. For example, controller 100 may generate a snapshot of the values stored in the first memory buffer in response to completion of the sampling window and in response to a request from data consumer 110.

[0062] At 308 , method 300 , by the controller, stores the snapshot of the value in a data consumer memory. For example, controller 100 may store the snapshot of the value in a data consumer memory associated with data consumer 110 .

[0063] At 310 , method 300 extracts at least one value from the snapshot of values in a second time domain by the data consumer.For example, data consumer 110 may extract at least one value from the snapshot of values in the second time domain.

[0064] At 312 , method 300 calculates, by the data consumer, at least one of a motor position of the motor and a motor speed of the motor using at least one value from the snapshot of values. For example, data consumer 110 may calculate at least one of a motor position of the motor and a motor speed of the motor using at least one value from the snapshot of values.

[0065] In some embodiments, a method for motor control includes: capturing a first sample data signal at a first data producer, the first sample data signal associated with a first time domain; and storing, by the first data producer, a first value associated with the first sample data signal in a first element position of a first memory buffer. The first element position of the first memory buffer corresponds to a timestamp of the first sample data signal. The method also includes, in response to completion of a sampling window and in response to a request from a data consumer, generating, by a controller, a snapshot of the values stored in the first memory buffer, and storing, by the controller, the snapshot of the values in a data consumer memory. The method also includes, in response to completion of a sampling window and in response to a request from a data consumer, at least one value from the snapshot of the values in a second time domain, and using, by the data consumer, at least one value from the snapshot of the values to calculate, by the data consumer, at least one of a motor position of a motor and a motor speed of the motor.

[0066] In some embodiments, the motor is associated with a steering system. In some embodiments, the steering system includes an electric steering system. In some embodiments, the first time domain and the second time domain include the same time domain. In some embodiments, the first time domain and the second time domain include different time domains. In some embodiments, the first sample data signal is also associated with a first rate, and at least one value extracted by the data consumer is associated with a second rate. In some embodiments, the first rate and the second rate include the same rate. In some embodiments, the first rate and the second rate include different rates. In some embodiments, the first data producer includes one of a timer, an orthogonal signal decoder, an analog-to-digital converter, or any digital serial interface (e.g., such as a serial peripheral interface, a single-edge nibble transmission interface, an inter-integrated circuit (I2C), etc.). In some embodiments, the method further includes: in response to completion of the sampling window and in response to another request from the data consumer, generating, by the controller, another snapshot of the value stored in the second memory buffer associated with the second data producer, and storing, by the controller, the other snapshot of the value in the data consumer memory.

[0067] In some embodiments, the method further comprises, by a data producer operating in a fixed time domain, capturing arbitrary signal data samples associated with the measured signal using dedicated hardware means specific to the signal properties. The method may further comprise, by dedicated memory management hardware, storing the data value in a memory buffer associated with the data producer at a location corresponding to a timestamp (referenced to the producer in the operating time domain). The method may further comprise, in response to completion of a sampling window and in response to a request from a data consumer, generating, by a storage management controller, a snapshot of the value stored in the memory buffer associated with the data producer. The method may further comprise, by the storage management controller, storing the snapshot value in a memory buffer associated with the data consumer that issued the request. The method may further comprise, by a data consumer operating in a fixed time domain different from or the same as the associated data producer, extracting an arbitrary selection of values from the snapshot of values. The method may further comprise, by the data consumer, executing an algorithm intended to process the signal captured by the associated data producer.

[0068] In some embodiments, a system for motor control includes a first data producer configured to: capture a first sample data signal associated with a first time domain; and store a first value associated with the first sample data signal in a first element position of a first memory buffer, the first element position of the first memory buffer corresponding to a timestamp of the first sample data signal. The system also includes a controller configured to generate a snapshot of the values stored in the first memory buffer in response to completion of a sampling window and in response to a request from a data consumer, and store the snapshot of the values in a data consumer memory. The data consumer is configured to extract at least one value from the snapshot of the values in a second time domain and use the at least one value from the snapshot of the values to calculate at least one of a motor position of a motor and a motor speed of the motor.

[0069] In some embodiments, the motor is associated with a steering system. In some embodiments, the steering system includes an electric steering system. In some embodiments, the first time domain and the second time domain include the same time domain. In some embodiments, the first time domain and the second time domain include different time domains. In some embodiments, the first sample data signal is also associated with a first rate, and at least one value extracted by the data consumer is associated with a second rate. In some embodiments, the first rate and the second rate include the same rate. In some embodiments, the first rate and the second rate include different rates. In some embodiments, the first data producer includes one of a timer, an orthogonal signal decoder, an analog-to-digital converter, and any serial interface.

[0070] In some embodiments, a device for motor control includes a processor and a memory. The memory includes instructions that, when executed by the processor, cause the processor to: generate a snapshot of values stored in a first memory buffer associated with a first data producer in response to completion of a sampling window and in response to a request from a data consumer, the values stored in the first memory buffer being associated with corresponding sample data signals, and the corresponding sample data signals being associated with a first time domain; store the snapshot of values in a data consumer memory; generate another snapshot of values stored in a second memory buffer associated with a second data producer in response to completion of the sampling window and in response to another request from the data consumer, the values stored in the second memory buffer being associated with other corresponding sample data signals, and the other corresponding sample data signals being associated with a second time domain; store the another snapshot of values in the data consumer memory; receive at least one of a motor position of a motor and a motor speed of the motor; and selectively control the motor based on at least one of the motor position of the motor and the motor speed of the motor.

[0071] The above discussion is intended to illustrate the principles and various embodiments of the present invention. Once the above disclosure is fully understood, many changes and modifications will become apparent to those skilled in the art. The following claims are intended to be interpreted as including all such changes and modifications.

[0072] The word "example" is used herein to mean used as an example, instance or illustration. Any aspect or design described herein as an "example" is not necessarily to be understood as preferred or advantageous over other aspects or designs. On the contrary, the use of the word "example" is intended to present concepts in a concrete way. As used in this application, the term "or" is intended to mean an inclusive "or" rather than an exclusive "or". In other words, unless otherwise specified or clear from the context, "X includes A or B" is intended to mean any naturally inclusive arrangement. In other words, if X includes A; X includes B; or X includes both A and B, then "X includes A or B" is satisfied in any of the foregoing cases. In addition, the articles "a" and "an" as used in this application and the appended claims should generally be understood to mean "one or more", unless otherwise specified or clear from the context, otherwise pointing to the singular form. In addition, unless described in the same way, the use of the term "embodiment" or "one embodiment" throughout the text is not intended to mean the same example or embodiment.

[0073] The systems, algorithms, methods, instructions, and the like described herein may be implemented in hardware, software, or any combination thereof. Hardware may include, for example, computers, intellectual property (IP) cores, application-specific integrated circuits (ASICs), programmable logic arrays, optical processors, programmable logic controllers, microcode, microcontrollers, servers, microprocessors, digital signal processors, or any other suitable circuitry. In the claims, the term "processor" should be understood to include any of the foregoing hardware, alone or in combination. The terms "signal" and "data" are used interchangeably.

[0074] As used herein, the term module can include a packaged functional hardware unit designed for use with other components, a set of instructions executable by a controller (e.g., a processor executing software or firmware), processing circuitry configured to perform a particular function, and a self-contained hardware or software component that interfaces with a larger system. For example, a module can include an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), an electrical circuit, a digital logic circuit, an analog circuit, a combination of discrete circuits and gates, and other types of hardware or combinations thereof. In other embodiments, a module can include a memory that stores instructions executable by a controller to implement the features of the module.

[0075] Furthermore, in one aspect, for example, the systems described herein can be implemented using a general-purpose computer or a general-purpose processor with a computer program that, when executed, implements any of the respective methods, algorithms, and / or instructions described herein. Additionally or alternatively, for example, a special-purpose computer / processor can be utilized that can include other hardware for implementing any of the methods, algorithms, or instructions described herein.

[0076] In addition, all or part of the embodiments of the present disclosure may take the form of a computer program product accessible from, for example, a computer-usable or computer-readable medium. A computer-usable or computer-readable medium may be any device that can, for example, tangibly contain, store, convey, or transmit a program for use by or in conjunction with any processor. The medium may be, for example, an electronic, magnetic, optical, electromagnetic, or semiconductor device. Other suitable media are also possible.

[0077] The above embodiments, implementations and aspects have been described to facilitate understanding of the present invention without limiting the present invention. Rather, the present invention is intended to cover various modifications and equivalent arrangements included within the scope of the appended claims, which scope is to be given the broadest interpretation to include all such modifications and equivalent structures permitted by law.

Claims

1. A method for motor control, the method comprising: capturing a first sample data signal at a first data producer, the first sample data signal being associated with a first time domain; storing, by the first data producer, a first value associated with the first sample data signal in a first element position of a first memory buffer, the first element position of the first memory buffer corresponding to a timestamp of the first sample data signal; generating, by the controller, a snapshot of the values stored in the first memory buffer in response to completion of a sampling window and in response to a request from a data consumer; storing, by the controller, a snapshot of the value in a data consumer memory; extracting, by the data consumer, at least one value from the snapshot of values in a second time domain; The at least one value from the snapshot of values is used by the data consumer to calculate at least one of a motor position of a motor and a motor speed of the motor.

2. The method according to claim 1, wherein The motor is associated with a steering system.

3. The method according to claim 2, wherein: The steering system includes an electric power steering system.

4. The method according to claim 1, wherein The first time domain and the second time domain comprise the same time domain.

5. The method according to claim 1, wherein The first time domain and the second time domain comprise different time domains.

6. The method according to claim 1, wherein The first sample data signal is also associated with a first rate, and the at least one value extracted by the data consumer is associated with a second rate.

7. The method according to claim 6, wherein: The first rate and the second rate comprise the same rate.

8. The method according to claim 6, wherein: The first rate and the second rate comprise different rates.

9. The method according to claim 1, wherein The first data producer includes one of a timer, an orthogonal signal decoder, an analog-to-digital converter, and any digital serial interface.

10. The method according to claim 1, further comprising: generating, by the controller, another snapshot of values stored in a second memory buffer associated with a second data producer in response to completion of the sampling window and in response to another request from the data consumer; as well as Another snapshot of the value is stored by the controller in the data consumer memory.

11. A system for motor control, the system comprising: A first data producer is configured to: capturing a first sample data signal, the first sample data signal being associated with a first time domain; and storing a first value associated with the first sample data signal in a first element position of a first memory buffer, the first element position of the first memory buffer corresponding to a timestamp of the first sample data signal; A controller configured to: generating a snapshot of the values stored in the first memory buffer in response to completion of a sampling window and in response to a request from a data consumer; and storing a snapshot of the value in a data consumer memory; as well as A data consumer, wherein the data consumer is configured to: extracting at least one value from the snapshot of values in a second time domain; and At least one of a motor position of a motor and a motor speed of the motor is calculated using the at least one value from the snapshot of values.

12. The system according to claim 11, wherein The motor is associated with a steering system.

13. The system according to claim 12, wherein: The steering system includes an electric power steering system.

14. The system according to claim 11, wherein: The first time domain and the second time domain comprise the same time domain.

15. The system according to claim 11, wherein The first time domain and the second time domain comprise different time domains.

16. The system according to claim 11, wherein The first sample data signal is also associated with a first rate, and the at least one value extracted by the data consumer is associated with a second rate.

17. The system according to claim 16, wherein: The first rate and the second rate comprise the same rate.

18. The system according to claim 16, wherein: The first rate and the second rate comprise different rates.

19. The system according to claim 11, wherein: The first data producer includes one of a timer, an orthogonal signal decoder, an analog-to-digital converter, and any serial interface.

20. A device for motor control, the device comprising: processor; as well as a memory comprising instructions that, when executed by the processor, cause the processor to: In response to completion of a sampling window and in response to a request from a data consumer, generating a snapshot of values stored in a first memory buffer associated with a first data producer, the values stored in the first memory buffer being associated with corresponding sample data signals, and the corresponding sample data signals being associated with a first time domain; storing a snapshot of the value in a data consumer memory; In response to completion of the sampling window and in response to another request from the data consumer, generating another snapshot of values stored in a second memory buffer associated with a second data producer, the values stored in the second memory buffer being associated with other corresponding sample data signals, and the other corresponding sample data signals being associated with a second time domain; storing another snapshot of the value in the data consumer memory; receiving at least one of a motor position of a motor and a motor speed of the motor; and The motor is selectively controlled based on at least one of a motor position of the motor and a motor speed of the motor.

Citation Information

Patent Citations

  • Motor drive circuit system

    CN110171470A

  • System for passively and actively monitoring and evaluating an electric power steering system

    CN110525511A