Exemple #1
0
  def test_XML(self):
    self.message("JModelica XML parsing")
    ocp = SymbolicOCP()
    ocp.parseFMI('data/cstr.xml')
    
    self.assertEqual(ocp.t0,0)
    self.assertEqual(ocp.tf,150)
    #self.assertFalse(ocp.t0_free)
    #self.assertFalse(ocp.tf_free)
    self.assertTrue(ocp.lterm.size()==0)
    self.assertTrue(ocp.mterm.size()==1)
    m = ocp.mterm
    self.assertTrue(isinstance(m,SXMatrix))
    self.assertTrue(isinstance(ocp.t,SXMatrix))
    self.assertEquals(str(m),'cost.atTime(150)')
    print dir(ocp)
    self.assertEquals(ocp.ode.size(),3)
    self.assertEquals(len(ocp.x),3) # there are three states
    c = ocp.variable("cstr.c")
    T = ocp.variable("cstr.T")
    cost = ocp.variable("cost")
    self.assertTrue(isinstance(c,Variable))
    
    self.assertEquals(c.getName(),"cstr.c")
    self.assertEquals(T.getName(),"cstr.T")
    self.assertEquals(cost.getName(),"cost")
    self.assertEquals(c.getNominal(),1000)
       
    #print c.atTime(0)
       
    c = c.var()
    T = T.var()
    cost = cost.var()
    
    u = ocp.variable("u").var()
    self.assertEquals(ocp.path.size(),3)
    #self.assertEquals(len(ocp.cfcn_lb),3)
    #self.assertEquals(len(ocp.cfcn_ub),3)
    #self.assertTrue(ocp.cfcn[0].isEqual(T)) 
    #self.assertTrue(ocp.cfcn[1].isEqual(u)) 
    #self.assertTrue(ocp.cfcn[2].isEqual(u)) 
    #self.assertTrue(ocp.cfcn_lb[0].isMinusInf()) 
    #self.assertEquals(ocp.cfcn_lb[1].getValue(),230) 
    #self.assertTrue(ocp.cfcn_lb[2].isMinusInf()) 
    #self.assertEquals(ocp.cfcn_ub[0].getValue(),350) 
    #self.assertTrue(ocp.cfcn_ub[1].isInf())
    #self.assertEquals(ocp.cfcn_ub[2].getValue(),370) 
    print ocp.initial
    print c,T,cost
    #print c.atTime(0)
    f=SXFunction([vertcat([c,T,cost])],[ocp.initial])
    f.init()
    return 
    f.evaluate()
    self.checkarray(f.output(),matrix([-956.271065,-250.051971,0]).T,"initeq")

    
    mystates = []
Exemple #2
0
    def test_XML(self):
        self.message("JModelica XML parsing")
        ocp = SymbolicOCP()
        ocp.parseFMI('data/cstr.xml')

        self.assertEqual(ocp.t0, 0)
        self.assertEqual(ocp.tf, 150)
        #self.assertFalse(ocp.t0_free)
        #self.assertFalse(ocp.tf_free)
        self.assertTrue(ocp.lterm.size() == 0)
        self.assertTrue(ocp.mterm.size() == 1)
        m = ocp.mterm
        self.assertTrue(isinstance(m, SXMatrix))
        self.assertTrue(isinstance(ocp.t, SXMatrix))
        self.assertEquals(str(m), 'cost.atTime(150)')
        print dir(ocp)
        self.assertEquals(ocp.ode.size(), 3)
        self.assertEquals(len(ocp.x), 3)  # there are three states
        c = ocp.variable("cstr.c")
        T = ocp.variable("cstr.T")
        cost = ocp.variable("cost")
        self.assertTrue(isinstance(c, Variable))

        self.assertEquals(c.getName(), "cstr.c")
        self.assertEquals(T.getName(), "cstr.T")
        self.assertEquals(cost.getName(), "cost")
        self.assertEquals(c.getNominal(), 1000)

        #print c.atTime(0)

        c = c.var()
        T = T.var()
        cost = cost.var()

        u = ocp.variable("u").var()
        self.assertEquals(ocp.path.size(), 3)
        #self.assertEquals(len(ocp.cfcn_lb),3)
        #self.assertEquals(len(ocp.cfcn_ub),3)
        #self.assertTrue(ocp.cfcn[0].isEqual(T))
        #self.assertTrue(ocp.cfcn[1].isEqual(u))
        #self.assertTrue(ocp.cfcn[2].isEqual(u))
        #self.assertTrue(ocp.cfcn_lb[0].isMinusInf())
        #self.assertEquals(ocp.cfcn_lb[1].getValue(),230)
        #self.assertTrue(ocp.cfcn_lb[2].isMinusInf())
        #self.assertEquals(ocp.cfcn_ub[0].getValue(),350)
        #self.assertTrue(ocp.cfcn_ub[1].isInf())
        #self.assertEquals(ocp.cfcn_ub[2].getValue(),370)
        print ocp.initial
        print c, T, cost
        #print c.atTime(0)
        f = SXFunction([vertcat([c, T, cost])], [ocp.initial])
        f.init()
        return
        f.evaluate()
        self.checkarray(f.output(),
                        matrix([-956.271065, -250.051971, 0]).T, "initeq")

        mystates = []
