Simulink® позволяет вам задавать шаг расчета блока непосредственно как численное значение или символически путем определения вектора шага расчета. В случае дискретного шага расчета вектором является [Ts
,
] где To
период выборки и Ts
начальное смещение времени. Например, рассмотрите дискретную модель, которая производит ее выходные параметры каждые две секунды. Если ваш модуль норматива времени является секундами, можно непосредственно установить дискретный шаг расчета путем определения численного значения ofTo
2
как SampleTime
параметр. Поскольку значение смещения является нулем, вы не должны задавать его; однако, можно ввести [2,0
] в поле Sample time.
Для недискретных блоков компоненты вектора являются символьными значениями, которые представляют один из типов в Типах Шага расчета. Следующая таблица обобщает эти типы и соответствующие значения шага расчета. Таблица также задает явный характер каждого типа шага расчета и определяет связанный цвет и аннотацию. Поскольку наследованный шаг расчета является явным, можно задать его как [-1, 0]
или как -1
. Принимая во внимание, что, инициированный шаг расчета неявен; только Simulink может присвоить шаг расчета [-1, -1]
. (Для получения дополнительной информации о цветах и аннотациях, информации о Шаге расчета вида на море.)
Обозначения информации о шаге расчета
Тип шага расчета | Размер шага | Цвет | Аннотация | Явный |
---|---|---|---|---|
Дискретный | [Ts, К] | В порядке убывания скорости: красный, зеленый, синий, голубой, темно-зеленый, оранжевый | D1, D2, D3, D4, D5, D6, D7... Di | Да |
Непрерывный | [0, 0] | черный | Продолжение следует | Да |
Зафиксированный на мелком шаге | [0, 1] | серый | FiM | Да |
Наследованный | [–1, 0] | Нет данных | Нет данных | Да |
Постоянный | [Inf, 0] | пурпурный | Inf | Да |
Переменная | [–2, Tvo] | коричневый | V1, V2... Vi | Нет |
Управляемый | [основа,-2i], i = 0, 1, 2, …, | коричневый | Ctrl1, Ctrl2, Ctrl3, …. Ctrli | Да |
Гибрид | Нет данных | желтый | Нет данных | Нет |
Инициированный | Source: D 1, источник: 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 после Установки Шагов расчета
Установить шаг расчета блока в интерактивном режиме:
В окне модели Simulink дважды кликните блок. Диалоговое окно параметров блоков открывается.
Введите шаг расчета в поле Sample time.
Нажмите 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, смотрите Configure Data Properties при помощи Model Data Editor.
Блок Rate Transition имеет основанные на порте шаги расчета. Можно установить шаг расчета выходного порта в интерактивном режиме путем завершения следующих шагов:
Дважды кликните блок Rate Transition. Диалоговое окно параметров открывается.
Оставьте выпадающий пункт меню Output port sample time options как Specify
.
Замените the -1
в поле Output port sample time с 0.2
.
Нажмите OK.
Для получения дополнительной информации об опциях шага расчета в диалоговом окне параметров Перехода Уровня, смотрите страницу с описанием Rate Transition.
Чтобы установить шаг расчета блока программно, установите его SampleTime
параметр к желаемому шагу расчета с помощью set_param
команда. Например, чтобы установить шаг расчета the 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-функций смотрите, Задают Шаги расчета S-функции.
Поскольку выполнение модели Simulink не зависит от определенного набора модулей, необходимо определить соответствующий модуль норматива времени для приложения и установить значения шага расчета соответственно. Например, если бы ваш модуль норматива времени является вторым, то вы представляли бы шаг расчета 0.5
второй путем установки шага расчета на 0.5
.
Чтобы изменить шаг расчета после, симуляция начинается, необходимо остановить симуляцию, сбросить SampleTime
параметр, и затем перезапускает выполнение.