Построение АЧХ в Mathcad пошаговое руководство

Как построить ачх в маткаде

Как построить ачх в маткаде

Амплитудно-частотная характеристика (АЧХ) – ключевой инструмент анализа линейных систем в радиоэлектронике, автоматике и обработке сигналов. Mathcad позволяет строить АЧХ с высокой точностью, используя встроенные функции для символьных и численных расчетов. В этом руководстве рассмотрен процесс от задания передаточной функции до визуализации результатов с шагом дискретизации не более 0,1 Гц для диапазона 0–10 кГц.

Для корректного построения АЧХ потребуется передаточная функция системы в виде отношения полиномов. Например, для фильтра нижних частот второго порядка с частотой среза fc = 1 кГц и коэффициентом демпфирования ζ = 0,7 передаточная функция записывается как:

H(s) = ωc2 / (s2 + 2ζωcs + ωc2),

где ωc = 2πfc. Mathcad поддерживает работу с комплексными переменными, что упрощает переход от s-плоскости к частотной области.

На первом этапе задайте диапазон частот с помощью оператора f := 0, 0.1 .. 10000 (шаг 0,1 Гц). Для каждой частоты вычислите комплексный коэффициент передачи, подставив s = j·2πf в передаточную функцию. Модуль полученного выражения даст амплитуду, а аргумент – фазу. Используйте функцию |H(j·2πf)| для расчета АЧХ и arg(H(j·2πf)) для ФЧХ.

При построении графика в Mathcad выберите тип X-Y Plot и укажите на оси абсцисс логарифмический масштаб (Log Scale) для частоты. Это обеспечит равномерное распределение точек в диапазоне от 1 Гц до 10 кГц. Для повышения точности в области резонанса увеличьте плотность точек вблизи fc с шагом 0,01 Гц.

Оптимизируйте вычисления, используя векторизацию: вместо цикла for применяйте оператор vectorize для массива частот. Это сократит время расчета на 30–40% при обработке 100 000 точек. Для систем высокого порядка (>5) используйте функцию polyroots для нахождения полюсов и нулей, что упростит анализ устойчивости.

Построение АЧХ в Mathcad: пошаговое руководство

Построение АЧХ в Mathcad: пошаговое руководство

Амплитудно-частотная характеристика (АЧХ) в Mathcad строится на основе передаточной функции системы. Начните с определения переменных: задайте диапазон частот ω := 0, 0.1 .. 1000 (шаг выбирайте исходя из требуемой детализации). Для линейных систем используйте передаточную функцию в виде отношения полиномов числителя и знаменателя, например, W(s) := (s + 1)/(s^2 + 2*s + 10). Преобразуйте её в частотную область заменой s → j*ω, где j – мнимая единица.

Для вычисления модуля передаточной функции используйте функцию |W(j*ω)|. Mathcad автоматически рассчитает амплитуду для каждого значения частоты. Если передаточная функция содержит комплексные коэффициенты, примените abs(W(j*ω)) для получения действительного значения. При работе с дискретными системами замените s на (z-1)/(T*z), где T – период дискретизации, а z := e^(j*ω*T).

Построение графика АЧХ выполняется через меню Вставка → График → X-Y график. В поле оси X укажите переменную ω, в поле оси Y – |W(j*ω)|. Для логарифмического масштаба по частоте используйте log(ω) на оси X, а для децибел на оси Y – 20*log(|W(j*ω)|). Настройте диапазоны осей: для частоты – от 0.1 до 1000 (или другой подходящий интервал), для амплитуды – от -40 до 10 дБ.

Оптимизируйте визуализацию с помощью параметров графика:

  • Установите логарифмическую шкалу для оси X через контекстное меню Формат → Ось X → Логарифмическая шкала.
  • Добавьте сетку (Формат → Сетка) для удобства анализа.
  • Для выделения резонансных пиков используйте маркеры (Формат → След → Символ) или измените толщину линии.
  • При необходимости экспортируйте график в векторный формат через Файл → Экспорт → PDF/SVG.

Для анализа АЧХ в Mathcad Prime используйте встроенные функции Bode(W(s), ω) или FrequencyResponse(W(s), ω), которые автоматически генерируют графики АЧХ и ФЧХ. В классической версии Mathcad (15 и ниже) применяйте символьные вычисления: W(j*ω) → simplify → |W(j*ω)|. При работе с нелинейными системами предварительно линеаризуйте модель в рабочей точке или используйте гармонический баланс.

Подготовка исходных данных для расчета АЧХ

Подготовка исходных данных для расчета АЧХ

Для расчета амплитудно-частотной характеристики (АЧХ) в Mathcad требуется задать параметры системы: коэффициенты передаточной функции, диапазон частот и шаг дискретизации. Например, для линейной системы второго порядка с передаточной функцией W(s) = (k·ω02) / (s2 + 2·ζ·ω0·s + ω02) необходимо определить значения k (коэффициент усиления), ω0 (собственная частота, рад/с) и ζ (коэффициент демпфирования). Диапазон частот задается вектором от ωmin = 0.1·ω0 до ωmax = 10·ω0 с шагом Δω = 0.01·ω0, чтобы обеспечить детализацию в области резонанса.

