Nastro trasportatore con sensori...

di il
38 risposte

38 Risposte - Pagina 2

  • Re: Nastro trasportatore con sensori...

    Rieccomi con qualche risultato ottenuto....%%%%%%%%%%%%%%%%%%%%%%%%%%%%PROGRAMMA
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %%%%%%%%%%%%%%%%%%%MISURE
    %%%%%%tutte le misure sono in metri
    L=2; %distanza tra il sensore tx e il sensore rx che si trovano di fronte
    %d=0.2; %distanza tra un sensore tx e l'altro, distanza tra un sensore rx e l'altro
    %posxtx1=d; %coordinata x del primo tx
    %posxtx2=posxtx1+d; %coordinata x del secondo tx
    %posxtx3=posxtx2+d; %coordinata x del terzo tx
    %posxtx4=posxtx3+d; %coordinata x del quarto tx
    %coordinate y dei trasmettitori
    %posytx1=0;
    %posytx1=posytx2;
    %posytx2=posytx3;
    %posytx3=posytx4;
    %posxrx1=d; %coordinata x del primo rx
    %posxrx2=posxrx1+d; %coordinata x del secondo rx
    %posxrx3=posxrx2+d; %coordinata x del terzo rx
    %posxrx4=posxrx3+d; %coordinata x del quarto rx
    %coordinate y dei ricevitori
    %posyrx1=L;
    %posyrx1=posyrx2;
    %posyrx2=posyrx3;
    %posyrx3=posyrx4;
    %xval=0.4; %larghezza della valigia
    %yval=0.7; %lunghezza valigia
    %distanze tra trasmettitore e ricevitore posti di fronte
    %dtx1rx1 = L;
    %dtx1rx1 = dtx2rx2;
    %dtx1rx1 = dtx2rx2;
    %dtx2rx2 = dtx4rx4;
    %distanza tra tx e rx posti in parte all' rx di fronte
    %dtx1rx2 = sqrt(d^(2) + L^(2));
    %dtx1rx2 = dtx2rx1;
    %dtx2rx1 = dtx2rx3;
    %dtx2rx3 = dtx3rx2;
    %dtx3rx2 = dtx3rx4;
    %dtx3rx4 = dtx4rx3;
    %distanza tra tx e rx posto due rx in parte all' rx di fronte
    %dtx1rx3 = sqrt((2*d)^2 + L^(2));
    %dtx1rx3 = dtx2rx4;
    %dtx2rx4 = dtx3rx1;
    %dtx3rx1 = dtx4rx2;
    %distanza tra tx e rx posto tre rx in parte all' rx di fronte
    %dtx1rx4 = sqrt((3*d)^2 + L^(2));
    %dtx1rx4 = dtx4rx1;
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    d0=1; %distanza di riferimento (1m)
    d=L; %distanza tra tx e rx posti di fronte (2m)
    PL0l=35.4; %pathloss di riferimento nel caso los(misurata alla distanza di 1m) in dB
    PL0nl=57.9; %pathloss di riferimento nel caso nlos(misurata alla distanza di 1m) in dB
    a=1;
    i=1;
    PL1=[]; %pathloss tx1-rx1
    PL2=[]; %pathloss tx2-rx2
    PL3=[]; %pathloss tx3-rx3
    PL4=[]; %pathloss tx4-rx4
    while i==1;
    i=round(rand(size(a))); %crea la valigia
    if i==1;
    val=[0 0 0 0 0 0 0]; %valigia
    k=1;
    for t=0:10:1500; %progressione del tempo in millisecondi

    if t<=200;
    val=[0 0 0 0 0 0 0];
    PL1(k)=los(d,d0,PL0l);
    PL2(k)=los(d,d0,PL0l);
    PL3(k)=los(d,d0,PL0l);
    PL4(k)=los(d,d0,PL0l);
    end
    if t>200 & t<=300;
    val=[0 0 0 0 0 0 1];
    PL1(k)=nlos(d,d0,PL0nl);
    PL2(k)=los(d,d0,PL0l);
    PL3(k)=los(d,d0,PL0l);
    PL4(k)=los(d,d0,PL0l);
    end
    if t>300 & t<=400;
    val=[0 0 0 0 0 1 1];
    PL1(k)=nlos(d,d0,PL0nl);
    PL2(k)=los(d,d0,PL0l);
    PL3(k)=los(d,d0,PL0l);
    PL4(k)=los(d,d0,PL0l);
    end
    if t>400 & t<=500;
    val=[0 0 0 0 1 1 1];
    PL1(k)=nlos(d,d0,PL0nl);
    PL2(k)=nlos(d,d0,PL0nl);
    PL3(k)=los(d,d0,PL0l);
    PL4(k)=los(d,d0,PL0l);
    end
    if t>500 & t<=600;
    val=[0 0 0 1 1 1 1];
    PL1(k)=nlos(d,d0,PL0nl);
    PL2(k)=nlos(d,d0,PL0nl);
    PL3(k)=los(d,d0,PL0l);
    PL4(k)=los(d,d0,PL0l);
    end
    if t>600 & t<=700;
    val=[0 0 1 1 1 1 1];
    PL1(k)=nlos(d,d0,PL0nl);
    PL2(k)=nlos(d,d0,PL0nl);
    PL3(k)=nlos(d,d0,PL0nl);
    PL4(k)=los(d,d0,PL0l);
    end
    if t>700 & t<=800;
    val=[0 1 1 1 1 1 1];
    PL1(k)=nlos(d,d0,PL0nl);
    PL2(k)=nlos(d,d0,PL0nl);
    PL3(k)=nlos(d,d0,PL0nl);
    PL4(k)=los(d,d0,PL0l);
    end
    if t>800 & t<=900;
    val=[1 1 1 1 1 1 0];
    PL1(k)=los(d,d0,PL0l);
    PL2(k)=nlos(d,d0,PL0nl);
    PL3(k)=nlos(d,d0,PL0nl);
    PL4(k)=nlos(d,d0,PL0nl);
    end
    if t>900 & t<=1000;
    val=[1 1 1 1 1 0 0];
    PL1(k)=los(d,d0,PL0l);
    PL2(k)=nlos(d,d0,PL0nl);
    PL3(k)=nlos(d,d0,PL0nl);
    PL4(k)=nlos(d,d0,PL0nl);
    end
    if t>1000 & t<=1100;
    val=[1 1 1 1 0 0 0];
    PL1(k)=los(d,d0,PL0l);
    PL2(k)=los(d,d0,PL0l);
    PL3(k)=nlos(d,d0,PL0l);
    PL4(k)=nlos(d,d0,PL0nl);
    end
    if t>1100 & t<=1200;
    val=[1 1 1 0 0 0 0];
    PL1(k)=los(d,d0,PL0l);
    PL2(k)=los(d,d0,PL0l);
    PL3(k)=nlos(d,d0,PL0nl);
    PL4(k)=nlos(d,d0,PL0nl);
    end
    if t>1200 & t<=1300;
    val=[1 1 0 0 0 0 0];
    PL1(k)=los(d,d0,PL0l);
    PL2(k)=los(d,d0,PL0l);
    PL3(k)=los(d,d0,PL0l);
    PL4(k)=nlos(d,d0,PL0nl);
    end
    if t>1300 & t<=1400;
    val=[1 0 0 0 0 0 0 ];
    PL1(k)=los(d,d0,PL0l);
    PL2(k)=los(d,d0,PL0l);
    PL3(k)=los(d,d0,PL0l);
    PL4(k)=nlos(d,d0,PL0nl);
    end
    if t>1400 & t<=1500;
    val=[0 0 0 0 0 0 0];
    PL1(k)=los(d,d0,PL0l);
    PL2(k)=los(d,d0,PL0l);
    PL3(k)=los(d,d0,PL0l);
    PL4(k)=los(d,d0,PL0l);
    end

    k=k+1;
    end

    end
    end


    %%%%%%%%%%%%%%% LOS
    function [PL]=los(distanza, distanza0, PLref);
    %funzione che calcola la pathloss nel caso di los
    n=1.63; %pathloss exponent in office environment
    sigmas=1.9; %deviazione standard della variabile Sgauss
    Sgauss=randn(1)*sigmas; %variabile casuale con distribuzione gaussiana con media nulla e dev. standard sigmasrapp=distanza/distanza0;
    rapp=distanza/distanza0;
    T=10*n;
    K=T*log10(rapp);
    PL=PLref+K+Sgauss; %PLref e K sono in dB e quindi anche il risultato PL è in dB
    end


    %%%%%%%%%%%%%%%% NLOS
    function [PL]=nlos(distanza, distanza0, PLref);
    %funzione che calcola la pathloss nel caso di los
    n=3.07; %pathloss exponent in office environment
    sigmas=3.9; %deviazione standard della variabile Sgauss
    Sgauss=randn(1)*sigmas; %variabile casuale con distribuzione gaussiana con media nulla e dev. standard sigmasrapp=distanza/distanza0;
    rapp=distanza/distanza0;
    T=10*n;
    K=T*log10(rapp);
    PL=PLref+K+Sgauss; %PLref, K e Sgauss sono in dB e quindi anche il risultato PL è in dB
    end


    il programma funziona ora però devo trovare un modo per dire al mondo esterno tipo stampa a video o disegnino di come procede la valigia sul nastro.......avete qualche idea???come potrei fare?????
  • Re: Nastro trasportatore con sensori...

    Intanto potresti fare un grafico che rappresenta cosa "vede" ogni sensore al passare del tempo... perché in teoria è da quello che dovresti "intuire" il passaggio della valigia, giusto?
  • Re: Nastro trasportatore con sensori...

    Si è proprio così!!devo vedere il passaggio della valigia dai risultati dei sensori ma non so come fare...anche perchè devo mettere una soglia oltre il quale dico "qui c'è la valigia"....non so proprio come fare....
  • Re: Nastro trasportatore con sensori...

    Intanto guarda che forma hanno i PL con la funzione plot:

    figure(); %per aprire una nuova figura
    plot(x, y); % per fare il grafico

    Nel tuo caso al posto di x devi mettere il tempo (quindi k), e al posto di y i PL.
    In generale, x e y sono delle coppie di punti nel piano, quindi devono essere due vettori delle stesse dimensioni (non puoi fare plot(t, PL)
  • Re: Nastro trasportatore con sensori...

    Ok grazie ora lo faccio , ma il mio k è un valore e non un vettore...va bene lo stesso??
  • Re: Nastro trasportatore con sensori...

    No, hai ragione. Forse va bene t, se ha lo stesso numero di elementi dei PL. In questo modo sull'asse x avresti proprio il tempo. Ma dato che lo usi come indice del for lo devi ridefinire.
  • Re: Nastro trasportatore con sensori...

    Come lo ridefinisco?? in che senso?creo un dato uguale a t??
  • Re: Nastro trasportatore con sensori...

  • Re: Nastro trasportatore con sensori...

    Ok perciò ho messo in fondo al ciclo for :
    tempo(k)=t;
    ora metto sull asse x tempo e sull' asse y PL
    e cosi ottengo i grafici...
  • Re: Nastro trasportatore con sensori...

    Speriamo
  • Re: Nastro trasportatore con sensori...

    Non mi funziona più il programma a causa di qualche errore...io ho immesso i seguenti comandi:
    figure(PL1);
    plot(tempo, PL1);
    figure(PL2);
    plot(tempo, PL2);
    figure(PL3);
    plot(tempo, PL3);
    figure(PL4);
    plot(tempo, PL4);
    e lui risponde con i seguenti errori:
    ??? Error using ==> figure
    Single input must be an existing figure handle or a scalar integer from 1 to 2147483646

    Error in ==> nastro_tr_uwb at 170
    figure(PL1);
    cosa vuol dire????????
    grazie mille...
  • Re: Nastro trasportatore con sensori...

    Dentro le parentesi di "figure" devi metterci un numero.
    tipo figure(1) figure(2) ecc.
    altrimenti lasci le parentesi vuote e matlab automaticamente apre una nuova figura, senza che tieni il conto. Così: figure();
  • Re: Nastro trasportatore con sensori...

    Esatto ho fatto tutto e va tutto bene...me l'ha confermato anche il professore....solo che ora mi ha detto di passare al livello due del problema e cioè:
    NUOVA CONSEGNA:
    continuare il programma ipotizzando la regola in base alla quale i ricevitori segnalano la presenza di una valigia e simulare/calcolare le corrispondenti probabilità di falso allarme e detection

    in linguaggio normale più o meno cosa vuol dire che devo fare in matlab????

    p.s.:io non ho capito la regola cosa è.... anche se ho degli indizi che però a me risultano indecifrabili....

    potenza ricevuta < potenza ricevuta di riferimento x alfa con alfa compreso tra 0,7 e 0,5
    probabilità di falso allarme=probabilità che segnali la valigia mentre la valigia non c è
    probabilità di detection = probabilità che segnali la valigia quando la valigia c è veramente.....


    riuscireste a rendermi chiaro il tutto???grazie
    soprattutto in relazione a quello che dovrei fare in matlab......grazie in anticipo a tutti quelli che si cimentano e in particolare giug che già mi ha dato una mano fondamentale....
  • Re: Nastro trasportatore con sensori...

    Purtroppo qui rispondo solo io... devi accontentarti.
    Però a pensare che una settimana fa non sapevi neanche se sarebbe stato possibile risolvere il problema direi che è un grande successo.
    Quindi...
    Mi sembra che questo discorso abbia senso solo se hai diversi tipi di valigie ed oggetti, perché se le valigie sono tutte uguali il sistema darà in uscita sempre la stessa potenza...
    Come al solito non ho ben chiaro il problema quindi continuo ad immaginare.
    Tutte queste valigie/oggetti, di dimensioni e magari di materiali diversi, quando passano, il sensore riceve una potenza diversa.
    A questo punto bisogna stabilire una soglia di potenza per cui per il sensore c'è una valigia.
    Tutto quello che darà una potenza inferiore alla soglia il sensore dirà che non c'è una valigia, mentre se sta sopra la soglia dirà che c'è la valigia.
    Quindi, se capiterà una valigia vuota (è un esempio), la potenza ricevuta sarà sotto la soglia e il sensore dirà che non c'è nessuna valigia, quindi ci sarà un tipo di errore.
    Mentre, se a causa di un disturbo la potenza ricevuta sarà superiore alla soglia anche se la valigia non c'è ci sarà un falso allarme.
    Come puoi capire questo ragionamento non ha senso se le valigie sono tutte uguali.
  • Re: Nastro trasportatore con sensori...

    No non è purtroppo ma per fortuna che qui rispondi tu.....non puoi capire quanto sono contento di aver fatto quel che ho fatto seguendo le tue disposizioni e i tuoi consigli....anzi spero che continui a farlo sennò sarei spacciato....perciò GRAZIE!
    per quanto riguarda il problema il tuo ragionamento è giusto e lo condivido....in pratica se ho ben capito o genero valigie con caratteristiche diverse o introduco un rumore diverso ogni volta giusto???
    e poi sarebbe su quel nuovo risultato che dovrei imporre la regola vero???
Devi accedere o registrarti per scrivere nel forum
38 risposte