Exemple #3
0
  def test_XML(self):
    self.message("JModelica XML parsing")
    ocp = SymbolicOCP()
    ocp.parseFMI('data/cstr.xml')
    
    # Separate differential and algebraic variables
    ocp.split_dae()
    
    self.assertEqual(ocp.t0,0)
    self.assertEqual(ocp.tf,150)
    #self.assertFalse(ocp.t0_free)
    #self.assertFalse(ocp.tf_free)
    self.assertTrue(ocp.lterm.nnz()==0)
    self.assertTrue(ocp.mterm.nnz()==1)
    m = ocp.mterm
    self.assertTrue(isinstance(m,SX))
    self.assertTrue(isinstance(ocp.t,SX))
    self.assertEquals(str(m),'cost')
    print dir(ocp)
    self.assertEquals(ocp.dae.nnz(),3)
    print type(ocp.s)
    self.assertEquals(ocp.s.nnz(),3) # there are three states
    c = ocp("cstr.c")
    T = ocp("cstr.T")
    cost = ocp("cost")
    self.assertTrue(isinstance(c,SX))
    
    self.assertEquals(c.getName(),"cstr.c")
    self.assertEquals(T.getName(),"cstr.T")
    self.assertEquals(cost.getName(),"cost")
    self.assertEquals(ocp.nominal("cstr.c"),1000)
   
    u = ocp("u")
    #self.assertEquals(ocp.path.nnz(),3)
    #self.assertEquals(len(ocp.cfcn_lb),3)
    #self.assertEquals(len(ocp.cfcn_ub),3)
    #self.assertTrue(ocp.cfcn[0].isEqual(T)) 
    #self.assertTrue(ocp.cfcn[1].isEqual(u)) 
    #self.assertTrue(ocp.cfcn[2].isEqual(u)) 
    #self.assertTrue(ocp.cfcn_lb[0].isMinusInf()) 
    #self.assertEquals(ocp.cfcn_lb[1].getValue(),230) 
    #self.assertTrue(ocp.cfcn_lb[2].isMinusInf()) 
    #self.assertEquals(ocp.cfcn_ub[0].getValue(),350) 
    #self.assertTrue(ocp.cfcn_ub[1].isInf())
    #self.assertEquals(ocp.cfcn_ub[2].getValue(),370) 
    print ocp.init
    print c,T,cost
    #print c.atTime(0)
    f=SXFunction([vertcat([c,T,cost])],[ocp.init])
    f.init()
    return 
    f.evaluate()
    self.checkarray(f.getOutput(),matrix([-956.271065,-250.051971,0]).T,"initeq")

    
    mystates = []
Exemple #4
0
  def test_XML(self):
    self.message("JModelica XML parsing")
    ivp = DaeBuilder()
    ivp.parseFMI('data/cstr.xml')
    
    # Separate differential and algebraic variables
    ivp.split_dae()
    
    self.assertTrue(len(ivp.q)==0)
    self.assertTrue(len(ivp.y)==1)
    m = vertcat(ivp.ydef)
    self.assertTrue(isinstance(m,MX))
    self.assertEquals(str(m),'cost')
    print dir(ivp)
    self.assertEquals(len(ivp.dae),3)
    print type(ivp.s)
    self.assertEquals(len(ivp.s),3) # there are three states
    c = ivp("cstr.c")
    T = ivp("cstr.T")
    cost = ivp("cost")
    self.assertTrue(isinstance(c,MX))
    
    self.assertEquals(c.getName(),"cstr.c")
    self.assertEquals(T.getName(),"cstr.T")
    self.assertEquals(cost.getName(),"cost")
    self.assertEquals(ivp.nominal("cstr.c"),1000)
   
    u = ivp("u")
    #self.assertEquals(ivp.path.nnz(),3)
    #self.assertEquals(len(ivp.cfcn_lb),3)
    #self.assertEquals(len(ivp.cfcn_ub),3)
    #self.assertTrue(ivp.cfcn[0].isEqual(T)) 
    #self.assertTrue(ivp.cfcn[1].isEqual(u)) 
    #self.assertTrue(ivp.cfcn[2].isEqual(u)) 
    #self.assertTrue(ivp.cfcn_lb[0].isMinusInf()) 
    #self.assertEquals(ivp.cfcn_lb[1].getValue(),230) 
    #self.assertTrue(ivp.cfcn_lb[2].isMinusInf()) 
    #self.assertEquals(ivp.cfcn_ub[0].getValue(),350) 
    #self.assertTrue(ivp.cfcn_ub[1].isInf())
    #self.assertEquals(ivp.cfcn_ub[2].getValue(),370) 
    print ivp.init
    print c,T,cost
    #print c.atTime(0)
    f=MXFunction('f', [vertcat([c,T,cost])],[vertcat(ivp.init)])
    return 
    f.evaluate()
    self.checkarray(f.getOutput(),matrix([-956.271065,-250.051971,0]).T,"initeq")

    
    mystates = []
Exemple #5
0
    def test_XML(self):
        self.message("JModelica XML parsing")
        ivp = DaeBuilder()
        ivp.parseFMI('data/cstr.xml')

        # Separate differential and algebraic variables
        ivp.split_dae()

        self.assertTrue(len(ivp.q) == 0)
        self.assertTrue(len(ivp.y) == 1)
        m = vertcat(ivp.ydef)
        self.assertTrue(isinstance(m, MX))
        self.assertEquals(str(m), 'cost')
        print dir(ivp)
        self.assertEquals(len(ivp.dae), 3)
        print type(ivp.s)
        self.assertEquals(len(ivp.s), 3)  # there are three states
        c = ivp("cstr.c")
        T = ivp("cstr.T")
        cost = ivp("cost")
        self.assertTrue(isinstance(c, MX))

        self.assertEquals(c.getName(), "cstr.c")
        self.assertEquals(T.getName(), "cstr.T")
        self.assertEquals(cost.getName(), "cost")
        self.assertEquals(ivp.nominal("cstr.c"), 1000)

        u = ivp("u")
        #self.assertEquals(ivp.path.nnz(),3)
        #self.assertEquals(len(ivp.cfcn_lb),3)
        #self.assertEquals(len(ivp.cfcn_ub),3)
        #self.assertTrue(ivp.cfcn[0].isEqual(T))
        #self.assertTrue(ivp.cfcn[1].isEqual(u))
        #self.assertTrue(ivp.cfcn[2].isEqual(u))
        #self.assertTrue(ivp.cfcn_lb[0].isMinusInf())
        #self.assertEquals(ivp.cfcn_lb[1].getValue(),230)
        #self.assertTrue(ivp.cfcn_lb[2].isMinusInf())
        #self.assertEquals(ivp.cfcn_ub[0].getValue(),350)
        #self.assertTrue(ivp.cfcn_ub[1].isInf())
        #self.assertEquals(ivp.cfcn_ub[2].getValue(),370)
        print ivp.init
        print c, T, cost
        #print c.atTime(0)
        f = MXFunction('f', [vertcat([c, T, cost])], [vertcat(ivp.init)])
        return
        f.evaluate()
        self.checkarray(f.getOutput(),
                        matrix([-956.271065, -250.051971, 0]).T, "initeq")

        mystates = []