О моделировании


    Есть категория людей, которым интересно узнавать новое в процессе созидательной деятельности. Это в жизни исследователи. Существо исследовательской работы всегда состоит в генерировании гипотез относительно реальности и проверке этих гипотез на адекватное поведение в жизни. Гипотеза это система математически или логически связанных утверждений, часто сложная. Обычно вы или изучаете природу, и тогда вам надо найти модель, объясняющую её поведение, или создаёте искусственный объект, и тогда требуется найти оптимальную структуру объекта, то есть опять надо найти модель. При решении таких задач возникает потребность в инструменте, позволяющем просто задать математическую или сложную логическую модель и быстро проверить так ли она себя ведёт как требуется. То есть исследовать гипотезу. Мозг человека очень плохо решает задачи выявления всех следствий в системе, где более 3-4 параметров.

    Мы привыкли к тому, что модель, с которой мы имеем дело, практически всегда у нас только в голове, и обычно в виде не математического, а интуитивного описания. Так было до недавнего времени всегда, и не от хорошей жизни. Приходилось обходиться интегральным описанием объекта исследования. Мы говорили, что мы в процессе эксперимента вкладываем некоторое количество энергии в объект и смотрим, что из этого получается. У нас всегда не было возможности смотреть динамику процесса хода эксперимента и влиять на неё. В настоящее время положение кардинально изменилось. Уже несколько лет существуют программы для бытовых РС, позволяющие виртуально создать систему из объектов практически любой сложности, и затем просмотреть ход процессов в этой системе детально. Характеристики объектов надо, конечно, задавать количественно. И это для исследователей непривычно. Оказывается возможным спросить у системы любые временные, энергетические и прочие характеристики. Можно пользоваться лупой времени, варьировать начальные условия или параметры входящих в систему компонентов, решать нелинейные дифференциальные уравнения и многое другое. При знакомстве с программой очень трудно придумать такое, что система выдать не может.
    При наличии таких программ, и при наличии развитых моделей объектов явлений, роль исследователя экспериментатора становится иной. В начале работы каждый исследователь должен знакомиться детально с работой модели явления, созданной его предшественниками. Возможности явления можно познать лишь "проиграв" явление в различных порой в нестандартных условиях, которые "снаружи" совсем не очевидны. В возможности такого "проигрывания" и есть смысл введения понятия "модель явления". Затем следует процесс уже действительного эксперимента, суть которого выявление отличий в поведении явления от модели. Осмысление этих отличий и дополнение модели, то есть публикация результатов и есть смысл исследовательской работы. В результате реализуется рост объяснительной силы модели, и упомянутые программы становятся рабочим инструментом каждого экспериментатора.
