I am running a simulink model in external simulation mode and am having the following problem: When I stop the simulation and get the data from the scope, it never saves more than the last 5,000 data points. I have tried unchecking "Limit data points to last:" checkbox, but that doesn't help. I also tried increasing that number to 10,000 but there was no difference in the number of points I was able to save.
I found that if I create a new model and set it to normal simulation mode, then I can save as many data points as I want. Can anyone explain why I might have this issue in external simulation but not normal simulation?
In external mode, data logging is effected by the Duration setting on the External Signal and Triggering panel of the External Mode Control Panel. Go to that panel and press the Help button for a description of Duration and how to change it
Related
i am trying to transport a batch of 2 boxes form a conveyor to anotherone with the help of an AGV.
Without the batch block its workling flawless, but the agv can only tranport a single box by time, thats why the batch block come into play.
The AGV picks up the batch of two boxes and when it wants to unload them on the next conveyor AnyLogic displays the following error message.
Error Message
Console
And the two boxes are not wider then the conveyor.
Boxes on conveyor
spreadsheet
The problem was located in the batch blog.
Because I set the dimentisons in the agent, I did not think about changing them but when not clicking at the checkbox change dimensions and actually set them to the parameters to the real ones the dimensions will be set to 1 meter, in height, width and lengh independent from the dimensions of the agent.
I discovered this as I let output the with of the agent on the console, when it was moved to the AGV.
Configuration Batch Blog
I am actually developping a small script for making an automatic postprocessing of the output data of my simulation using Paraview. I want to select a specific point/cell and then make a plot over time. Since I want the point to be an input given to my script (coordinates of the point), I have been trying using Probe Location.
The problem that I have is that the script finds my point but when applying the Plot Over Time filter, no point/cell is selected. In fact, when doing it "by hand", after finding my point/cell, I have to click in the spreadsheet on the output of the Probe Location.
I am pretty sure there has to be an easy way to do that, but I have not found it yet...
I found a way to do it.
After selecting my point/cell using a Probe Location filter, when using the standard filter Plot Over Time, the argument selection=None should be replaced by selection = SelectionPoints(query='id==0'), so that the selected point/cell is the output of the filter probe location (with id=0)
Is there a command to maximize or manipulate in any way the size and placement of a plot window in Dymola?
After creating a plot using createPlot(), I would like to maximize that window within its allowed area of the screen.
No resource, either online or printed, has indicated how to do this, and none has said it couldn't be done. I am hoping someone can point me to a source that tells me how, or tells me to stop trying.
Here is the entirety of my test script:
simulateModel("TIL_AddOnTraining.Example07a", stopTime=300, method="dassl", tolerance=1e-005, resultFile="Example07a");
createPlot(
id=0,
position={0, 0, 857, 705},
x="valve.summary.dp",
y={"valve.summary.m_flow_A"},
grid=true,
colors={{255,0,0}},
thicknesses={0.7},
autoscale = true
);
[Here is where I would like the command to maximize window called "Plot [0*]".]
Thanks in advance.
Not an answer to the feasibility of doing this in Dymola, but here's a way to create and fine tune plot windows for Modelica using Mathematica and SystemModeler.
Needs["WSMLink`"]
sim=WSMSimulate["HelloWorld"];
plot=WSMPlot[sim,{"x","der(x)"},PlotLabel->"Very Interesting Plot\[Dash]Full Screen"];
CreateDocument[plot,WindowSize->Full]
The setting WindowSize can be changed to different options to select a fraction of the window, full screen, pixel size, and so on.
My function calls code from other functions I did not write those but I know what they do. One of them is .p Matlab file with obfuscated content.
I am doing batch processing of a number of files. I want to write the figures directly to file without display. So I can go through them separately.
Any ideas on how to achieve this.
Thanks!
Script to save matlab figures to a specified directory
The above link works but I still want to avoid displaying the figures at all. Directly print to file. But the work around can simply close all open figures after that loop.
In your script, as soon as you create the figure, set its visibility to off.
For example:
figure(28732);
set(28732,'visible','off'); %Now the figure is not shown
You can now work with the figure, plot, save etc, without the visual clutter or system overhead of displaying it.
If you want ALL of your figures to start without visibility, you can set the default property, as follows:
set(0,'DefaultFigureVisible','off').
This will cause all generated figures to be generated without visibility. (Note, this will be very confusing is you forget that this property is set.)
You should still close the figure as soon as possible in the script, as a part of good memory management.
So I'm working on some simple neural network problems for a class I'm taking, and I've mostly done all of the work.
However, I'd like to be able to press run and have all of the relevant figures and graphs pop out so I can easily show my work.
To do this I've been drawing setting the names of figures that I plot in using the
figure('Name', 'NameGoesHere', 'NumberTitle', 'off')`
variant of the figure function.
The thing is, one of the things that I have to show are performance graphs for the different networks I made, and using plotperform(tr) sets the window name to Performace (plotperform) even if I try setting the figure name to something else. Any help?
Here's a picture showing what I mean:
Oh, and, being really new to Matlab, correct me if I'm wrong, but since performance is defined as mean absolute error, the lower it is, the better right? So is there a way to set is so plotperform actually selects the lowest point of the graph as the best instead of the first one?
Another thing I'd like to be able to do is have the training information nntraintool open in a new window every time I call the train(netA, P, T) function. Right now, every time it's called it just overwrites the previous info in the nntraintool window. Is it even possible to do this?
This is the window I'm talking about: