void ObserverTest::test_SMO_ZOH() { init(); SP::ControlZOHSimulation simZOH(new ControlZOHSimulation(_t0, _T, _h)); simZOH->addDynamicalSystem(_DS); simZOH->addSensor(_sensor, _h); simZOH->addActuator(_pid, _h); SP::Observer smo(new SlidingReducedOrderObserver(_sensor, *_xHat0, _C, _L)); simZOH->addObserver(smo, _h); simZOH->initialize(); simZOH->run(); SimpleMatrix& data = *simZOH->data(); ioMatrix::write("SMO_ZOH.dat", "ascii", data, "noDim"); double error =0.0; bool test = !((error=ioMatrix::compareRefFile(data, "SMO.ref", _tol)) >= 0.0 && error > _tol); std::cout << "------- Integration done -------" << test <<std::endl; CPPUNIT_ASSERT_EQUAL_MESSAGE("test_SMO_ZOH : ", test, true); }
void ObserverTest::test_SMO_ZOH() { init(); SP::ControlZOHSimulation simZOH(new ControlZOHSimulation(_t0, _T, _h)); simZOH->addDynamicalSystem(_DS); simZOH->addSensor(_sensor, _h); simZOH->addActuator(_pid, _h); SP::Observer smo(new SlidingReducedOrderObserver(_sensor, *_xHat0, _C, _L)); simZOH->addObserver(smo, _h); simZOH->initialize(); simZOH->run(); SimpleMatrix& data = *simZOH->data(); ioMatrix::write("SMO_ZOH.dat", "ascii", data, "noDim"); // Reference Matrix SimpleMatrix dataRef(data); dataRef.zero(); ioMatrix::read("SMO.ref", "ascii", dataRef); std::cout << "------- Integration done, error = " << (data - dataRef).normInf() << " -------" <<std::endl; CPPUNIT_ASSERT_EQUAL_MESSAGE("test_SMO_ZOH : ", (data - dataRef).normInf() < _tol, true); }
string Satori::GetSentence(const string& name) { string script, sentence=name; /*++m_nest_count; if ( m_nest_limit > 0 && m_nest_count > m_nest_limit ) { sender << "呼び出し回数超過:" << name << endl; --m_nest_count; return string("(" + name + ")"); }*/ // トークをさくらスクリプトに変換 const Talk *pTalk = GetSentenceInternal(sentence); if ( pTalk ) { Sender::nest_object smo(2); script = SentenceToSakuraScriptExec(*pTalk); sender << "return: " << script << "" << endl; } return script; }
void SVM::train(Problem train) { KernelParams p = KernelParams(); smo(train, p); }