Написание условия остановки в Anylogic

Я новичок в anylogic, и я хочу написать условие остановки для моделирования, а затем сохранить окончательные значения: у меня есть некоторые запасы и потоки, и я хочу, чтобы, когда один из моих запасов достигнет определенного значения, симуляция остановится, а затем сохраняет все значения;

  1. где мне написать условие?
  2. как в этом случае следует остановить симуляцию?
  3. как я могу сохранить значения?

Спасибо :)


person Community    schedule 07.06.2016    source источник


Ответы (1)


  1. Возможны несколько мест. Самым простым, вероятно, является повторяющееся событие в Main, которое проверяет условие в каждую подходящую единицу времени.
  2. попробуй это:

if (myStock > myMaxValue) { getEngine().stop(); // you can also use .finish(), see help to decide which is better for you }

  1. опять же несколько вариантов. Вероятно, проще всего сохранить их во встроенной базе данных (которую вы можете попросить записать во внешний Excel в конце модели). Предлагаем вам прочитать об этом в справке, там довольно легко настроить и хранить данные.

ваше здоровье

person Benjamin    schedule 08.06.2016
comment
Tnx за вашу помощь :) - person ; 08.06.2016
comment
Я хочу написать это if (root.ag1 ‹0.5) getEngine (). Pause (); Я провожу эксперимент и записываю его в части после моделирования, но ничего не происходит! - person ; 08.06.2016
comment
вам нужно написать это где-нибудь в модели, в идеале в Event, которое живет на Main (согласно моему ответу). Ознакомьтесь со справкой, чтобы понять, для чего нужны эксперименты и чем они отличаются от реальной модели :-) - person Benjamin; 08.06.2016
comment
Спасибо, я получил свой ответ и проблема решена. :) - person ; 09.06.2016
comment
Я бы не рекомендовал создавать повторяющееся событие для условия остановки. Вы можете записать это условие при выходе или входе любого агента в любой блок вашей симуляции, что даст вам контроль в реальном времени над временем выполнения симуляции. - person cemal; 31.10.2017
comment
Я нашел добавление строки getEngine (). Pause (); в случае | код действия (согласно предложению Бенджамина выше) сразу после инициализации набора акций был отличным способом получить «чистый» экран, то есть для слайда презентации. - person Big Old Dave; 22.01.2018