bookevg
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Требуется совет. Есть модель, созданная в Simulink, которая создана по технологии SubSystems. В самой модели используется: 1. Элементы SimPowerSystems. 2. Математическая модель синхронного электродвигателя не из SimPowerSystems. 3. Система управления. Модель развивалась приблизительно с 2008 года по 2012, за это время было замечено развитие самого Simulink: 1. В каких-то версиях Simulink при работе в режиме Accelerator использовались все ядра процессора. При этом скорость моделирования в режиме Accelerator было приблизительна равно скорости моделирования в режиме Rapid Accelerator, в котором всегда использовалось только одно ядро. 2. Современные версии Simulink (как минимум с R2014a, версии 2013 не исследовались, а по более поздним все забыто) используют только одно ядро. При этом скорость моделирования в режиме Rapid Accelerator приблизительно в два раза быстрее, чем в режиме Accelerator. Возникла необходимость усложнения модели, что очень сложно сделать в текущей модели, если ее не перерабатывать. Перед этим изучил документацию на предмет увеличения скорости вычислений. Пришел к выводу, что необходимо разделить время расчета системы управления и время расчета части модели, относящейся к элементам SimPowerSystems, и к части модели, выполняющей математический расчет синхронного электродвигателя. Для этого необходимо переработать модель под технологию model reference. Но возникли ряд нюансов, на которые ищу ответ. В ходе исследования модели необходимо выводить на построение различные сигналы, при этом не внося в блоки модели существенных изменений. В старой модели это решалось за счет использования шины, на которую выводилось много сигналов, особенно из системы управления. Но чтобы это сделать в model reference необходимо создать класс bus object, который удобно делать в dictionary. Но тут возникают сложности. Для примера рассмотрим модель системы управления, в которой может повторяться несколько одинаковых по реализации блоков (например, регуляторы), которые необходимо описать один раз. Здесь можно пойти несколькими путями: 1. Описать одинаковые блоки в library, а все внутренние состояния блоков вывести на выход, а затем в модели, где они используются скомпоновать их в bus object, затем еще один bus object и т.д., а затем на выход модели. Это возможно благодаря тому, что модель видит dictionary. Главный минус: это компоновка сигналов. 2. Описать одинаковые блоки в library, но придется выход внутренних состояний блока описывать как bus object, при этом к library невозможно подключить dictionary, значит модель, где будет использоваться блоки из library должна быть подключена к dictionary, из которой необходимый bus object в итоге будет получен. Главный минус: library ничего не знает о bus object, т.е. нет видимости, но library позволяет назначать неизвестные имена bus object. 3. Описать блок в виде модели, к которой будет подключен dictionary, таким образом получаем видимость bus object. Затем модель можно включить в library, чтобы можно было использовать маскирование. При помощи скрипта все настройки моделей (если получиться библиотечный элемент model настроить) будут такие как у модели системы управления. Но все равно есть вопрос: как поведет себя модель системы управления с точки зрения точности моделирования, если она будет состоять из многих моделей? | Всего записей: 91 | Зарегистр. 23-08-2006 | Отправлено: 11:43 09-03-2015 | Исправлено: bookevg, 11:50 09-03-2015 |
|