Этот пример показывает, как линеаризировать модель нелинейной биполярной транзисторной схемы и создать диаграмму Боде для анализа частотного диапазона малого сигнала.
В зависимости от имеющегося программного обеспечения, используйте соответствующие разделы этого примера, чтобы исследовать различные методы линеаризации и анализа.
Чтобы открыть модель примера Нелинейного Биполярного Транзистора, введите ssc_bipolar_nonlinear
в MATLAB® Командное окно.
Модель представляет однотранзисторный усилитель звука. Транзистор является NPN биполярным устройством и как таковой имеет нелинейный набор характеристик тока-напряжения. Поэтому полное поведение усилителя зависит от рабочей точки транзистора. Сам транзистор представлен и эквивалентной схемой Эберса-Молла, реализованной с помощью маскированной подсистемы. Схема имеет синусоидальный входной тестовый сигнал с амплитудой 10 мВ и частотой 1 кГц. Область возможностей Load Voltage отображает полученное выходное напряжение коллектора после того, как DC отфильтрован выходным конденсатором развязки.
R1 и R2 установите номинальную рабочую точку, и малый коэффициент усиления сигнала приблизительно установлен на R3/R4 отношения. Конденсаторы развязки C1 и C2 имеют емкость 1uF, для обеспечения незначительного импеданса на 1 кГц.
Модель сконфигурирована для линеаризации. Вы можете быстро сгенерировать и просмотреть частотную характеристику малого сигнала, нажав на Linearize circuit
гиперссылка в аннотации модели. Чтобы просмотреть скрипт MATLAB, который генерирует частотную характеристику, щелкните следующую гиперссылку в этой аннотации, see code
. Эта документация содержит справочную информацию и альтернативные способы линеаризации на основе имеющегося программного обеспечения.
В целом, чтобы получить нетривиальную линеаризированную модель вход-выход и сгенерировать частотную характеристику, необходимо задать входы и выходы уровня модели. Нелинейная модель Биполярного Транзистора удовлетворяет этому требованию двумя способами, в зависимости от того, как вы линеаризируете:
Simulink® требует верхней части - или порты входа и выхода уровня модели для линеаризации с linmod
. Нелинейная модель Биполярного Транзистора имеет такие порты, отмеченные u
и y
.
Программа Simulink Control Design™ требует, чтобы вы задавали входные и выходные сигнальные линии с точками линеаризации. Заданные линии должны быть сигнальными линиями Simulink, а не Simscape™ линиями физического соединения. Нелинейная модель Биполярного Транзистора имеет такие заданные точки линеаризации. Для получения дополнительной информации об использовании программного обеспечения Simulink Control Design для обрезки и линеаризации, смотрите документацию для этого продукта.
Откройте блок Solver Configuration и убедитесь, что установлен флажок Start simulation from steady state. Затем откройте возможности Load Voltage и запустите симуляцию, чтобы увидеть поведение основной цепи. Начальные напряжения транзисторного соединения устанавливаются соответствующими условиям смещения, заданным резисторами. Выход является установившейся синусоидой с нулевым средним значением, ее амплитуда усилена транзистором и схемой смещения.
Чтобы увидеть ослабление цепи из нестационарного начального состояния, в блоке Solver Configuration снимите флажок Start simulation from steady state и нажмите OK. Когда Напряжение нагрузки возможностей открыто, моделируйте снова. В этом случае выход напряжение начинается с нуля, потому что транзисторные соединительные емкости начинаются с нулевого заряда.
Вы можете получить более полное понимание поведения схемы и того, как она приближается к устойчивому состоянию с помощью длительной переходной симуляции. Увеличьте время симуляции до 1 с и снова запустите симуляцию. Схема начинается с ее начального нестационарного состояния, и напряжение коллектора транзистора приближается и в конечном счете оседает в установившемся синусоидальном колебании.
Откройте блок Solver Configuration, установите флажок Start simulation from steady state (как это было при первом открытии модели) и нажмите OK. Измените время симуляции назад на .01 с и снова запустите симуляцию.
linmod
ФункцияВ этом примере вы:
Используйте статический решатель Simscape, чтобы найти рабочую точку
Линеаризация модели с помощью Simulink linmod
функция
Сгенерируйте диаграмму Боде с помощью ряда команд MATLAB
Откройте блок Solver Configuration и убедитесь, что установлен флажок Start simulation from steady state. Когда вы симулируете модель с включенным статическим решателем Simscape, схема инициализируется в состоянии, заданном транзисторными сопротивлениями смещения. Это установившееся в установившемся состоянии решение является рабочей точкой, подходящей для линеаризации.
Примечание
Также убедитесь, что флажок Use local solver снят. Линеаризация модели с включенным локальным решателем не поддерживается.
Чтобы линеаризировать модель, введите следующее в Командном окне MATLAB:
[a,b,c,d]=linmod('ssc_bipolar_nonlinear');
Можно также вызвать linmod
функция с одним выходным аргументом, в этом случае она генерирует структуру с состояниями, входами и выходами, а также линейную инвариантную по времени (LTI) модель.
Вектор состояний Нелинейного Биполярного Транзистора модели содержит 17 компонентов. Полная модель имеет один вход и один выход. Таким образом, модель пространства состояний LTI, полученная из линеаризации, имеет следующие матричные размеры:
a 17 на 17
b 17 на 1
c 1 на 17
d 1 на 1
Чтобы сгенерировать диаграмму Боде, введите следующее в Командном окне MATLAB:
npts = 100; f = logspace(-2,10,npts); G = zeros(1,npts); for i=1:npts G(i) = c*(2*pi*1i*f(i)*eye(size(a))-a)^-1*b +d; end subplot(211), semilogx(f,20*log10(abs(G))) grid ylabel('Magnitude (dB)') subplot(212), semilogx(f,180/pi*unwrap(angle(G))) ylabel('Phase (degrees)') xlabel('Frequency (Hz)') grid
Примечание
Для работы с этим разделом необходимо иметь лицензию Simulink Control Design.
Программное обеспечение Simulink Control Design имеет инструменты, которые помогают вам найти рабочие точки и возвращает объект модели пространства состояний, который задает имена состояний. Это рекомендуемый способ линеаризации моделей Simscape.
В Панель инструментов Simulink Нелинейного Биполярного Транзистора окна модели на вкладке Apps под Control Systems нажмите Model Linearizer.
В окне Model Linearizer, на вкладке Linear Analysis, нажмите кнопку Bode график.
Для получения дополнительной информации об использовании программного обеспечения Simulink Control Design для обрезки и линеаризации, смотрите документацию Simulink Control Design.
Примечание
Для работы с этим разделом необходимо иметь лицензию Control System Toolbox™.
Можно использовать встроенные возможности анализа и графического изображения программного обеспечения Control System Toolbox для анализа и сравнения диаграмм Боде с различными устойчивыми состояниями.
Во-первых, используйте Simulink linmod
функция для получения линейной инвариантной по времени модели (LTI).
[a,b,c,d]=linmod('ssc_bipolar_nonlinear');
Не все состояния модели LTI, выведенные в этом примере, являются независимыми. Подтвердите это, вычислив определяющего матрицы a, det(a)
. Определяющий исчезает, что подразумевает одно или несколько нулевых собственных значений. Чтобы проанализировать модель LTI, уменьшите матрицы LTI до минимальной реализации. Получите минимальную реализацию с помощью minreal
функция.
[a0,b0,c0,d0] = minreal(a,b,c,d); 13 states removed.
Извлечение минимальной реализации исключает 13 зависимых состояний из модели LTI, оставляя четыре независимых состояния. Анализируйте управляющие характеристики редуцированного a0
, b0
, c0
, d0
Модель LTI с использованием диаграммы Боде.
bode(a0,b0,c0,d0) % Creates first Bode plot
Схема с R1, измененной с 47 до 15 кОм, имеет другое устойчивое состояние и ответ. Дважды кликните R1 блок, измените значение Resistance на 15 кОм и нажмите OK. Откройте возможности Load Voltage и симулируйте модель. Напряжение коллектора теперь больше не усиливается относительно источника переменного тока 10 мВ, а ослабляется.
Произведите модель LTI во втором установившемся состоянии, сведите ее к минимальной реализации и наложите вторую диаграмму Боде на первый.
[a_R1,b_R1,c_R1,d_R1]=linmod('ssc_bipolar_nonlinear'); [a0_R1,b0_R1,c0_R1,d0_R1] = minreal(a_R1,b_R1,c_R1,d_R1); % 13 states removed. hold on % Keeps first Bode plot open bode(a0_R1,b0_R1,c0_R1,d0_R1) % Superposes second Bode plot on first
Для получения дополнительной информации об использовании программного обеспечения Control System Toolbox для анализа Bode, смотрите документацию Control System Toolbox.