- Index
- » Users
- » BigMautone
- » Profile
Posts
Posts
I'm trying to simulate a system made by me. I modeled a swarm of drones and the system made in openmodelica have to simulate them flying and avoiding obstacles or intruders into the flyzone. Now, i want to summarize results of the system simulation with different parameters (e.g. number of drones, number of obstacoles, ...) and i made a python script for doing it. The problem is that all this parameters is stored in a record class, named K, and the parameters don't want to change. this is the piece of script where i change the parameters:
Code:
def startSimulation(n, intr, miss, statObs, fault, flyZone):
#Overwrite parameters
with open("newValues.txt", 'wt') as f:
f.write("*.const.N="+str(n)+"\n")
f.write("*.const.nIntr="+str(intr)+"\n")
f.write("*.const.nRocket="+str(miss)+"\n")
f.write("*.const.nStatObs="+str(statObs)+"\n")
for i in range(len(fault)):
for j in range(len(fault[i])):
f.write("fault.transMatrix["+str(i+1)+","+str(j+1)+"]="+str(fault[i][j])+"\n")
for i in range(3):
f.write("const.flyZone["+str(i+1)+"]="+str(flyZone)+"\n")
f.flush()
os.fsync(f)
os.system("./System -overrideFile=newValues.txt >> LogOverride.txt")
for more context, this is the github repository of this project: https://github.com/BigMautone/Drones. The python file is testing.py, the system file is system.mo and the record class is called constant.mo
EDIT 1:
If i check the System_init.xml file, i can see that lots of parameter of record class K have the flag "isValueChangeble" equals to false. How can i change it?
Problem solved, find a solution here:
https://stackoverflow.com/questions/721 … 0#72140240
i'm developing a system in openmodelica which design the behaviour of a swarm of drone in various simulation. Now, i want to get the simulation result with OMPython, because i will use matplotlib to make charts of the various KPI. If i want to get values, the openmodelica scripting function requires:
val(String valueName, Real timePoint, String file);
And i want to take the value at the end of the simulation. The problem is that the simulation stop time is not constant! So, is there a function to retrieve the stop time of the simulation?
UPDATE:
I managed to retrieve this information in python using the "simulate" function. But i want to use BuildModel function, because with it i can change variables in the system and simulate again without any problem. any suggestion?
- Index
- » Users
- » BigMautone
- » Profile