Подписка на новости

Опрос

Нужны ли комментарии к статьям? Комментировали бы вы?

Реклама

 

2007 №11

Функции Perfomance и анализ Фурье в Micro-Cap 9

Златин Иосиф


Данная статья продолжает знакомить читателей с некоторыми новыми возможностями программ Micro-Cap 8 (июль 2004 г.) и Micro-Cap 9 (январь 2007 г.). Начало — в предыдущем номере журнала [3].

Функции Performance

Программа Micro-Cap 9 (в дальнейшем MC9) предоставляет группу функций для измерения характеристик, связанных с графиками. Эти функции позволяют измерять время нарастания, время спада, длительность импульса, частоту, период и много других параметров. Эти функции могут использоваться для анализа любого графика, сгенерированного во время анализа. Есть несколько путей использования функций Performance:

  • Режим Immediate (без промежуточных стадий): в этом режиме необходимо нажать на кнопку Go to Performance и выбрать функцию из списка. Тогда функция будет применена к графику, определенному в списке графиков Expression.
  • Performance Tag: в этом режиме левая кнопка мыши используется для размещения маркера Performance, который измеряет параметр Performance для графиков. Сюда входят многовариантный анализ, анализ Monte Carlo или простые динамические редактирования.
  • Графики Performance: в этом режиме выполняют несколько моделирований, многовариантно изменяя числовой параметр, а затем создают график, показывающий, как функция Performance изменяется с изменением переменных. Можно создать двухмерные и трехмерные графики Performance.
  • Графики Monte Carlo: в этом режиме производится множество моделирований анализа Monte Carlo, а затем создается гистограмма, показывающая, как функция Performance изменяется статистически.

Все функции Performance извлекают единственное число (функцию Performance) из графиков. Таким образом, функции Performance — своего рода сокращение данных. Они уменьшают массив точек, например график V(OUT) от времени, до единственного числа, например Rise Time.

Определение функций Performance

