bekas |
Реализация передаточных функций в системах управления 23.03.2008, 22:28 |
|
27/11/05 183 Северодонецк
|
Существует ли какая-то простая методика перевода законов регулирования,
определенных своими передаточными функциями, в обычную программу?
Скажем, эта программа циклически вызывается с каким-то определенным периодом. Или необходимо обязательно вникать в операционное исчисление
для такого перевода в программу, даже если передаточные функции уже
кем-то определены?
|
|
|
|
|
e2e4 |
24.03.2008, 09:42 |
|
21/03/06 1545 Москва
|
ПИД и прочие регуляторы. Там надо примерно знать передаточную функцию, а, зачастую, можно вообще ничего не знать о системе. Естественно, при переходных процессах будут отклонения от оптимального закона управления.
|
|
|
|
|
bekas |
24.03.2008, 19:51 |
|
27/11/05 183 Северодонецк
|
Может я не совсем ясно выразился: проблема не в нахождении передаточной функции, а в ее реализации. Передаточные функции, как правило, уже заданы, и необходима методика их реализации: ведь формула передаточной функции - это не есть арифметическое выражение, которое надо вычислять циклически?
|
|
|
|
|
CyXOB][ |
26.03.2008, 20:51 |
|
24/03/08 26 Новосибирск
|
Всё это с успехом реализуется в системе MatLAB. Если тебе надо регулировать какой-то объект через порт, MatLAB также позволяет это делать. Программу для этого писать не обязательно. Достаточно использовать стандартные средства модуля Simulink - там блоксхемой всё что нужно сделать можно .
|
|
|
|
|
bekas |
26.03.2008, 22:13 |
|
27/11/05 183 Северодонецк
|
Проблема немного сложнее - в нашей конторе мною разработан язык технологического программирования а-ля Си (так называемый ТехноСи), в котором реализованы стандартные ПИД-алгоритмы (функции их реализации были написаны другим человеком до меня). Однако читая литературу по системам технологического управления, я убедился, что существует довольно много других более оптимальных законов регулирования (для которых известны и описаны передаточные функции). И так как я далек от теории систем управления (т. е. чистый программист, способный без проблем реализовать систему компиляции, скажем, для Windows CE промышленных контроллеров, но не способный адекватно превратить теоретическую передаточную функцию в реальную программу на Си), то и хотелось бы услышать рекомендации знающих людей по такому адекватному превращению - именно в программу на языке Си...
|
|
|
|
|
CyXOB][ |
26.03.2008, 22:24 |
|
24/03/08 26 Новосибирск
|
Передаточную функцию можно представить в виде отношения многочленов. После этого можно перейти к дифференциальному уравнению, к которому применить какую-нибудь разностную схему по-удачнее, чтобы сходилась, и получить СЛАУ, которую и решать в режиме реального времени с разными правыми частями. Математику написать могу, а что до программы, так я уже не писал лет 5 на сях и иже с ними ничего серьёзного, только матлаб.
|
|
|
|
|
bekas |
26.03.2008, 22:31 |
|
27/11/05 183 Северодонецк
|
Метод решения СЛАУ не подходит (когда в задаче сотни регуляторов - будут сплошные тормоза). Если посмотреть на доставшуюся мне реализацию ПИД - так там есть пара значений для хранения состояний регулятора от предыдущего цикла задачи и идут самые обычные арифметические выражения (но по своему виду очень далекие от вида передаточной функции, заявленной в комментариях), реализующие как раз разностную схему - но никаких СЛАУ.
|
|
|
|
|
CyXOB][ |
26.03.2008, 22:40 |
|
24/03/08 26 Новосибирск
|
Разностная схема неявно подразумевает решение СЛАУ ) Просто там структура матрицы очень приятная - 3 или 5 диагоналей, смотря какой порядок схемы брать (выше 2-го смысла нет). Если СЛАУ решать приближенными методами типа GMRES или BCGStab, то проще её сразу предобусловить как следует, чтобы вообще 3 диагонали осталось (по этой теме много есть статей с готовыми алгоритмами, как вариант Шурина, Баландин "Методы решения СЛАУ больший размерностей" или что-то в этом духе). Так что никаких тормозов не будет.
|
|
|
|
|
|
Страница 1 из 1
|
[ Сообщений: 8 ] |
|
Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы