Scilab simulation Script
eng -
fr
Output probability density of autonomous second order IIR filter
function [x,y]=mhistplot(n,data)
p=size(data,'*')
data=data(:)
if size(n,'*')==1 then
x = linspace(min(data), max(data), n+1)';
else
x=n(:)
end,
n=prod(size(x));
[ind , y] = dsearch(data, x);
y=[y;y(n-1)];
nx=maxi(min(15,prod(size(x))-1),1);
endfunction
set("figure_style","old")
load SCI/macros/scicos/lib
exec(loadpallibs,-1)
%tcur=0;%cpr=list();alreadyran=%f;needstart=%t;needcompile=4;%state0=list();
prot=funcprot();funcprot(0);
deff('disablemenus()',' ')
deff('enablemenus()',' ')
funcprot(prot)
load(MODNUM+'/simu/lin_chua_sim/lin_chua_sim.cos')
context=scs_m.props("context");
execstr(context);
tolerances=scs_m.props.tol;
solver=tolerances(6);
scs_m.props.context(3)='Nbit=16';
ci=0.66:2e-3:0.68;
Nbsampl=1e4;
Nbsampl=5e3;
z=zeros(size(ci,2),Nbsampl);
for j=1:size(ci,2)
scs_m.props.context(6)='ci='+string(ci(j));
%scicos_context=struct();
[%scicos_context,ierr]=script2var(scs_m.props.context,%scicos_context);
[scs_m,%cpr,needcompile,ok]=do_eval(scs_m,%cpr);
[%cpr,%state0_n,needcompile,alreadyran,ok]=do_update(%cpr,%state0,needcompile);
%state0=%state0_n;
%tcur=0;
%cpr.state=%state0;
tf=scs_m.props.tf;
[state,t]=scicosim(%cpr.state,%tcur,tf,%cpr.sim,'start',tolerances);
timer();
y=[];
%tcur=0;
for i=1:Nbsampl
tf=i*Te;
[state,t]=scicosim(%cpr.state,%tcur,tf,%cpr.sim,'run',tolerances);
%cpr.state=state;
%tcur=tf;
Nblock=3;
y(1,i)=state("z")(%cpr.sim("zptr")(Nblock):%cpr.sim("zptr")(Nblock+1)-1);
Nblock=6;
y(2,i)=state("z")(%cpr.sim("zptr")(Nblock):%cpr.sim("zptr")(Nblock+1)-1);
end
z(j,:)=y(1,:);
Tsim=timer();disp('Tsim:'+string(Tsim));
end
clear y;
k=200;
c=zeros(size(ci,2),k+1);
for j=1:size(ci,2)
[a,b]=mhistplot(k,z(j,:));
c(j,:)=matrix(b,1,k+1);
end
x=(1:size(ci,2))/size(ci,2);
y=(1:k+1)/k;
z=c/max(c);
set("figure_style","new");
scf(100);
plot3d(x,y,z,11,45,'X@Y@Z',[2,2,4])
lin_chua_sim.sce
Figure : Scope results
lin_chua_sim.cos
IRCOM Group
Alan Layec