
Simulink Real-Time
Build, run, and test real-time applications
Simulink® Real-Time™ lets you create real-time applications from Simulink models and run them on Speedgoat® target computer hardware connected to your physical system. It is designed for real-time simulation and testing tasks, including rapid control prototyping (RCP), DSP and vision system prototyping, and hardware-in-the-loop (HIL) simulation.
With Simulink Real-Time you can extend your Simulink models with blocks from the Speedgoat I/O Blockset and automatically build real-time applications. Tests can be automated or run interactively on a Speedgoat target computer equipped with a real-time kernel, multicore CPUs, I/O and protocol interfaces, and FPGAs.
Simulink Real-Time and Speedgoat target computer hardware are designed to work together to create real-time systems for desktop, lab, and field environments. The software and hardware solution supports the latest versions of MATLAB® and Simulink.
Get Started
Learn the basics of Simulink Real-Time
Speedgoat Target Computers and I/O Hardware
Choose a Speedgoat target computer and I/O hardware
System Configuration
Development and target computer configuration, target computer boot method, confidence test
Model Preparation for Real-Time Execution
Driver and communication protocol blocks, techniques for creating custom blocks
Real-Time Application Creation and Execution
Real-time application building and running, control from development and target computers
Control and Instrumentation
Interactive signal and parameter instrumentation with Simulink Real-Time and MATLAB language, signal tracing and logging, and parameter tuning
Standalone Operation
Real-time applications and App Designer applications deployed with MATLAB
Performance Optimization
Execution optimization by using the execution profiler and concurrent execution
Troubleshooting in Simulink Real-Time
Troubleshoot problems that you encounter while using the Simulink Real-Time product
Real-Time Processing with Matlab
I have to build a MATLAB GUI that controls an instrument (Network Analyzer), gets it results in real-time and has to process some results without effecting the real-time regime of data collection. The processing includes building current preview image of the results and some manipulations like interpolation and fft.
The question is, how can I be sure that the processing will not effect the real-time budget of the instrument? Is there is a way to command Matlab not to wait for the results of processing if the instrument passes another piece of data in order to be able to collect all the data without omitting a part of it?
For example, if the Cycle of the arrival of data from the Network (NA) is T, the time of collection from the NA is Tc, and the time of Processing is Tp. How can I ensure that Matlab will be ready to collect the data every T time, no matter what is the Tp? Even if Tp<T-Tc, sometimes Matlab has its delays of processing, as it is not real-time program. What can be done to prevent the effect of such delays?
For addition, if Tp>T-Tc, how the processing can be commanded to be executed at the "background" without effecting the cycle of the collection?
Select a Web Site
Create and Run Real-Time Application from Simulink Model
This tutorial begins with a non-real-time Simulink® model of a damped oscillator, . To open the model, in the MATLAB Command Window, type:
To complete the tutorial, you must already know how to create, configure, and simulate such a model. As you go through the tutorial, you transform into a Simulink Real-Time™ model configured to build as a real-time application. You then build, download, and execute the real-time application on your target computer.
The final model is named . To open the model, in the MATLAB Command Window, type:
Transform Simulink Model to Real-Time Application
To run a Simulink model as a real-time application under Simulink Real-Time, add and configure a real-time File Log block and set configuration parameters for code generation and target execution.
Add SimulinkReal-Time File Log Block
Simulink Real-Time supports a real-time File Log block. This tutorial uses the File Log block, which logs signal data for display in the Simulation Data Inspector after the simulation run.
In the MATLAB Command Window, type . MATLAB® loads the oscillator model and displays the Simulink block diagram.
In Simulink Editor, from the Apps tab, click Simulink Real-Time.
From the Real-Time tab Prepare section, click Library Browser.
In the Simulink left pane, browse to and double-click the node Simulink Real-Time.
From the list of I/O block categories, click node Logging.
Click and drag the File Log block to the Simulink block diagram. Simulink adds a new real-time File Log block to the model.
Connect the Mux output to the File Log block input.
On the Simulation tab, from the Save button, click Save As. Enter a file name. For example, enter , and then click OK. To open the unconfigured model , in the MATLAB Command Window, type:
open_system(fullfile(matlabroot, 'toolbox', 'slrealtime', ...'examples', 'slrt_ex_osc_ucf'))
Set File Log Block Parameters
File Log block parameters define the decimation for logged signals. After the simulation run, the signals that you log by using this block are available in the Simulation Data Inspector. For this tutorial, configure a File Log block.
In the MATLAB Command Window, type . MATLAB loads the oscillator model and displays the Simulink block diagram.
Double-click the File Log block.
In the Decimation text box, type . This value means that data is collected at each sample interval.
Click OK, and then from the Simulation tab, click Save.
Set Configuration Parameters
The example model, , is a non-real-time model of a damped oscillator. You enter the simulation and real-time run parameters in the Configuration Parameters dialog box. These parameters provide information to Simulink Coder™ on how to build a real-time application from the Simulink model.
After you open a Simulink model and start the target computer, you can enter the simulation parameters.
In the MATLAB Command Window, type .
In Simulink Editor, from the Apps tab, click Simulink Real-Time.
From the Real-Time tab, click Hardware Settings.
In the Configuration Parameters dialog box, click the Solver node.
In the Solver selection section, from the Type list, select .
From the Solver list, select a solver. For example, select the general-purpose solver .
Under Solver details, in the Fixed-step size (fundamental sample time) box, enter the sample time for the real-time application. For example, enter seconds ( microseconds). After creating the real-time application, you can change this value.
If you find that a value overloads the CPU on the target computer, try a larger Fixed-step size value, such as seconds.
The sample times of the model blocks can be multiples only of Fixed-step size. If you enter in Fixed-step size, the fundamental sample time is calculated from the sample times of the model blocks.
In the Configuration Parameters dialog box, click the Code Generation node.
To build a real-time application, in the Target selection section, click Browse at the System target file list. Click , and then click OK.
Click OK.
In the Simulation tab, from the button, click .
Enter a file name. For example, enter .
Start Target Computer and Display Status Monitor
Starting the target computer boots the RTOS. The target computer waits for the Simulink Real-Time software to download and start a real-time application from the development computer or to start a real-time application that was previously downloaded.
After you have configured the Simulink Real-Time product by using the Simulink Real-Time Explorer, you can start the target computer and connect the development computer to the target computer. Before building the real-time application, you start the target computer. After the build process is complete, you download the real-time application to the target computer.
The status monitor application on the target computer displays status of the real-time application and other target computer status information. The target computer display supports multiple sessions. You can choose to display the status monitor (default, session 1) or display the target computer command line interface (session 2). To display the target computer status monitor:
Start the target computer.
The target computer displays session 1 (default) and the target computer status monitor.
To view the status monitor from the development computer, you can use PuTTY to open an SSH client and start the status monitor application on the target computer.
For more information, see Target Computer Status Monitor.
Build and Download Real-Time Application by Using Run on Target
The example model is a real-time model of a damped oscillator, . To open the model, in the MATLAB Command Window, type:
To generate C code, compile, link, and download the real-time application to the target computer, use the Simulink Real-Time build process available from the Simulink Editor Real-Time tab.
After you enter changes in the Configuration Parameters dialog box, you can build the real-time application. For information about real-time application options, see Simulink Real-Time Options Pane.
In the MATLAB Command Window, type .
MATLAB loads the oscillator model and displays the Simulink block diagram.
In the Simulink Editor, from the targets list on the Real-Time tab, select the target computer on which to run the real-time application.
Click Run on Target.
On the development computer, in the Diagnostics Viewer, you can view the build status. On the Debug tab, click Diagnostics. If the software detects an error during build and download, see Troubleshooting in Simulink Real-Time.
If you have a monitor connected to your target computer, the status monitor screen displays information about the application name. For more information, see Target Computer Status Monitor. You can also monitor the event status of a object by installing a listener for object events.
Execute Real-Time Application in Simulink External Mode by Using Step-by-Step Commands
Control of the real-time application with Simulink is limited to connecting a Simulink model to a real-time application through external mode, and then starting the real-time application. Using Simulink external mode is one method to tune parameters.
The model connects to the target computer that you have selected in the Simulink Editor on the Real-Time tab.
Note
To avoid target computer communication issues, do not use Simulink external mode while Simulink Real-Time Explorer is running. Use only one interface.
After you build and download a real-time application to the target computer, you can run the real-time application. This procedure uses the Simulink model . To open the model, in the MATLAB Command Window, type:
For more information about building applications, see Build and Download Real-Time Application by Using Run on Target.
You must already have specified the required target computer environment. Specifically, in the Simulink Editor, from the target computers list on the Real-Time tab, you must select the target computer to which you want to connect.
In the Simulink Editor, connect to the target computer. In the Real-Time tab, click Toggle target computer connection
. The connection status toggles to the connected state
.
From the Run on Target pull down, start the Step by Step Commands by selecting Build Application.
After the model build completes, from the Run on Target pull down, select Deploy to Target.
After the real-time application deploys to the target, from the Run on Target pull down, select Connect Model.
After you connect the model to the real-time application, the status bar displays External to indicate that the model is ready for external mode simulation. In this mode, the model serves as the interface to the application. This connection permits tuning parameters in the real-time application without rebuilding the application. This connection also permits observing signal activity in the real-time application by using, for example, Simulink Scope blocks in the model.
From the Run on Target pull down, select Start Application.
The current Simulink model parameters are downloaded from the development computer to the real-time application. The real-time application begins running and the Simulink Scope block displays signal data.
To stop the execution, from the Run on Target pull down, select Stop Application.
When the real-time application is deployed to the target computer, the step-by-step commands provide additional workflow options.
Commands | Step-by-Step Operations |
---|---|
In the Step by Step Commands, after you deploy the real-time application to the target computer, you can connect the model to the real-time application. The Connect Model operation enables you to use the model as an interface to the real-time application for external mode simulation. | |
In the Step by Step Commands, after you connect the model to the real-time application on the target computer, you can disconnect the model from the real-time application. The Disconnect Model operation enables you to keep the real-time simulation running on the target computer and reconnect to the model at a later time. | |
In the Step by Step Commands, after you deploy the real-time application to the target computer and connect the model to the real-time application, you can start the real-time application. The Start Application operation enables you to start the real-time application for external mode simulation. | |
When you are connected in external mode, to restart the real-time application from time , click Restart Application. This button restarts the application and maintains the external mode connection. |
See Also
| Scope | Mux |
Related Topics
Select a Web Site
Real-Time Simulation and Testing
This workflow starts with real-time simulation and testing then leads from model creation through regression and stress testing.
Create Simulink or Stateflow Model
In the Simulink® Editor, on the Simulation tab, from New, select Model.
From the Simulink start page, select a model template or click Blank Model.
Create block diagrams in Simulink by dragging blocks to your model. If possible, set model and block parameters to use a fixed-step solver and specify a sample time compatible with the real-time requirements of your model.
Simulate Model as Non-Real-Time Application
Simulink uses a computed time vector to step the model. After computing the outputs for a given time value, Simulink immediately repeats the computation for the next time value until it reaches the stop time.
Because the computed time vector is not connected to a physical clock, the outputs are calculated as fast as your computer can run. The elapsed time of the simulation can differ significantly from the elapsed time of the real system.
You can log simulation results for later comparison.
Configure Development and Target Computers
Configure the communication method between the development and target computers.
Configure the development and target computers by using:
Prepare Model for Real-Time Execution
Set the model Configuration Parameters to values compatible with real-time execution:
On the Apps tab, click Simulink Real-Time. This selection sets the System target file model parameter to and sets the Type model parameter to .
On the Real-Time tab, click Hardware Settings. In > > , select a step size that is compatible with the real-time requirements of your model.
On the Real-Time tab, click Hardware Settings. Select options for > > . These settings set the initial values for real-time application options. If needed, you can change these options for the real-time application after building the application.
Add Simulink Real-Time™ I/O blocks representing your I/O boards to the model.
To visualize the simulation results, mark signals in the model for data logging with the Simulation Data Inspector. See View Data in the Simulation Data Inspector.
Connect and Restart Target Computer
Connect the development computer to the Speedgoat target machine. Connect the IO Modules in the target computer to the physical hardware where applicable.
Restart the target computer with the Simulink Real-Time real-time RTOS by using:
Build and Download Real-Time Application
Visualize Signals
To view signal data while the real-time application runs, mark signals for logging with the Simulation Data Inspector. Use the marked signals to acquire and display signal data from the real-time application. You can group hierarchical signals for streaming to the Simulation Data Inspector by using Simulink Real-Time Explorer.
To log signal data on the target computer and view the data after the real-time application runs, insert File Log blocks and connect these to the signals for logging. After the run, the data is loaded into Simulation Data Inspector for viewing.
To view signal data in a MATLAB® instrument panel application, create an App Designer instrument panel application and connect the application to the real-time application by using a object. You insert graphical instruments into the instrument panels for data display.
Visualize signals by using:
Tune Parameters
Tune observable parameters such as time delays, input and output amplitudes, and input and output frequencies.
Note
Simulink Real-Time does not support parameters of multiword data types.
Tune parameters by using:
Prepare Regression and Stress Tests
Write MATLAB scripts that perform parameter sweep and extreme-value testing in a repeatable manner, accumulating results as known good data.
Related Examples
More About
Realtime matlab
Simulink Real-Time™ lets you create real-time applications from Simulink® models and run them on Speedgoat target computer hardware connected to your physical system. It is designed for real-time simulation and testing tasks, including rapid control prototyping (RCP), DSP and vision system prototyping, and hardware-in-the-loop (HIL) simulation.
With Simulink Real-Time you can extend your Simulink models with Speedgoat I/O driver blocks and automatically build real-time applications. Tests can be automated or run interactively on a Speedgoat target computer equipped with a real-time kernel, multicore CPUs, I/O and protocol interfaces, and FPGAs.
Simulink Real-Time and Speedgoat target computer hardware are designed to work together to create real-time systems for desktop, lab, and field environments. The software and hardware solution supports the latest versions of MATLAB® and Simulink.
Build Real-Time Applications
Move from desktop simulation to real-time testing with one-click, without leaving MATLAB and Simulink. Configure the model and build, run, and interact with the real-time application.
Watch Video (1:28)
Speedgoat Target Computers
Speedgoat real-time target computers running QNX® Neutrino® RTOS are made for Simulink and offer an integrated platform for real-time simulation and testing.
I/O Connectivity and Communication
Design your controls, vision, DSP, or plant model in Simulink. Drag and drop I/O driver blocks in your model. Supported communication interfaces include CAN, Modbus, ARINC, SPI, and more.
Create and Deploy Desktop Apps
Design apps with MATLAB App Designer to tune parameters and visualize signals from real-time applications. Deploy your apps with MATLAB Compiler™.
Create, Manage, and Execute Automated Tests
Author complex test scenarios and execute automated tests with Simulink Test™, or use ASAM XIL standard to connect to third-party frameworks.
“With Simulink, Simscape, and HDL Coder, we can develop plant models and deploy them directly to an FPGA for HIL tests; it’s a no-nonsense, no-compromise way to simulate large-scale power electronics systems.”
Henry Brengel, Leonardo DRS
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
Select web siteYou can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Contact your local office
Simulink Desktop Real-Time™ provides a real-time kernel for executing Simulink® models on a laptop or desktop running Windows® or macOS®. It includes library blocks that connect to certain I/O devices. You can create a real-time system in Simulink with your PC or Mac computer and connect it to physical devices.
Refer to Simulink Real-Time™ for high performance real-time simulation and testing with Speedgoat™ target computer hardware.
Monitor Signals and Acquire Data
Monitor, capture, and acquire signal data in real-time
Monitoring and capturing signals
Using Simulink Desktop Real-Time with Simulink, you can capture signals from the real-time model and display them with standard Simulink Scope blocks. You can view signals within the model using graphical displays, such as gauges, scopes, and lamps.
Log signals to workspace and file
Configuring stream input and stream output block parameters for a model.
Acquiring and logging data
You can store run-time data in the MATLAB workspace using Simulink. In external mode, you can capture one or more data bursts and save the data to a MATLAB file, which can be accessed in MATLAB for additional analysis and visualization.
Log signals to workspace and file
Set scope parameters to log to workspace.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
Select web siteYou can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Contact your local office
You will also be interested:
- Rewasd ps4
- Colon candida cleanse
- Blue steel wiki
- Lightroom painter
- Nhk anime list
- Henderson police records
- Hp stream memory
- Longshot billiards
- Sperm scack
- Minecraft golden steve
- Acrylic lash case
Select a Web Site
Real-Time Audio in MATLAB
Audio Toolbox™ is optimized for real-time audio processing. , , , , and are designed for streaming multichannel audio, and they provide necessary parameters so that you can trade off between throughput and latency.
For information on real-time processing and tips on how to optimize your algorithm, see Audio I/O: Buffering, Latency, and Throughput.
This tutorial describes how you can implement audio stream processing in MATLAB®. It outlines the workflow for creating a development test bench and provides examples for each stage of the workflow.
Create a Development Test Bench
This tutorial creates a development test bench in four steps:
Build objects to input and output audio from your test bench.
Create an audio stream loop that processes your audio frame-by-frame.
Add a scope to visualize both the input and output of your audio stream loop.
Add a processing algorithm for your audio stream loop.
This tutorial also discusses tools for visualizing and tuning your processing algorithm in real time.
For an overview of the processing loop, consider the completed test bench below. You can recreate this test bench by walking step-by-step through this tutorial.
Completed Test Bench Code
Click here to open the file.
1. Create Input/Output System objects
Your audio stream loop can read from a device or a file, and it can write to a device or a file. In this example, you build an audio stream loop that reads audio frame-by-frame from a file and writes audio frame-by-frame to a device. See Quick Start Examples for alternative input/output configurations.
Create a System object™ and specify a file. To reduce latency, set the property of the System object to a small frame size.
Next, create an System object and specify its sample rate as the sample rate of the file reader.
For more information on how to use System objects, see What Are System Objects?
View Example Code
2. Create Audio Stream Loop
An audio stream loop processes audio iteratively. It does so by:
Reading a frame of an audio signal
Processing that frame of audio signal
Writing that frame of audio signal to a device or file
Moving to the next frame
In this tutorial, the input to the audio stream loop is read from a file. The output is written to a device.
To read an audio file frame-by-frame, call your within your audio stream loop, and provide no arguments. To write an audio signal frame-by-frame, call your within your audio stream loop with an audio signal as an argument.
View Example Code
All System objects have a function. As a best practice, release your System objects after use, especially if those System objects are communicating with hardware devices such as sound cards.
3. Add Scopes
There are several scopes available. Two common scopes are the and the . This tutorial uses to visualize the audio signal.
The System object displays an audio signal in the time domain. Create the System object. To aid visualization, specify values for the , , and properties. To visualize an audio signal frame-by-frame, call the System object within your audio stream loop with an audio signal as an argument.
View Example Code
4. Develop Processing Algorithm
In most applications, you want to process your audio signal within your audio stream loop. The processing stage can be:
A block of MATLAB code within your audio stream loop
A separate function called within your audio stream loop
A System object called within your audio stream loop
In this tutorial, you call the to process the signal within your audio stream loop.
Create a System object, and specify the property as the sample rate of your file reader. To adjust the reverberation effect, specify values for the and properties. To apply the reverberation effect to an audio signal frame-by-frame, call the within your audio stream loop with an audio signal as an argument.
View Example Code
Add Tunability
The Audio Toolbox user has several options to add real-time tunability to a processing algorithm. To add tunability to your audio stream loop, you can use:
The Audio Test Bench – UI-based exercises for classes and most Audio Toolbox System objects.
Built-in functions – Functions in Audio Toolbox for visualizing key aspects of your processing algorithms.
A custom-built user interface – See Real-Time Parameter Tuning for a tutorial.
A MIDI Controller – Many Audio Toolbox System objects include functions that support MIDI controls. You can use the function in the System object to synchronize your System object properties to MIDI controls. To use MIDI controls with System objects that do not have a function, see MIDI Control Surface Interface.
The User Datagram Protocol (UDP) – You can use UDP within MATLAB for connectionless transmission. You can also use UDP to receive or transmit datagrams between environments. Possible applications include using MATLAB tools to tune your audio processing algorithm while playing and visualizing your audio in a third-party environment. For an example application of UDP communication, see Communicate Between a DAW and MATLAB Using UDP.
Quick Start Examples
Audio Stream from Device to Device
This example uses the and System objects to perform real-time I/O stream processing. The processing is limited to adding gain. Click here to open the file.
Audio Stream from Device to File
This example uses the and System objects to perform real-time I/O stream processing. The processing is limited to adding gain. Click here to open the file.
Audio Stream from File to Device
This example uses the and System objects to perform real-time I/O stream processing. The processing is limited to adding gain. Click here to open the file.