Changeset 1215 for library

Show
Ignore:
Timestamp:
10/13/10 21:23:36 (14 years ago)
Author:
vahalam
Message:

added test

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • library/tests/testsuite/LQG_test.cpp

    r1209 r1215  
    702702TEST (LQGU_PMSM_test){ 
    703703         
    704         int K = 10; 
    705         int Kt = 100; 
     704        int K = 5; 
     705        int Kt = 200; 
    706706        int N = 15; 
    707707 
     
    712712        double e = 0.0149;  
    713713 
    714         double OMEGAt = 1.15; 
     714        double OMEGAt = 11.5; 
    715715        double DELTAt = 0.000125; 
    716716 
     
    815815        vec losses(N); 
    816816                losses.zeros(); 
     817        vec omega(Kt+K); 
     818                omega.zeros(); 
    817819         
    818820        for(n = 0; n < N; n++) { 
     
    882884         
    883885                        losses(n) += (x.get_col(k+1).transpose() * X * x.get_col(k+1))(0);// + (u.transpose() * Y * u)(0);                       
    884                 }        
     886                } 
     887 
     888                omega += x.get_row(2); 
    885889        } 
    886890 
    887         cout << "Ztrata: " << sum(losses)/n << endl; 
     891        cout << "Ztrata: " << sum(losses)/N << endl; 
     892        //cout << "Trajektorie:\n" << omega(0,Kt-1)/N << endl; 
     893         
     894        ofstream log; 
     895        log.open ("log.txt"); 
     896        for(k = 0; k < Kt; k++) 
     897                log << k << "\t" << omega(k)/N + OMEGAt << endl; 
     898        log.close(); 
     899 
    888900} 
    889901 
     
    938950  
    939951        lq.finalLoss.Q.setCh(mat("1")); 
     952        lq.finalLoss.rv = RV("yt", 1, 0);        
     953 
     954        lq.validate();  
     955 
     956        lq.resetTime(); 
     957        lq.redesign(); 
     958 
     959        for(int k = K-1; k > 0; k--){ 
     960                //cout << "L: " << lq.getL() << endl; 
     961                lq.redesign(); 
     962        } 
     963 
     964        cout << "L: " << lq.getL() << endl; 
     965} 
     966 
     967TEST (LQGU_181_ten){ 
     968        /*                                               v ????? .8189 
     969                y_t = 1.81 y_{t-1} -.9 y_{t-2} + .00438 u_t + .00468 u_{t-1} 
     970 
     971                S = y^2 + u^2/1000 
     972 
     973                y_r = 0  :> u_t = -69.0908 y_{t-1} + 46.8955 y_{t-2}  -0.2509 u_{t-1} 
     974                y_r = 10 :> u_t = -69.0908 y_{t-1} + 46.8955 y_{t-2}  -0.2509 u_{t-1} + 233.7581 
     975        */ 
     976 
     977        int K = 150; 
     978        //yr = 10.0; 
     979 
     980        LQG_universal lq; 
     981        lq.rv = RV("ut", 1, 0);  
     982        RV rvc;  
     983        rvc = RV("yt", 1, -1);   
     984        rvc.add(RV("yt", 1, -2)); 
     985        rvc.add(RV("ut", 1, -1));        
     986        rvc.add(RV("1", 1, 0)); 
     987        lq.set_rvc(rvc); 
     988        lq.horizon = K; 
     989 
     990        Array<linfnEx> model(4);   
     991        model(0).A = mat("1.81"); 
     992        model(0).B = vec("0"); 
     993        model(0).rv = RV("yt", 1, -1); 
     994        model(0).rv_ret = RV("yt", 1, 0);         
     995        model(1).A = mat("-0.8189"); 
     996        model(1).B = vec("0"); 
     997        model(1).rv = RV("yt", 1, -2); 
     998        model(1).rv_ret = RV("yt", 1, 0);        
     999        model(2).A = mat("0.00438"); 
     1000        model(2).B = vec("0"); 
     1001        model(2).rv = RV("ut", 1, 0); 
     1002        model(2).rv_ret = RV("yt", 1, 0);        
     1003        model(3).A = mat("0.00468"); 
     1004        model(3).B = vec("0"); 
     1005        model(3).rv = RV("ut", 1, -1); 
     1006        model(3).rv_ret = RV("yt", 1, 0);        
     1007        lq.Models = model; 
     1008 
     1009        Array<quadraticfn> qloss(2);   
     1010        qloss(0).Q.setCh(mat("1 -10")); 
     1011        qloss(0).rv = RV("yt", 1, 0);    
     1012        qloss(0).rv.add(RV("1", 1, 0)); 
     1013        qloss(1).Q.setCh(mat("0.03162"));        
     1014        qloss(1).rv = RV("ut", 1, 0);    
     1015        lq.Losses = qloss; 
     1016  
     1017        lq.finalLoss.Q.setCh(mat("0")); 
    9401018        lq.finalLoss.rv = RV("yt", 1, 0);        
    9411019