Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
105
Добавлен:
07.03.2016
Размер:
6.42 Mб
Скачать

3. Многовариантный анализ

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

Например, можно проанализировать зависимость частоты возникновения битовых ошибок при изменяющейся величине шума.

(Здесь идёт примечание о схемных симуляторах и обработчиках сигналов)

3.1 Использование компонента ParamSweep для изменения параметра

Чтобы иметь возможность изменения параметра, необходимо поместить на схему компонент ParamSweep и задать необходимые параметры. В качестве альтернативы можно использовать компонент VAR (переменные и выражения) для задания определённых значений переменным.

Оба компонента находятся в библиотеке компонентов Controllers (управляющие компоненты). Чтобы научиться использовать замену параметров, создадим простой проект, как показано на рис 4-1.

Рисунок 4-1

В этом проекте размещены источник сигнала (WaveForm), усилитель (компонент Gain) и компонент NumericSink (для сбора результатов, наверное) (из общей библиотеки компонентов). Для каждого компонента используются значения по умолчанию. В схеме также присутствуют необходимые компоненты DF (Data Flow) (для управления потоком данных) и ParamSweep. Мы будем изменять параметр Gain (коэффициент усиления) компонента G1.

Необходимые действия

1. Дважды щёлкните на компоненте ParamSweep для вызова диалогового окна с параметрами компонента (Component Parameters).

2. Во вкладке Sweep в поле Parameter to sweep указываем изменяемый параметр – G1.Gain (G1 – имя компонента в схеме, Gain – изменяемый параметр). Иерархический способ задания параметра необходим в том случае, когда компонент (и его параметр) находится внутри подсхемы. Если подсхема имеет имя A, то для указания того же параметра необходимо набрать A.G1.Gain.

3. В поле Sweep Type (тип изменения) установить значение Linear.

4. Выберите опцию Start/Stop и установите следующие параметры:

Start = 1 (начальное значение)

Stop = 5 (конечное значение)

Step-size = 2 (величина шага)

Num. of pts. = 3 (это поле вычисляется программой)

5. Переключитесь на вкладку Simulations.

6. (Здесь необходимо посмотреть прогу для корректного перевода) В редких случаях может быть несколько компонентов DataFlow.

7. Нажмите OK.

8. Дважды щёлкните на компоненте DataFlow для редактирования его параметров.

9. Установите параметр Stop = 10.0.

10. Запустите процесс моделирования (Simulate ? Simulate).

11. Когда моделирование будет завершено, выберите пункт меню Window ? New Data Display.

12. Поместите прямоугольную диаграмму с параметром N1 в качестве отображаемого набора данных и нажмите OK. На диаграмме должны быть отображены три графика, соответствующие различным значениям коэффициента усиления.

Замена параметров с использованием компонента VAR

Альтернативный путь для произведения замены параметра состоит в использовании компонента VAR. Этот компонент, используемый для определения переменных и выражений, размещается на схеме в дополнение к компоненту ParamSweep.

Для примера мы будем использовать предыдущий проект, но на этот раз будет использоваться компонент VAR для замены параметра.

Необходимые действия

1. Разместите в любом месте схемы компонент VAR из библиотеки Controllers.

2. Отредактируйте параметр компонента Gain: Gain=XYZ (вместо значения по умолчанию Gain=1.0).

3. В компоненте VAR установите значение XYZ=1.0.

4. Отредактируйте компонент ParamSweep: SweepVar=XYZ. Остальные параметры этого компонента оставьте без изменения.

В этом методе параметр Gain связывается с переменной XYZ. Любая ссылка на эту переменную в проекте будет заменена её значением. Более того, Вы можете использовать компоненты VAR для определения различных связей внутри проекта и добавлять строки для определения других изменяемых параметров. Использование компонентов VAR является гибким механизмом задания достаточно сложных изменяемых связей. Однако наиболее простым способом выполнения замены параметра является использование только компонента ParamSweep.