Особенно актуально применение моделирования в не технических областях, таких, например,как развитие общества.. Система, описывающая это может по разному строиться, но интуитивно понятно, что она должна отражать движение во времени степени достижения основной цели жизни людей. Хотя могут быть и другие цели. Значит необходимо чётко поставить эту цель, Термин "чётко" означает количественно. Вообще моделиролвание учит чётко мыслить. А именно этого большинству людей не хватает. Если за цель жизни людей принимается максимизация темпа роста качества жизни, то для этого параметра надо определить формулу. То есть из чего количественно складывается этот темп. Далее строятся варианты планов "игры" для достижения целей на основе пониманий того, какие будут последствия, если делать те или иные шаги. Здесь уже необходимы модели экономики, модели поведения масс людей при воздействии на них реформаторов. То есть необходимо понимать , что успех любых действий реформаторов обусловлен согласованием интересов людей и реформатора. Откликнутся ли люди на предлагаемое или отвергнут. На этом балансе интересов должно строиться любое взаимодействие власти и людей. И это обязательно должны содержать разрабатываемые модели развития общества. Впрочем модели могут быть разными, но обязательно они должны быть количественными, только тогда можно просчитать возможное будущее. И сравнивать разные модели разных людей. Модели должны конкурировать, их должно быть легко изменять и создавать новые более совершенные. Отсюда требование к средствам этого моделирования - они должны быть компактными, устанавливаться на бытовом компьютере и быть доступны для пользования среднему пользователю компьютера. Этим условиям удовлетворяет осисываемая ниже программа. Так что это сегодня реально. Далее предполагается, что любой серьёзный разговор на любых уровнях ( от государственной думы до планов кооператива) о желаемом будущем есть разговор о разных количественных моделях и о степени их совершенства. Это означает, что владение этими программами должно быть повсеместно распространено. Особенность этих программ в том, что не нужно быть программистом для пользования ими, достаточно навыка пользования программой. И только тогда оказывается , что население рассматривая программы кандидатов на выборные должности на своих компьютерах может и должно выносить им одобрение или отвергая их. То есть понимание нами (населением) что мы хотим от власти есть результат массового общения нами с программами моделирования развития общества и создание или совершенствование нами этих программ.

   Здесь надо уточнить, что простейшая программа уже есть у нас в голове. Мы понимаем как, например, благосостояние наше зависит от очередного закона принятогоо думой, и знаем это количественно каждый. То есть знаем эту конкретную функцию. Есть и другие функции которые знает каждый. Тогда совокупность этих количественных функций и есть модель, которую вам надо рассмотреть. Зачем - скажете вы, и так ясно. Да ясно, но вы не учли многого, что учёл ваш сосед. И у него другой результат. Тогда совместно с ним вы объединяете свои модели и результирующая модель оказывается большей прогнозирующей силы. Так можно объединять много моделей. Разумно познакомиться и иследовать эти модели и опять придти к ещё лучшей модели. И это надо сделать каждому. Процесс здесь аналогичен выбору хода в шахматной партии, там тоже исследуются разные модели оценки реальности. В конечном итоге, выбирая ход вы всегда знаете дерево возможных его результатолв, и можете достаточно глубоко обосновывать, и возражать если надо. А действительно надо! Таков процесс, в котором вам надо участвовать в диалоге с властью, если хотите лучше жить. Это диалог на уровне моделей, и только он эффективен.

   А далее принятие нами соответствующих решений для исполнения их чиновниками . Это в режиме непрерывно действующего электронного референдума. Только такая реальность лишит чиновника власти, что есть самая важная задача сейчас в России. А вот без этих моделей у вас, рядового пользователя, разговор о будущем есть разговор ни о чём!

    Ниже мы рассмотрим одну из программ для упомянутых работ - это программа схемотехнического моделирования MicroCap7. http://www.spectrum-soft.com     Хотя она и радиотехническая, но позволяет быстро задать свою исследовательскую систему и виде математических уравнений и в виде структурных схем, а также заставить систему "жить во времени". И вы можете сразу и просто посмотреть, как будут изменяться любые её параметры во времени. То есть вы можете оценить адекватность поведения вашей системы в жизни. И можно сразу рассмотреть "мелкие детали" поведения системы, воспользоваться, например, лупой времени. Можно изменить какие либо параметры и вновь провести анализ. Можно в процессе анализа получать результаты при качании в заданных вами пределах заданных вами параметров. Ваша система может быть описана системой нелинейных дифференциальных уравнений, какой угодно степени сложности. Доступны спектральный анализ, корреляционный анализ, преобразования Лапласа и Z-преобразования. Не обязательно задавать систему в виде принципиальной радиотехнической схемы, можно в виде функциональных блоков, содержащих почти любое математическое содержание. Возможностей столько, что проще отметить, чего нельзя делать (нельзя работать, например, с матрицами). То есть можно решать задачи в экономике и физике и других областях далёких от радиотехники. Доступны богатейшие возможности обработки получаемых результатов от временной лупы времени до оцифровки и оптимизации уже полученных результатов.
    Замечено, что программа корректирует мировоззрение пользователя - не сразу ему становится ясно, что основная ценность программы состоит не в возможности анализа очень сложных систем, а в возможности узнавать новое! Это происходит тогда, когда пользователь, отыскивая кажущуюся ошибку в известной ему системе, вдруг обнаруживает, что ошибки нет, просто есть закономерности, которых он ранее не видел. Это и понятно, так как анализируются системы, содержащие обычно сотни параметров.
    Программа ещё очень много может. Полные возможности программы описаны в руководстве пользователя, которое занимает более 700 страниц. Это только на английском языке. На Русском есть книга В. Разевига "Система схемотехнического моделирования MicroCap7". К сожалению, изложение материала в обеих книгах не позволяет быстро освоить программу и начать ей пользоваться хотя бы как-то. Изложение там рассчитано на фундаментальное изучение программы. Попытка выяснить назначение, какого либо понятия всегда требует знания других новых понятий, которые новичку тоже неизвестны. Поэтому ниже будет изложено, как начать пользоваться программой почти сразу. Своего рода "Быстрый старт". Конечно не обо всех возможностях пойдёт речь. Мы будем говорить о самых главных смысловых действиях пользователя. Недостающее вы всегда узнаете, нажав кнопку Help , которая всегда есть в каждом открытом окне. Демонтрационную версию программы можно свободно скачать с сайта производителя (см выще). Её вполне достаточно для освоения программы и для решения многих не очень сложных задач. В продаже можно найти и полную версию программы с краком. Она содержит очень представительную библиотеку моделей радиотехнических компонентов.
   
