1需求
仿真測試8*10階舉證電容等效容值。
2模型搭建
2.1打開simscape
在打開simulink之后打開simscape庫,Simscape庫位置如下
2.2搭建模型
在庫中尋找需要的元件搭建電路。
2.2.1基本元件
電阻電容電感等基礎器件,搭建電路之后需要對其進行幅值,同時搭建電路需要有一個Electrical Reference元件,用作電氣接地。
2.2.2直流電壓源
2.2.3電壓表
2.2.4 示波器
2.2.5轉換器
將輸入物理信號轉換為Simulink輸出信號,將電壓表獲得的數據用示波器顯示,需要使用轉換器。
2.2.6求解器
對物理模型進行計算
對于物理模型的計算,一定要添加一個求解器,否則會報錯
2.2.7添加標題
xy軸標簽
點擊示波器,配置屬性–>畫面?修改標題以及Y軸標簽選擇配置屬性–>時間修改x軸標簽
打開視圖–>樣式?修改背景以及線的顏色
搭建完如下圖所示。
3程序
3.1 matlab中新建腳本
3.2編寫程序
% 參數設置
n_rows = 8; % 行數
n_cols = 10; % 列數
C_value = 1e-6; % 單個電容值(法拉)
freq = 50; % 頻率(Hz)
V0 = 5; % 交流信號幅值(伏特)
omega = 2 * pi * freq;
Yval = 1j * omega * C_value; % 導納值% 構建導納矩陣
n_nodes = n_rows * n_cols;
Y = zeros(n_nodes, n_nodes, 'like', Yval); % 初始化復數導納矩陣for k = 1:n_nodesi = floor((k-1)/n_cols) + 1; % 當前節點的行號j = mod(k-1, n_cols) + 1; % 當前節點的列號% 檢查右鄰居是否存在并更新導納矩陣if j < n_colsneighbor = k + 1;Y(k, neighbor) = Y(k, neighbor) - Yval;Y(k, k) = Y(k, k) + Yval;end% 檢查左鄰居if j > 1neighbor = k - 1;Y(k, neighbor) = Y(k, neighbor) - Yval;Y(k, k) = Y(k, k) + Yval;end% 檢查上鄰居if i > 1neighbor = k - n_cols;Y(k, neighbor) = Y(k, neighbor) - Yval;Y(k, k) = Y(k, k) + Yval;end% 檢查下鄰居if i < n_rowsneighbor = k + n_cols;Y(k, neighbor) = Y(k, neighbor) - Yval;Y(k, k) = Y(k, k) + Yval;end
end% 確定激勵節點(第一行和第八行的最左側)
node1 = 1; % 第一行第一列
node71 = (n_rows-1)*n_cols + 1; % 第八行第一列,即(8-1)*10 +1 = 71
known_nodes = [node1, node71];
unknown_nodes = setdiff(1:n_nodes, known_nodes); % 其余節點% 提取子矩陣
Y11 = Y(known_nodes, known_nodes);
Y12 = Y(known_nodes, unknown_nodes);
Y21 = Y(unknown_nodes, known_nodes);
Y22 = Y(unknown_nodes, unknown_nodes);% 設置已知電壓:節點1為5V,節點71為0V
Vk = [V0; 0]; % 電壓向量% 求解未知節點電壓
Vu = -Y22 \ (Y21 * Vk); % 解線性方程組% 計算注入電流
Ik = Y11 * Vk + Y12 * Vu;% 計算等效導納和電容
I1 = Ik(1); % 節點1的注入電流
Y_eq = I1 / (Vk(1) - Vk(2)); % 等效導納
C_eq = imag(Y_eq) / omega; % 等效電容(法拉)% 顯示結果
fprintf('等效電容值為:%.4f μF\n', C_eq * 1e6);
3.3執行
切換路徑至代碼位置。注意:路徑不要有中文。
命令行窗口執行程序
輸入程序文件名即可,不要后面的m。
4仿真文件和程序
https://download.csdn.net/download/weixin_51248645/90656484