Тепловые модули часто требуют аффинного преобразования, то есть преобразования, которое выполняет и умножение, и сложение. Чтобы преобразовать из старого Told значений в новое Tnew значений, нам нужен линейный коэффициент преобразования L и O смещения:
Tnew = L * Told + O
Для примера, для преобразования показания температуры из степеней Цельсия в степени Фаренгейта, линейный термин равен 9/5, и смещение равняется 32:
TFahr = 9 / 5 * TCels + 32
Simscape™ unit manager определяет kelvin (K
) как основной температурный модуль. Это делает Цельсия (degC
) и Фаренгейт (degF
) аффинные модули, потому что они оба связаны с кельвином с аффинным преобразованием. Ранкине (degR
) определяется в терминах кельвина с нулевым линейным смещением и, следовательно, не является аффинным модулем.
Ниже приведены определения реестра модулей измерения Simscape по умолчанию для модулей измерения температуры:
pm_adddimension('temperature', 'K'); % defines kelvin as fundamental temperature unit pm_addunit('degC', [1 273.15], 'K'); % defines Celsius in terms of kelvin pm_addunit('degF', [5/9 -32*5/9], 'degC'); % defines Fahrenheit in terms of Celsius pm_addunit('degR', [5/9 0], 'K'); % defines rankine in terms of kelvin
При работе с аффинными модулями иногда нужно преобразовать их, используя только линейный термин. Обычно, это происходит, когда значение, которое Вы преобразовываете, представляет родственника, а не абсолютный, температура, Δ <reservedrangesplaceholder2> = T1 - T2.
И Tnew = L * И Told
В этом случае добавление смещения аффина даст неправильные результаты преобразования.
Например, температура на открытом воздухе выросла на 18 степени по Фаренгейту, и вам нужно ввести это значение в свою модель. При преобразовании этого значения в кельвин используйте линейное преобразование
И Tkelvin = 5/9 * И TFahr
и вы получаете 10 К, то есть наружная температура изменилась на 10 кельвин. Если вы применяете аффинное преобразование, вы получите изменение температуры приблизительно 265 кельвин, что неправильно.
Это еще лучше проиллюстрировано, если вы используете степени Цельсия для входных модулей, потому что линейный термин для преобразования между Цельсием и Кельвином равен 1:
Если наружная температура изменилась на 10 степени Цельсия (относительное значение температуры), то она изменилась на 10 кельвинов (не применять аффинное преобразование).
Если температура на открытом воздухе составляет 10 степени Цельсия (абсолютное значение температуры), то это 283 кельвина (применить аффинное преобразование).
Для относительных температур можно также использовать относительные модули измерения температуры: deltaK
, deltadegC
, deltadegF
, deltadegR
. Эти модули согласуются с Simulink® единичная база данных (см. Units in Simulink). Если вы используете эти модули, преобразование аффина не применяется.