Effacer les filtres
Effacer les filtres

How can I plot the current input to a system in Simulink?

7 vues (au cours des 30 derniers jours)
Aayuraditya
Aayuraditya le 20 Juil 2023
Commenté : Aayuraditya le 20 Juil 2023
Hi there,
I'm looking for a way to display the current value from a Simulink model in a contour-plot. (So the scopes etc won't help here) It has to be in Simulink as I want it live, and the model shall be exported later.
  • XX,YY and ZZ are matrices of dim 60x60
  • contourf(XX,YY,ZZ); works fine
  • Simulink model that has time dependant inports from external source
  • I wanna display the current inport to my Simulink system in that contour plot.
But, please, HOW can that be done??
(If important: It doesn't necessarily have to be in real time. Big step sizes or delays are acceptable)
Thanks
  2 commentaires
Nandini
Nandini le 20 Juil 2023
To display the current value from a Simulink model in a contour plot, you can use the MATLAB Function block in Simulink. Here's an example of how you can achieve this:
1. Open your Simulink model.
2. Add a MATLAB Function block to your model. You can find it under the "User-Defined Functions" category in the Simulink Library Browser.
3. Double-click the MATLAB Function block to open the block dialog.
4. In the block dialog, write the following code to update the contour plot with the current value of the input:
function y = fcn(u)
persistent XX YY ZZ
if isempty(XX)
[XX, YY] = meshgrid(1:60, 1:60); % Define the grid for XX and YY
ZZ = zeros(size(XX)); % Initialize ZZ with zeros
end
% Update ZZ with the current value of the input
ZZ(u(1), u(2)) = u(3);
% Plot the contour plot
contourf(XX, YY, ZZ);
% Return the input value
y = u;
end
5. Connect the input signal to the MATLAB Function block. The input signal should be a vector `[x, y, z]`, where `x` and `y` represent the coordinates of the point in the contour plot, and `z` represents the value of the point.
6. Connect the output of the MATLAB Function block back to the model if needed.
7. Set the simulation parameters in Simulink to run the model. You can adjust the step size and simulation duration based on your requirements.
When you run the simulation, the contour plot will be updated with the current value of the input at each time step. The input value will also be passed through the MATLAB Function block if needed.
Note that the contour plot will be updated at each simulation step, so you can control the frequency of updates by adjusting the step size in the simulation parameters.
Aayuraditya
Aayuraditya le 20 Juil 2023
It worked thanks alot!!

Connectez-vous pour commenter.

Réponse acceptée

Nandini
Nandini le 20 Juil 2023
To display the current value from a Simulink model in a contour plot, you can use the MATLAB Function block in Simulink. Here's an example of how you can achieve this:
1. Open your Simulink model.
2. Add a MATLAB Function block to your model. You can find it under the "User-Defined Functions" category in the Simulink Library Browser.
3. Double-click the MATLAB Function block to open the block dialog.
4. In the block dialog, write the following code to update the contour plot with the current value of the input:
function y = fcn(u)
persistent XX YY ZZ
if isempty(XX)
[XX, YY] = meshgrid(1:60, 1:60); % Define the grid for XX and YY
ZZ = zeros(size(XX)); % Initialize ZZ with zeros
end
% Update ZZ with the current value of the input
ZZ(u(1), u(2)) = u(3);
% Plot the contour plot
contourf(XX, YY, ZZ);
% Return the input value
y = u;
end
5. Connect the input signal to the MATLAB Function block. The input signal should be a vector `[x, y, z]`, where `x` and `y` represent the coordinates of the point in the contour plot, and `z` represents the value of the point.
6. Connect the output of the MATLAB Function block back to the model if needed.
7. Set the simulation parameters in Simulink to run the model. You can adjust the step size and simulation duration based on your requirements.
When you run the simulation, the contour plot will be updated with the current value of the input at each time step. The input value will also be passed through the MATLAB Function block if needed.
Note that the contour plot will be updated at each simulation step, so you can control the frequency of updates by adjusting the step size in the simulation parameters.

Plus de réponses (0)

Catégories

En savoir plus sur Contour Plots dans Help Center et File Exchange

Tags

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by