Программа MC9 содержит группу функций для измерения связанных с рабочими характеристиками параметров графиков. Это следующие функции:

  • Rise_Time — находит N-е время нарастания выражения Y при определенных значениях Low (нижнее значение) и High (верхнее значение). Она размещает курсоры в этих двух точках данных, а результатом является разность между величинами выражения X в этих двух точках. Эта функция используется для того, чтобы измерить время нарастания графиков во временной области.
  • Fall_Time — отмечает N-е время спада выражения Y при определенных величинах Low (нижнее значение) и High (верхнее значение). Она размещает курсоры в этих двух точках данных, а результатом является разность между величинами выражения X в этих двух точках. Эта функция полезна для измерения времени спада графиков во временной области.
  • Peak_X — находит N-й локальный пик выбранного выражения Y. Пиком является любая точка данных, превышающая соседние точки по обе стороны от нее. Она размещает левый или правый курсор в точке данных, а результатом является значение выражения X.
  • Peak_Y — идентична функции Peak_X, но результатом является выражение Y. Эта функция используется для измерения выбросов графиков во временной области и пиков колебаний коэффициентов передачи фильтров при анализе AC.
  • Valley_X — отмечает N-й локальный минимум выбранного выражения Y. Точка минимума определяется как любая точка данных с меньшим значением, чем соседние точки данных по обе стороны от нее. Она размещает левый или правый курсор в точке данных, а результатом является значение выражения X.
  • Valley_Y — идентична функции Valley_X, но результатом является значение выражения Y. Она полезна для измерения отрицательного выброса во временной области и максимумов затухания в фильтрах при анализе AC.
  • Peak_Valley — отмечает N-й пик и N-ю точку минимума выбранного выражения Y. Она размещает курсоры в этих двух точках данных, а результатом является разность между значениями выражения Y в этих двух точках. Эта функция полезна для измерения колебаний, выбросов и амплитуды.
  • Period — точно измеряет временной период графиков, вычисляя разность X между моментами поочередного достижения среднего значения Y в интервале моделирования, где булево выражение — логическая единица. Функция работает лучше всего на графиках, которые проходят через свое среднее значение один раз за период. Она не будет работать хорошо на графиках, которые содержат большие гармоники. Функция размещает курсоры в двух найденных точках данных и определяет разность между значениями выражения X в этих двух точках.
  • Frequency — частота, численное дополнение функции Period. Она ведет себя, как функция Period, но определяется как 1/Period.
  • Width — измеряет длительность графика выражения Y, обнаруживая N-й и N+1-й примеры определенного значения Level (Уровень). Затем она размещает курсоры в этих двух точках данных и определяет разность между значениями выражения X в указанных точках.
  • High_X — находит глобальный максимум выбранной области выбранного выражения Y, размещает левый или правый курсор в точке данных и определяет значение выражения X.
  • High_Y — находит глобальный максимум выбранной области выбранного выражения Y, размещает левый или правый курсор в точке данных и определяет значение выражения Y.
  • Low_X — находит глобальный минимум выбранной области выбранного выражения Y, размещает левый или правый курсор в точке данных и определяет значение выражения X.
  • Low_Y — находит глобальный минимум выбранной области выбранного выражения Y, размещает левый или правый курсор в точке данных и определяет значение выражения Y.
  • X_Level — находит N-й пример определенного значения Y Level, размещает там левый или правый курсор и определяет значение выражения X.
  • Y_Level — находит N-й пример определенного значения X Level, размещает там левый или правый курсор и определяет значение выражения Y.
  • X_Delta — находит N-й пример определенного диапазона выражения Y, размещает курсоры в этих двух точках данных и определяет разность между значениями выражения X в этих точках.
  • Y_Delta — находит N-й пример определенного диапазона выражения X, размещает курсоры в двух точках данных и определяет разность между значениями выражения Y в этих точках.
  • X_Range — находит диапазон X (максимум — минимум) для N-го примера определенного диапазона Y. Сначала она ищет определенные значения выражения Y Low и Y High, а затем находит все точки данных между этими двумя для самых больших и самых маленьких значений X, размещает курсоры в этих точках и определяет разность между значениями выражения X в этих точках. Она отличается от функции X_Delta, которая определяет разность в максимумах и минимумах величины X в указанном диапазоне Y, а не разность в значениях X в указанных конечных точках Y.
  • Y_Range — находит диапазон Y (максимум — минимум) для N-го примера определенного диапазона X. Сначала она обнаруживает указанные выражения X Low и X High, а затем ищет все точки данных между этими двумя для наибольшего и наименьшего значения Y, размещает курсоры в этих точках и определяет разность между значениями выражения Y в этих точках. Она отличается от функции Y_Delta, которая определяет разность между максимальным и минимальным значением Y в указанном диапазоне X, а не разность в значениях Y в указанных конечных точках X. Эта функция полезна для измерения колебаний затухания фильтра.
  • Slope — размещает курсоры в двух точках данных, которые разнесены вблизи определенного значения X, и определяет крутизну между этими двумя курсорами.
  • Phase_Margin — находит запас по фазе графика. Эта функция доступна только в анализе AC.
  • RMS — находит среднеквадратичное значение RMS выбранного выражения Y. Функция вычисляется в диапазоне от XMin до XMax.
  • Average — обнаруживает среднее значение выбранного выражения Y. Функция вычисляется в диапазоне от XMin до XMax.

Эти функции могут использоваться на единственном графике анализа Monte Carlo, при оптимизации и составлении трехмерного графика 3D.

Диалоговое окно Performance Function

Когда моделирование завершено, нажмем кнопку Go to Performance Function . Откроется диалоговое окно Performance Function (рис. 1).

Диалоговое окно Performance Function
Рис. 1. Диалоговое окно Performance Function

Есть две вкладки: Performance и Cases. Вкладка Cases позволяет выбирать область, если несколько областей доступно при многовариантном анализе. Вкладка Performance позволяет выбирать функцию Performance, для применения к выбранной области графика, выбранной на вкладке Cases.

Вкладка Performance имеет следующие поля:

  • Function — здесь выбирается одна из функций Performance.
  • Expression — здесь выбирается выражение для функции.
  • Boolean — булево выражение должно быть логической единицей для функций Performance. Обычно эта функция используется, чтобы исключить некоторую нежелательную часть графика исследуемой функции. Типичное выражение: «T>100ns». Оно указывает программе исключать любые точки данных, для которых T<=100ns.
  • N — целое число, которое определяет, какой из вариантов необходимо обнаружить и измерить. Например, это может быть измеренная длительность импульса. Значение N увеличивается каждый раз, когда нажимаем на клавишу Go To, измеряя каждый последующий пример.
  • Low — определяет нижнее значение, которое используется подпрограммами исследования. Например, в функции Rise_Time она определяет нижнее значение, при котором измерен нарастающий фронт.
  • High — определяет высшее значение, которое используется подпрограммами исследования. Например, в функции Rise_Time она определяет высшее значение, при котором измерен нарастающий фронт.
  • Level — определяет значение уровня для использования подпрограммами исследования. Например, в функции Width она определяет значение выражения, при котором измерена длительность.

