Форум » Для начинающих » Начало работы с Micro-Cap 10 » Ответить

Начало работы с Micro-Cap 10

Vlad_MC: Зачем резистору сделали полярность? Я смотрю у себя на схеме, на нагрузочном резисторе должен быть сигнал положительной полярности (выше нулевой линии на графике), а он отрицательной... Начинаю искать проблему. Но все-таки перевернуть резистор допёр очень быстро, благо схемка простенькая, пробная. Ну вот скажите, зачем это сделано? Может ее (полярность) можно отключить? И еще такой вопрос: как сделать, чтобы Микрокап выдавал запрос на сохранение схемы перед закрытием программы? Сейчас он у меня просто закрывается ничего не спрашивая, и текущая схема теряется.

Ответов - 300, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All

Vlad_MC: qaki, вы сами пробовали вот такой параметр ввести: .Param F= .......? И у вас работает? Я Разместил NFI, задал VALUE = 1m*{sin(2*pi*(Fi+kF*T)*T)}, .Param Fi=1, .Param kF=10k. Покручу параметры, посмотрю, как работает. Спасибо! qaki пишет: Если выберете источник напряжения NFV, то последовательно с ним включайте резистор в сотни кОм. Да, чем больше сопротивление, тем пик резонанса острее. AC анализ хорошо показывает АЧХ. Кстати, вот эти .Param на схеме мне очень не нравятся. Я прямо выставил значения в VALUE. Мне эти параметры больше нигде применять не надо, так что так нормально.

qaki: to Vlad_MC Прогресс налицо! Замечание по поводу F принимается. Действительно этот символ в Микрокапе имеет ограниченное применение. В моей формуле к нему нужно что-то прибавить. Сейчас изменил F на F0 и получилось вот что Анализ АС в схемах с генератором тока не катит, запускайте Transient. Меняя напряжение источника смещения на варикапе, можно видеть, как меняется частота резонанса. Последовательно с L включен резистор, чтобы снизить добротность контура до разумных значений. И вообще Микрокап не любит голые L, частенько начинает ругаться. Удачи!

Vlad_MC: Насчет NFV и формулы V*{sin(2*pi*(F0+kF*T)*T)}. Можно ли ее переписать так, чтобы можно было задать начальную частоту, конечную частоту и время, за которое частота должна измениться от начального значения до конечного? Скорость изменения частоты kF - что-то я не пойму, как оно работает. А для прямоугольного сигнала, как будет выглядеть формула?

qaki: Vlad_MC пишет: Насчет NFV и формулы V*{sin(2*pi*(F0+kF*T)*T)}. Можно ли ее переписать так, чтобы можно было задать начальную частоту, конечную частоту и время, за которое частота должна измениться от начального значения до конечного? Да в общем-то ничего переписывать не надо. Формула уже работает так, как Вам хочется. Смотрите: F0 - это начальная частота сканирования, KF*T - это полоса анализируемых частот в заданном интервале времени, T - интервал времени, который Вы задаете в верхней строке "Time Range" окна параметров Transient-анализа. К примеру. Вам нужно проанализировать интервал частот от 1 МГц до 5 МГц. Задаем параметры: .Param F0 = 1E6 .Param kF = 1E9 T = 4m Что сие значит? Начальная частота F0 = 1 МГц, т.е. единица и 6 нулей. Скорость изменения частоты kF = 1 Гц в 1 нсек, т.е. 1кГц в 1 мксек, что тоже 1МГц в мсек или 1ГГц в 1 сек. Для просмотра полосы частот в 4 МГц ставим время анализа (Time Range) 4 m, т.е 4 мсек. Запустив Transient-анализ получим график изменения исследуемого параметра, по оси Х которого отложено время. Нетрудно сообразить, что 1 мсек соответствует 1 МГц. Если уж самому соображать совсем лень, доверим мыслительный процесс Микрокапу. Для этого объявим новую переменную, обозвав ея, например, F1: .Define F1 {F0+kF*T} Теперь F1 означает значение текущей частоты и в табличке графиков вместо Т мы можем спокойненько записать F1. Микрокап все это перелопатит и на оси Х выложит пишет: значения частот. Vlad_MC пишет: А для прямоугольного сигнала, как будет выглядеть формула? Если нужен меандр, особых сложностей нет. Выложу чуть позже. Five o'clock, знаете ли.

Aml: Можно ли ее переписать так, чтобы можно было задать начальную частоту, конечную частоту и время, за которое частота должна измениться от начального значения до конечного? Не понимаю, зачем использовать какие-то сложные способы, вместо того чтобы использовать Steping+Performanse (писал это еще на 1-й странице) Тогда всё предельно просто и понятно: задается начальная частота, задается конечная частота, задается шаг по частоте. И строится необходимая зависимость без создания аналога генератора качающейся частоты. При этом можно точно гарантировать, что переходные процессы завершатся и будет отсутствовать их влияние на конечную кривую.

