В этом примере показана типичная реализация компаратора напряжения CMOS и способы преобразования подсхемы SPICE в компонент Simscape™ с помощью subcircuit2ssc функция. Компараторы напряжения CMOS можно использовать в цепях аналого-цифрового преобразователя (АЦП) или релаксационного генератора.
Чтобы получить частотную характеристику малого сигнала системы, этот пример включает в себя вход u, выход y и включает в себя блок конфигурации решателя с выбранным параметром Start simulation из установившегося состояния. Вы можете использовать linmod функция линеаризации этой модели.
В этом примере выполняется преобразование этой схемы сравнения напряжения в компонент Simscape и ее анализ в существующей модели. Список соединений SPICE с именем ee_CMOS_comparator.cir - это список соединений, описывающий модель компаратора напряжения CMOS.
% Display ee_CMOS_comparator.cir type('ee_CMOS_comparator.cir')
* CMOS Voltage Comparator * Simulation of Two-stage comparator * Input Signals VIN VP 0 AC 1V VOS VN 0 DC 0V * Power Supplies VDD VDD 0 DC 5V VSS VSS 0 DC -5V * External Components CL VOUT 0 2pF X1 VDD VSS VP VN VOUT COMPARATOR1 * Subcircuit for CMOS Voltage Comparator .SUBCKT COMPARATOR1 VDD VSS VP VN VOUT M1 N1 VN N2 VSS NMOS1 W=680u L=5u M2 N3 VP N2 VSS NMOS1 W=680u L=5u M3 N1 N1 VDD VDD PMOS1 W=5u L=5u M4 N3 N1 VDD VDD PMOS1 W=5u L=5u M5 N2 N4 VSS VSS NMOS1 W=5u L=5u M6 VOUT N3 VDD VDD PMOS1 W=60u L=5u M7 VOUT N4 VSS VSS NMOS1 W=30u L=5u M8 N4 N4 VSS VSS NMOS1 W=30u L=5u IS 0 N4 20u .MODEL NMOS1 NMOS VTO=1 KP=17U + LEVEL=1 + GAMMA=0.8 LAMBDA=0.015 PHI=0.6 + LD=0.5U CJ=5E-4 CJSW=10E-10 + U0=425 MJ=0.5 MJSW=0.5 CGSO=0.4E-9 CGDO=0.4E-9 .MODEL PMOS1 PMOS VTO=-1 KP=8U + LEVEL=1 + GAMMA=0.4 LAMBDA=0.02 PHI=0.6 + LD=0.8U CJ=5E-4 CJSW=10E-10 + U0=200 MJ=0.5 MJSW=0.5 CGSO=0.4E-9 CGDO=0.4E-9 .ENDS * Analysis *.DC VIN -1e-3 1e-3 1e-5 .AC DEC 10 1e-1 1e6 .PROBE .END
Откройте окно ee_CMOS_comparator модель, которая моделирует список соединений SPICE с помощью блоков SPICE из библиотеки Simscape Electrical™ Additional Components. Эта модель включает подсистему CMOS Comparator. Эта подсистема представляет собой ручную реализацию подмикросхемы компаратора напряжения, которая будет заменена компонентом Simscape, преобразованным из подмикросхемы SPICE.
% Open model open_system('ee_CMOS_comparator') set_param(find_system('ee_CMOS_comparator','FindAll', 'on','type','annotation','Tag','ModelFeatures'),'Interpreter','off')

% Display CMOS Voltage Comparator Subsystem open_system('ee_CMOS_comparator/CMOS COMPARATOR','force');

Подсистема схематически описывает компаратор. На графике ниже показаны выходы схемы компаратора КМОП.
ee_CMOS_comparator_plot;

Коэффициент усиления составляет около 100 дБ, а полоса пропускания - около 3 кГц. Чтобы определить минимальное и максимальное входные напряжения сдвига постоянного тока и частоты сдвига переменного тока, вернитесь к верхнему уровню модели и дважды щелкните блок «Определение параметров сдвига». Щелкните График результатов моделирования постоянного тока в модели (Plot DC AC simulation results in the model), чтобы выполнить моделирование и построить график результатов.
Однако для больших сетевых списков SPICE с несколькими подточками ручное преобразование может быть неэффективным, трудоемким и подверженным ошибкам. Simscape Electrical предоставляет способ автоматического преобразования списка соединений SPICE с помощью subcircuit2ssc функция.
Можно преобразовать компоненты SPICE с помощью .cir или .lib расширения в компоненты Simscape с помощью subcircuit2ssc функция. subcircuit2ssc функция преобразует каждую .subckt раздел внутри списка соединений SPICE в один компонент.
Создайте временный каталог, содержащий файлы проверки, и измените текущий рабочий каталог.
ee_CMOS_comparator_temporary_directory;
Файлы проверки ee_comparator_traf.mat и ee_comparator_freq.mat файлы MATLAB, в которых хранятся данные для характеристик передачи SPICE и частотной характеристики малого сигнала.
Используйте subcircuit2ssc функция преобразования подмикросхемы компаратора напряжения, ee_CMOS_comparator.cir, в файл Simscape и поместить его в новый каталог с именем +myComparator.
subcircuit2ssc('ee_CMOS_comparator.cir','+myComparator');
Netlist converted. Review Simscape component files and make manual edits for any unsupported items before building the Simscape library located at: +myComparator.
Создание библиотеки Simscape с помощью ssc_build функция.
ssc_build myComparator;
Generating Simulink library 'myComparator_lib' in the current directory '/tmp/BR2021ad_1584584_202060/publish_examples0/tpd32f02ec_6cba_41ae_ae27_6c0dd7946af6' ...
Необходимо заменить подсистему компаратора CMOS преобразованным компонентом и перепрофилировать клеммы. Для просмотра кода проверки в окне команд MATLAB введите edit ee_CMOS_comparator_verification. Сценарий автоматически соединяет компонент Simscape, созданный в результате преобразования, с моделью. Затем он получает характеристики переноса и частотную характеристику малого сигнала модели Simscape с помощью метода линеаризации. Входное напряжение передаточных характеристик находится в диапазоне от -1 В до 1 В, а частотный диапазон графика Боде - в диапазоне от 0,1 Гц до 1 ГГц. Наконец, сценарий отображает и сравнивает результаты моделирования между чистой моделью списка соединений SPICE, исходной моделью с подсистемой Simscape и моделью с преобразованным компонентом Simscape, полученным с помощью subcircuit2ssc.
На графике ниже показаны результаты моделирования трех различных моделей. Характеристики передачи и частотная характеристика модели с преобразованным компонентом Simscape соответствуют характеристикам исходного списка соединений SPICE.
ee_CMOS_comparator_verification;


Наконец, удалите временный каталог и все его подкаталоги.
% Delete temporary directory if exist('originalDirectory','var') cd (originalDirectory); rmdir(temporaryDirectory,'s') clear temporaryDirectory originalDirectory; end