//Código para executar simulação do XCOS em modo batch, alterando os //parâmetros de entrada para cada simulação. //Limpa a tela e variáveis clc clear() close() // Abre os blocos de biblioteca. loadXcosLibs(); loadScicos(); //Abre o arquivo do XCOS a ser simulado. //Altere o nome do arquivo. importXcosDiagram("mck_aula20_batch.zcos") // Define o ambiente: quatro variáveis: // y1 : amplitude da excitação // f1 : frequência da excitação // zeta : fator de amortecimento // Tf : tempo total de simulação typeof(scs_m) // estrutura de dados scs_m.props.context; // definições // Defina o intervalo de zeta //zeta=0.05:0.2:2; zeta = [0.05, 0.1, 0.2, 0.5, 1, 1.5] // Defina o intervalo de f1 f1 = 0.01:0.1:2; // Defina o valor de y1 y1 = 1; // Atribua as constantes ao contexto Context.Tf=100; Context.y1 = y1; // Loop de zeta for m = 1:size(zeta,2); // Loop de f1 for n = 1:size(f1,2); m n // Atribui as variáveis ao contexto Context.zeta = zeta(m); Context.f1 = f1(n); // Executa a simulação com o contexto scicos_simulate(scs_m,Context); // Recebe as variáveis de resposta enviadas ao "workspace" t(:,n) = x_t.time; x(:,n) = x_t.values; // Calcula a amplitude da resposta a aprtir do RMS do sinal // multiplicado por raiz de 2 (amplitude harmônica). Ax(m,n) = sqrt(2)*sqrt(sum(x_t.values.*conj(x_t.values))/size(x_t.values,1)); Ay(m,n) = sqrt(2)*sqrt(sum(y_t.values.*conj(y_t.values))/size(y_t.values,1)); end end // Calcula o fator de amplificação AMP = Ax./(Ay/39.47); // fecha as janelas abertas close(); // Plota as curvas de AMP em função de f1 para cada zeta. figure plot(f1,AMP,'o-') f = gcf(); f.background = 8; // Lembre que a freq. natural desse sistema é 1 Hz.