Технология модельно-ориентированного проектирования технических систем

В.М. Понятский,

нач. сектора, к.т.н, доц., 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.   Понятский В.М., Гусев А.В., Фимушкин В.С., Колесников Г.И., Федорищева В.Г. Компьютерные технологии проектирования приводов летательного аппарата с использованием САПР Solidworks и Matlab // Материалы Всероссийской научно-технической конференции «Фундаментальные основы баллистического проектирования». - СПб.: БГТУ. 2010. В 2 томах.  Т. 2.