При работе с экспериментальными данными предварительно очистите сигналы от шумов фильтрацией (например, скользящим средним с окном 5–10 точек) и приведите их к единому масштабу. Для дискретных систем используйте z-преобразование: задайте частоту дискретизации fs не менее чем в 10 раз выше максимальной частоты сигнала, а передаточную функцию представьте в виде H(z) = (b0 + b1·z-1 + … + bm·z-m) / (1 + a1·z-1 + … + an·z-n). Проверьте устойчивость системы по критерию Гурвица или расположению полюсов внутри единичной окружности на z-плоскости.

Формирование передаточной функции системы в Mathcad

Передаточная функция в Mathcad задаётся через оператор := с использованием символьных переменных. Для линейных систем с постоянными параметрами применяют стандартную форму записи:

  • W(s) := (b₀·sⁿ + b₁·sⁿ⁻¹ + ... + bₙ) / (a₀·sᵐ + a₁·sᵐ⁻¹ + ... + aₘ), где s – комплексная переменная Лапласа.
  • Коэффициенты bᵢ и aᵢ вводятся как векторы: b := [b₀, b₁, ..., bₙ], a := [a₀, a₁, ..., aₘ].

Для упрощения ввода полиномов используйте функцию polyroots() при работе с корнями характеристического уравнения. Например, если известны корни знаменателя p := [-1, -2, -3], передаточная функция формируется так:

  • a := polyroots(p) – возвращает вектор коэффициентов полинома (s + 1)(s + 2)(s + 3).
  • Для числителя аналогично: b := polyroots([-4, -5]) при корнях -4 и -5.

Mathcad поддерживает дробно-рациональные функции с помощью оператора laplace(). Если система задана дифференциальным уравнением, например, 2·y''(t) + 3·y'(t) + y(t) = 5·x'(t) + x(t), преобразование Лапласа выполняется так:

  1. Задайте начальные условия: y(0) := 0, y'(0) := 0.
  2. Примените laplace() к обеим частям уравнения, заменив производные на s и начальные условия.
  3. Выразите W(s) := Y(s)/X(s), где Y(s) и X(s) – изображения выходного и входного сигналов.

Для систем с запаздыванием используйте экспоненциальный множитель e^(-τ·s). Пример передаточной функции с запаздыванием τ = 0.5:

  • W(s) := (2·s + 1) / (s² + 3·s + 2) · e^(-0.5·s).
  • Mathcad корректно обрабатывает такие выражения при построении АЧХ, но для анализа устойчивости требуется аппроксимация Паде.

При работе с дискретными системами передаточная функция задаётся в z-области. Формат записи:

  • W(z) := (b₀ + b₁·z⁻¹ + ... + bₙ·z⁻ⁿ) / (1 + a₁·z⁻¹ + ... + aₘ·z⁻ᵐ).
  • Для перехода от непрерывной модели используйте функцию c2d() с указанием метода дискретизации (например, Tustin или ZOH).

Ошибки при формировании передаточной функции часто связаны с неверным порядком коэффициентов. Mathcad ожидает векторы коэффициентов в порядке убывания степеней s. Проверьте корректность ввода:

  • Для полинома 3s² + 2s + 1 вектор должен быть [3, 2, 1], а не [1, 2, 3].
  • Используйте функцию coeffs() для извлечения коэффициентов из символьного выражения.

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

  • W₁(s) := 1 / (s + 1), W₂(s) := s / (s + 2).
  • Общая передаточная функция: W(s) := W₁(s) · W₂(s).
  • Mathcad автоматически упрощает выражение, но для анализа полюсов и нулей используйте numer() и denom().

Для визуализации структуры передаточной функции применяйте символьные вычисления. Пример разложения на простые дроби:

  • Введите W(s) := (s + 2) / (s² + 5·s + 6).
  • Выполните команду parfrac(W(s), s) – Mathcad вернёт сумму дробей 1/(s + 2) + 1/(s + 3).
  • Это упрощает анализ вклада каждого полюса в динамику системы.

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

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

Определение частотного диапазона начинается с анализа рабочих характеристик исследуемой системы. Для большинства радиотехнических и акустических приложений нижняя граница диапазона задается значением 10 Гц, верхняя – 20 кГц, что соответствует стандартному звуковому спектру. В задачах анализа фильтров нижних частот или усилителей мощности верхнюю границу следует расширять до 100 кГц или выше, если ожидаются гармоники высокого порядка. Пример: для исследования LC-фильтра с частотой среза 5 кГц диапазон 10 Гц–50 кГц обеспечит захват всех значимых резонансов.

