当前位置: 首页 > news >正文

基于Matlab求解矩阵电容等效容值

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

相关文章:

  • 嵌入式人工智能应用-第三章 opencv操作 5 二值化、图像缩放
  • 2.2 BackgroundWorker的使用介绍
  • CentOS 10 /root 目录重新挂载到新分区槽
  • Qt中修改了UI设计文件后编译不生效问题的解决办法
  • 拼多多面经,暑期实习Java一面
  • 20. git diff
  • 博客系统-RabbitMQ
  • 【自然语言处理与大模型】Linux环境下Ollama下载太慢了该怎么处理?
  • 计算机网络中的网络层:架构、功能与重要性
  • IPv4地址分类与常用网络地址详解
  • 易语言验证京东滑块轨迹算法
  • Beszel​​ 轻量级服务器监控平台的详细安装步骤
  • 软考复习——综合布线
  • 用键盘实现控制小球上下移动——java的事件控制
  • C语言自增自减题目
  • 【英语语法】词法---副词
  • 【Oracle专栏】函数中SQL拼接参数 报错处理
  • unordered_map、unordered_set详解
  • 学习笔记二十——Rust trait
  • RabbitMQ,添加用户时,出现Erlang cookie不一致,导致添加用户失败的问题解决
  • 女子“伸腿阻拦高铁关门”被行拘,事件追踪:当时发生了什么?
  • 用了半年的洗衣机竟比马桶还脏,别再这样洗衣服了
  • 人民网评:“中国传递爱而不是关税”
  • 李强签署国务院令,公布《国务院关于修改〈快递暂行条例〉的决定》
  • 自然资源部一季度新批用海项目中,涉历史遗留围填海项目56个
  • 公安部道研中心:虚假宣传自动驾驶致严重后果,责任人或处2年以下刑期