Кнопки внизу окна выполняют следующие функции:

  • Go To (Left) — эту кнопку обозначают Go To, когда функция Performance, как и следовало ожидать, позиционирует оба курсора (как делают функции Rise_Time и Fall_Time). Она обозначается Left, когда любой левый или правый курсор, но не оба, позиционируются функцией. При обозначении Left эта кнопка размещает левый числовой курсор в позицию, предписанную функцией Performance.
  • Right — эта кнопка размещает правый числовой курсор в позицию, предписанную функцией Performance. Например, функция Peak может позиционировать любой левый или правый курсор.
  • Help — эта кнопка обеспечивает доступ к локальной справочной информации для диалогового окна.
  • Close — эта кнопка закрывает диалоговое окно.
  • Default Parameters — эта кнопка устанавливает параметры по умолчанию для функций, которые имеют их.

Графики функции Performance

Графики функций Performance могут быть созданы, когда выполняется сложный анализ с вариацией температуры или параметров. Откроем файл примера PERF1. Выполним анализ переходных процессов. Результаты моделирования показаны на рис. 2.

Результаты моделирования анализа переходных процессов
Рис. 2. Результаты моделирования анализа переходных процессов

В меню Transient выберем Performance Windows/Add Performance Window. Откроется диалоговое окно Properties For Performance (рис. 3).

Диалоговое окно Properties For Performance
Рис. 3. Диалоговое окно Properties For Performance

Опишем вкладку Plot:

  • Curves — это окно списка позволяет выбрать график, на котором будут определяться функции Performance. Клавиши Add и Delete внизу этого окна позволяют добавлять или удалять определенный график Performance.
  • Title — это поле позволяет определять название графика. Если справа выбрано Auto, название создается автоматически.
  • X Axis — этот раскрывающейся список позволяет выбирать многовариантную переменную, используемую для оси X.
  • Runs — если разрешено Accumulate Plots, этот раскрывающийся список позволяет выбирать номер выполнения моделирования, которое необходимо использовать. Номер выполнения моделирования — просто числовой индекс каждого нового выполнения, созданный в динамическом режиме редактирования.
  • X Axis позволяет выбирать многовариантную переменную для использования для оси X.
  • Temperature — если температура также изменялась многовариантно, то для каждого значения создается отдельный график. Этот раскрывающийся список позволяет выбирать температуру для работы с графиком функции Performance.
  • Curve — этот флажок указывает, будет ли отображаться выбранный график функции Performance. Если необходимо скрыть график или группу графиков, надо удалить галочку, щелкнув в поле Show.
  • Plot Group — этот раскрывающийся список управляет групповым номером графика.
  • What To Plot — эта группа позволяет выбирать функцию Performance и ее параметры.
  • Stepped Variables List — если больше чем одна переменная изменяется многовариантно, будет один или несколько списков. Эти списки позволяют выбирать, какой пример многовариантно изменяемой переменной функции (или переменных функций) Performance обрабатывается. Если многовариантно изменяются R1, L1 и C1 (например, каждое имеет 5 значений) и выбирают R1 для переменной оси X, то появятся списки для L1 и C1. Из этих двух списков можно выбрать любой из 5×5 = 25 возможных графиков и получить график функции Performance от значения R1.

Нажмем на кнопку OK. Этим выбирается функция Rise_Time с параметрами по умолчанию и создается график Performance, показанный на рис. 4. Этот график показывает, как время нарастания V (1) (измеренное между 1 и 2 вольтами) изменяется от значения C1 с единственной многовариантно изменяемой переменной. Дважды щелкнем по графику или нажмем F10. Откроется диалоговое окно Properties. Нажмем кнопку Add. Нажмем кнопку Get и выберем Fall_Time из списка Function. Нажмем дважды OK. В окно рабочих характеристик добавится график функции Fall_Time (рис. 5).

График Performance Rise Time (времени нарастания)
Рис. 4. График Performance Rise Time (времени нарастания)
Графики Performance Rise и Fall Time (времени нарастания и времени спада)
Рис. 5. Графики Performance Rise и Fall Time (времени нарастания и времени спада)

Нажмем F11 и в открывшемся окне Stepping нажмем Yes в группе Step It панели R1. Нажмем OK и F2. Результаты моделирования показаны на рис. 6.

Многовариантное изменение C1 и R1
Рис. 6. Многовариантное изменение C1 и R1

Нажмем CTRL + F6 и увидим график Performance (рис. 7).

Графики Performance для R1 = 12,5 Ом
Рис. 7. Графики Performance для R1 = 12,5 Ом

