|
PSpice моделирование в OrCAD, динамически меняющийся параметр |
|
|
|
 |
Ответов
|
Feb 5 2013, 13:16
|
Профессионал
    
Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528

|
Попробуйте вот такую модель: CODE * PSpice Model Editor - Version 16.5.0
*$ .SUBCKT vCaps 1 2 3 4 * источник эдс, имитирующий конденсатор U=Q/C E1 1 11 Value={V(12,0)*1uF/(10pF + 1pF*V(3,4))} ; * это просто "датчик тока" V1 11 2 0 * делает копию тока, протекающего через V1 Fq 0 12 V1 1.0 * интегрируем входной ток на конденсаторе Cq 12 0 1uF * резистор чтобы SPICE не выдавал "Node X_Cx.12 is floating" Rq 12 0 1e12 .ENDS vCaps *$ результаты моделирования:
произведение V(12,0)*1uF это заряд на конденсаторе, а (10pF + 1pF*V(3,4)) это формула, описывающая зависимость ёмкости от напряжения на выводах 3 и 4 (от ускорения).
--------------------
Russia est omnis divisa in partes octo.
|
|
|
|
|
Feb 6 2013, 07:23
|

Частый гость
 
Группа: Свой
Сообщений: 159
Регистрация: 6-09-06
Из: Зеленоград
Пользователь №: 20 129

|
Спасибо SSerge и alexa1973! В принципе вы предлагаете похожие вещи и обе работают.
Есть небольшой вопрос, правильно ли я понял, alexa1973, что емкость, подключенная к REF просто умножается на абстрактное число, которое формирует генератор синуса, и, поэтому, если задать амплитуду 1В и смещение 0, то получится, что у нас будет по синусу менятся ускорение от -1g (-1В) до +1g (+1В)?
2SSerge:
не совсем понял, какова будет результирующая модель емкости: (10pF + 1pF*V(3,4)), а величина интегрирующей емкости не влияет на емкость модели?
|
|
|
|
|
Mar 19 2013, 03:47
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 24-06-08
Пользователь №: 38 519

|
Цитата(alexa1973 @ Feb 6 2013, 14:01)  Там должно быть умножение Variable admittance: Yout = Yref * V Здравствуйте! Прочитал эту ветку и решил задать свой вопрос, поскольку он как-то перекликается с вопросами моделирования в PSpice. Столкнулся c такой проблемой: некорректно работают аналоговые функциональные блоки e(g)value в многовариантном анализе (точнее, в Monte-Carlo). Правильно, гарантированно работает e(g)value только один первый раз при номинальном значении изменяемого параметра, во всех остальных случаях - как ему заблагорассудится. Поэтому не могу реализовать ключ, отключаемый при снижении тока ниже заданного в evalue значения. Строка с логикой предельно простая: E_control 10 0 + value {if((abs(I(V3))>{Ihold}),1,0)} Даже когда условие abs(I(V3))>{Ihold} не выполняется, т.е. ток меньше заданного (Ihold), нуль на выходе блока evalue выставляется далеко не всегда. - Мистика. В Probe я наблюдаю ток по точкам, он вблизи нуля и меньше порога Ihold, а команда "0" не выдается. Возможно это баг версии 9.2? В прикрепленном файле-осциллограмме блок работает правильно только один (первый) раз (порог - 20 мА). В остальных двух случаях evalue не работает. У кого-нибудь были подобные глюки? Поделитесь, пожалуйста, опытом. Заранее спасибо.
Эскизы прикрепленных изображений
|
|
|
|
|
Mar 19 2013, 09:01
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 24-06-08
Пользователь №: 38 519

|
Цитата(Vlad01 @ Mar 19 2013, 06:47)  Здравствуйте!
Прочитал эту ветку и решил задать свой вопрос, поскольку он как-то перекликается с вопросами моделирования в PSpice. Столкнулся c такой проблемой: некорректно работают аналоговые функциональные блоки e(g)value в многовариантном анализе (точнее, в Monte-Carlo). Правильно, гарантированно работает e(g)value только один первый раз при номинальном значении изменяемого параметра, во всех остальных случаях - как ему заблагорассудится. Поэтому не могу реализовать ключ, отключаемый при снижении тока ниже заданного в evalue значения. Строка с логикой предельно простая:
E_control 10 0 + value {if((abs(I(V3))>{Ihold}),1,0)}
Даже когда условие abs(I(V3))>{Ihold} не выполняется, т.е. ток меньше заданного (Ihold), нуль на выходе блока evalue выставляется далеко не всегда. - Мистика. В Probe я наблюдаю ток по точкам, он вблизи нуля и меньше порога Ihold, а команда "0" не выдается. Возможно это баг версии 9.2?
В прикрепленном файле-осциллограмме блок работает правильно только один (первый) раз (порог - 20 мА). В остальных двух случаях evalue не работает.
У кого-нибудь были подобные глюки? Поделитесь, пожалуйста, опытом.
Заранее спасибо. Ошибка найдена! Оказывается PSpice в многовариантных расчетах (кроме первого) не всегда умеет точно вычислять модуль значения (abs(x)). Например: X Abs(X) 13A 13 A . . . . 76mA 76mA 41mA 70 mA ! 0 85 mA ! -14mA 94mA ! -49mA 108mA ! -67mA 116mA ! В области малых значений аргумента (в данном случае тока) модуль вычисляется с огромной погрешностью (см. таблицу)! Поэтому реализовать ключ, отключаемый при единицах-десятках миллиампер, проблематично. Интересно, как это реализовано в тиристорах и как обойти проблему. Таким образом, в многовариантных расчетах (Parametric, WC, Monte-Carlo) можно ожидать неверной работы моделей.
Сообщение отредактировал Vlad01 - Mar 19 2013, 09:09
|
|
|
|
Сообщений в этой теме
Voyager PSpice моделирование в OrCAD Feb 4 2013, 06:36 Opolo84 Не очень понятно, что вы хотите получить в результ... Feb 4 2013, 07:29 Voyager Цитата(Opolo84 @ Feb 4 2013, 10:29) Не оч... Feb 4 2013, 08:26  Opolo84 Я вообще таким ни когда не занимался. Первое, что ... Feb 4 2013, 10:04   Voyager Цитата(Opolo84 @ Feb 4 2013, 13:04) Я воо... Feb 4 2013, 14:01    Opolo84 Сейчас посмотрел внимательней, похоже schedule мож... Feb 4 2013, 18:40 dxp Посмотрите эту тему. Feb 5 2013, 02:02 Voyager Цитата(dxp @ Feb 5 2013, 05:02) Посмотрит... Feb 5 2013, 06:46 Voyager Я немного изменю вопрос, может это поможет: можно ... Feb 5 2013, 08:05 Opolo84 Цитата(Voyager @ Feb 5 2013, 10:05) Я нем... Feb 5 2013, 09:11  Voyager Цитата(Opolo84 @ Feb 5 2013, 12:11) Ну та... Feb 5 2013, 10:58 myriad Взгляните прицепленный файл.
Там не совсем то, что... Feb 5 2013, 10:34 alexa1973 По моему для переменного конденсатора лучше всего ... Feb 5 2013, 19:12
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|