Aml: Вот например, последовательный резонансный контур. Задан степинг частоты F от 150кГц до 250кГц с шагом 200 Гц для источника V1. В окно Performance выводится зависимость действующего значения напряжения на индуктивности от частоты F. click here Схемный файл - click here

Vlad_MC: Aml Stepping+Performance отличная штука, пользуюсь иногда, но сейчас мне нужен именно такой генератор качающейся частоты. Точнее, линейно увеличивающейся. Пока так. Правда способ, предложенный qaki какой-то очень уж сложный и запутанный. Пытаюсь его упростить, переписать как-то формулу, чтобы можно было задавать начальную и конечную частоты не заботясь еще и о высчитывании и прописывании полосы и вычислении нужного kF, но пока не получается. Ладно, я готов смириться с тем, чтобы прописывать на схеме все эти "парам" и "дефайн", но только, чтобы делать это один раз, а потом просто менять начальную и конечную частоты. И время, за которое должно произойти увеличение. А вот это kF = 1 Гц в 1 нсек, т.е. 1кГц в 1 мксек... здорово сбивает с толку. Я уже забыл, что хотел со схемой делать... Может как-то так: KF*T=F1-F0 F0 - начальная чатота, F1 - конечная.

Vlad_MC: Или так: .Param V0=1 - амплитуда источника .Param Fn=1Е6 - начальная частота .Param Fk=5Е6 - конечная частота .Param Tk=4m - конечное время (это же "Tk" указываю в строке "Time Range" окна параметров Transient-анализа, чтобы 2 раза не изменять в двух разных местах). А дальше надо как-то указать, что kF=(Fk-Fn)/Tk. Но как? Или так - в Value NFV пишем: V0*{sin(2*pi*(Fn+((Fk-Fn)/Tk)*T)*T)}. Тут указывается время T или мое Tk?

Aml: Попробовал сделать сделать с двумя источниками (чтобы было просто и понятно). Источник V1 Voltage Source типа Pulse c параметрами DC 0 AC 1 0 Pulse 1k 2k 0 100m 1n 100 100. V1 - начальная частота V2 - конечная частота TR - время изменения частоты от начальной до конечной. PW=PER=100 (заведомо большие времени моделирования) Такой источник фактические формирует напряжение, линейно изменяющееся изменяющееся от V1 до V2 за время TR. Потом это напряжение можно использовать вместо частоты в формуле sin(2*PI*V(V1)*t) b c помощью функционального источника напряжения получить линейно изменяющуюся частоту. Попробовал - работает... Но не так, как предписывает теория. Частота синуса линейно увеличивается, но не до значения V2, а до большего значения и в момент прекращения нарастания напряжения источника V1 скачком возвращается к значению V2. Причину не понял. Т.е. таким способом можно пользоваться, но с учетом вышесказанного.... График - click here Схемный файл - click here

qaki: Aml пишет: Не понимаю, зачем использовать какие-то сложные способы, вместо того чтобы использовать Steping+Performanse... Мне кажется, что Vlad_MC не только пытается освоить возможности Микрокапа, но и где-то закрывает пробелы в своих знаниях. В отсутствие достаточного приборного оснащения Микрокап на многое может открыть глаза. Понятно, что был бы свип-генератор, спаял макет, ткнул пробником, заодно почитал бы Харкевича и все стало бы на свои места. Vlad_MC пишет: А для прямоугольного сигнала, как будет выглядеть формула? Если речь идет только о меандре, то его достаточно просто получить из синусоиды с помощью условного оператора .If. Для этого объявим в нашей схеме еще одну переменную, обозначающую напряжение на выходе функционального генератора напряжения NFV(он Вам видимо более понятен, чем генератор тока). Назовем ее Vpr. . Define Vpr Vgen*If(sin(2*Pi*F1*T)>0, 1, -1) Здесь директивой .Define определяется текущее значение напряжения на выходе NFV, которое задается с помощью условного оператора .If. Обратите внимание, что точка перед If в этом случае не ставится ( у М. А. Амелиной об этом ничего не сказано). Условный оператор формирует выходное напряжение NFV равным единице при положительных значениях синусоиды и минус единице при отрицательных. Амплитуда напряжения NFV в этой формуле обозначена как Vgen и будет для удобства работы с моделью задаваться через команду .Param прямо на рабочем поле модели. Например амплитуда 1 В запишется как .Param Vgen=1 Формулы для импульсных напряжений с переменной частотой не писал. Тут есть над чем подумать. Пример работы схемы при возбуждении от генератора прямоугольного напряжения смотрите здесь. Диапазон обзора по частоте от 100 кГц до 20 МГц. Обратите внимание на наличие паразитных резонансов и параметрического возбуждения контура ниже основной резонансной частоты вследствие нелинейности ВАХ варикапа. Тот же контур при возбуждении синусоидой ведет себя иначе.

