Интеграция программ OrCAD и MATLAB / Simulink при помощи интерфейса PSpice SLPS
Интерфейс PSpice SLPS является инструментом связи между моделирующим устройством программы MATLAB/Simulink фирмы MathWorks и схемотехническим моделирующим устройством PSpice A/D (далее будет использоваться аббревиатура PSpice), который был разработан совместно компаниями Cybernet Systems и Cadence Design Systems. Используя PSpice SLPS, можно вставить электрическую схему PSpice в функциональную схему Simulink и связать функциональное и схемотехническое моделирование схемы. Эта система объединяет преимущества каждого из моделирующих устройств.
Размещение блока PSpice SLPS в функциональной схеме Simulink дает возможность Simulink использовать механизм анализа PSpice. Для блоков PSpice SLPS можно использовать схемы PSpice, созданные при помощи редактора схем Capture.
Поскольку PSpice SLPS является инструментом связи между MATLAB/Simulink и PSpice, эта статья предполагает, что читатель умеет пользоваться программами MATLAB/Simulink и OrCAD.
Перед установкой SLPS на компьютере сначала должны быть установлены следующие программы: Matlab 6.5 и OrCAD 10.0 с SP2 (или более новые версии этих программ).
Для выполнения моделирования с помощью PSpice SLPS необходимо иметь лицензии для вышеупомянутых программ MATLAB/Simulink и OrCAD. Дополнительно файл лицензии Cadence должен включать лицензию SLPS.
Перед установкой SLPS необходимо закрыть все открытые приложения. Установка PSpice SLPS выполняется запуском инсталляционного файла SLPS. Необходимо установить следующие два пути к папке SLPS в MATLAB:
- [SLPS]/SLPS
- [SLPS]/SLPSdemos
Замечание: [SLPS] — папка, куда установлен SLPS. После этого SLPS готов к использованию. Для того чтобы деинсталлировать SLPS, в панели управления Windows необходимо дважды щелкнуть по Add/Remove Programs, выбрать SLPS из списка и затем нажать на кнопку Add/Remove. Когда полностью удаляется SLPS, стираются оба пути к папке SLPS, установленные в MATLAB. При установке новых версий программы OrCAD SLPS необходимо установить повторно. Перед повторной инсталляцией SLPS требуется сначала деинсталлировать его. Установка пути в MATLAB не требуется, если этот пакет не модернизировался.
Порядок осуществления анализа
Для использования схем PSpice в качестве блоков SLPS необходим файл CIR (файл с расширением cir). Файл этого типа содержит информацию установок анализа PSpice и список используемых цепей. Файл CIR создается при выполнении моделирования в PSpice A/D. Для использования схемы, созданной в PSpice для блока SLPS, необходимо выполнить анализ переходных процессов в PSpice A/D. Анализ выполняется только для создания файла CIR. Когда изменяется схема, для того чтобы изменения были отражены в файле CIR, всегда повторяется анализ в PSpice. После окончания моделирования необходимо закрыть окно PSpice.
Вызовем библиотеку PSpice SLPS в командном окне MATLAB с помощью команды slpslib (рис. 1). Интерфейс PSpice SLPS используется для размещения блока SLPS на функциональной схеме Simulink.
Дважды щелкнем по блоку SLPS, чтобы открыть окно SLPS Settings (рис. 2).
В диалоговом окне SLPS Settings необходимо выполнить следующие шаги:
- В поле Capture Project file обозначим файл проекта Capture (*.opj), содержащий назначенную схему PSpice.
- Закроем редактор схем Capture, если он до этого был открыт. Откроем проект (*.opj), для этого нажмем кнопку Open Capture в диалоговом окне SLPS Settings (рис. 2).
- Если схема была изменена, можно обновить информацию, нажав кнопку Reload. Для очищения позиций в окне SLPS Settings нажмем кнопку Clear All.
- Все файлы CIR из проекта, выбранные в поле Capture Project file, будут перечислены в поле PSpice Circuit file.
- Сообщения об ошибках и состоянии моделирования отображаются в поле Message.
- Для того чтобы вставить входные данные на схеме (из Simulink в блок SLPS) в списке Input Sources, определим источник напряжения (V) и источник тока (I). Если выбран источник напряжения, входной сигнал будет подаваться на схему как значение напряжения, а если выбран источник тока, оно будет подаваться как значение тока. В этом списке перечислены входные сигналы к блоку SLPS. Должен быть определен не менее чем один входной источник.
- Нажмем кнопку Input Select, и все источники, содержавшиеся на схеме, на которую ссылается выбранный файл CIR, будут перечислены в диалоговом окне IN/OUT select. Щелкнем по источнику, который необходимо использовать, и добавим его в список Input Sources.
- Используем кнопки Input add/move/delete для добавления и изменения последовательности или удаления позиций из списка в Input Sources.
- В списке Outputs определим данные, которые выводятся из блока SLPS в Simulink.
- Нажмем кнопку Outputs Select, и все выходные переменные в файлах CIR будут перечислены в диалоговом окне IN/OUT select. Щелкнем на переменных, которые используются, и добавим их в список Outputs.
- Используем кнопки Outputs add/move/delete для добавления и изменения последовательности или удаления позиций из списка Outputs.
- В поле Data Saving Option определим, какие данные сохраняются в течение моделирования в PSpice. Они сохраняются в файле данных (*.dat) PSpice. В выпадающем писке можно выбрать следующие опции: ALL — сохраняются все данные. В этом лучае PSpice будет долго анализировать сохраняемую информацию, и размер файла будет большой;
– Selection Only — сохраняются только данные, определенные в списке Outputs;
– None — данные анализа не сохраняются, что ускоряет анализ. - В поле ITL4 Max выберем значение ITL4. опция ITL4 устанавливает верхний предел числа повторенных вычислений в шаге при выполнении анализа переходных процессов. Увеличивая ее значение, можно увеличить максимальное число вычислений для получения результата моделирования. Увеличение этого значения не оказывает влияния на точность результата. Если возникают проблемы со сходимостью с SLPS, анализ автоматически выполняется снова послеувеличения значения ITL4 в 10 раз. Если значение, увеличенное в 10 раз, превышает значение, определенное с ITL4 Max, анализ использует значение ITL4 Max, и если снова возникнут проблемы со сходимостью, анализ будет прерван. Если проблемы со сходимостью происходят часто, увеличим значение ITL4 Max, например, до 1000. Однако если определено очень большое значение для ITL4 Max, приложение будет занято вычислениями в течение долгого времени.
Значения, которые могут быть установлены в качестве выходных данных SLPS:
- узловое напряжение;
- ток, проходящий через устройство;
- рассеиваемая мощность устройства. Формат выходных данных SLPS соответствует PSpice:
- Node voltage (узловое напряжение). Синтаксис: V ([NODENAME]). NODENAME — название узла на схеме.
- Current passing through a device (протекающий через устройство ток). Синтаксис: I ([DEVICENAME]). DEVICENAME — позиционное название устройства. Направление тока, проходящего через устройство, соответствует PSpice. За положительное направление тока принимается направление от вывода 1 устройства к выводу 2.
- Pin inflow current (Ток вывода). Синтаксис: I[PINNAME] ([DEVICENAME]). PINNAME — название вывода элемента. За положительное направление тока принимается направление тока, к выводу.
- Power dissipation of device (Мощность рассеяния устройства). Синтаксис: W ([DEVICE-NAME]). Мощность рассеяния вычисляется как I*V, но берется ее абсолютная величина, так что направление тока не имеет значения. Параметры моделирования Simulink устанавливаются в диалоговом окне Simulation Parameters (рис. 3). Для этого в меню Simulation окна Simulink выберем команду Simulation Parameters.
SLPS может использовать опции в поле Solver Options вкладки Solver (Решатель): fixed step (фиксированный шаг), variable step (переменный шаг).
Для анализа функциональной схемы Simulink содержащий блок SLPS в меню Simulation выберем команду Start.
Если возникнут проблемы со сходимостью в PSpice в процессе анализа с Simulink, необходимо увеличить параметр ITL4 в PSpice до значения, определенного в ITL4 Max в установках SLPS, и повторить анализ. Однако если PSpice не сможет выполнить вычисления, будет открыто окно, показанное на рис. 4.
Здесь: Abort — прекращение анализа; Interact — повторное вычисление при измененных опциях анализа PSpice.
Если выбрать Interact, откроется окно PSpice Option Parameter Setting (рис. 5).
После изменения этих параметров нажмем кнопку OK. Программа PSpice продолжит вычисление, используя измененные опции анализа. Описания опций анализа приведены в таблице.
Таблица. Опции анализа PSpice
Обычно если проблемы со сходимостью возникают в процессе анализа, устанавливают значение ITL4 больше 1000. При этом можно улучшить сходимость, не изменяя точности анализа.
Необходимо проверять выходные данные SLPS в Simulink, используя блок Scope (осциллограф) (рис. 6).
Когда анализ выполняется процессором PSpice, вызываемым из SLPS, так же как при моделировании в PSpice A/D, создаются файл данных (*.dat) и выходной файл (*.out). Однако если в окне SLPS Settings выбрано None в Data Saving Option, будет создан пустой файл данных PSpice. Файлы данных со следующими названиями создаются в той же папке, где находится файл CIR:
- файл данных PSpice: SLPS_[название файла CIR].dat;
- выходной файл PSpice: SLPS_[название файла CIR].out.
Можно проверить результаты, полученные в SLPS, открыв файл данных PSpice в PSpice A/D:
- Запустим PSpice A/D — для этого выберем Start/Program/OrCAD10…/PSpiceAD.
- Откроем файл данных PSpice, для этого в меню File выберем команду Open. Выберем файл данных, созданный с SLPS. При этом сигналы отобразятся в PSpice A/D (рис. 7).
Пример анализа
Для выполнения анализа:
- Запустим Capture — для этого в меню Start выберем Start/All Programs/OrCAD10…/ Capture (CIS).
- Создадим проект с помощью Capture, для этого откроем диалоговое окно New Project выбрав New/Project… в меню File редактора схем Capture (рис. 8).
- В поле Name введем название проекта MOSCKT.
- В поле Create a New Project Using определим тип нового проекта Analog or Mixed A/D.
- Для сохранения файлов в поле Location определим местоположение рабочей папки C:/WORK.
- Щелкнем OK.
- В открывшемся диалоговом окне Create PSpice Project (рис. 9) выберем Create a blank project и щелкнем OK.
- Откроется окно проекта и отобразится страница схемы (рис. 10).
- Создадим схему проекта (рис. 11). Схема состоит из транзистора MOSFET (полевой транзистор МОП со структурой металл–оксид– полупроводник), резисторов и источников напряжения. Входной источник V1 выдает один короткий импульс длительностью 0,5 мкс. Для определения выходного напряжения блока SLPS обозначим узел, связанный со стоком полевого транзистора как OUT (рис. 11). Для этого нажмем кнопку Place net alias на панели инструментов режима редактирования схем и в открывшемся диалоговом окне Place Net Alias в поле Alias: введем OUT, а затем нажмем OK и щелкнем на проводе, присоединенном к стоку полевого транзистора.
При составлении схемы используем компоненты из следующих библиотек: – M2N6800 (из POWERMOS.olb); – R (из ANALOG.olb); – VSRC (из SOURCE.olb).
- После окончания редактирования схемы сохраним проект, выбрав для этого Save в меню File.
- Для установки анализа в меню PSpice выберем New Simulation Profile. В открывшемся диалоговом окне New Simulation (рис. 12) в текстовом поле Name напечатаем Tran, выберем none в выпадающем списке Inherit From и нажмем кнопку Create.
В открывшемся диалоговом окне Simulation Settings (рис. 13), определим следующее:
а. В выпадающем списке Analysis type выберем тип анализа Time Domain (Transient);
б. В поле Run to time определим конечное время моделирования — 3u (3 мкс).
- Нажмем кнопку Применить, а затем OK.
- Выберем в меню PSpice команду Run. Программа PSpice A/D откроется и запустится моделирование. Когда моделирование закончится, откроется пустое окно графика.
- Для отображения сигнала поместим маркер на схеме. В меню PSpice выберем Markers/ Voltage Level. Поместим маркер на провод, присоединенный к стоку полевого транзистора MOSFET (рис. 14).
Напряжения сигнала на стоке полевого транзистора в окне PSpice отображено на рис. 15. Для создания функциональной схемы:
Запустим MATLAB в меню Start, для этого выберем Start/All Programs/MATLAB…/ MATLAB…
- Сделаем текущей папкой MATLAB рабочую папку, где сохранены файлы PSpice: cd c:/work.
- Создадим новую модель в командном окне MATLAB, для этого в меню File выберем New/Model.
- Вызовем библиотеку SLPS в командном окне MATLAB с помощью директивы slpslib.
- Создадим функциональную схему устройства, используя блок SLPS. Используем блоки Repeating Sequence из библиотеки Sources и Scope из библиотеки Sinks (рис. 16). Параметры блока Repeating Sequence приведены на рис. 17.
Когда модель будет закончена, сохраним ее, для этого в меню File выберем Save.
- Сохраним ее как mosckt.mdl в текущей папке MATLAB.
Замечание: если модель не сохранена в текущей папке, нельзя установить приведенные ниже параметры блока SLPS. Для наладки параметров блока SLPS:
- Откроем диалоговое окно SLPS settings, дважды щелкнув по блоку SLPS (рис. 18). В поле Capture Project file обозначим созданный файл проекта mosckt.opj. Файлы cir, включенные в проект (созданные для каждой установки анализа PSpice), перечисляются в поле PSpice Circuit File. Здесь указан только файл tran.cir, поэтому он выбирается автоматически.
Обозначим вход и выход блока SLPS. Нажмем кнопку Select в установочном окне SLPS Settings справа от Input Sources.
- В открывшемся диалоговом окне IN/OUT select (рис. 19) выберем V1 как входной источник и нажмем кнопку Close. Источник V1 появится в списке Input Sources окна SLPS Settings.
Для обозначения выхода нажмем кнопку Select справа от Output в установочном окне SLPS Settings и в открывшемся диалоговом окне IN/OUT select выберем из списка V (OUT). Затем нажмем кнопку Close. V(OUT) появится в списке Output окна SLPS Settings.
- Закроем окно SLPS Settings, нажав кнопку OK в нижней части окна.
Параметры моделирования Simulink устанавливаются в диалоговом окне Simulation parameters. Для установки параметров моделирования Simulink: 1. В меню Simulation окна Simulink выберем команду Simulation Parameters.
- В открывшемся диалоговом окне Simulation Parameters (рис. 20) в поле Simulation time установим время окончания анализа Stop time такое же, как и в PSpice — 3e-6 (3 мкс). В поле Solver options в выпадающих списках Type: выберем фиксированный шаг Fixed step, Discrete. В поле Fixed step size (размер фиксированного шага) напечатаем 1e-9. После окончания установки параметров сохраним их, выбрав для этого Save в меню File.
Запустим моделирование, выбрав Start в меню Simulation.
- После окончания анализа для отображения сигнала дважды щелкнем по блоку Scope (рис. 21). При этом отобразится тот же самый сигнал, что получился в результате моделирования в PSpice (рис. 15).
Примеры анализа
Пример 1. Схема RC
Воспользуемся простой схемой RC, показанной на рис. 22 (файл проекта RCCIR.opj).
Функциональная схема Simulink (rcmdl.m) показана на рис. 23.
Параметры блока SLPS установлены, как показано на рис. 2:
- Capture Project file: RCCIR.opj;
- PSpice Circuit file: tran.cir;
- Input Sources: Vin (входным для Simulink является значение напряжения источника напряжения Vin);
- Outputs: V (1) / V (2) / I (R) (для Simulink значения напряжения в узлах 1 и 2 на схеме и значение тока, протекающего через резистор R, являются выходными данными);
- Data Saving Option: None (для ускорения анализа выбрано None, чтобы не сохранять проанализированные данные в SLPS);
- ITL4 Max: 10 (проблемы со сходимостью в таких схемах бывают редко, потому что это линейная схема, таким образом, оставляем значение ITL4 Max по умолчанию 10). Результаты моделирования (рис. 24) могут быть получены при выполнении rcplt.m в командном окне MATLAB или щелчком на знаке START на функциональной схеме.
Пример 2. Схема управления скоростью двигателя постоянного тока.
Схемы силовой электроники, такие как преобразователи электропитания и устройства управления двигателем, могут за короткое время переключать большой ток и высокое напряжение. Если перед вами стоит задача смоделировать полную схему такого типа, используя моделирующее устройство, подобное PSpice, необходимо описать все элементы устройства с помощью принципиальных схем. В этом случае полная схема становится сложной, так что в начальной стадии проекта придется потратить много времени. По этой же причине могут возникнуть проблемы со сходимостью, и может потребоваться более длительное время для анализа данных, либо он может прерваться.
Использование на первой стадии проектирования точных моделей приводит к очень медленному моделированию. Поэтому рекомендуется применять упрощенные модели для начальных стадий проектирования. На рис. 25 показана схема управления скоростью двигателя постоянного тока.
На этой схеме имеется обмотка статора (возбуждения), которая создает постоянный магнитный поток возбуждения. Эта обмотка моделируется индуктивностью LS и сопротивлением RS. Когда напряжение VS прикладывается к обмотке статора, протекает ток IS, создавая поток Ψ. Обмотка ротора смоделирована индуктивностью LR и резистором RR. Когда напряжение VR прикладывается к обмотке ротора, протекает ток IR. VR является выходным сигналом контроллера, который управляется дифференциальным входным напряжением VD. Запишем уравнение цепи для обмотки статора:
Вообще, магнитный поток Ψ— нелинейная функция тока статора IS. Для простоты предположим, что Ψ — линейная функция IS:
Ψ = LSIS.
Тогда получим:
Для уравнения цепи обмотки ротора получим:
Напряжение VI индуцируется в обмотке ротора, когда он вращается в поле возбуждения. Напряжение VI может быть записано как произведение постоянной C1, потока Ψ и угловой скорости ω:
VI = C1Ψω.
Для моментов на оси ротора можно записать уравнение равновесия:
где MR = C2 ΨIR, MF = C3 ω.
- MR — вращающий момент ротора, который является линейной функцией потока возбуждения Ψ и тока ротора, умноженного на константу С2.
- ML — заданный момент нагрузки.
- MF — момент внутреннего трения двигателя, который принимается линейной функцией угловой скорости, умноженной на константу С3.
- JM — момент инерции ротора. Контроллер управляется разностью напряжений VD между напряжением на потенциометре скорости, который устанавливает номинальную угловую скорость, и напряжением на тахометре, которое пропорционально угловой скорости. Можно записать VD как разность между угловыми скоростями, умноженную на константу C4.
VD = C4(ωS–ω).
Для контроллера PI (пропорционально-интегрального регулирования) запишем напряжение, прикладываемое к обмотке ротора:
VR=C5 ∫VDdt+C6VD .
Для моделирования сначала воспользуемся функциональной схемой системы, созданной с помощью Simulink (рис. 26).
Параметры системы:
- C1 = 0.50 C2 = 0.50;
- C3 = 0.10; % N*m*s C4 = 0.01; % V*s;
- C5 = 606.0; % 1/s C6 = 100.0;
- LR = 0.10; % H = V*s/A LS = 10.0; % H = V*s/A;
- RR = 0.50; % Ohm = V/A RS = 500.0; % Ohm = V/A;
- JM = 1.0; % kg*m^2. Результаты моделирования данной схемы
Simulink (графики угловых скоростей) приведены на рис. 27.
Напряжение статора VS включается за время t = 1 с, а через 2 с ротор начинает вращаться. Приблизительно через 6 c угловая скорость достигает установившегося значения 50 рад/с. Когда t = 7 с, момент нагрузки изменяется, и скорость вращения ротора уменьшается до 43,6 рад/с. Поэтому контроллер увеличивает VR, и новое устойчивое состояние ω в рад/с достигается снова при t = 10 с.
В функциональной схеме управления скоростью двигателя постоянного тока, созданной в Simulink, заменим некоторые из блоков Simulink схемами, созданными в PSpice. На рис. 28 показана функциональная схема системы.
На рис. 29 показана функциональная схема Simulink, которая включает блок SLPS, созданный с помощью PSpice.
Схемотехнические модели статора, ротора и контроллера в PSpice показаны на рис. 30–32.
Элементы схемы VS, RS, LS и ER, RR, LR реализуют уравнение для dIs/dt и dIR/dt. Для операционного усилителя (ОУ) в контроллере пропорционально-интегрального регулирования сначала используем идеальную модель с очень большим коэффициентом усиления в разомкнутой петле обратной связи. Этот ОУ обладает очень высоким коэффициентом усиления при разомкнутой петле обратной связи, бесконечно большим входным сопротивлением, нулевым выходным сопротивлением, нулевым входным напряжением смещения, нулевым входным током смещения и отсутствием выходного напряжения насыщения. Этот режим легко моделируется в PSpice линейным источником напряжения, управляемым напряжением (ИНУН). Выходное напряжение контроллера пропорционально-интегрального регулирования V(9)(PIC_OUT) задается уравнением:
с коэффициентами:
Напряжение V (9) управляет источником напряжения ER, который имеет коэффициент передачи, равный –20. Поэтому мы получаем:
V(3)=VR=-20xV(9)=606 ∫VDdt+100VD .
Результаты моделирования показаны на рис. 33.
Мы теперь заменим идеальную модель ОУ в контроллере на модель реального ОУ-A741 (рис. 34).
После включения через 1 с двигатель начинает вращаться в противоположном направлении (рис. 35). Очевидно, модель контроллера с реальным ОУ ведет себя иначе, чем контроллер с идеальной моделью ОУ. Это происходит потому, что выход ОУ насыщается из-за входного напряжения смещения и очень высокого усиления при разомкнутой цепи обратной связи по постоянному току.
Для устранения проблемы со смещением вставим в цепь обратной связи резистор 10 МОм и ограничим усиление по постоянному току до 1000 (рис. 36).
Результаты совместного моделирования схемы управления скоростью двигателя постоянного тока с контроллером на основе ОУ с обратной связью по постоянному току в Simulink и PSpice показаны на рис. 37.
Поскольку выходное напряжение смещения операционного усилителя уменьшается, начальный переходный процесс также уменьшается. Отрицательным эффектом уменьшения усиления по постоянному току является то, что угловая скорость в установившемся режиме немного отличается от 50 рад/с.
В заключение отметим, что объединение схемотехнического моделирования в программе OrCAD c функциональным моделированием в программе MATLAB/Simulink обладает рядом достоинств, к которым следует отнести:
- моделирование с идеальными моделями, позволяющими доказать работоспособность моделируемого устройства;
- моделирование радиоэлектронных проектов с использованием моделей компонентов PSpice;
- большая библиотека компонентов для PSpice и блоков для Simulink;
- полный доступ к окружающей среде PSpice для проектирования и отладки;
- полный доступ к MATLAB для осуществления анализа и визуализация данных.
- Разевиг В. Д. Система проектирования OrCAD 9.2. М.: Солон-Р. 2001.
- Дьяконов В.П. MATLAB 6/6.1/6.5 + Simulink 4.1/5 в математике и моделировании. Полное руководство пользователя. М.: СОЛОН-Пресс. 2003.
- Златин И. Моделирование на функциональном уровне в OrCAD 9.2 // Компоненты и технологии. 2003. № 3–4.
- Златин И. В Монте-Карло с OrCAD 9.2 // Компоненты и технологии. 2003. № 5.
- Златин И. Графический анализ результатов моделирования в OrCAD 9.2 // Компоненты и технологии. 2003. № 7.
- Златин И. Программа Advanced Analysis и режим анализа Smoke в PSD 15.0 и OrCAD 10.0 // Компоненты и технологии. 2005. № 4.
- Златин И. Программа Advanced Analysis и режим анализа Sensitivity в PSD 15.0 и OrCAD 10.0 // Компоненты и технологии. 2005. № 5.
- Златин И. Программа Advanced Analysis и режим анализа Optimizer в PSD 15.0 и OrCAD 10.0 // Компоненты и технологии. 2005. № 6, 8.
- Златин И. Программа Advanced Analysis и режим анализа Monte Carlo в PSD 15.0 и OrCAD 10.0 // Компоненты и технологии. 2005. № 9.
- Златин И. Программа Advanced Analysis и режим анализа Troubleshooting в PSD 15.0 и OrCAD 10.0 // Компоненты и технологии. 2006. № 1.
- Златин И. Программа Advanced Analysis и режим анализа Parametric Plotter в OrCAD 10.5 // Компоненты и технологии. 2006. № 2.
- Златин И. OrCAD 10.5 для начинающих пользователей // Компоненты и технологии. 2006. № 3, 4.
- PSpice SLPS Interface User’s Guide (Version 2.5). Cybernet Systems Co., Ltd. 2005.