Технология модельно-ориентированного проектирования
технических систем
В.М. Понятский,
нач.
сектора, к.т.н, доц., kbkedr@tula.net,
ГУП «КБП», г.Тула
В
настоящее время одной из сложных проблем проектирования технических систем
является разработка программ, реализующих синтезированные алгоритмы управления
в микропроцессорных системах.
Методика
генерации программ в среде Matlab включает следующие этапы.
Этап
1. Построение динамической модели технической системы и формирование алгоритмов
управления - синтез системы управления в среде Matlab.
Этап
2. Разработка конструкции технической системы в САПР SolidWorks и трансляция
3D-модели механической части в среду Matlab. Проведение прочностного
анализа 3D-модели конструкции технической системы в САПР SolidWorks по
результатам анализа её динамики в среде Matlab.
Этап
3. Разработка в среде Matlab динамической модели
технической системы с механической частью, построенной по 3D-модели конструкции
SolidWorks, - уточнение алгоритмов управления.
Этап
4. Генерация С-кода модели блока управления в среде Matlab для его программной
реализации в микропроцессорной системе. Функция Filter Design & Analysis
позволяет получать структуру квантованного фильтра. С помощью процедуры Tool Fixed-Point Advisor
можно исходную модель блока управления преобразовать в модель с фиксированной
точкой. При трансляции с помощью Real-Time Workshop
модели дискретного алгоритма управления в текст программы возможно задание
режимов оптимизации получаемого кода по времени выполнения, по его длине и т.д.
Этап
5. Проведение стендовых и натурных испытаний технической системы –
окончательная отладка алгоритма управления. Регистрация и обработка результатов
испытаний с использованием пакета Matlab и оценка качества системы.
В
соответствии с приведенной модельно-ориентированной методикой рассмотрен синтез
С-кода алгоритма управления для сервопривода (рис. 1) летательного
аппарата.
рис.
1 Структурная схема сервопривода:
корректирующий фильтр (КФ), управляющий
электромагнит
(УЭМ), распределительное устройство (РУ), исполнительный двигатель (ИД)
Модель
динамического контура сервопривода (рис. 2) создана в соответствии с
математическим описанием с помощью блоков библиотеки Simulink.
рис. 2 Динамическая модель сервопривода в среде
Simulink
Для
создания модели, наиболее адекватной реальному сервопривода, используется
подход, сочетающий в себе применение конструкторских 3D-моделей механических
элементов и динамической модели системы управления сервопривода. В качестве
инструмента моделирования используется пакет Matlab.
Исходная
3D-модели САПР SolidWorks механической части сервопривода приведена на рисунке
3.
В модели
сервопривода воспроизведение удара при выходе на упоры осуществлено с
помощью пружин, подключаемых в момент удара и учитывающих при ударе линейные и
угловые жесткости элементов конструкции (рис. 4).
рис. 3 3D-модель механической части сервопривода в
SolidWorks
рис. 4 Модель механической
части сервопривода в Simulink для моделирования
ударных воздействий
Основными задачами программной реализации
алгоритма управления являются:
· преобразование аналоговых
фильтров WФ(p) , являющихся в данном случае прототипами, к виду цифровых
фильтров WФ(z) с бесконечно-импульсной характеристикой (БИХ-фильтров);
· реализация WФ(z)
БИХ-фильтров как алгоритмов вычисления реакции в виде разностных уравнений.
Алгоритмы должны быть приведены к формату вычислений с фиксированной точкой.
Формат фиксированной точки реализуется средствами целочисленной математики и в
силу этого существенно превосходит по производительности вычисления в формате
плавающей точки;
· изложение полученных
алгоритмов на языке высокого уровня С.
Пусть
необходимо реализовать для сервопривода корректирующий фильтр вида:
.
Встроенная
в язык Matlab функция bilinear позволяет представить передаточную функцию
цифрового фильтра WФ(z) на основе передаточной функции аналогового фильтра
прототипа WФ(p) посредством следующего преобразования:
,
где Тs – период дискретизации.
Формат
вызова функции:
[b,a]=bilinear(bs,as,Fs),
где: bs, as –коэффициенты числителя и знаменателя
WФ(p); Fs=1/Ts – частота дискретизации, b, a – коэффициенты числителя и знаменателя
передаточной функции WФ(z).
Для
приведённого выше фильтра будем иметь:
[bкф,aкф]=bilinear([1],
[0.012 1], 10000).
В
результате выполнения данных функций получим:
.
Встроенная
оболочка Filter Design & Analysis Tool (рис. 5). позволяет провести
дальнейший расчёт фильтра
рис.
5 Меню процедуры Filter Design & Analysis Tool
Получена
дискретная структура корректирующего фильтра (рис. 6).
рис. 6 Структура
квантованного фильтра
С
помощью процедуры Tool Fixed-Point Advisor (рис. 7) можно так же исходную
модель фильтра преобразовать в модель с фиксированной точкой.
рис.
7 Меню процедуры Fixed-Point Advisor
Например,
после выполнения процедуры Fixed-Point Advisor получена модель с фиксированной
точкой (рис. 8).
а) б)
рис.
8 Результат выполнения преобразования Fixed-Point Advisor:
а –
исходная схема, б – преобразованная схема с фиксированной точкой
При
трансляции с помощью Real-Time Workshop (рис. 9) модели дискретного фильтра в
текст программы (рис. 10) возможно задание режимов оптимизации получаемого
кода, например, по времени выполнения,
по его длине и т.д.
рис.
8 Фрагмент С-кода программы,
реализующей рис. 9 Вкладка Optimization для настройки параметров
корректирующий
фильтр
оптимизации кода
Следовательно,
для фильтра WКФ(z) получена последовательность С-кода в виде функции
void Filter_step(void)
{ Sum = (int16)(Input + (2031 * Delay >>
11));
Output = (int16)((67 * Sum >> 14) + (67 *
Delay >> 14));
Delay = Sum;
}
и полученный код соответствует разностному
уравнению:
Предложенный
подход позволяет сократить время и расходы на разработку программы для реализации
корректирующего фильтра сервопривода.
Литература
1.
Понятский В.М., Гусев А.В., Фимушкин В.С., Колесников Г.И.,