Перейти к содержанию
    

PSpice моделирование в OrCAD

Там должно быть умножение 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 не работает.

 

У кого-нибудь были подобные глюки? Поделитесь, пожалуйста, опытом.

 

Заранее спасибо.

post-38519-1363664751_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте!

 

Прочитал эту ветку и решил задать свой вопрос, поскольку он как-то перекликается с вопросами моделирования в 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...