Задайте шаг расчета

Определите шаги расчета

Simulink® позволяет вам задать шаг расчета блока непосредственно как числовое значение или символически путем определения вектора времени расчета. В случае дискретного шага расчета вектор является [Ts, To] где Ts - период дискретизации и To - начальное смещение времени. Например, рассмотрим дискретную модель, которая производит свои выходы каждые две секунды. Если ваш базовый модуль времени является секундами, можно непосредственно задать дискретный шаг расчета, задав числовое значение 2 как SampleTime параметр. Поскольку значение смещения равно нулю, вам не нужно его задавать; однако можно ввести [2,0] в поле Sample time.

Для недискретных блоков компонентами вектора являются символические значения, которые представляют один из типов в Типах шага расчета. В следующей таблице представлены эти типы и соответствующие шаги расчета. Таблица также определяет явный характер каждого типа шага расчета и определяет связанный цвет и аннотацию. Поскольку унаследованный шаг расчета явное, можно задать его как [-1, 0] или как -1. Принимая во внимание, что срабатывающий шаг расчета неявен; только Simulink может назначить шаг расчета [-1, -1]. (Для получения дополнительной информации о цветах и аннотациях смотрите Просмотр информации о шаге расчета.)

Обозначения информации о шаге расчета

Тип шага расчетаШаг расчетаЦветАннотацияЯвный
Дискретный[Ц, К]В порядке убывания скорости: красный, зеленый, синий, светло-синий, темно-зеленый, оранжевыйD1, D2, D3, D4, D5, D6, D7... DiДа
Непрерывный[0, 0]черныйПродолжение следуетДа
Исправлено в мелком шаге[0, 1]серыйFiMДа
Унаследованный[–1, 0]Н/ДН/ДДа
Постоянный[Inf, 0]пурпурныйInfДа
Переменная[-2,Tvo]коричневыйV1, V2... ВайНет
Управляемый[основа, -2i], i = 0, 1, 2,...,коричневыйCtrl1, Ctrl2, Ctrl3, …. CtrliДа
ГибридН/ДжелтыйН/ДНет
ВызванныйSource: D1, Источник: D2,... Источник: DiголубойT1, T2... TiНет
Асинхронный[-1, -n]фиолетовыйA1, A2... АйНет
Поток информацииН/Дсветло-фиолетовыйН/ДНет

Цвет, который назначается каждому блоку, зависит от его шага расчета относительно других шагов расчета в модели. Это означает, что одному и тому же шагу расчета могут быть назначены различные цвета в родительской модели и в моделях, на которые он ссылается. (См. «Модели-ссылки».)

Например, предположим, что модель задает три шага расчета: 1, 2, и 3. Кроме того, предположим, что она ссылается на модель, которая задает два шага расчета: 2 и 3. В этом случае блоки, работающие на 2 частота дискретизации появляется зеленым цветом в родительской модели и красным цветом в ссылочной модели.

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

Точно так же блоки Subsystem, которые содержат блоки с различными шагами расчета, также окрашены как гибриды, потому что с ними не связана единственная скорость. Если все блоки подсистемы выполняются с одной скоростью, блок Subsystem окрашивается в соответствии с этой частотой.

Можно использовать явные значения шага расчета в этой таблице, чтобы задать шаги расчета в интерактивном или программном режиме для основанных на блоках или основанных на портах шагов расчета.

Следующая модель, ex_specify_sample_time, служит в качестве ссылки для этого раздела.

ex_specify_sample_time

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

ex_specify_sample_time после установки шагов расчета

Задайте основанные на блоках шаги расчета в интерактивном режиме

Чтобы задать шаг расчета блока в интерактивном режиме:

  1. В окне модели Simulink дважды кликните блок. Откроется диалоговое окно параметров блоков.

  2. Введите шаг расчета в поле Sample time.

  3. Нажмите OK.

Ниже показан рисунок диалогового окна параметров для блока Sine Wave после ввода 0.1 в поле Sample time.

Чтобы задать и просмотреть основанные на блоках шаги расчета во всей модели, рассмотрите использование Model Data Editor (на вкладке Modeling, нажмите Model Data Editor). На Inports/Outports, Signals и Data Stores вкладках установите выпадающий список Change view равным Design и используйте столбец Sample Time. Дополнительные сведения о Model Data Editor см. в разделе Настройка свойств данных при помощи Model Data Editor.

Задайте шаги расчета на основе портов в интерактивном режиме

Блок Rate Transition имеет основанные на портах шаги расчета. Вы можете установить выходу порт шага расчета в интерактивном режиме, выполнив следующие шаги:

  1. Дважды кликните Rate Transition блок. Откроется диалоговое окно параметров.

  2. Оставьте выбор раскрывающегося меню Output port sample time options следующим Specify.

  3. Замените -1 в Output port sample time поле с 0.2.

  4. Нажмите OK.

Для получения дополнительной информации об опциях шага расчета в диалоговом окне Параметры перехода скорости (Rate Transition parameters) см. Rate Transition страницы с описанием.

Задайте основанные на блоках шаги расчета программно

Чтобы задать программно шаг расчета блока, установите его SampleTime параметр к желаемому шагу расчета с использованием set_param команда. Например, чтобы задать шаг расчета блока Gain в модели Specify_Sample_Time равным унаследованному (-1), введите следующую команду:

set_param('Specify_Sample_Time/Gain','SampleTime','[-1, 0]')

Как и в случае интерактивной спецификации, можно ввести только первый векторный компонент, если второй компонент равен нулю.

set_param('Specify_Sample_Time/Gain','SampleTime','-1')

Программно задайте шаги расчета на основе портов

Чтобы задать шаг расчета выходного порта блока Rate Transition равным 0.2, использовать set_param команда с параметром OutPortSampleTime:

set_param('Specify_Sample_Time/Rate Transition',...
'OutPortSampleTime', '0.2')

Программный доступ к Шагу расчета информации

Чтобы получить доступ ко всем шагам расчета, сопоставленным с моделью, используйте API Simulink.BlockDiagram.getSampleTimes.

Чтобы получить доступ ко шаг расчета одного блока, используйте API Simulink.Block.getSampleTimes.

Задайте шаги расчета для пользовательского блока

Можно проектировать пользовательские блоки, чтобы входные и выходные порты работали с различными шагами расчета. Для получения информации об указании основанных на блоках и основанных на портах шагов расчета для S-функций, смотрите Specify S-Function Sample Time.

Определение Шага расчета Модулей

Поскольку выполнение модели Simulink не зависит от определенного набора модулей, вы должны определить соответствующий базовый временной модуль для вашего приложения и задать значения шага расчета соответственно. Для примера, если ваш базовый модуль времени является вторым, то вы представите шагу расчета 0.5 во-вторых, установив значение шага расчета 0.5.

Измените Шаг расчета после начала симуляции

Чтобы изменить шаг расчета после начала моделирования, вы должны остановить симуляцию, сбросить SampleTime Параметр, а затем перезапустите выполнение.

См. также

|