Читайте также:
|
|
Составим структурную схему программной реализации регулятора.
Передаточная функция нашего регулятора:
Разделим числитель и знаменатель на , получим
Структурная схема примет вид:
Рисунок 14. Структурная схема программной реализации регулятора
В соответствии с этой схемой и учетом того, что входы элементов задержки будут описаны как , уравнения состояния запишем в виде:
В качестве языка программирования выберем язык С++.
Файл rreg.h:
#pragma once
#include <vector>
using namespace std;
class rreg
{
public:
vector<double> y; //Массив с значениями выходного воздействия регулятора
void regulator(double,double,double); //Функция рассчета
};
Файл rreg.cpp:
#include "rreg.h"
#include "iostream"
#include <conio.h>
void main()
{
rreg r;
//t= 0.0020846 Период дискретизации
//v=1 Входное воздействие на регулятор
//T=0.2 Время симуляции
r.regulator(0.0020846, 1, 0.2);
for (int i=0; i<r.y.size(); i++)
{
cout << r.y[i] << endl;
}
getch();
}
// Шаблон циклической программы для микроконтроллера
void rreg::regulator(double t, double v, double T) //Период дискретизации,Входное воздействие на регулятор,Время симуляции
{
double x1,x2,x3;
double t1,t2,t3,t4;
x1=0;
x2=0;
x3=0;
for(int i=0;i<(T/t);i++)
{
t1=x2;
t2=x3;
t3=x2*(-0.4286)+x3*0.8571+v;
x1=t1,x2=t2,x3=t3;
t4=x1*17.41+x2*(-30.03)+x3*13.2; //выходное воздействие регулятора
y.push_back(t4);
}
}
Дата добавления: 2015-10-13; просмотров: 66 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Расчет регулятора | | | ОБЩИЕ ПОЛОЖЕНИЯ |