how can i fixe error Invalid Simulink object name: i_v_flux_o​f_memristo​r/Sine_wav​e in this code.

1 次查看(过去 30 天)
v_0=1;
bias=0;
omega=1; % frequency (rad/s)
phase=0;
Nuy=-1;
Muy_D=1e-14;
R_OFF=16e+3; % resistance of undoped region
R_ON=100;
D = 10e-9; % Width of Memristor
w_0 = 5e-009; % Width of doped region
f1=figure(1);
hold on;
grid on;
f2=figure(2);
set(0,'CurrentFigure',2)
hold on;
grid on;
for omega=1:5
comm=sprintf('set_param(''i_v_flux_of_memristor/Sine_wave'',''Amplitude'',''%.30f'')',v_0); % Amplitude
eval(comm);
comm=sprintf('set_param(''i_v_flux_of_memristor/Sine_wave'',''bias'',''%.30f'')',bias); % bias
eval(comm);
comm=sprintf('set_param(''i_v_flux_of_memristor/Sine_wave'',''Frequency'',''%.30f'')',omega); % Frequency
eval(comm);
comm=sprintf('set_param(''i_v_flux_of_memristor/Sine_wave'',''phase'',''%.30f'')',phase); % Phase
eval(comm);
% Other parameters of equation (7) in the page 665 of [2]
comm=sprintf('set_param(''i_v_flux_of_memristor/i_v_flux/Nuy'',''value'',''%.30f'')',Nuy); % Nuy
eval(comm);
comm=sprintf('set_param(''i_v_flux_of_memristor/i_v_flux/Muy_D'',''value'',''%.30f'')',Muy_D); % Muy_D
eval(comm);
comm=sprintf('set_param(''i_v_flux_of_memristor/i_v_flux/R_OFF'',''value'',''%.30f'')',R_OFF); % Resistance of undoped
eval(comm);
comm=sprintf('set_param(''i_v_flux_of_memristor/i_v_flux/R_ON'',''value'',''%.30f'')',R_ON); % Resistance of doped
eval(comm);
comm=sprintf('set_param(''i_v_flux_of_memristor/i_v_flux/D'',''value'',''%.30f'')',D); % Width of Memristor
eval(comm);
comm=sprintf('set_param(''i_v_flux_of_memristor/i_v_flux/w_0'',''value'',''%.30f'')',w_0); % Width of doped region
eval(comm);
sim('i_v_flux_of_memristor');
disp('-----------------------------------------Results-----------------------------------------');
t_0=D*D/Muy_D/v_0;
comm=sprintf('disp(''t_0=D^2/Muy_D/v_0 = %e'')',t_0); % Time that the dopants need to travel distance D under constant voltage v_0, chosen app. 1ms
eval(comm);
comm=sprintf('disp(''Omega_0=2*pi/t_0 = %e'')',2*pi/t_0); % Frequency scales for memristor circuit, chosen typically as given in [1]
eval(comm);
comm=sprintf('disp(''Q_0 = %e'')',Q_0); %
eval(comm);
qmax = Q_0*(1-w_0/D);
comm=sprintf('disp(''q_max(t) = Q_0(1-w_0/D) = %e'')',qmax);
eval(comm);
% plot of v-i
set(0,'CurrentFigure',1)
f1=plot(v,i);
set(0,'CurrentFigure',2)
f2=plot(flux,q);
end

回答(1 个)

Shaunak
Shaunak 2025-3-28
Hi Anand,
The below mentioned error usually occurs from any issue with the block name or path:
"Invalid Simulink object name: i_v_flux_of_memristor/Sine_wave".
You can try the following troubleshooting steps:
  • Ensure that the Simulink model ‘i_v_flux_of_memristor’ is loaded using the command ‘open_system('i_v_flux_of_memristor')’.
  • Verify that the block "Sine_wave" exists with the correct name and path. It can also be helpful to use the Simulink model browser to identify any discrepancies or hidden characters in the path.
I hope this helps!

类别

Help CenterFile Exchange 中查找有关 MATLAB 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by