Шаг анализа напрямую влияет на разрешение АЧХ и вычислительные затраты. Минимально допустимый шаг определяется по теореме Котельникова: Δf ≤ fmax/2, где fmax – верхняя граница диапазона. Однако на практике шаг выбирают в 5–10 раз меньше, чтобы избежать эффекта «ступенчатости» на графике. Для диапазона 10 Гц–20 кГц оптимальный шаг составит 10–50 Гц. В Mathcad это реализуется через переменную f_step, например: f_step := 20.

При работе с узкополосными системами (например, кварцевыми резонаторами) диапазон сужают до 1–2 октав вокруг центральной частоты. Так, для резонатора на 10 МГц анализ проводят в пределах 9,5–10,5 МГц с шагом 1 кГц. Это позволяет детально исследовать резонансный пик без избыточных вычислений. В Mathcad диапазон задается вектором частот: f := 9.5e6, 9.501e6..10.5e6.

Для систем с несколькими резонансными частотами (например, многозвенные фильтры) применяют неравномерный шаг. В областях предполагаемых пиков шаг уменьшают до 0,1% от текущей частоты, а в остальных участках – увеличивают до 1–5%. Пример настройки в Mathcad:

f_start := 100
f_end := 1e6
f_step_coarse := 1000
f_step_fine := 10
f := f_start, f_start + f_step_coarse..f_end
f := stack(f, 9.9e3, 9.91e3..10.1e3)  // Уточнение в области 10 кГц

Выбор количества точек анализа критичен для баланса между точностью и производительностью. Для диапазона 1 Гц–1 МГц при шаге 10 Гц потребуется 100 000 точек, что может замедлить расчеты. В таких случаях используют логарифмический масштаб: шаг увеличивается пропорционально частоте. Реализация в Mathcad:

f_min := 1
f_max := 1e6
points := 1000
f := 10^(log10(f_min) + (0..points-1) * (log10(f_max) - log10(f_min))/(points-1))

Это сокращает количество точек до 1000 при сохранении детализации на низких частотах.

Проверка корректности настроек проводится визуально по графику АЧХ. Если на кривой наблюдаются резкие скачки или «зубцы», шаг анализа следует уменьшить в 2–5 раз. Для систем с крутыми фронтами (например, фильтры Баттерворта 8-го порядка) шаг в области среза должен быть не более 0,1% от частоты среза. Пример: для фильтра с fc = 1 кГц шаг в диапазоне 900–1100 Гц не должен превышать 1 Гц.

В Mathcad параметры частотного диапазона и шага рекомендуется выносить в отдельные переменные в начале документа. Это упрощает последующую корректировку и позволяет быстро адаптировать расчеты под разные задачи. Пример структуры:

f_min := 20          // Нижняя граница, Гц
f_max := 20e3        // Верхняя граница, Гц
f_step := 50         // Шаг анализа, Гц
f := f_min, f_min + f_step..f_max  // Вектор частот

Для логарифмического масштаба добавляется переменная points, как показано ранее.

Вычисление комплексного коэффициента усиления по частоте

Вычисление комплексного коэффициента усиления по частоте

В Mathcad комплексный коэффициент усиления (ККУ) вычисляется через передаточную функцию системы, заданную в виде отношения полиномов числителя и знаменателя. Для линейной цепи с передаточной функцией H(s) = N(s)/D(s), где s = jω, подставьте вектор частот ω в диапазоне от 0 до ωmax с шагом, достаточным для разрешения резонансных пиков (например, 100 точек на декаду). Используйте функцию polyval(N, j·ω) для числителя и polyval(D, j·ω) для знаменателя, где N и D – векторы коэффициентов полиномов. Результат деления даст массив комплексных значений ККУ, где действительная часть соответствует амплитуде, а мнимая – фазе.

Для повышения точности при анализе узкополосных систем замените равномерный шаг по частоте на логарифмический масштаб с помощью функции logspace(log10(ωmin), log10(ωmax), n), где n – количество точек. При работе с дискретными системами используйте z-преобразование: подставьте z = ejωT, где T – период дискретизации. Для фильтров с конечной импульсной характеристикой (КИХ) ККУ вычисляется как дискретное преобразование Фурье от импульсной характеристики с помощью функции fft(h), где h – вектор коэффициентов фильтра.

Визуализируйте результаты с помощью графиков модуля и фазы ККУ. Для построения АЧХ используйте функцию |H(ω)|, а для ФЧХ – arg(H(ω)). При наличии резонансов добавьте маркеры на частотах, где модуль достигает локальных максимумов, используя функцию max(H(ω)) и match(H(ω), max(H(ω))). Для корректного отображения фазы в диапазоне ±π примените функцию atan2(Im(H(ω)), Re(H(ω))) вместо стандартного arg, чтобы избежать разрывов на границах диапазона.

Ссылка на основную публикацию