qaki: Vlad_MC пишет: А вот это kF = 1 Гц в 1 нсек, т.е. 1кГц в 1 мксек... здорово сбивает с толку. Да не мудрите Вы! Это же полная аналогия с равномерноускоренным движением с начальной скоростью, которое проходили в 8-ом классе школы. Есть скорость F и ускорение kF. Задайте начальное значение F0, удобное значение ускорения и время в пути к конечной точке маршрута. S=v0*t+(a*t^2)/2 И да будет Вам счастье.

Vlad_MC: qaki а насчет этого (Мой предыдущий пост) можете подсказать? Я просто хочу сделать так, чтобы было удобно пользоваться.

Vlad_MC: Помогите, пожалуйста, решить проблему в другой схеме. Во время моделирования возникает ошибка Floating point 'underflow'. Это что-то типа такого: Floating point underflow (Минимальная граница числа с плавающей точкой). Вы попытались использовать или создать слишком маленькое число с плавающей точкой. Но из-за чего она возникает? Вот схема: click here

Aml: Сразу вопрос по теории. Ключ замкнулся, через индуктивность потек ток. В индуктивности накопилась энергия (LI^2)/2 Ключ разомкнулся, куда девается энергия, накопленная в индуктивности?

qaki: Vlad_MC пишет: qaki а насчет этого (Мой предыдущий пост) можете подсказать? Я просто хочу сделать так, чтобы было удобно пользоваться. Не совсем ясно для какой цели Вам нужен генератор с линейно изменяющейся частотой. Поэтому мой ответ может быть, что называется, невпопад. Однако не трудно видеть, что начальная частота F0, конечная частота FN и полоса обзора ПF связаны простым соотношением: F0 + ПF = FN или что тоже ПF = FN - F0 В свою очередь полоса обзора ПF есть не что иное как произведение скорости перестройки частоты kF на время анализа Tаn, которое мы вписываем в окошко Time Range: ПF = kF*Tаn. Но вот тут в случае использования упомянутого генератора для анализа АЧХ резонансных цепей возникают нюансы. Сущность вот в чем. Можно пойти по пути логического осмысления получаемых результатов при подборе значений параметров kF и Тан. Например, нам нужно проанализировать поведение резонансной цепи в полосе частот 1 мГц. Для начала задаем kF=1E9, то есть скорость перестройки частоты 1мГц в 1 мсек. Тогда в окошке Time Range нужно записать 1m, то есть за время 1 мсек частота изменится на 1 МГц. Запускаем Transient-анализ. Рассматриваем полученный график и отмечаем какие-либо его характерные черты. Теперь проверяем результат на отсутствие искажений из-за чрезмерно высокой скорости обзора. Уменьшаем kF в 10 раз (выделяем строку с .Param kF= 1E9, дважды щелкаем по ней и в текстовом окне изменяем kF=1E9 на kF=1E8). Далее изменяем время анализа Таn=1m на Таn=10m. Снова запуск анализа. Если существенных изменений не произошло, значит все в порядке - можно работать с kF=1E9 и Tаn=1m. Если же картинка несколько изменилась и сместилась в сторону высоких частот, это явный признак чрезмерной скорости перестройки. Значит нужно продолжать снижение скорости описанным способом. Вообще надо заметить, что такое проявление завышенной скорости перестройки частоты вызывает некоторое недоумение. Казалось бы все должно происходить как-то иначе, скорее в сторону сдвига в высокие частоты при завале низких. Хочу проиграть ситуацию в MATLAB, имеющем гораздо более мощные математические возможности нежели Микрокап. С другими способами задания kF и Тан Вам пока не стоит заморачиваться. Подбор не занимает много времени. Кроме того Микрокап в режиме частотного сканирования явно грешит. Попробовал такую задачу. Контур L=50 мкГн, последовательно с L резистор R=3,14 Ом и конденсатор С=506,6 пФ. Частота резонанса должна быть 1 МГц. Микрокап выдает 985 кГц. Добротность контура Q=100, стало быть полоса пропускания 10 кГц. По Микрокапу около 5 кГц. Ну, наконец, если Вам удобно работать с начальной F0 и конечной FN частотами, тогда дополните командные строки следующим образом: .Param FN=... .Param Tan=... .Define F1 {F0+((FN-F0)/Tan)*T} Строку .Define F1={F0+kF*T) удалите. Имейте в виду, что значение Tan Вам придется вписывать дважды: в строке параметров и в окошке Time Range.

