349
edits
(Added category) |
|||
Line 571: | Line 571: | ||
.END | .END | ||
</syntaxhighlight> | |||
}} | |||
=== A circuit with a linear VCVS === | |||
To parse an IFF format netlist of the VCVS circuit we can use the following command | |||
{{Code|Load the VCVS circuit structure parsing an IFF netlist |<syntaxhighlight lang="octave" style="font-size:13px"> | |||
outstruct = prs_iff ("vcvs"); | |||
</syntaxhighlight> | |||
}} | |||
The IFF netlist consists of the .cir file named "vcvs.cir" shown below | |||
{{Code|IFF netlist for the VCVS circuit (.cir file)|<syntaxhighlight lang="text" style="font-size:13px"> | |||
%0.1b1 | |||
% A Simple linear VCVS example | |||
% Input voltage sources | |||
Mvoltagesources sinwave 2 4 | |||
1 4 | |||
Ampl f delay shift | |||
1 1 0.0 0.0 | |||
1 0 | |||
END | |||
% VCVS | |||
Mvcvs LIN 4 1 | |||
1 1 | |||
Gain | |||
5.0 | |||
2 0 1 0 | |||
% Resistor | |||
Mresistors LIN 2 1 | |||
1 1 | |||
R | |||
1 | |||
1 2 | |||
END | |||
</syntaxhighlight> | |||
}} | |||
and of the .nms file named "and.nms shown below | |||
{{Code|IFF netlist for the VCVS circuit (.nms file)|<syntaxhighlight lang="text" style="font-size:13px"> | |||
% 0.1b1 | |||
1 V_controller | |||
2 V_controlled | |||
</syntaxhighlight> | |||
}} | |||
The implementation for the VCVS with linear gain is shown below | |||
{{Code|Model evaluator file for simple VCVS model |<syntaxhighlight lang="octave" style="font-size:13px"> | |||
function [a,b,c] = Mvcvs (string, parameters, parameternames, extvar, | |||
intvar, t) | |||
if isempty(intvar) | |||
intvar = 0; | |||
endif | |||
switch string | |||
##LCR part | |||
case "LIN" | |||
for ii=1:length(parameternames) | |||
eval([parameternames{ii} "=" num2str(parameters(ii)) ";"]) | |||
endfor | |||
j = intvar (1); | |||
Vin = extvar (3) - extvar (4); | |||
V = Vin * Gain; | |||
a = zeros (5); | |||
b = [0 0 0 0 1; | |||
0 0 0 0 -1; | |||
0 0 0 0 0; | |||
0 0 0 0 0; | |||
1 -1 -Gain Gain 0]; | |||
c = [0 0 0 0 0]; | |||
break | |||
otherwise | |||
error (["unknown section:" string]) | |||
endswitch | |||
endfunction | |||
</syntaxhighlight> | |||
}} | |||
{{Code|Run a simple transient simulation with the VCVS circuit |<syntaxhighlight lang="octave" style="font-size:13px"> | |||
>> x = [0 0 0 0]'; | |||
>> t = linspace(0,1,50); | |||
>> [out, niter] = tst_backward_euler (outstruct, x, t, 1e-6, 100, pltvars, [0 1]); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
}} | }} |
edits