Быстрый старт

   При открытии программы появляется окно, являющееся графическим редактором. В нём можно чертить и рисовать как обычно. (кнопка "чертим" на части панели рис 1) На практике пользоваться редактором для изготовления чертежей, блок схем документации намного удобней чем Word ом. Можно разводить простые экспериментальные печатные платы и так далее. Для печатания текста есть кнопка Т.
Задание системы
Для задания исследуемой системы на стол редактора надо установить готовые компоненты и соединить "проводами" их в систему, или сначала изготовить компоненты самому. Техника установки компонента состоит в выборе его мышью из дерева меню "Component" (после нажатия кнопки "выбор компонента"). При этом изображение выбранного компонента прилипает к мыши и переносится ею в нужное место схемы. Если при нажатой левой кнопке мыши нажимать на правую кнопку, то изображение поворачивается на 90 градусов. Можно выделить элемент, щёлкнув по нему, или можно нажать кнопку "выбор области экрана" и нарисовать вокруг него прямоугольник при нажатой левой кнопке мыши. Тогда взявшись мышью за любую точку внутри прямоугольника можно переносить выделенную область по листу схемы, а также давать кнопками команды поворотов и зеркалирования.
    После установки компонента сразу открывается окно, где можно задать индивидуальные параметры компонента. Готовых компонентов в системе более 12 тысяч. В основном это транзисторы и микросхемы. Но есть и функциональные готовые блоки - макросы. Это устройства, выполняющие отдельные математические операции. С каждым компонентом связано математическое описание, определяющее его функционирование.
   Каждый тип компонентов (транзистор, например) описывается системой уравнений с коэффициентами, набор которых индивидуален для конкретной покупной модели транзистора. Такой конкретный набор информации о модели называется spice-моделью транзистора. Spice модели известны и широко распространены только для зарубежных компонентов. Точность описания работы всей схемы с помощью spice моделей столь высока, что исключает необходимость физического моделирования реальной разрабатываемой системы перед промышленным изготовлением серий приборов.
    Для задания функциональных схем используются макросы. Существует большой выбор макросов. Среди них сумматор Sum, вычитающее устройство Sub, перемножитель Mul, делитель Div, интегратор Int, дифферецирующее звено Dif, вычислитель абсолютной величины Abs, усилитель Amp, звено запаздывания Delay, генератор шума Noise, резонатор Resonant, и много других. Набор соединённых между собой макросов образующих кольцо есть система, решающая дифференциальное уравнение (если есть в нём макрос дифференцирования). В систему в общем случае могут входить генераторы сигналов. Типов генераторов много. О них ниже. Пока важно заметить, что программа понимает размерности. В исходном состоянии подразумевается, что сигнал генератора это напряжение в вольтах, хотя есть и генераторы тока. Также в вольтах и напряжения на узлах схемы соединений компонентов. Но, можно задать генератор "напряжения," под котором вы будете понимать всё что вам надо, если только этот "генератор" не связан никак с какими либо ещё действительными генераторами напряжения. Если в системе существует необходимость одновременного нахождения разных "напряжений", то это можно делать, задавая их в виде безразмерных чисел.
    Таким образом, если вы хотите ввести в схему имеющееся уравнение для Y= F(a1,a2,a3:.an) то надо применить готовый функциональный генератор напряжения NFV. При установке любого компонента (кроме покупных ) всегда появляется окно, где надо в данном случае вписать формулу - F(a1,a2,a3:.an). Но так как программа не поймёт что есть а1,а2.: то следует просто установить набор батарей v1,v2,v3:со значениями а1,а2,а3:. В данном случае батареи это ваши константы. То есть в окне генератора NFV надо писать F(v1,v2,v3:), где под F(..) подразумевается математическое выражение с возможностью широчайшего набора используемых функций. Далее при анализе у вас будет возможность заставить эти коэффициенты изменяться шагами для вашей оценки их влияния на результат. Но ваши константы могут быть и функциями времени, если вы зададите это! Каждая "константа", зависящая от времени есть тоже генератор переменной и вы аналогично задаёте его.
    Если ваше уравнение громоздко для написания, то вы можете его разбить на части и для каждой части ввести функциональный генератор. Потом можно объединить отдельные генераторы с помощью нового функционального генератора. Чтобы не запутаться с многочисленными появляющимися "напряжениями" V(n) можно рядом с каждым V(n) писать русское осмысленное имя. Можно переименовывать V(n) любым именем посредством команды ".define", что означает переопределить. Это просто напечатанный текст, начинающийся с точки, за ним через пробел пишем нужное имя (английскими буквами) и ещё через пробел пишем переименовываемое v(n).
    Существует возможность любую заданную структуру системы оформить как макрос. Дать ему имя и устанавливать как новый компонент. В окне задания функционального генератора вы можете написать и математическое выражение. Например, 1.5+2*sin(2*PI*1E6*t)+25*IB(Q1), то есть на языке программы это - 1.5v +2v*sin(c частотой 1мгц) +25*(ток базы транзистора Q1). Знак звёздочка "*" означает умножение, а знак "/" деление. С богатыми возможностями использования математики надо познакомиться в разделе Help-Topic Contetns- Expressions. Там же надо внимательно ознакомится с правилами задания единиц и многим другим. Разумно напечатать многое и повесить рядом при работе с программой.
    Есть ещё место, куда можно писать математические выражения. Это окна задания значений устанавливаемых параметров. При установке резистора (конденсатора индуктивности), там вы можете написать любую формулу, например "1k*exp(-t/1m)" или 1k*exp(-t/1m)*((2+v(1))/1) . То есть можно в месте задания параметра компонента пользоваться математическими функциями и включать в формулы значения напряжений, токов и прочего заданной схемы. Но соблюдая размерности. В последней формуле пришлось установить деление на 1, чтобы последний сомножитель был безразмерным числом.
    Позже, задавая какие графики вы хотите получить в результате анализа, вы сможете вписать не только простые переменные (t- время , V(n)- напряжение) по осям X и Y, но и почти любые математические функции ваших переменных. То есть и здесь вы можете задавать обработку информации.
    Удобно при задании системы пользоваться логическими переменными. Если выражение для параметра умножить на логическую переменную ( то есть на условие типа ( v(2)>1)), то значение выражения за пределами выполнения условия равно нулю, а внутри пределов выполнения значение выражения есть просто значение функции параметра.

