Этот пример показывает типичную реализацию компаратора напряжения CMOS и как можно преобразовать подсхему SPICE в компонент Simscape™ использование subcircuit2ssc
функция. Можно использовать компараторы напряжения CMOS в аналого-цифровом преобразователе (ADC) или релаксационные схемы генератора.
Для получения частотную характеристику маленькую сигнала системы, этот пример включает вход u, вывел y, и включает блок Solver Configuration параметром, Запускают симуляцию с выбранного устойчивого состояния. Можно использовать 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 подсистемы. Эта подсистема является ручной реализацией подсхемы компаратора напряжения, которую вы замените на компонент 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');
Подсистема описывает компаратор схематическим способом. График ниже показов выходные параметры схемы сравнения CMOS.
ee_CMOS_comparator_plot;
Усиление составляет приблизительно 100 дБ, и полоса пропускания составляет приблизительно 3 кГц. Чтобы задать минимальные и максимальные входные напряжения развертки DC и частоты развертки AC, возвратитесь к верхнему уровню модели и дважды кликните, блок пометил Define Sweep Parameters. Нажмите результаты симуляции Plot DC AC в модели, чтобы запустить симуляцию и построить результаты.
Однако для больших списков соединений 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/BR2021bd_1724986_5107/publish_examples0/tpd183c589_00f3_4359_a23f_975815d50684' ...
Необходимо заменить подсистему Компаратора CMOS на конвертированный компонент и повторно соединить терминалы. Чтобы видеть код подтверждения, в командном окне MATLAB, вводят редактирование 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