Vlad_MC: Aml пишет: Сразу вопрос по теории. Ключ замкнулся, через индуктивность потек ток. В индуктивности накопилась энергия (LI^2)/2 Ключ разомкнулся, куда девается энергия, накопленная в индуктивности? Ну, вообще-то будет выброс ОЭДС, и энергия очень быстро рассеется. Но выбросов-то нет. И схема несколько периодов работает, а потом пшик...

Vlad_MC: qaki, я сделал так: .Param Vgen=1 - амплитуда источника .Param Fn=1k - начальная частота .Param Fk=100k - конечная частота .Param Tk=1m - конечное время (это же "Tk" указываю в строке "Time Range" окна параметров Transient-анализа). .Define F1 {Fn+((Fk-Fn)/Tk)*T} Value NFV: {Vgen*sin(2*pi*(F1)*T)}. Запускаю Transient-анализ, по оси X частота F1. Конец графика - частота 100 кГц (по курсорам (F8)). Теперь по оси X откладываю время T. Беру последний период, его длительность 5 мкс. А это же 200 кГц. И постоянно вылезает нижнее окно, там где обычно ошибки указываются. Когда окончится рисование графика нажать F9: Error: Illegal plot expression found in 'Peak_Y(V(V1),1,10)'. Error: Illegal plot expression found in 'High_Y(V(V1),1)'. Схема А потом подключил к этому генератору последовательный LC контур: R=1, L=10u, C=101.3212p. F=5МГц. Если по оси Х откладывать время, то вроде бы нормально отображает резонансный пик - в этом месте период = 199 нс (вместо 200 нс). А если по оси Х отложить частоту F1, то резонансный пик приходится на частоту ~3 МГц. Может быть то, что я хочу делать, на самом деле делать так нельзя? Мне не нужен способ, который врет, уж лучше тогда как-то по-другому решать задачу. Нормальными стандартными средствами... Хотя такой генератор очень бы пригодился.

qaki: Vlad_MC пишет: Ну, вообще-то будет выброс ОЭДС, и энергия очень быстро рассеется. Но выбросов-то нет. И схема несколько периодов работает, а потом пшик... Допиши u в окошке per генератора V3. Далее нажми кнопку G и в окне задания глобальных параметров нажми Standartd Default, затем ОК. Запускай модель, все тикает.

qaki: Vlad_MC пишет: Запускаю Transient-анализ, по оси X частота F1. Конец графика - частота 100 кГц (по курсорам (F8)). Теперь по оси X откладываю время T. Беру последний период, его длительность 5 мкс. А это же 200 кГц. Каюсь, моя ошибка. Неправильно написал формулу для F1. Дело вот в чем. Частота - это скорость изменения фазы. Поэтому значение мгновенной частоты, которую можно отложить на оси Х (обозначим ее Fx) следует вычислять по формуле .Define Fx {Fn+((Fk-Fn)/Tk*T Мгновенное значение выходного напряжения определяется текущим значением фазы, которая по аналогии с равномерно ускоренным движением должна вычисляться несколько иначе, чем это делается сейчас. Величину F1 следует вычислять по формуле .Define F1 {Fn+(Fk-Fn)/Tk/2} Нашел причину снижения частоты резонанса. Дело в способе численного интегрирования. По умолчанию в Микрокапе стоит трапецеидальная схема. Для снижения ошибки следует использовать метод Эйлера. Для перехода на эту схему зайдите в окно установки глобальных параметров (кнопка G) и поставьте флажок в колонке Metod (в правом верхнем углу) на EULER. Далее для варианта 5 МГц все работает нормально. Частота резонанса 5 МГц с точностью до положения курсора. Никаких сообщений у меня не выскакивало. Может быть у Вас в глобальных параметрах не включен Standard Default.

Vlad_MC: qaki пишет: Каюсь, моя ошибка. Неправильно написал формулу для F1. Дело вот в чем. Частота - это скорость изменения фазы. Поэтому значение мгновенной частоты, которую можно отложить на оси Х (обозначим ее Fx) следует вычислять по формуле .Define Fx {Fn+((Fk-Fn)/Tk*T Я сюда дописал недостающие скобки и отложил по оси Х значение Fx. Вы сами пробовали, то что советуете? click here - запустите анализ, а после него нажмите F9 - открывается внизу окно с ошибками. В глобальных параметрах включен Standard Default. .Define F1 {Fn+(Fk-Fn)/Tk/2} - отложил по оси Х значение F1. Это еще интереснее... Я хотел попробовать наподобие, как и Aml вариант задавать источнику Voltage Source (в режиме синуса) в поле F0 значение {V(V2)} от другого генератора с линейно повышающимся напряжением, но такой вариант даже не запускается, сразу вылазит ошибка.



полная версия страницы