На рис 2 даны разделы меню по источникам. Для источников форм раскрыто подменю. Источники это тоже компоненты. Здесь наиболее ходовые источники напряжения и тока. Синусоидальный источник надо использовать при анализе частотных характеристик. При открытии надо выбрать тип "1мгц". Конкретная частота амплитуда фаза далее задаётся, а при частотном анализе значение диапазона сканирования задаётся в окне анализа (см. далее). В качестве источника переменного напряжения чаще используют ген V, это удобно тем, что он может быть синусом или импульсным генератором. В разделе функциональные источники кроме рассмотренного NFV есть NFI (генератор тока) есть и 4 таблично по точкам задаваемых генератора. Зависимые генераторы это V-V, V-I, I-V, I-I. Они для "развязки по постоянному току"
    Под кнопкой компонент дерево из более 12 тысяч компонентов. При установке компонент можно выбрать из примитивов (требует далее выбора, например модели транзистора) или из библиотек покупных изделий. В первом случае после выбора модели открывается окно с параметрами spice модели, где можно сразу редактировать значения. Можно смотреть сразу графики характеристик. После установки примитива его описание помещается на второй лист под схемой. Его можно увидеть, если нажать в левом нижнем углу кнопку TEXT. Здесь можно редактировать описания и изменять тем самым поведение компонента.
    Для перемещения компонента надо его выделить - щёлкнуть левой кнопкой мыши по нему и нести далее при нажатой левой кнопке. Это только в режиме выбора. Для попадания в него надо нажать кнопку выбора области экрана на рис 1. После нажатия этой кнопки есть и второй способ выделения - обвести компонент или область схемы прямоугольной рамкой при нажатой левой кнопке мыши. Далее обведённую область можно перетягивать мышью в целом. При выделенном компоненте клавиша DEL удаляет компонент.
    Для получения информации о каком либо компоненте системы, надо нажать кнопку I (рис 1) и прилипшей стрелкой указать на компонент. Нажатие кнопки "как задать" аналогично открывает раздел Help по данному компоненту. По окончании задания системы не забывайте установить знаки "заземлить". И надо не оставлять узлов схемы с неопределённым режимом по постоянному току. Следует соединить их с землёй высокоомными резисторами.
    В работе системой очень удобно применять таблично задаваемые источники сигналов. Эти источники задают соответствие выходного сигнала входному по точкам (для V к V и для I к I). В задании пишется :. "tab (1,2) (2,3) (10,4)" причём tab напишет при установке программа. В последовательности скобок, разделённых пробелом, сначала величина на входе, затем соответствующая ей на выходе. Порядок расположения скобок - по увеличению входной величины. Между значениями входных заданных величин на выходе идёт интерполяция значений линейная, а до начальной величины (1) на выходе постоянно 2, а после конечной величины 10 на выходе постоянно 4.(для этого задания)
   . То есть на вход этого преобразующего источника надо подавать напряжение (ток) в нужном широком диапазоне. На выходе входная функция деформируется как необходимо. Для удобства можно в текстовой области через .define table (1,2) (2,3) (10,4) определить table, и его потом писать в задании для источника table.
    Существует ещё функция Table при получении анализа. Её просто можно написать в окне Y в Analis Limit (см ниже), или там же найти по контекстному меню место, откуда команда устанавливается - function /Boolean/table. Делает она то же, что и генератор, но задавать её надо по-другому. Пример: " Table(V(1),1,2,2,3,10,4)" Так надо писать в analis Limit. Это означает, что функция применяется к напряжению v(1) и далее через запятые все те же значения, что и в генераторе tab задавали.

