Vienas iš įdomesnių ir baisiai naudingų PSpice įrankių – Optimizer. Tai analoginių grandinių parametrų optimizavimo įrankis, kurio pagalba galima automatiškai derinti analogines ar mišrias grandines. Šio įrankio pagalba galima pagerinti vieną ar kelis grandinės parametrus parenkant vieno ar daugiau grandinės elementų parametrus, pavyzdžiui išlaikant reikiamą stiprintuvo stiprinimą minimizuoti energijos sąnaudas ar paderinti filtro komponentų reikšmes ir priartinti jo dažninę charakteristiką prie reikiamos. Toliau pateiksiu RIAA korektoriaus iš ankstesnio pranešimo optimizavimo pavyzdį.
Optimizavimo procesas susideda iš kelių etapų. Toliau apie kiekvieną iš eilės.
1. Veikianti schema
Norint optimizuoti reikia turėti grandinę, kuri simuliuojasi ir tinkamai veikia bei jos veikimą galima analitiškai įvertinti. Taip pat turi būti parametrai nuo kurių šis analinis įvertis priklauso. Šis metodas netinka priversti neveikiančią schemą veikti. Aš pabandysiu pagerinti RIAA korektoriaus perdavimo funkciją – sumažinti nuokrypį nuo standarto. Pradinė schema atrodo taip:
ELAPLACE atlieka atvirkštinę RIAA korekciją, todėl V(out) idealiu atveju turėtų būti pastovus visame mus dominančiame 20..20000Hz diapazone. Čia prieiname prie antro etapo
2. Parametrai
Optimizavimas atliekamas manipuliuojant parametrais. Šiuo atveju tai bus korekcinės grandinėlės R5, R6, C2, C3 nominalai. Pirmas žingnis – “Opmizer parameters” bloko įterpimas į schemą. Tai atliekama meniu “PSPICE->Place Optimizer parameters” punkto pagalba. Jį pasirinkus patogioje schemos vietoje padedame naująjį bloką:
Ant jo spustelėjus dukart gauname progą įvesti šiuos dalykus:
- Name – parametro pavadinimas
- Initial Value – pradinė parametro reikšmė
- Current Value – einamoji parametro reikšmė
- Tolerance – parametro reikšmės tolerancija
- Lower Limit – apatinė leistina parametro reikšmė
- Upper Limit – viršutinė leistina parametro reikšmė
Šiuo atveju parametrų vardus surašiau pagal komponentų numeriukus,, bet tai nebūtina. Pradinė ir einamoji reikšmė iš pradžių ta pati ir tiesiog nurašyta nuo schemos. Tolerancija optimizuojant nėra aktuali, na o leistinos reikšmės ribos tiesiog leidžia apibrėžti realiai prieinamas parametrų reikšmes (pvz. plėvelinių kondensatorių prieinamas talpas ar pan.).
Iliustracijoje matome C2 parametro duomenis. Pakeitus jau įvestą parametrą norint išsaugoti pakeitimą reikia spausti Change, o norint įtraukti naują parametrą reikia spausti Add. Dešinėje viršuje svarbus pasirinkimas: “Simulation With”. Šis nustatymas nurodo kurios reikšmės bus įstatytos sumuliuojant su PSpice kai paspaudžiamas PSpice->Run (F11). Optimizatoriaus parinkti parametrai įrašomi į “Current Value” stulpelį, o “Initial Value” lieka kaip buvusi, jei tik taip nori vartotojas, todėl neprarandant pradinių reikšmių galima pasižiūrėti į susimuliuotas charakteristikas su optimizatoriaus parinktomis reikšmėmis. Surašius parametrus reikia jų vardus suvesti į reikiamus schemos komponentų laukelius. Šiuo atveju tiesiog kondensatorių ir rezistorių nominalai pakeičiami į atitinkamus pavadinimus, kas jau padaryta aukščiau esančioje schemoje. Svarbu nepamiršti {skliaustelių}, nes kitaip bus šnipštas. Kai tai atlikta, galima pereiti prie simuliacijos aprašymo.
3. Simuliacijos aprašymas
Optimizavimas vykdomas simuliuojant schemą ir iš gautų duomenų įvertinant jos veikimą. Kadangi mus domina RIAA korektoriaus dažninė charakteristika, kuriame AC analinės aprašą:
Šį vaizdelį galima pamatyti paspaudus “Pspice->New simulation profile”, įrašius vardą (aš daviau trumpą “ac” vardelį) ir pasirinkus “Analysis type” reikšmę “AC sweep/noise”. Viską suvedus tiesiog spaudžiame OK, tada įsitikiname, kad mūsų schema simuliuojasi (PSpice->Run arba tiesiog F11). Štai kaip atrodo simuliacijos rezultatas:
ELAPLACE 1kHz slopinimas yra 40dB, todėl mūsų schema stiprina 42dB ir per dvi dekadas nuo idealios RIAA charakteristinos skiriasi +/-0.5dB (čia akylas skaitytojas gali pastebėti, kad šis grafikas skiriasi nuo ankstesiame straipsnelyje pateikto – taip yra todėl, kad į kitą vietą perkeltas skiriamasis kondensatorius C1). Galima daryti išvadą, kad nesame labai toli ir schema atlieka savo funkciją.
4. Tikslai ir apribojimai
Optimizatoriaus gyvenimo tikslas – pasiekti geriausias tikslų (goals) reikšmes išlaikant tinkamas apribojimų (constraints) reikšmes.
Pirmiausia paleidžiamas optimizatorius: PSpice->Run Optimizer:
Taip atrodys jūsų Optimizer lango vaizdas kai bus aprašytas tikslas “riaa_curve”. Tai atliekama meniu punkto “Edit->Specifications…” pagalba. Iššaukiamas štai toks dialogas:
Jūsiškiame dar nebus riaa_curve. Spaudžiame Add ir pamatome štai ką:
Čia būtų galima plėstis, bet aš apžvelgsiu tik šiam pratimui reikalingus dalykus:
- Name – specifikacijos pavadinimas
- Target – tikslo reikšmė. Mūsų tikslas – 0dB nuokrypis nuo idealios reikšmės.
- Range – leistinas nuokrypis nuo reikšmės – užteks jei pataikysime į +-0,05dB
- Constraint – pažymėjus šis tikslas taptų apribojimu.
- Simulation Profile or Circuit File – čia pasirenkame prieš tai aprašytą simuliacijos profilį ……ac.sim
- Evaluate – iš simuliacijos duomenų apskaičiuojamas skaičius, kuris ir turi atitikti tikslą. RIAA korektoriaus atveju tiesiog skaičiuojama skirtumą tarp minimalios ir maksimalios perdavimo funkcijos reikšmių, kas ir atitinka bendrą nuokrypį neatsižvelgiant į ne visai tikslų bendrą stiprinimą – tebūnie tie 2dB papildomo stiprinimo mums nesvarbūs.
Viską surašę spaudžiame OK. Tada galima patikrinti esamą situaciją: “Tune->update performance”. Rodo, kad esama parametro reikšmė – 1,10863. Tuomet įsitikiname, kad komponentų parametrai turi įtakos: “Tune->update derrivatives” ir “Tune->show derrivatives”. Pamatome, kad ne visi parametrai įtakos turi:
R9 ir R10 išvestinės lygios 0, nes šių komponentų reikšmės schemoje fiksuotos, o ne atitinkamai {R9} ir {R10}, bet tai nesvarbu, nes šios varžos nustato stiprinimą, į kurį dabar dėmesio nekreipiame. Paleidus automatinį optimizavimą “Tune -> auto -> start” prasideda procesas:
Čia matome jau trečią iteraciją bei tai, jog jau įvykdyta 15 simuliacijų. Kai kurių komponentų reikšmės pakeistos. O štai galutinis rezultatas:
Kaip matote, nuokrypis nuo idealo jau tik 0,3dB. Atlikta 74 simuliacijos parinkinėjant parametrų reikšmes. Kiek tai užtruktų atliekant rankytėmis? Ir ar pavyktų rasti optimalų variantą? Dabar pabandykime pasižiūrėti į dažninę charakteristiką su naujaisiais parametrais. Tam spaudžiame “Edit->update schematic” ir parinktos reikšmės bus įrašytos į “current” stulpelį. Jei “Optimizer parameters” nustatyta simuliuoti su “current” reikšmėmis, paleidus simuliavimą (Capture lange PSpice->run (F11)) turėtume pamatyti štai ką:
Stiprinimą taip pat būtų galima pritempti prie reikiamo parenkant R9 ir R10, bet tai palieku kaip namų darbą
Viskas ko aš nepasakiau yra [PDF] Optimizer User’s Guide.
Sėkmės optimizuojant! Jei kiltų klausimų ar būtų komentarų, nesikuklinkite ir tarkite žodį po pranešimu ar forume. Sėkmės!
Tags: korektorius, optimizer, orcad, pspice, riaa


[...] mase teko kompensuoti jo impedansą. Tam prireikė kondensatoriaus ir net induktyvumo. Optimizatorius siūlė net ritelę, bet teko jam uždrausti lipti aukščiau minėto skaičiaus ir suktis iš [...]