реклама на сайте
подробности

 
 
> PSpice моделирование в OrCAD, динамически меняющийся параметр
Voyager
сообщение Feb 4 2013, 06:36
Сообщение #1


Частый гость
**

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



Добрый день!

Для того, чтобы понять мой вопрос постараюсь вкратце описать задачу. Необходимо промоделировать емкостной акселерометр. У меня есть выражение, устанавливающее связь между емкостью чувствительного элемента и ускорением. Как задать ускорение статически понятно: черезе PARAMETERS. Но мне бы хотелось смоделировать работу вибростенда для снятия АЧХ акселерометра. Т.е. мне надо, чтобы параметр "а" (ускорение) менялся по синусоидальному закону с некоторой частотой. Мне бы хотя бы смоделировать такое воздействие на постоянной частоте - готов вручную увеличивая частоту этого синуса строить по точкам АЧХ. Подскажите, пожалуйста, как это сделать.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SSerge
сообщение Feb 5 2013, 13:16
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 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.
Go to the top of the page
 
+Quote Post
Voyager
сообщение Feb 6 2013, 07:23
Сообщение #3


Частый гость
**

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



Спасибо SSerge и alexa1973! В принципе вы предлагаете похожие вещи и обе работают.

Есть небольшой вопрос, правильно ли я понял, alexa1973, что емкость, подключенная к REF просто умножается на абстрактное число, которое формирует генератор синуса, и, поэтому, если задать амплитуду 1В и смещение 0, то получится, что у нас будет по синусу менятся ускорение от -1g (-1В) до +1g (+1В)?

2SSerge:

не совсем понял, какова будет результирующая модель емкости: (10pF + 1pF*V(3,4)), а величина интегрирующей емкости не влияет на емкость модели?
Go to the top of the page
 
+Quote Post
alexa1973
сообщение Feb 6 2013, 11:01
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 206
Регистрация: 10-03-12
Пользователь №: 70 714



Там должно быть умножение Variable admittance: Yout = Yref * V
Go to the top of the page
 
+Quote Post
Vlad01
сообщение Mar 19 2013, 03:47
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 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 не работает.

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

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

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Vlad01
сообщение Mar 19 2013, 09:01
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 00:59
Рейтинг@Mail.ru


Страница сгенерированна за 0.02304 секунд с 7
ELECTRONIX ©2004-2016