F # – Design system architecture for real-time acquisition and “control”

Brief description of the requirements

(There are many good answers here, thank you all, if I get this flight, I will update it).

p>

The detector runs along the orbit and measures several different physical parameters (determinism) in real time as a function of the curve distance. The user can click the button to “mark” the waypoint during this process, and then use the GUI to input each waypoint. Detailed information of each waypoint (in manual time, but data collection continues).

After this, the system performs a series of calculations/filters/modifications on the acquired data, and considers each waypoint at the same time. Input constraints. The output of the process is a series of corrections, which are also a function of curve distance.

The third part of the process involves moving along the orbit again, but this time the correction is written to the physical system of the correction orbit (Still a function of curve distance).

My current thoughts on your input/comments/warnings

What I want to determine is whether I can use PC FPGA to achieve this goal The FPGA will perform “data acquisition”, I will use C# on the PC to read data from the buffer. The waypoint information can be input through the WPF/Winforms application and stored in the database/flat file/any pending “processing” Medium.

For processing, I will use F#.

FPGA will be used to “write” information to the physical machine.

I can currently foresee one The question is whether the processing algorithm requires a sampling frequency, which makes the amount of buffered data too large. This means offloading some processing to the FPGA-at least the bits that do not require user input. Unfortunately, the only preprocessing algorithm is Kalman Filter, it is difficult to implement with FPGA using the method I searched on Google.

I appreciate any feedback you provide.

Update (add additional information in time)< /p>

At the entrance of the Kalman filter, we look at it every 1ms. But on the other side of the Kalman filter, we will sample every 1 meter, and the speed we are talking about is about 2 seconds .

So I think the more accurate question is:

>Implementing Kalman filter on FPGA – seems that it’s possible, but I can’t understand whether these two topics can solve it. The reason.
>I am also not sure if Kalman’s FPGA implementation can loop every 1ms-although I think it should be no problem.
>If I understand correctly, then the FPGA has no memory load. For the process In the third part, I will send (approximately) a 4 x 400 array of doubles as a lookup table. Is this feasible?
>In addition, swapping between two processes (reading/writing data) means reprogramming the FPGA every time, or can it be instructed to switch between the two? (Maybe you can only run in parallel and ignore one of them).
> Another option I have seen using Avalda FPGA Developer to compile F# to VHDL, I think I will try it soon.

As you move along the track, I must assume that the sampling frequency does not exceed 10 kHz. You can easily offload the data to the PC at that rate, even It is 12 Mb USB (full speed).

For strict processing of mathematical data, Matlab is the way to go. But since I have not heard of F#, I cannot comment.

< p>4 x 400 doubles are no problem. Even low-end FPGAs have 100 kb of memory.

You can switch between reading and writing without changing the image. This has always been Done in FPGA.

A brief description of the requirements

(There are many good answers here, thank you everyone, if I get This flight, I will update).

The probe moves along the orbit and measures several different physical parameters (determinism) in real time as a function of the curve distance. The user can click the button to ” Mark” the waypoints, and then use the GUI to enter the detailed information of each waypoint (in manual time, but data collection continues).

After that, the system performs a series of calculations/filters on the acquired data /Modification, while considering the constraints entered for each waypoint. The output of the process is a series of corrections, which are also a function of the curve distance.

The third part of the process involves moving along the orbit again, but this Write the correction into the physical system of the correction track (still a function of curve distance).

My current thoughts on your input/comments/warnings

What I want to be sure is Can I use PC FPGA to achieve this goal? FPGA will do “data acquisition”, I will use C# on the PC to read data from the buffer. Waypoint information can be entered through the WPF/Winforms application and stored in the database/ Flat file / any pending “processing”.

For processing, I will use F#.

FPGA will be used to “write” information to the physical machine.

>

One question I can foresee at the moment is whether the processing algorithm requires a sampling frequency, which makes the amount of buffered data too large. This means offloading some processing to the FPGA-at least the bits that do not require user input. Unfortunately Yes, the only preprocessing algorithm is the Kalman filter, which is difficult to implement with FPGA using the method I searched on Google.

I thank you very much for your mention Any feedback provided.

Update (add additional information in time)

At the entrance of the Kalman filter, we look at it every 1ms. But in the Kalman filter On the other side, we will sample every 1 meter, and the speed we are discussing is about 2 seconds.

So I think the more accurate question is:

>In FPGA The implementation of Kalman filter – seems that it’s possible, but I can’t understand whether these two topics can solve its possible reasons.
>I am also not sure whether Kalman’s FPGA implementation can loop every 1ms – even though I think it’s There should be no problem.
>If I understand correctly, then the FPGA has no memory load. For the third part of the process, I will send (approximately) a 4 x 400 doubles array as a lookup table. Is this feasible?
>In addition, swapping between two processes (reading/writing data) means reprogramming the FPGA every time, or can it be instructed to switch between the two? (Maybe you can only run in parallel and ignore one of them).
> Another option I have seen using Avalda FPGA Developer to compile F# to VHDL, I think I will try it soon.

Since you are moving along the track, I have to assume that the sampling frequency does not exceed 10 kHz. You can easily offload data to a PC at that rate, or even 12 Mb USB (full speed).

< /p>

For strict processing of mathematical data, Matlab is the way to go. But since I have not heard of F#, I cannot comment.

4 x 400 doubles are fine. Even if The low-end FPGA also has 100 kb of memory.

You can switch between reading and writing without changing the image. This has always been done in the FPGA.

p>

Leave a Comment

Your email address will not be published.