void MainWindow::data() { double amplitude = ui->dSpinAmp->value(); double periodo = ui->dSpinPeriodo->value(); double offSet = ui->dSpinOffSet->value(); int canalEscrita = ui->cb_canalEscrita->currentIndex(); int tipoSinal = ui->comboTipoSinal->currentIndex(); bool windUP = false; bool malhaAberta = ui->radioAberta->isChecked(); bool malhaFechada = ui->radioFechada->isChecked(); bool primeiraOrdem = ui->rbSistemaO1->isChecked(); bool segundaOrdem = ui->rbSistemaO2->isChecked(); bool observador = ui->radioObservador->isChecked(); bool seguidor = ui->radioSeguidor->isChecked(); //bool controladorCascataO2 = ui->radioCascata->isChecked(); //bool controladorSimplesO2 = ui->radioSimples->isChecked(); double polo1[2] = {ui->dSpinP1Real_Obs->value(),ui->dSpinComplexo_Obs->value()}; double polo2[2] = {ui->dSpinP2Real_Obs->value(),-(ui->dSpinComplexo_Obs->value())}; qDebug() << "polos main windows"; qDebug() << polo1[0] << polo1[1]; qDebug() << polo2[0] << polo2[1]; if(malhaAberta) { control->setTensao(amplitude); control->setTipoMalha(M_ABERTA); control->setWindUP(false); } else if(malhaFechada) { windUP = ui->windup->isChecked(); control->setWindUP(windUP); control->setTensao(0); control->setAmplitude(amplitude); control->setTipoMalha(M_FECHADA); controladorPID(); if(primeiraOrdem) { control->setTipoOrdemSistema(SISTEMA_ORDEM_1); control->setCanalLeitura(0); } else if(segundaOrdem) { int tipoTr = ui->combo_Tr->currentIndex(); int tipoTs = ui->combo_Ts->currentIndex(); int tipoMp = ui->combo_Mp->currentIndex(); control->setTipoTr(tipoTr); control->setTipoTs(tipoTs); control->setTipoMp(tipoMp); control->setTipoOrdemSistema(SISTEMA_ORDEM_2); control->setCanalLeitura(1); } if(observador) { control->setPolos(polo1,polo2); control->setObservador(true); } else { control->setObservador(false); } if(seguidor) { control->setGanhosSeguidor(matGanhosSeguidor); } } if(tipoSinal == ALEATORIO) { double auxForRand = ui->dSpinAux->value(); control->setAuxForRand(auxForRand); } control->setCanalEscrita(canalEscrita); control->setPeriodo(periodo); control->setOffSet(offSet); control->setTipoSinal(tipoSinal); }
/******************************************************************************* *Função principal do controle de velocidade ----------------------------------- */ void controleVelocidade(void) { updateEncoders(); // Updates the distance and speeds controladorPID(); // Speed controller }