Точный алгоритм линеаризации

Simulink® Программное обеспечение Control Design™ линеаризирует модели с помощью блочно-блочного подхода. Программа индивидуально линеаризирует каждый блок в вашей модели Simulink и производит линеаризацию всей системы путем объединения отдельных линеаризаций блоков.

Программа определяет уровни входа и состояния для каждого блока из рабочей точки и запрашивает Jacobian для этих уровней от каждого блока.

Для некоторых блоков программное обеспечение не может вычислить аналитическую линеаризацию. Для примера:

  • Некоторые нелинейности не имеют заданного якобиана.

  • Некоторые дискретные блоки, такие как графики состояний и триггируемые подсистемы, имеют тенденцию линеаризироваться к нулю.

  • Некоторые блоки не реализуют якобиан.

  • Пользовательские блоки, такие как блоки S-Function и блоки MATLAB Function, не имеют аналитических якобианов.

Можно задать пользовательскую линеаризацию для любых таких блоков, для которых вы знаете ожидаемую линеаризацию. Если вы не задаете пользовательскую линеаризацию, программа находит линеаризацию, возмущая входы и состояния блоков и измеряя реакцию на эти возмущения. Для получения дополнительной информации см. «Возмущение отдельных блоков».

Модели непрерывного времени

Программа Simulink Control Design позволяет линеаризировать нелинейные системы непрерывного времени. Получившаяся линеаризированная модель находится в форме пространства состояний.

За непрерывное время уравнения пространства состояний нелинейной системы:

x˙(t)=f(x(t),u(t),t)y(t)=g(x(t),u(t),t)

где x (t) - системные состояния, u (t) - входные сигналы, и y (t) - выходные сигналы.

Чтобы описать линеаризированную модель, задайте новый набор переменных состояний, входов и выходов с центром вокруг рабочей точки:

δx(t)=x(t)x0δu(t)=u(t)u0δy(t)=y(t)y0

В рабочей точке выхода y (t0) = g (x0, u0, t0) = y0.

Линеаризованные уравнения в пространстве состояний в терминах

δx˙(t)=Aδx(t)+Bδu(t)δy(t)=Cδx(t)+Dδu(t)

где A, B, C и D являются матрицами постоянных коэффициентов. Эти матрицы являются якобианами системы, оцениваемыми в рабочей точке:

A=fx|t0,x0,u0B=fu|t0,x0,u0C=gx|t0,x0,u0D=gu|t0,x0,u0

Это линейное инвариантное по времени приближение к нелинейной системе верно в области вокруг рабочей точки при t = t0, x (t0) = x0 и u (t0) = u0. Другими словами, если значения состояний системы x (t) и входов u (t) достаточно близки к рабочей точке, система ведет себя приблизительно линейно.

Передаточная функция линеаризовавшей модели - отношение Преобразования Лапласа δy (t) и Преобразования Лапласа δu (t):

Plin(s)=δY(s)δU(s)

Многоскоростные модели

Программа Simulink Control Design позволяет линеаризировать многоцелевые нелинейные системы. Получившаяся линеаризированная модель находится в форме пространства состояний.

Многоскоростные модели включают состояния с различными частотами дискретизации. В многоскоростных моделях переменные состояния изменяют значения в разное время и с различными частотами. Некоторые переменные могут изменяться постоянно.

Общие уравнения пространства состояний нелинейной, многократной системы:

x˙(t)=f(x(t),x1(k1),,xm(km),u(t),t)x1(k1+1)=f1(x(t),x1(k1),,xm(km),u(t),t)xm(km+1)=fi(x(t),x1(k1),,xm(km),u(t),t)y(t)=g(x(t),x1(k1),,xm(km),u(t),t)

где k1,..., км - целочисленные значения и tk1,...,tkm являются дискретными временами.

Линейные уравнения, которые аппроксимируют эту нелинейную систему как дискретную модель с одной скоростью, являются:

δxk+1Aδxk+BδukδykCδxk+Dδuk

Скорость линеаризированной модели обычно является наименее распространенным кратным шагов расчета, которое обычно является самым медленным шагом расчета.

Для получения дополнительной информации смотрите Linearization of Многоскоростные Модели.

Возмущение отдельных блоков

Программа Simulink Control Design линеаризирует блоки, которые не имеют предварительно запрограммированной линеаризации, с помощью численного возмущения. Программа вычисляет линеаризацию блоков путем численного возмущения состояний и входов блока относительно рабочей точки блока.

Алгоритм возмущения блока вводит небольшое возмущение в нелинейный блок и измеряет ответ на это возмущение. Значение по умолчанию различие между возмущенным значением и значением рабочей точки 105(1+|x|), где x - значение рабочей точки. Программа использует это возмущение и полученную характеристику, чтобы вычислить линейное пространство состояний этого блока. Для получения информации о том, как изменить уровни возмущения для отдельных блоков, смотрите Изменение уровня возмущения блоков, возмущенных во время линеаризации.

В целом, нелинейный блок Simulink в непрерывном времени в форме пространство состояний задается:

x˙(t)=f(x(t),u(t),t)y(t)=g(x(t),u(t),t).

В этих уравнениях x (t) представляет состояния блока, u (t) представляет входы блока, и y (t) представляет выходы блока.

Линеаризированная модель этой системы действительна в небольшой области вокруг рабочей точки t = t0, x (t0) = x0, u (t0) = u0 и y (t0) = g (x0, u0, t0) = y0.

Чтобы описать линеаризированный блок, задайте новый набор переменных состояний, входов и выходов с центром вокруг рабочей точки:

δx(t)=x(t)x0δu(t)=u(t)u0δy(t)=y(t)y0

Линеаризованные уравнения пространства состояний в терминах этих новых переменных:

δx˙(t)=Aδx(t)+Bδu(t)δy(t)=Cδx(t)+Dδu(t)

Линейное инвариантное по времени приближение к нелинейной системе верно в области вокруг рабочей точки.

Матрицы А, B, C и D пространства состояний этой линеаризированной модели представляют якобианы блока.

Чтобы вычислить матрицы пространства состояний во время линеаризации, программное обеспечение выполняет следующие операции:

  1. Возмущает состояния и входы по одному и измеряет ответ системы на это возмущение путем вычисления δx˙ и β y.

  2. Вычисляет матрицы пространства состояний с помощью возмущения и отклика.

    A(:,i)=x˙|xp,ix˙oxp,ixo,B(:,i)=x˙|up,ix˙oup,iuoC(:,i)=y|xp,iyoxp,ixo,D(:,i)=y|up,iyoup,iuo

где

  • xp, i является вектором состояния, чей i-й компонент возмущен значением рабочей точки.

  • xo - вектор состояния в рабочей точке.

  • up, i является входным вектором, чья i-я компонент возмущён значением рабочей точки.

  • uo - вектор входа в рабочей точке.

  • x˙|xp,i - значение, x˙ в xp, i, uo.

  • x˙|up,i - значение, x˙ на подъеме, i, xo.

  • x˙o - значение, x˙ в рабочей точке.

  • y|xp,i - значение, y в xp, i, uo.

  • y|up,i - значение, y на подъеме, i, xo.

  • yo - значение y в рабочей точке.

Пользовательские блоки

Все пользовательские блоки, такие как S-Function и Блоки MATLAB function, совместимы с линеаризацией. Эти блоки линеаризированы с помощью численного возмущения.

Пользовательские блоки не линеаризируются, когда эти блоки используют типы данных точности, отличные от точности с плавающей точкой. Для получения дополнительной информации смотрите Linearize Blocks with Non-Floating-Point Signals или States.

Просмотр таблиц

Регулярные интерполяционные таблицы численно возмущены. Предварительные интерполяционные таблицы имеют предварительно запрограммированную (точную) блочную линеаризацию.