Difference between revisions of "HANtune/MATLAB Interface"

From OpenMBD
Jump to: navigation, search
(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>
  
====Adding folders to the MATLAB Search path====
+
 
  
 
  <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.

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'

Reading data from a running Simulink model