Difference between revisions of "HANtune/MATLAB Interface"
From OpenMBD
< HANtune
(→Set your model) |
(→Reading data from a running Simulink model) |
||
Line 13: | Line 13: | ||
modelPath = 'C:\Users\Michiel Klifman\Desktop'</nowiki> | modelPath = 'C:\Users\Michiel Klifman\Desktop'</nowiki> | ||
− | + | ||
<nowiki>#Add folders to MATLAB path | <nowiki>#Add folders to MATLAB path | ||
Line 21: | Line 21: | ||
engine.eval("addpath('" + modelPath + "')")</nowiki> | engine.eval("addpath('" + modelPath + "')")</nowiki> | ||
− | ===Creating a daq list=== | + | ====Creating a daq list==== |
+ | |||
+ | <nowiki>#Create a daqlist from signals in the model | ||
+ | result = engine.feval(2, 'createDaqList', modelName, 'signals') | ||
+ | daqItemNames = result[0] | ||
+ | daqList = result[1] | ||
+ | daqSize = len(daqList)</nowiki> | ||
+ | |||
+ | <nowiki>#Create a signal for each item in the daq list | ||
+ | signals = [] | ||
+ | removeAllSignals() | ||
+ | for name in daqItemNames: | ||
+ | signal = createSignal(name) | ||
+ | signals.append(signal) | ||
+ | updateLayout() | ||
+ | print 'DAQ list created with ' + str(daqSize) + ' items'</nowiki> | ||
==Reading data from a running Simulink model== | ==Reading data from a running Simulink model== |
Revision as of 18:57, 21 October 2019
HANtune can be interfaced with MATLAB® (and by extension Simulink®). We can do this by using the MATLAB engine and calling it from a script.
Note: You will need to have installed a version of MATLAB® with the Java MATLAB engine.
Contents
Connecting to the MATLAB Engine
Reading data from a running Simulink model
Set your model
#Change these to the name and location of your model modelName = 'MyModel' modelPath = 'C:\Users\Michiel Klifman\Desktop'
#Add folders to MATLAB path from java.lang import System scriptPath = System.getProperty("user.dir") + "\scripts\examples\MATLAB_Interface" engine.eval("addpath('" + scriptPath + "')") engine.eval("addpath('" + modelPath + "')")
Creating a daq list
#Create a daqlist from signals in the model result = engine.feval(2, 'createDaqList', modelName, 'signals') daqItemNames = result[0] daqList = result[1] daqSize = len(daqList)
#Create a signal for each item in the daq list signals = [] removeAllSignals() for name in daqItemNames: signal = createSignal(name) signals.append(signal) updateLayout() print 'DAQ list created with ' + str(daqSize) + ' items'