Анализ
    Меню анализов открывается после нажатия кнопки Analysis. Существует несколько видов анализа (рис3), но основной - это transient (анализ процессов во времени) После выбора режима transient открывается окно задания параметров. рис 4
Здесь выбираем функции, которые надо получить после анализа. Для каждой из них надо задать длину развёртки (время), шаг её, требуемые начальные условия (нулевые или из файла созданного заранее), записать или нет результаты анализа (normal - не записывать, save - записать , retrivial - извлечь из файла начальных условий), а также какие функции писать в графе Y expression. В эту графу можно записать почти любое математическое выражение для функции, или выбрать по контекстному меню графы переменную. В X Expression вместо времени можно писать также любые переменные или комбинации их. На рисунке мы потребовали нарисовать два графика, а можно всё в одном. Здесь есть выбор цвета графика, типа шкалы (линейная логарифмическая), можно задать дополнительный вывод таблицы результатов на печать позже. При анализе можно включать режим шагания (stepping) значения параметра компонента или параметра модели компонента. Тогда будет вычерчиваться серия графиков.
    Режим АС есть режим вывода частотных фазовых, шумовых характеристик. Его окно задания подобно предыдущему. Режим DC есть режим снятия на постоянном токе зависимостей одного параметра от другого при возможном изменении шагами третьего параметра. Последние три режима анализа на рисунке 3 это тоже, что мы рассмотрели, но другим способом. Здесь имитируется работа с осциллографом, когда исследователь касается щупом осциллографа нужных точек и получает осциллограммы. В этих режимах касание курсором узлов выводит осциллограммы на них. Потом осциллограммы можно стереть и вывести новые.
    Режим Dinamic DC позволяет просматривать любые режимы по постоянному току в процессе создания и редактирования элементов схемы. Режим Transfer Function позволяет вычислить на постоянном токе коэффициент передачи для приращений от выбранной выходной точки к выбранному входному источнику. Здесь сразу вычисляются входное и выходное сопротивления для выбранных точек.
    В режиме Sensitivity вы можете задать параметр (напряжение, ток) где-либо и вычислить отношение изменения этого параметра к вызвавшему его изменению параметра схемы или параметра модели элемента схемы. Вы получаете число и, кроме того, отношение процента изменения выбранного выходного параметра к выбранному входному.(%/%). При работе с программой надо знать, что все наработанные схемы сохраняются в файле с расширением cir и только в папку Data, расположенную внутри папки программы - МС7. Открываются файлы только оттуда.

:::::::::::::::::::::::

Выше изложена краткая информация о программе MicroCap. Для более детального знакомства с ней кроме упомянутой выше литературы полезно смотреть файлы типовых примеров расположенных в папке Data. У меня есть возможность дополнить материал многими примерами решения полезных задач. Они полезны не только как примеры решения задач, но и как примеры использования средств программы для решения ваших задач.
    Пока мне непонятно есть ли потребность у вас в этих материалах. Знакомьтесь с программой и пишите мне о ваших возможностях применения программы. Особенно интересны мне представляются её нерадиотехнические возможности применения. А для радиотехнических целей она великолепна и закрывает практически все потребности анализа и проектирования устройств.

    Знакомство с программой как инструментом архитектурного моделирования систем позволяет поставить ей отличную оценку. Это универсальный инструмент исследователя, отличающийся широкими возможностями при компактном и удобном интерфейсе. Очень хорошо, что она не является узкоспециализированной для продвинутых технологических целей.

    

Жду ваших мнений


На главную страницу