При новых выполнениях моделирования C1 изменяется от 0,1 до 4,6 нФ, а R1 — от 12,5 до 50 Ом. График показывает функции только от переменной C1. Двумерный график 2D может показать только функции от одной переменной. Другая переменная при этом должна быть постоянна. В этом случае график строится только для R1 = 12,5 Ом. Чтобы увидеть другие значения, нажмем F10 и выберем новое значение R1. График Performance Fall_Time для R1 = 25 Ом показан на рис. 8.

График Performance Fall_Time для R1 = 25 Ом
Рис. 8. График Performance Fall_Time для R1 = 25 Ом

Когда две или больше переменных изменяется многовариантно, можно рассматривать результаты другим способом. Можно выполнить график Performance в трехмерном виде 3D. Для иллюстрации выберем Add 3D Window/3D Windows в меню Transient. В диалоговом окне 3D Properties выберем Performance из списка Y Axis и укажем функцию Fall_Time в списке Function. Нажмем OK. Результат показан на рис. 9. Этот трехмерный график 3D показывает, что функция Fall_Time представляет график в направлении вертикальной оси Y. С1 изменяется вдоль горизонтальной оси X, а R1 изменяется вдоль перпендикулярной чертежу оси Z. Это — те же самые данные, но представленные в другом виде. Фактически, если рассматривается трехмерный график, то можно увидеть двухмерный график Fall_Time внутри него (рис. 9).

Трехмерный график Performance Fall_Time
Рис. 9. Трехмерный график Performance Fall_Time

Анализ Фурье

Fast Fourier Transforms (быстрое преобразование Фурье) — совокупность математических функций для извлечения частотно-временной информации из сигнала, полученного в результате анализа переходных процессов и графиков анализа AC. Для вычисления этих математических функций используется внутренняя подпрограмма Fast Fourier Transform (FFT). Для этого нужны два основных параметра:

  • N — число точек данных;
  • DF — частота выборки.
  • N определяется значением в поле Number of Points на вкладке FFT диалогового окна Plot Properties (F10). N обычно равно 1024 и может быть:

    • Minimum (Минимум) = 64, или 26;
    • Maximum (Максимум) = 1 048 576, или 220.

    DF вычисляется следующим образом:

    • Для анализа переходных процессов: DF = 1-я гармоника = 1/(<Upper Time Limit> — <Lower Time Limit>), где <Upper Time Limit> и <Lower Time Limit> — на вкладке FFT диалогового окна Plot Properties (F10).
    • Для анализа AC: DT = Time Step (временной шаг) = 1/DF = N/<Upper Frequency Limit>, где <Upper Frequency Limit> — на вкладке FFT диалогового окна Plot Properties (F10). DF — интервал между точками выборки в выходном FFT, также упоминается как первая гармоника.

Функции FFT могут использоваться и в AC, и в анализе переходных процессов. Разрешающей способностью, диапазоном и точностью FFT управляют параметры N и DF.

Увеличение <tmax> в анализе переходных процессов уменьшает DF, приводя к более высокой разрешающей способности по частоте и более низкой максимальной частоте, начиная с fmax = (N–1)×DF. Рост N увеличивает верхнюю частоту диапазона.

Увеличение <fmax> в анализе AC уменьшает временной шаг DT, приводя к более высокой разрешающей способности временного шага и более низкому tmax, начиная с tmax = (N–1)×DT. Рост N увеличивает максимальный временной диапазон.

Функции Fast Fourier Transform

Функции Fast Fourier Transform (FFT):

  • HARM(u[,BW]) — определяет амплитуду (среднее множество синусоидальных и косинусоидальных функций) гармоник сигнала u. BW — дополнительное выражение ширины полосы.
  • THD(S[,FR]) — определяет суммарный коэффициент гармонических искажений спектра S как процент амплитуды гармоники опорной частоты FR.
  • IHD(S[,FR]) — ведет себя точно так же, как функция THD, но определяет индивидуальное нелинейное искажение как процент амплитуды гармоники опорной частоты FR.
  • FFT(u) — определяет классическое преобразование Фурье сигнала u. Она не определяет гармоники, как это делает HARM. FFT(u) вычисляет ряд коэффициентов Фурье, масштабируемых N/2 (DC масштабируется N).

Функции HARM, THD и FFT преобразовывают сигнал временной области в спектр частотной области. Когда одно из них используется в выражении Y, выражение X должно быть частотой F. Диапазон X должен первоначально устанавливаться между 5*DF и 10*DF.

  • FS(u,