|
|
  |
Автоматическое регулирование |
|
|
|
Jan 30 2007, 11:47
|
Участник

Группа: Свой
Сообщений: 72
Регистрация: 18-10-05
Из: Minsk
Пользователь №: 9 774

|
рекомендую взглянуть на методики настройки пид-регуляторов здесь - http://members.vicard.net/sensor/main1_10.htm
--------------------
"Never to be in love with your ideas"...
|
|
|
|
|
Sep 24 2007, 08:17
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(Waso @ Sep 24 2007, 06:44)  Есть ли смысл моделировать (искать и изучать программу) если у меня под рукой есть готовый макет (АРМ-овский Ев-борд и этот самый моторчик) ? Вообще у моторчика есть датчик выдающий 24 импульса за оборот, но по какимто причинам эти импульсы внутри одного оборота располагаются неравномерно. Да и при максимальной частоте вращения (4000) мне на 24 импульса скорости АРМа не хватит уже наверное (AT91SAM7X256).  IMHO программу под названием Matlab в любом случае полезно найти и изучить. Упоминавшийся мною Simulink - это ее огромный компонент для моделирования динамических систем. Отладочный боард вряд-ли хорошо рисует на компьютере графики, кроме того, в нем наверняка не очень просто задавать различные нагрузки и смотреть, к чему это приводит. Но в общем смотрите сами что Вам лучше. Сколько импульсов нужно на оборот - полностью зависит от динамики системы и от минимальной скорости вращения. Нужно чтобы во всех рабочих режимах частота импульсов была гораздо больше максимального существенного нуля или полюса. Иначе нули, возникающие при дискретизации, начнут взаимодействивать с остальной динамикой. Строго говоря, линейная модель осмысленна только для фиксированной частоты вращения - но линеаризацию никто не отменял.
--------------------
Пишите в личку.
|
|
|
|
Guest_TSerg_*
|
Sep 24 2007, 10:41
|
Guests

|
Цитата(Waso @ Sep 24 2007, 06:44)  Есть ли смысл моделировать (искать и изучать программу) если у меня под рукой есть готовый макет (АРМ-овский Ев-борд и этот самый моторчик) ? Вообще у моторчика есть датчик выдающий 24 импульса за оборот, но по какимто причинам эти импульсы внутри одного оборота располагаются неравномерно. Да и при максимальной частоте вращения (4000) мне на 24 импульса скорости АРМа не хватит уже наверное (AT91SAM7X256).  Моделировать имеет смысл всегда, впрочем также как и знать теорию  Уже упоминавшийся VisSim, бесплатный в студенческой версии, отличный инструмент для моделирования динамических систем, как аналоговых, так и дискретно-цифровых.
|
|
|
|
Guest_TSerg_*
|
Sep 27 2007, 12:10
|
Guests

|
Цитата(Deka @ Sep 25 2007, 10:35)  А сейчас, господа, сюрприз! И состоит он в том, что поток регулируемый шаровым краном нелинейный! <skip> Не поверишь, но проектировщики это знают. Если они проектировщики, а не детский сад
|
|
|
|
|
Sep 26 2010, 19:53
|
Участник

Группа: Участник
Сообщений: 69
Регистрация: 27-06-06
Пользователь №: 18 383

|
Уважаемые специалисты, помогите пожалуйста начинающему освоить автоматическое регулирование. Вопрос заключается в следующем: Нужно подерживать постоянно температуру(заданную) тена(Делаю регулирование температуры ламинатора, для ЛУТа) Почитав теорию.Написал для себя класс. Код #include "pid.h"
Pid::Pid(void) { this->iState=0; this->dState=0; this->iGain=0; this->pGain=0; this->dGain=0; }
Pid::Pid(float& iGain,unsigned short& pGain,unsigned short& dGain) { this->iGain=iGain; this->pGain=pGain; this->dGain=dGain; }
Pid::~Pid(void) { } float Pid::UpdatePID(unsigned short& error, unsigned short& position) { unsigned short pTerm; unsigned short dTerm; float iTerm; pTerm=this->pGain*error; //Вычисление пропорциональной состовляющей this->iState+=error; //Вычисление интегральной состовляющей с учетом приделов if(this->iState > this->iMax) { this->iState=this->iMax; } else if(this->iState < this->iMin) { this->iState=this->iMin; }
iTerm=this->iGain*this->iState; //Расчет интегральной состовляющей dTerm=this->dGain*(position - this->dState);//расчет. диф. состовляющей this->dState=position; return (pTerm+iTerm+dTerm); } Код #ifndef PID_DEF_H #define PID_DEF_H
#include "stdafx.h" #include <float.h> class Pid { private: unsigned short dState; //Последняя входная позиция unsigned short iState; //Сосотояние интегратора unsigned short iMax,iMin; //Max & Min состояние интегратора float iGain; //интегральная компонента unsigned short pGain; //пропорциональная компонента unsigned short dGain; //производная компонента public: Pid(void); Pid(float& iGain,unsigned short& pGain,unsigned short& dGain); ~Pid(void); float UpdatePID(unsigned short& error, unsigned short& position); };
#endif //PID_DEF_H Вопрос в следующем вот посчитали с помощью метода UpdatePID новое значение... Вот только что менять в ШИМе частоту или скважность.... И какую выбирать частоту ШИМ? Стабилизация нужна +-2градуса. Да и по ПИД вопросу, как правильно выбрать max & min состояние интегратора.... Да и как понял из теории для термостабилизации достаточно будет ПД алгоритма, т.е. можно избавиться от интегральной компоненты, т.е. от работы с float.
|
|
|
|
|
Sep 28 2010, 20:37
|
Участник

Группа: Свой
Сообщений: 73
Регистрация: 9-08-10
Из: Украина
Пользователь №: 58 828

|
без интегральной составляющей не обойтись, т.к. она убирает статическую неравномерность регулирования. и закон нужен ПИ. ШИМ должен менять и скважность и частоту. таким образом вы увеличите динамический диапазон регулирования. необходимо определить минимальную длину импульса и от нее отталкиваться. ПД закон имеет неравномерность регулирования, другими словами Вы получаете устойчивый процесс, но задание отличается от регулируемого параметра
|
|
|
|
|
Apr 12 2011, 13:02
|
Группа: Новичок
Сообщений: 6
Регистрация: 24-11-10
Пользователь №: 61 136

|
хм, а зачем на клапан вообще двигатель, например занимался по работе электромагнитами, узнал кучу нового, например что в клапанах они очень часто используются, просто советую в интернете посмотреть информацию по клапанам и системам регулировки. по регулеровке температуры вопрос, чем регулируется температура(просто отключение подогрева, и/или система вентиляции), ну и выходная характеристика термодатчика? просто на контроллерах часто програмировал термоконтроль для уличных устройств(-40 +50), хотя там больше подогрев играл роль(эл. компоненты не все держали отрицательную температуру), нежели охлаждение.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|