Добрый день, уважаемые форумчане! Опишу проблему, которую не могу разрешить в рамках курсовой работы, для построения информационно-измерительной системы (ИИС). На входе ИИС имеется датчик измерительный преобразователь, в данном случае калориметрический расходомер. Необходимо рассчитать его внутренние параметры расчетной функции преобразования (РФП)
, где
- внутренние параметры той самой РФП. Эта функция в общем случае может быть линейной, а может и нет. На определенном участке (диапазон работы датчика)
. Суть расчета заключается в том, что необходимо рассчитать внутренние параметры РФП на диапазоне рабочем таким образом, чтобы данную функцию можно было аппроксимировать линейной зависимостью
, т.е. провести линеаризацию статической градуировочной характеристики.
Для расчета параметров ИП существует методика приближения РФП к номинальной, путем минимизации дисперсии погрешности приближения
в среднеквадратичном приближении. Минимизация дисперсии погрешности приближения может быть записана следующим образом:
Поэтому для определения расчетных значений внутренних параметров можно непосредственно использовать выражение:
В случае, если таких параметров более чем один, то получаем систему уравнений, которую надо решить, естественно численно.
Для калориметрического расходомера, РФП имеет вид:
При этом известно, что для расходомеров данного типа, диапазон изменения
, т.е. тот самый
составляет не более 7 градусов. Тогда необходимо получается отыскать функционал и провести минимизацию относительно трех параметров:
, где I - сила тока нагревателя проходящей жидкости, R - сопротивление. Массовый расход вещества как раз рассчитывается на основе разности температур
, в результате нагрева жидкости с помощью электронагревателя, датчики температуры установлены соответственно на некотором расстоянии, друг относительно друга. K - коэффициент наклона прямой, которая должна аппроксимировать РФП.
Проблема заключается в том, что при нахождении параметров и минимизации функционалов (которые я нахожу с помощью команды functionalDerivative в Matlab) я затем пытаюсь численно решить эту систему, но получаю везде либо нули либо пустые значения выдает программа. Номинальная функция у меня
.
Код:
clear
clc
syms I(x) R(x) x K
f = (((0.24*(I^2)*R)/2517*x)-K*x)^2;
G = functionalDerivative(f,[I R]);
f1 = -(4*x*I*R*(20975*K*x - x*I^2*R))/439950625;
f2 = -(2*x*I^2*(20975*K*x - x*I^2*R))/439950625;
% syms I R x K
func1 = -(4*x*I*R*(20975*K*x - x*I^2*R))/439950625;
func2 = -(2*x*I^2*(20975*K*x - x*I^2*R))/439950625;
%
eqn1 = (1/15)*int(func1,x,1,15);
eqn2 = (1/15)*int(func2,x,1,15);
D1 = diff(eqn1,I);
D2 = diff(eqn1,R);
D3 = diff(eqn1,K);
D4 = diff(eqn2,I);
D5 = diff(eqn2,R);
D6 = diff(eqn2,K);
eqD1 = D1 == 0;
eqD2 = D2 == 0;
eqD3 = D3 == 0;
qD4 = D4 == 0;
eqD5 = D5 == 0;
eqD6 = D6 == 0;
% x - replace deltaT
[solI, solR,solK] = vpasolve([eqD1 eqD2 eqD3 eqD4 eqD5 eqD6],[I R K],[0; 0; 0])
Код выполняю в скриптах mlx, чтобы символьно можно было выводить результат вычисления функционала, и уравнений, из решения которых должно быть найдено решение.
Есть возможность в принципе решить эту задачу в системе Matlab, и вообще может ли быть найдено решение, согласно данной методике? В файле приложен пример разбора для механизма синусного, где в качестве РФП выступает параметр a, а также коэффициент K.
https://drive.google.com/file/d/1aWVuXxU0tM1acRDfw8l7s55HF2amX4xP/view?usp=sharingЗаранее спасибо, за любую оказанную помощь!!